Tabla de Contenidos
Algoritmos y Estructuras de Datos I - 2017 1er cuatrimestre
Docentes
Teórico/Práctico: Damián Barsotti, Demetrio Martín Vilela, Gonzalo Peralta.
Laboratorio: Martín Domínguez, Paula Estrella, Juan Cruz Rodríguez.
Ayudantes: Diego Piloni, Matias Gastón Silva, Meriles Emanuel Juan René.
Horarios
Teórico/Practico: martes y jueves de 14 a 18 hs, aula 25.
Laboratorio: lunes de 14 a 18 hs, Lab. 30.
Regularidad / Promoción
- Para regularizar la materia: 2 parciales aprobados con nota >= 4 o un recuperatorio equivalente y el taller aprobado.
- Para promocionar la materia: 2 parciales aprobados con nota >= 6, promedio >= 7.5 y el taller aprobado.
- Para rendir libre la materia, hay condiciones particulares respecto al taller. Ver Modalidad del taller para los detalles.
Nota: El taller también se considerará aprobado si lo fue en el segundo cuatrimestre de 2015.
Fechas de parciales y recuperatorio
Material
“Borrador” del libro de la materia:
Programación funcional:
- Digesto de axiomas y teoremas para cálculo proposicional y expresiones cuantificadas.
- Anexo (axiomas y teoremas cuantificador de conteo).
- Digesto de funciones de listas y propiedades.
Programación imperativa:
- Digesto para la programación imperativa.
Más bibliografía y material acá
.
Prácticos
Acá pondremos los prácticos.
Parciales, recuperatorios y finales
Laboratorio
Enunciado | Teóricos | Fecha corrección | |
---|---|---|---|
Presentación | Presentación | ||
Proyecto 1 | Proyecto 1 | Linux y consola | 29/3 |
Ejercicios de Haskell. | |||
Haskell, GHCI, secciones, map, filter | |||
Tipos, polimorfismo, clases de tipos y más | |||
Proyecto 2 | Proyecto 2 | Ejemplos tipos de datos (archivo .hs) | 19/4 |
Tipos de datos en Haskell | |||
Tipos de datos, deriving, case, Maybe | |||
Proyecto 3 | Proyecto 3(Archivos HAL) | Presentación de HAL | 17/5 |
Modelo Computacional | |||
Ejemplos de programas en HAL | |||
Instalar HAL | |||
Proyecto 4 | Proyecto 4 | Programación C, GDB; Ejemplo de funciones en C | |
Archivos complementarios Proy. 4 | Teórico de Arreglos, Código Arreglo, Ejemplo de inicialización de arreglos; Teórico de Estructuras, Struct, | 14/6 |
Enunciados y teóricos de años previos:
- Introduccion a GDB. Por Marco Brunello y Leandro Ramos. Presentación, ejemplos.
Resumen de comandos de consola Linux y un libro sobre el tema.
Calendario tentativo
Acá pondremos el calendario completo de la materia como esperamos darlo.
Teórico Práctico
- 7/3 Presentación de la materia. Derivación y verificación de programas. Practico 1. Expresiones Cuantificadas.
- 10/3 Reglas para la cuantificación general.
- 14/3 Cuantificador N. Análisis por casos y pruebas de implicación descargando antecedentes.
- 17/3 Consulta.
- 21/3 Practico 2. Inducción. Demostración por inducción de propiedades. Inducción sobre listas. Recursión lineal ej. 3.
- 24/3 Feriado.
- 28/3 Recursión lineal. Modularización.
- 31/3 Esquemas inductivos. Generalización por abstracción.
- 4/4 Consulta. Segmentos.
- 7/4 Consulta.
- 11/4 1er Parcial.
- 14/4 Practico 3 (Modelo computacional imperativo). Estados y transiciones. Anotaciones con predicados.
- 18/4 Terna de Hoare. Weakest Precondition (asignación, composición secuencial).
- 21/4 Weakest Precondition (if).
- 25/4 Teorema de la invariancia.
- 28/4 Derivación de asignación e if.
- 2/5 Derivación con invariantes.
- 5/5 Arreglos
- 9/5 Practico 4. Tecnicas para encontrar invariantes: termino de la conjunción.
- 12/5 Técnica de reemplazo cte. por variable.
- 16/5 Consulta.
- 19/5 Técnica de fortalecimiento de invariantes.
- 23/5 Semana de Mayo
- 26/5 Semana de Mayo
- 30/5 Problemas de Borde.
- 2/6 Consulta.
- 6/6 2do Parcial .
- 9/6 Problemas de Borde. Consulta.
- 13/6 Técnica de predicados intermedios.
- 16/6 Recuperatorio .
Taller
- 8/3: Presentación Proyecto 1 y auto-repaso linux
- 15/3: Teórico de Taller: Haskell, GHCI, secciones, map, filter.
- 22/3: Teórico de Taller: Tipos, clases de tipos y más.
- 29/3: Corrección Proyecto 1. Presentación Proyecto 2.
- 5/4: Teórico de Taller: Tipos de datos, deriving, case, Maybe.
- 19/4: Corrección proyecto 2. Presentación Proyecto 3.
- 26/4: Presentación de proyecto 3. Teórico primera parte. Uso de Hal
- 3/5: Teórico semántica.
- 17/5: Corrección proyecto 3. Presentación proyecto 4
- 24/5: Teórico de Taller: Programación C, GDB.
- 31/5: Teórico de Taller: Arreglos y Estructuras en C.
- 14/6: Corrección proyecto 4.
Bitácora
Acá pondremos lo que efectivamente fuimos dando en cada clase.
- 7/3 Presentación de la materia. Derivación y verificación de programas. Practico 1. Expresiones Cuantificadas. Reglas para la cuantificación general (sin anidado). Dado ejercicio de escribir reglas de C. General (ej.7).
- 31/3: Segmentos
- 4/4: Especificación con 2 variables bound. Consulta.
- 7/4: Consulta.
- 11/4: Parcial.
- 5/5 Arreglos
- 9/5 Practico 4. Tecnicas para encontrar invariantes: termino de la conjunción.
- 12/5 Paro
- 16/5 Técnica de reemplazo cte. por variable.
- 19/5 Técnica de fortalecimiento de invariantes.
- 23/5 Semana de Mayo
- 26/5 Semana de Mayo
- 30/5 Problemas de Borde.
- 2/6 Consulta.
- 6/6 2do Parcial .
- 9/6 Problemas de Borde. Consulta.
- 13/6 Técnica de predicados intermedios.
- 16/6 Recuperatorio .