Tabla de Contenidos
Algoritmos y Estructuras de Datos II
- Docentes:
- Teóricos: Daniel Fridlender
- Prácticos: Alejandro Tiraboschi.
- Taller: Damian Barsotti, Marcos Dione, Martín Domínguez.
- Ayudantes: Mihaich Florencia, Budde Carlos, Mariano Volarik, Perez Paladini Agustín, Monti Raul, Bordenabe Nicolas.
Generalidades
- Parciales: 3 (fechas preliminares: 15/4, 13/5 y 17/6).
- Promoción: no hay.
- Regularidad: estando inscripto como regular + aprobando 2 parciales + 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 dos 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 dos 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
Bibliografía
- Notas de Algoritmos y Estructuras de Datos II.
- Primera parte (análisis de algoritmos)
- Primeras dos clases y sus preguntas.
- Tercera y cuarta clases y sus preguntas.
- Quinta y sexta clases y sus preguntas.
- Segunda parte (estructuras de datos)
- a partir de mediados de abril
- Tercera parte (algoritmos)
- a partir de mediados de mayo
- 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, Cálculo de Programas.
- Tutoriales de lenguaje C
- Otros
Clases
- 01: (09/03/09 y 11/03/09) Presentación, motivación, ordenación por selección, conteo, ordenación por inserción.
- 02: (16/03/08 y 18/03/08) Notación O, propiedades, regla del límite, jerarquía de funciones, notación complementaria.
- continuará
Vínculos interesantes
- Algoritmos de ordenación.
- Algunos visualizadores
- Notación O
- Algunos visualizadores
- Árboles binarios
- Algunos visualizadores
Práctico
- Éste es el práctico correspondiente a toda la materia: Práctico 2009.
Laboratorio
Horarios
- Martes 14 a 18 hs: Consultas y correciones de proyectos.
- Jueves 14 a 18 hs: Teŕico del taller y consultas.
Todas las clases son en el laboratorio de computación del 2do piso.
Clases
- 12/03: Punteros y memoria dinámica. Modelo de memoria real y modelo abstarayendo direcciones concretas. Variables de tipo puntero. Arreglos. Funciones malloc, calloc y free.
- 19/03: Strings en C: características, definición, como parámetro y resultado de funciones, funciones de librerias. Sinónimo de tipos. Estructuras: características, definición con typedef, como parámetro y resultado de funciones, encapsulamiento de arreglos.
- 26/03: Punteros a estructuras. Archivos separados. TAD's en C. Cerradura ifndef. Ejemplos en clase. Presentación proyecto 1 segunda parte (diccionario sobre lista de asociaciones sobre arreglos).
- 16/04: Función de abstracción e invariante de representación. Listas ligadas de punteros. Implementación del TAD lista.
- 23/04: Cinta sobre listas ligadas de punteros, especificación e implementación. Presentación sobre archivo en disco.
- 30/04: Makefile. Makefile genérico.
- 07/05: Manejo de errores. Variable errno, funciones perror, err, errx, warn, warnx. Presentación de proyecto Diccionario sobre Abb.
- 14/05: Derivacion de versiones iterativas con invariantes de tree_exists y tree_add.
- 21/05: Streams en C. Balanceo AVL. Presentación de proyecto de Kruskal.
Proyectos
- Proyecto 1 primera parte: Programas con punteros y memoria dinámica.
- Proyecto 1 segunda parte: Diccionario con lista de asociaciones. Usar el Proyecto 3 de Algoritmos 1 como referencia.
- Proyecto 2 primera parte: TAD lista implementado con listas enlazadas de punteros.
- Proyecto 2 segunda parte: Diccionario implementado sobre cinta. Librería de cintas de lectura y escritura de tuplas en disco.
- Proyecto 3: Diccionario implementado sobre abb.
- Proyecto 4: Algoritmo Kruskal con TAD's.
Notas del Taller
- Notas Finales de taller: alumnos_notas_finales_corregido.pdf
Instrucciones para inscribirse en la lista de mails
Ir a la página de la lista y llenar los datos.
o
Enviar un mail a:
alualgo2-join@famaf.unc.edu.ar
con cualquier subject o cuerpo del mail.
Despues de enviarlo debe llegar un mail donde diga que la subscripcion fue realizada correctamente. Hacer un reply con el mismo subjet (pero que no diga Re: —).
!! Tener en cuenta !!
Si se cometio 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.