Algoritmos y Estructuras de Datos II
Generalidades
Docentes
Teóricos: Daniel Fridlender.
Prácticos: Silvia Pelozo.
Laboratorio: Natalia Bidart, Matías Bordese, Diego Dubois y Leonardo Rodríguez.
Horarios
Teóricos: lunes de 9 a 11hs y miércoles de 14 a 16hs, en el aula 17.
Prácticos: lunes de 11 a 13hs y miércoles de 16 a 18hs, en el aula 17.
Laboratorio: martes y jueves de 14 a 18hs. Los martes se dicta clase, enuncian los proyectos y atienden consultas. Los jueves también se atienden consultas.
Parciales: 3.
-
Recuperatorio: el jueves 7/6/2012 de 14 a 18hs quienes no hayan aprobado el primer o segundo parcial tendrán la opción de recuperar. Quienes no hayan aprobado ninguno de los dos deberán elegir cuál recuperan. El recuperatorio no cuenta para la promoción.
Proyectos del laboratorio: 4.
Promoción: aprobando cada parcial con 6 o más, con promedio de 7 o más, y aprobando cada proyecto del laboratorio con 7 o más.
Regularidad: aprobando dos parciales + aprobando cada proyecto del laboratorio (con 4 o más).
Examen: examen escrito + resolución de problemas frente a la computadora (2 días).
Alumnos libres: ambas partes del examen (teórico y laboratorio) contienen ejercicios adicionales.
Los alumnos que promocionan sólo los parciales o sólo los proyectos del laboratorio serán exceptuados de rendir la parte promocionada en las mesas de julio-agosto de 2012.
Preguntas frecuentes
Si voy al laboratorio un jueves de 14 a 18hs, ¿tendré a quien consultar mis dudas?
Si apruebo los parciales pero no los proyectos del laboratorio, ¿deberé rendir un examen de laboratorio con ejercicios adicionales?
Si apruebo los proyectos del laboratorio pero no alcanzo a aprobar los parciales, ¿deberé resolver ejercicios adicionales en el examen escrito?
El año pasado aprobé los parciales pero no los proyectos del laboratorio, ¿debo rendir los parciales nuevamente durante este año?
El año pasado aprobé los proyectos del laboratorio pero no alcancé a aprobar los parciales, ¿debo volver a hacer el laboratorio este año?
¿Puedo rendir el examen final sin haber hecho el laboratorio?
El año pasado regularicé (es decir, estaba inscripto como regular, aprobé los parciales y los proyectos del laboratorio). Quiero volver a cursar este año. ¿Voy a perder la regularidad obtenida el año pasado?
Saqué 7 o más en los tres parciales pero no en los proyectos del laboratorio. ¿Debo rendir el escrito también?
Saqué 7 o más en los proyectos del laboratorio pero no en los parciales. ¿Debo rendir el laboratorio también?
Teórico
Horarios
Lunes de 9 a 11hs y miércoles de 14 a 16hs, en el aula 17.
Bibliografía
Notas de Algoritmos y Estructuras de Datos II.
Brassard and Bratley, Fundamentals of Algoritmics.
Manber, Introduction to Algorithmics: A Creative Approach.
Clases
Primera parte: Análisis de Algoritmos.
Lunes 12 de marzo: presentación de la materia, introducción, distinción entre qué hace un algoritmo y cómo lo hace. Motivación: problema del bibliotecario. Ordenación por selección. Demos visuales. Procedimiento selection_sort en pseudo-código. Diseño top-down, procedimiento swap, función min_pos_from. Beneficio de usar swap. Análisis del algoritmo, elección de operación elemental, conteo. Aplicación al problema del bibliotecario. Método de conteo de operaciones de un algoritmo.
Miércoles 14 de marzo: Repaso. Conteo mecánico de comparaciones del selection_sort. Procedimiento insertion_sort en pseudo-código. Procedimiento insert. Análisis del algoritmo. Peor y mejor caso. Caso medio. Demos visuales.
Lunes 19 de marzo: Repaso, número de comparaciones de la ordenación por selección y por inserción. Notación O, Omega y Theta. Propiedades elementales. Equivalencias. Regla del límite, enunciado y demostración.
Miércoles 21 de marzo: Repaso, regla del límite. Jerarquía de funciones según su orden de crecimiento. Terminología.
Lunes 26 de marzo: Problema del bibliotecario. Ordenación por intercalación. Ordenación rápida.
Miércoles 28 de marzo: Orden de la ordenación por intercalación. Recurrencias divide y vencerás. Búsqueda lineal y búsqueda binaria.
Lunes 2 de abril: Feriado.
Miércoles 4 de abril: Recurrencias homogéneas y no homogéneas.
Lunes 9 de abril: Repaso de análisis y recurrencias.
Segunda parte: Estructuras de Datos.
Miércoles 11 de abril: Tipos de datos. Tipos concretos.
Lunes 16 de abril: Primer parcial.
Miércoles 18 de abril: Tipos abstractos. Paréntesis balanceados, TAD contador. Paréntesis, corchetes, llaves, etc, TAD pila.
Lunes 23 de abril: Implementaciones del TAD pila: listas, listas enlazadas, arreglos. Eficiencia.
Miércoles 25 de abril: TAD cola, especificación e implementación.
Lunes 30 de abril: Feriado
Miércoles 2 de mayo: Implementación de colas con listas enlazadas, listas circulares, arreglos circulares.
Lunes 7 de mayo: Cola de prioridades. Implementación con listas enlazadas circulares. Árboles binarios. Implementación con punteros.
Miércoles 9 de mayo: Árboles binarios de búsqueda y heaps.
Lunes 14 de mayo: Segundo parcial.
Tercera parte: Algoritmos Avanzados.
Miércoles 16 de mayo: Implementación de cola de prioridades usando heaps. Heapsort. Algoritmos voraces. Algoritmo de Kruskal.
Lunes 28 de mayo: Problema union-find. Algoritmo de Prim. Forma general de los algoritmos voraces.
Miércoles 30 de mayo: Algoritmo de Dijkstra. Problema de la moneda. Problema de la mochila.
Lunes 4 de junio: Divide y vencerás (ya vimos). Backtracking. Problema de la moneda. Problema de la mochila. Problema de los caminos mńimos.
Miércoles 6 de junio: Programación dinámica. Fibonacci. Problema de la moneda. Problema de la mochila. Algoritmo de Floyd.
Lunes 11 de junio: Recorrida de árboles y grafos. DFS.
Miércoles 13 de junio: DFS, BFS y últimas palabras sobre backtracking.
Vínculos interesantes
Práctico
Horarios
Lunes de 11 a 13hs y miércoles de 16 a 18hs, en el aula 17.
Guías de ejercicios
Notas de parciales
En Guarani (hasta primer segundo parcial recuperatorio).
Laboratorio
Los grupos serán de 2 (dos) personas. Mínimo 2, máximo 2. O sea, 2 . El listado completo de grupos y mapeo a profes encargados es: grupos del lab.
Horarios
Todas las clases son en el laboratorio de computación del 2do piso (aula 28).
Clases
Proyectos
Proyecto 1: Ordenación, algoritmos elementales.
Proyecto 1.b: Ordenación, algoritmos avanzados.
Proyecto 2: Tipos Abstractos de Datos.
Proyecto 2b: Listas Enlazadas.
Proyecto 3: Árboles Binarios de Búsqueda.
Proyecto 4: Algoritmo de Kruskal.
Instrucciones para inscribirse en la lista de mails
Desde el webmail del FaMAF enviar un mail a:
alualgo2-join@famaf.unc.edu.ar
con cualquier subject o cuerpo del mail.
Después de enviarlo debe llegar un mail con un link a una página donde donde se deben llenar los datos personales.
Todo esto hay que hacerlo desde el webmail del FaMAF.
Instrucciones para mandar un mail en la lista de mails
Desde el webmail del FaMAF enviar un mail a:
alualgo2@famaf.unc.edu.ar
Tener en cuenta que todos los alumnos y todos los profes reciben los mails de esta lista.
¡¡ Tener en cuenta !!
Si se cometió un error el sistema enviará un mail avisando. Por lo
cual, siempre lea el mail de respuesta a la inscripción y verifique
que no hubo un error. Si es así, repita el proceso.
Cualquier problema consultar con los administradores del laboratorio.