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.
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:
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 .