algo1:2019-1
Tabla de Contenidos
Algoritmos y Estructuras de Datos I - 2019 1er cuatrimestre
Docentes
Teórico/Práctico: Damián Barsotti, Demetrio Vilela, Mauricio Tellechea.
Laboratorio:
- Docentes: Martín Domínguez, Juan Cruz Rodríguez, Rafael Jorge.
- Ayudantes: PERETTI, Nicolás; GOBBI, Matías y STEINBERG, Matías
Horarios
Teórico/Practico: martes y jueves de 14 a 18 hs, aula 16.
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 y el taller aprobado.
- Para rendir libre la materia, hay condiciones particulares respecto al taller. Ver Modalidad del taller para los detalles.
Notas de parciales, recuperatorios y finales
Material de Teórico/Práctico
Lógica:
- Digesto de axiomas y teoremas para cálculo proposicional y expresiones cuantificadas.
- Anexo (axiomas y teoremas cuantificador de conteo).
Programación funcional:
- Digesto de funciones de listas y propiedades.
Programación imperativa:
- Digesto para la programación imperativa.
- Pasos Sugeridos para Derivar un Bucle (heurística).
Ejemplos de finales:
(OJO: los ejercicios varían por cambios en los contenidos de la materia y por diferencias entre cursado y recursado.)
Prácticos
Material de laboratorio
Enunciado | Material | Fecha corrección | |
---|---|---|---|
Repaso Linux | Linux y consola | ||
Proyecto 1 | Proyecto 1 | Aprende Haskell por el bien de todos! (cap. 1 al 6) | 8/4 |
Tipos: polimorfismo y alto orden | |||
Proyecto 2 | Proyecto 2 | Ejemplos tipos de datos (archivo .hs) | 22/4 |
Tipos de datos en Haskell | |||
Tipos de datos, deriving, case, Maybe | |||
Proyecto 3 | Proyecto 3 | Moldelo Computacional | 20/05 |
Intoducción al Lenguaje C | |||
Proyecto 4 | Proyecto 4 | 10/06 | |
Teórico sobre C: Assert, Funciones y Estructuras | |||
Ejemplo de funciones en C | |||
Código Arreglo | |||
Ejemplo de inicialización de arreglos | |||
Ejemplo de uso de Struct |
Calendario Tentativo
Acá pondremos el calendario completo de la materia como esperamos darla.
Teórico/Práctico
- 12/3 Presentación de la materia. Derivación y verificación de programas. Practico 1. Expresiones Cuantificadas. Hasta ej 9.
- 14/3 Reglas para la cuantificación general.
- 19/3 Cuantificador N. Análisis por casos y pruebas de implicación descargando antecedentes.
- 21/3 Consulta. Practico 2. Inducción. Demostración por inducción de propiedades. Inducción sobre listas. Recursión lineal ej. 3.
- 26/3 Recursión lineal. Modularización.
- 28/3 Esquemas inductivos. Generalización por abstracción.
- 2/4 Feriado
- 4/4 Consulta.
- 9/4 Segmentos.
- 11/4 Consulta.
- 16/4 Feriado
- 18/4 Feriado
- 23/4 1er Parcial
- 25/4 Paro
- 30/4 Paro
- 2/5 Practico 3 (Modelo computacional imperativo). Estados y transiciones. Anotaciones con predicados.
- 7/5 Terna de Hoare. Weakest Precondition (asignación, composición secuencial).
- 9/5 Weakest Precondition (if). Teorema de la invariancia.
- 14/5 Derivación de asignación e if.
- 16/5 Arreglos.
- 21/5 Practico 4. Tecnicas para encontrar invariantes: termino de la conjunción.
- 23/5 Técnica de reemplazo cte. por variable.
- 28/5 Técnica de fortalecimiento de invariantes.
- 30/5 Problemas de Borde.
- 4/6 Consulta
- 6/6 2do Parcial
- 11/6 Problemas con estados intermedios.
- 13/6 Consulta.
- 18/6 Recuperatorio.
- 20/6 Feriado
Taller
- 11/3: Formación de grupos. Presentación de proyecto 1 y auto-repaso de linux.
- 18/3: Teórico: map, filter, polimorfismo paramétrico, clases, aplicación parcial.
- 25/3: Teórico de Taller: Tipos, clases de tipos y más.
- 1/4: trabajo en el proyecto 1
- 8/4: Corrección de proyecto 1. Presentación de proyecto 2.
- 15/4: Teórico de Taller: Tipos de datos, deriving, case, Maybe.
- 22/4: Corrección de proyecto 2. - Presentación de proyecto 3.
- 29/4: Teórico: Introduccióna C
- 6/5: Teórico: Exprorar estado con GDB.
- 13/5: Teórico: Instrucciones en C - Exprorar estado con GDB.
- 20/5: Corrección de proyecto 3. Presentación de proyecto 4
- 27/5: Teórico: programación en C.
- 3/6: Teórico: arreglos y estructuras en C.
- 10/6: Corrección de proyecto 4.
Bitácora Teórico/Práctico
Acá pondremos lo que efectivamente fuimos dando en cada clase.
- 12/3 Presentación de la materia. Derivación y verificación de programas. Practico 1. Expresiones Cuantificadas. Pueden hacer hasta el ej 9.
- 14/3 Reglas para la cuantificación general. Pueden hacer hasta el ej 14. Falta dar propiedad del max min del digesto.
- 19/3 Cuantificador N. Análisis por casos y pruebas de implicación descargando antecedentes. Pueden terminar el práctico.
- 21/3 Consulta. Practico 2. Inducción. Verificacion y demostracion. Inducción sobre listas. Pueden hacer hasta 4.
- 26/3 Recursión lineal. Modularización.
- 28/3 Esquemas inductivos.
- 2/4 Feriado
- 4/4 Generalización por abstracción.
- 9/4 Segmentos
- 11/4 Consulta.
- 16/4 Feriado dia del docente
- 18/4 Feriado seman santa
- 23/4 1er Parcial
- 25/4 Paro
- 30/4 Paro
- 2/5 Practico 3 (Modelo computacional imperativo). Estados y transiciones. Anotaciones con predicados.
- 7/5 Terna de Hoare. Weakest Precondition (asignación, composición secuencial). Weakest Precondition (if).
- 9/5 Revision if. Teorema de invariancia
- 14/5 Ejercicos de demostración con invariantes. Derivación de asignación
- 16/5 Arreglos.
- 21/5 Practico 4. Tecnicas para encontrar invariantes: termino de la conjunción.
- 23/5 Técnica de reemplazo cte. por variable.
- 28/5 Técnica de fortalecimiento de invariantes.
- 30/5 Problemas de Borde.
- 4/6 Consulta
algo1/2019-1.txt · Última modificación: 2019/08/07 15:25 por damian