Tabla de Contenidos
Algoritmos y Estructuras de Datos II
/* Está incompleto porque en el 2018 nos quedamos sin la wiki a mitad del cuatrimestre */
Novedades
Generalidades
Docentes
- Teóricos: Daniel Fridlender.
- Prácticos: Romina Altamirano, Emmanuel Gunther y Demetrio Vilela.
- Laboratorio:
- Martes: Santiago Ávalos, Sergio Canchi y Jorge Rafael.
- Jueves: Gonzalo Peralta, Leandro Ramos y Leonardo Rodríguez.
- Ayudantes: Mauricio Clerici, Santiago Marro y Mauricio Mazuecos.
Horarios
- Teóricos: lunes y miércoles de 14 a 16hs, en el aula 17.
- Prácticos: lunes y miércoles de 16 a 18hs, en el aula 17.
- Laboratorio: martes y jueves de 14 a 18hs, en el aula 28 (lab). Los alumnos cuyos apellidos comiencen con “A” hasta “K” inclusive tendrán lab los martes y los alumnos cuyos apellidos comiencen con “L” hasta “Z” tendrán lab los jueves. Si necesitás cambiar, ponete de acuerdo con alguien que quiera el cambio opuesto.
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 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 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
- Parciales: 2.
- Fechas: 07/05/2018 y 18/06/2018.
- Recuperatorio: 25/06/2018 o 27/06/2018 (a determinar).
- Laboratorio: ejercicios y proyecto. También tiene hay dos parciales. La aprobación del día a día a todo lo largo del cuatrimestre, aporta para la promoción.
- Regularidad: aprobando dos parciales (eventualmente recuperando uno de ellos) + aprobando los parciales del laboratorio.
- Promoción: aprobando cada parcial con 6 o más, con promedio total de 7 o más + aprobando los parciales del laboratorio con 6 o más, con promedio de 7 o más. En los parciales del lab, para la promoción, se cuentan los resultados logrados durante las clases, en el día a día.
- Examen final: evaluación por escrito de teórico-práctico + resolución de problemas frente a la computadora (1 ó 2 días, normalmente 2 días).
- Alumnos libres: ambas partes del examen (teórico y laboratorio) contienen ejercicios adicionales.
- Los alumnos regulares 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 2018, únicamente.
Preguntas frecuentes
- La regularidad requiere regularidad en el teórico/práctico y en el laboratorio?
- Sí: la regularidad de la materia es un AND de la regularidad del teórico/práctico con la regularidad del taller.
- Si apruebo los parciales pero no los proyectos del laboratorio, ¿deberé resolver ejercicios adicionales en el examen escrito?
- Sí, porque vas a rendir como alumno libre.
- Si apruebo los proyectos del laboratorio 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 los proyectos del laboratorio, ¿debo rendir los parciales nuevamente durante este año?
- Para poder regularizar, sí.
- 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?
- Para poder regularizar, sí.
- ¿Puedo rendir el examen final sin haber hecho el laboratorio?
- Sí. Como alumno libre. Pero deberás demostrar suficientes conocimientos de programación durante el examen.
- 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?
- Si te inscribís en la materia automáticamente perdés esa regularidad. Te conviene volver a cursarla sin inscribirte.
- En ese caso, ¿qué pasa si este año promociono?
- Te inscribís en la primera fecha de exámenes y te pasamos la nota de la promoción.
- Tengo condición de regular y promocioné los parciales pero no los proyectos del laboratorio. ¿Debo rendir el escrito también?
- En las mesas de julio-agosto 2018, no. Después de esas mesas, sí.
- Tengo condición de regular y promocioné los proyectos del laboratorio pero no los parciales. ¿Debo rendir el laboratorio también?
- En las mesas de julio-agosto 2018, no. Después de esas mesas, sí.
Evaluaciones
Parciales
Finales
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.
- 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, Cálculo de Programas.
- Tutoriales de lenguaje C
- 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
Clases
- Primera parte: Análisis de Algoritmos.
- Primera semana: ordenación elemental.
- Segunda semana: ordenación avanzada.
- Tercera semana: recurrencias divide y vencerás, jerarquía de funciones.
- Segunda parte: Estructuras de Datos.
- Sexta semana: Implementación de pilas y colas.
- Tercera parte: Algoritmos Avanzados.
Vínculos interesantes
- Algoritmos de ordenación.
- Algunos visualizadores
- Algo-Ritmos
- Notación O
- Visualizador
- TADs
- Algunos visualizadores
- Pilas y colas download.html
- Árboles binarios AVL
Práctico
- Práctico 1.1. Ordenación elemental.
- Práctico 1.2. Ordenación avanzada.
- Práctico 1.3. Recurrencias divide y vencerás. Jerarquía de funciones.
- Práctico 2.1. Tipos concretos.
- Práctico 2.2. Tipos abstractos de datos (TADs).
Horarios
Lunes y miércoles de 16 a 18hs, en el aula 17.
Guías de ejercicios
Notas de parciales
Laboratorio
Los grupos serán de 2 (dos) personas. Mínimo 2, máximo 2. O sea, 2 .
Horarios
- Martes 14 a 18 hs: Teóricos del taller, presentación de enunciados, entregas y evaluación de proyectos, consultas.
- Jueves 14 a 18 hs: Uso del laboratorio y consultas.
Todas las clases son en el laboratorio de computación del 2do piso (aula 28).
Proyectos
- Repositorio de GitLab: https://gitlab.com/famaf-algo2/ayed2-2018
- Los ejercicios del laboratorio se descargan ejecutando el comando
$ git clone https://gitlab.com/famaf-algo2/ayed2-2018.git
Clases
Instrucciones para inscribirse en la lista de mails
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 “solicitar membresía” (o “subscribe to this group”).
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.
IMPORTANTE: una vez que se subscribieron al grupo, ir a la casilla de mail que usaron y aceptar la invitación.
Instrucciones para mandar un mail en la lista de mails
Para mandar un mail a la lista de la materia, escribir a:
ayed2-famaf@googlegroups.com