====== Acerca de... ====== ===== Objetivos ===== Se pretende que el alumno adquiera: * capacidad para comprender y describir el problema que resuelve un algoritmo (el “qué”) y diferenciarlo de la manera en que lo resuelve (el “cómo”), * capacidad para analizar algoritmos, compararlos según su eficiencia en tiempo y en espacio, * capacidad y hábito de identificar y describir abstracciones relevantes al abordar un problema, * familiaridad con técnicas de diseño de algoritmos de uso frecuente, * familiaridad con la programación (en el lenguaje c, entre otros) de algoritmos y estructuras de datos, * familiaridad con la utilización de diversos niveles de abstracción y lenguajes de programación. ===== Programa ===== * Los contenidos se dividen en tres partes: * Análisis de algoritmos: algoritmos de ordenación, orden de un algoritmo, recurrencias. * Tipos abstractos de datos: tipos concretos versus tipos abstractos, contador, pila, cola, árboles. * Técnicas de programación: algoritmos voraces, divide y vencerás, programación dinámica, backtracking. * En {{:algo2:main:algoritmos_y_estructuras_de_datos_ii_2015.doc|Programa de la materia}} se encuentra una descripción detallada de los contenidos, como así también de los objetivos de la materia, modalidad de evaluación, etc. ===== Régimen de aprobación, promoción y regularidad ===== Para aprobar esta materia deben aprobarse independientemente las dos partes: teórico/práctico y laboratorio. **Promoción:** El teo/pra, y por ende la materia en sí, **no tiene promoción**. El laboratorio sí. Les informaremos la modalidad de promoción del laboratorio dentro de unas semanas, cuando se estabilice la cantidad de gente que asiste a la materia. **Regularidad:** Se pedirán dos o tres trabajos obligatorios en el teo/pra y también algunos trabajos en el laboratorio. **No habrá exámenes parciales.** ===== Bibliografía ===== * Notas de Algoritmos y Estructuras de Datos II. * Buscar en la wiki de años anteriores. * Brassard and Bratley, Fundamentals of Algoritmics. * Manber, Introduction to Algorithmics: A Creative Approach. * Bibliografía Complementaria * Cormen, Leiserson, Rivest y Stein, Introduction to Algorithms. * Balcázar, Programación Metódica. * Biggs, Matemática Discreta. * Kaldewaij, Programming: the Derivation of Algorithms. * Blanco, Smith y Barsotti, {{http://www.cs.famaf.unc.edu.ar/~damian/algoritmos1/apunte/main.pdf|Cálculo de Programas}}. * Tutoriales de lenguaje C * {{algo2:cursc.html | En castellano pero básico}} * [[http://www.cs.cf.ac.uk/Dave/C/ | En ingles pero muy completo]] * [[http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html|Manual de referencia en inglés]] \\ This is a reference manual for the C programming language as implemented by the GNU Compiler Collection (GCC). * Otros * {{algo2:main:cookoopvsadt90.pdf|Object-Oriented Programming Versus Abstract Data Types}} ===== Vínculos interesantes ===== * Visualizador de ejecución de programas * [[http://pythontutor.com/visualize.html#mode=edit|Python tutor]] Permite visualizar la ejecución de programas en python, c, java entre otros lenguajes. * Algoritmos de ordenación. * [[http://en.wikipedia.org/wiki/Sorting_algorithms | en wikipedia]] * Algunos visualizadores * [[http://sorting.at/]] * [[http://www.sorting-algorithms.com/]] * [[https://www.cs.usfca.edu/~galles/visualization/Algorithms.html]] * [[http://math.hws.edu/TMCM/java/xSortLab/]] * Algo-Ritmos * [[https://www.youtube.com/watch?v=Ns4TPTC8whw|Ordenación por selección]] * [[https://www.youtube.com/watch?v=ROalU379l3U|Ordenación por inserción]] * [[http://www.youtube.com/watch?v=XaqR3G_NVoo|Ordenación por intercalación]] * [[http://www.youtube.com/watch?v=kDgvnbUIqT4|Ordenación rápida]] * Notación //O// * [[http://en.wikipedia.org/wiki/O_notation | en wikipedia]] * Visualizador de funciones y su crecimiento * [[http://rechneronline.de/function-graphs/]] * TADs * [[https://www.cs.usfca.edu/~galles/visualization/Algorithms.html]] ===== Grupo de Correo ===== ==== Instrucciones para agregarse al grupo de correo ==== Tenemos un googlegroup para los alumnos y los docentes en la siguiente dirección: https://groups.google.com/forum/#!forum/ayed2-famaf Para subscribirse, hacer click en "Accede para ver este grupo" (o "subscribe to this group", o similar). Por favor, además de la dirección de mail asegurarse de proporcionar su nombre y apellido. En caso contrario, no se accederá a la solicitud hasta tanto podamos identificarlo como alumno de la asignatura. Por favor elegir una dirección de mail que lean todos los días y que no tenga restricciones de tamaño. **No** es obligatorio que sea un email de gmail. Las direcciones de hotmail/outlook están particularmente no recomendadas ya que suelen llenarse rápido y no les llegan los correos. Una vez que solicitaron acceder al grupo, aguardar que llegue a su casilla de correo la aprobación de esa solicitud. ==== Instrucciones para mandar un mail a la lista de correo ==== Para mandar un mail a la lista de la materia, escribir a: ayed2-famaf@googlegroups.com