====== Algoritmos y Estructuras de Datos II ====== * Consulta para el final del 20/7: jueves 14/7 de 16 a 18hs, aula 17. * {{:algo2:main:regularidades.pdf| Listado definitivo de regularidades}} * Docentes: * Teóricos: Daniel Fridlender * Prácticos: Renato Cherini, Diego Lis * Ayudantes: Juan Cruz Rodriguez * Taller: [[http://www.cs.famaf.unc.edu.ar/~damian|Damian Barsotti]], Martín Domínguez, Diego Dubois, Matías Bordese. * Ayudantes:Marco Rocchietti, Leandro Ramos, Santiago Avalos, Franco Rodriguez. ===== Generalidades ===== * Parciales: 3. * Fechas preliminares: 18/4/2011, 18/5/2011 y 15/6/2011. * Promoción: no hay. * Regularidad: sumando al menos 15 entre los tres parciales (con sus decimales) + aprobando el taller. * Examen: examen escrito + resolución de problemas frente a la computadora (2 días). * Alumnos libres: ambas partes del examen contienen ejercicios adicionales. === Preguntas frecuentes === * Si apruebo los parciales pero no el taller, ¿deberé resolver ejercicios adicionales en el examen escrito? Sí, porque vas a rendir como alumno libre. * Si apruebo el taller pero no alcanzo a aprobar los parciales, ¿deberé rendir un examen de laboratorio con ejercicios adicionales? Sí, porque vas a rendir como alumno libre. * El año pasado aprobé los parciales pero no el taller, ¿debo rendir los parciales nuevamente durante este año? Para poder regularizar, sí. * El año pasado aprobé el taller pero no alcancé a aprobar los parciales, ¿debo volver a hacer el taller este año? Para poder regularizar, sí. * ¿Puedo rendir el examen final sin haber hecho el taller? Sí. Como alumno libre. * El año pasado regularicé (es decir, estaba inscripto como regular, aprobé los parciales y el taller). Quiero volver a cursar este año. ¿Voy a perder la regularidad obtenida el año pasado? Si te inscribís en la materia automáticamente perdés esa regularidad. Te conviene volver a cursarla sin inscribirte. ===== Teórico ===== ==== Horarios ==== Lunes y Miércoles de 14 a 16hs, en el aula 17. ==== Bibliografía ==== * Notas de Algoritmos y Estructuras de Datos II. * Primera parte: Estructuras de Datos. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-01-tiposconcretos.pdf | Tipos concretos.}} Clases: 9/3 y 14/3. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-02-tiposabstractos.pdf | Especificaciones de Tipos Abstractos de Datos.}} Clases: 16/3 y 21/3. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-03-tads-implementacioneselementales.pdf | Tipos abstractos de datos: primeras implementaciones.}} Clase: 23/3. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-04-listasenlazadas.pdf | Tipos abstractos de datos: implementaciones con listas enlazadas.}} Clase: 28/3. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-05-arbolesbinarios.pdf | Árboles binarios, ABBs y heaps.}} Clases: 30/3, 4/4 y 6/4 (repaso). * Segunda parte: Análisis de Algoritmos. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-06-ordenacion.pdf | Ordenación por selección, por inserción y heapSort. Cálculos elementales del orden de dichos algoritmos.}} Clases: 11/4 y 13/4. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-07-notacionO.pdf | Notación O. Propiedades. Regla del límite. Jerarquía de funciones. Propiedades. Búsqueda lineal y binaria.}} Clases: 25/4, 27/4 y 2/5. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-08-recurrencias.pdf | Recurrencias. Búsqueda binaria, versión recursiva. Ordenación por intercalación. Recurrencias divide y vencerás, homogéneas y no homogéneas.}} Clases: 4/5, 9/5 y 11/5. * Tercera parte: Algoritmos Avanzados. * {{http://www.cs.famaf.unc.edu.ar/~fridlend/cursos/algoritmos2/apuntes/2011-09-algoritmos.pdf | Divide y vencerás, algoritmos voraces, backtracking y programación dinámica.}} Clases: 16/5, 30/5, 1/6, 6/6, 8/6 y 13/6. * 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.space.unibe.ch/comp_doc/c_manual/C/cref.html|Manual de referencia en inglés]] * Otros * {{algo2:main:cookoopvsadt90.pdf|Object-Oriented Programming Versus Abstract Data Types}} ==== Clases ==== ==== Vínculos interesantes ==== * Algoritmos de ordenación. * {{http://en.wikipedia.org/wiki/Sorting_algorithms | en wikipedia}} * Algunos visualizadores * {{http://www.cs.ubc.ca/~harrison/Java/sorting-demo.html}} * {{http://math.hws.edu/TMCM/java/xSortLab/}} * {{http://thomas.baudel.name/Visualisation/VisuTri/}} * Notación //O// * {{http://en.wikipedia.org/wiki/O_notation | en wikipedia}} * Visualizador * {{http://rechneronline.de/function-graphs/}} * TADs * Algunos visualizadores * Pilas y colas {{http://www.cs.usfca.edu/~galles/visualization/download.html}} * Árboles binarios {{http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm|AVL}} ===== Práctico ===== ==== Horarios ==== Lunes y Miércoles de 16 a 18hs, en el aula 17. ==== Guías de ejercicios ==== * {{:algo2:main:2011.c1.p1.pdf| Práctico 1: Tipos concretos y Tipos Abstractos de Datos}} (actualizado al 14/4) * {{:algo2:main:2011.c1.p2.pdf| Práctico 2: Ordenación y Análisis de Complejidad}} (actualizado al 9/5) * {{:algo2:main:2011.c1.p3.pdf| Práctico 3: Técnicas avanzadas de programación}} (actualizado al 6/6) ==== Notas de parciales ==== Las notas de los parciales serán enviadas por mail a la lista para evitar que estén disponibles a personas ajenas a la materia. ===== Laboratorio ===== ==== Horarios ==== * Martes 14 a 18 hs: Teórico del taller y consultas. * Jueves 14 a 18 hs: Uso reservado para prácticas libres de alumnos de la materia. Todas las clases son en el laboratorio de computación del 2do piso. ==== Clases ==== ==== Proyectos ==== * {{:algo2:main:2011:proy01-complejos.pdf|Proyecto 1}} - TAD Números Complejos. * {{:algo2:main:20011.c1.p2.pdf|Proyecto 2}} - Diccionario con arreglos. * {{:algo2:main:proyecto-03.pdf|Proyecto 3}} - Diccionario sobre cinta de elementos {{:algo2:main:2011:libcrw.tgz|Cinta}}. * {{:algo2:main:2011:proy04-abb.pdf|Proyecto 4}} - Diccionario sobre abb. ==== Notas del Taller ==== * {{:algo2:main:gdb.pdf|GDB}} Presentación PDF * {{:algo2:main:makefile.ppt|MakeFile}} Presentación PPT * {{:algo2:main:complex.tar.gz|Puntero a estructura}} Programa * {{:algo2:main:leer.cv2.zip|Leer variable de longitud variable}} Programa (versión final) * {{:algo2:main:valgrind.pdf|Valgrind}} Presentación PDF ===== Instrucciones para inscribirse en la lista de mails ===== Desde el [[http://webmail.famaf.unc.edu.ar/src/login.php|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 [[http://webmail.famaf.unc.edu.ar/|webmail del FaMAF]]. === ¡¡ 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.