====== Algoritmos y Estructuras de Datos I - 2019 2do cuatrimestre ====== {{ :algo1:portada.jpg?150 }} ¡¡Bienvenidos a la página de Algoritmos I!! **[[http://www.famaf.proed.unc.edu.ar/course/view.php?id=497|Aula Virtual]] (recuerden inscribirse).** **[[https://groups.google.com/forum/#!forum/algo1-famaf|Lista de correo (Google Group)]]** /* ===== Aula Virtual (Moodle) ====== * [[http://www.famaf.proed.unc.edu.ar/course/view.php?id=10|Página principal]] * [[http://www.famaf.proed.unc.edu.ar/mod/forum/view.php?f=626|Foro de Novedades y Anuncios]] * [[http://www.famaf.proed.unc.edu.ar/mod/forum/view.php?f=627|Foro para hacer preguntas]] */ ===== Docentes ===== **Teóricos**: [[http://cs.famaf.unc.edu.ar/~francolq|Franco M. Luque]], **Prácticos**: Romina Altamirano, Alejandro Gadea, Emmanuel Gunther, Demetrio Martín Vilela. Ayudantes: Matías Gobbi, Marcos Kolodny, Nicolás Peretti. **Laboratorio**: Martin Dominguez, Alejandro Gadea, Leonardo Rodriguez, Marco Rocchietti, Juan Cruz Rodriguez, Demetrio Martín Vilela. /* Ayudantes: Ignacio Tiraboschi, Matías Silva, Nicolas Hormann Manriquez, Emanuel Meriles. */ ===== Horarios ===== **Teórico/Practico**: martes y jueves de 9 a 13 hs, aula D1 (baterías D). **Laboratorio**: lunes de 14 a 18 hs. labs. 28 y 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 [[algo1:taller:modalidad|Modalidad del taller]] para los detalles. Nota: El taller también se considerará aprobado si lo fue en el segundo cuatrimestre de 2018 o en el primero de 2019. /* - las notas son números redondos */ /* ===== Preguntas Frecuentes (FAQs) ===== === ¿Se pueden recuperar los dos parciales? === Sí, pero sólo para regularizar, y contando con el mismo tiempo que si recuperara uno solo. Para promocionar sólo se puede recuperar uno de los dos parciales. === ¿Se puede recuperar para levantar nota de promoción? === Sí, pero sólo un parcial, y queda la nota del recuperatorio, a riesgo de bajar la nota de promoción o incluso de perderla. */ /* ¿Qué pasa si promociono el teórico y no apruebo el taller? */ ===== Fechas de Parciales y Recuperatorios ==== * Primer parcial: 24 de septiembre * Segundo parcial: 19 de noviembre * Recuperatorios: 21 o 26 de noviembre ===== Material de Teórico/Práctico ===== * [[http://www.cs.famaf.unc.edu.ar/~damian/calcprog|"Borrador" del libro de la materia]] * Notas de clase: * {{:algo1:clases_teoricas_2014-2.pdf|Programación funcional (Marianela Morales, 2014)}} * {{:algo1:clases_teoricas_2016-2.pdf|Programación imperativa (Lucía González, 2016)}} Programación funcional: * {{:algo1:2017-2:digesto.pdf|Digesto}} de axiomas y teoremas para cálculo proposicional y expresiones cuantificadas. * {{:algo1:2017-2:cuantificador_n.pdf|Anexo}} (axiomas y teoremas cuantificador de conteo). * {{:algo1:2017-2:listas.pdf|Digesto}} de funciones de listas y propiedades. * {{:algo1:2017-2:consejos_funcional.pdf|Consejos para la Derivación de Programas Funcionales}}. Programación imperativa: * {{:algo1:2016-2:imperativo.pdf|Digesto}} para la programación imperativa. * {{:algo1:2017-2:consejos_imperativo.pdf|Consejos para la Derivación de Programas Imperativos}}. [[:algo1:bibliografia2|Más bibliografía y material acá.]] ===== Prácticos ===== * {{:algo1:2019-2:practico1.pdf|Práctico 1: Expresiones Cuantificadas y Formalismo Básico}} * {{:algo1:2019-2:practico2.pdf|Práctico 2: Especificación, Derivación y Verificación de Programas Funcionales}} * {{:algo1:2019-2:practico3.pdf|Práctico 3: Introducción a la Programación Imperativa}} * {{:algo1:2019-2:practico4.pdf|Práctico 4: Introducción al Cálculo de Programas Imperativos}} * {{:algo1:2019-2:practico5.pdf|Práctico 5: Programación Imperativa}} ===== Exámenes Años Anteriores ===== * 2016 (2do cuat.): * {{:algo1:2016-2:2016c2par1.pdf|1er parcial}} * {{:algo1:2016-2:2016c2par2.pdf|2do parcial}} * {{:algo1:2016-2:2016c2recup1.pdf|Recuperatorio 1er parcial}} (con solución ej. 3) * {{:algo1:2016-2:2016c2recup2.pdf|Recuperatorio 2do parcial}} (con solución ej. 3) * 2017 (2do cuat.): * {{:algo1:2017-2:2017c2par1.pdf|1er parcial}} * {{:algo1:2017-2:2017c2par2.pdf|2do parcial}} * {{:algo1:2017-2:2017c2recup1.pdf|Recuperatorio 1er parcial}} * {{:algo1:2017-2:2017c2recup2.pdf|Recuperatorio 2do parcial}} * 2018 (2do cuat.): * {{:algo1:2018-2:2018c2par1.pdf|1er parcial}} * {{:algo1:2018-2:2018c2par2.pdf|2do parcial}} * {{:algo1:2018-2:2018c2recup1.pdf|Recuperatorio 1er parcial}} * {{:algo1:2018-2:2018c2recup2.pdf|Recuperatorio 2do parcial}} * 2019 (2do cuat.): * {{:algo1:2019-2:2019c2par1.pdf|1er parcial}} * 2do parcial: {{:algo1:2019-2:2019c2par2tema1.pdf|tema A}}, {{:algo1:2019-2:2019c2par2tema2.pdf|tema B}} * {{:algo1:2019-2:2019c2recup1.pdf|Recuperatorio 1er parcial}} * {{:algo1:2019-2:2019c2recup2.pdf|Recuperatorio 2do parcial}} /* ===== Bitácora ===== Acá pondremos lo que efectivamente fuimos dando en cada clase. /* * 17/08: Presentación de la materia. Cuantificación general. * 18/08: Reglas hasta participón de rango. * 23/08: Reglas hasta anidado. * 25/08: Reglas de anidado, intercambio y de morgan. Cuantificador de conteo. * 30/08: Demostración por inducción. Inducción en números. Esquemas de inducción. * 01/09: Inducción en listas. Demostración vs. derivación. * 06/09: Modularización. Subinducción. //Pattern matching// vs. análisis por casos. * 08/09: Generalización. * 13/09: Segmentos de lista. * 15/09: Complejidad y tuplas. * 20/09: Semana del estudiante. * 22/09: Semana del estudiante. * 27/09: Introducción a la programación imperativa. Sintaxis y semántica informal de skip, asignación ('':=''), composición ('';'') y condicional (''if''). * 29/09: Sintaxis y semántica informal de la repetición (''do''). Arreglos. * 04/10: [[http://www.adiuc.org.ar/index.php/nacional/722-paritaria-salarial-docentes-unc-adiuc-conadu-paro|Paro]]. * 06/10: 1er parcial. * 11/10: Anotaciones de programa. Precondición y postcondición. Especificación. * 13/10: Precondición más débil. Demostración de programas imperativos. Demostración de skip, asignación, composición y condicional. * 18/10: Demostración de ciclos. Invariante y función de cota. * 20/10: Demostración completa de un programa. * 25/10: Introducción a la derivación de programas. Derivación de asignaciones. * 27/10: Derivación de condicionales. Derivación de ciclos. Técnicas para determinar invariantes: Tomar términos de una conjunción (ejemplo: algoritmo de la división). * 1/11: Técnicas para determinar invariantes: * Tomar términos de una conjunción (ejemplo: búsqueda lineal). * Reemplazo de constantes por variables (ejemplo: suma de arreglo, exponenciación). * 3/11: Fortalecimiento de invariantes (ejemplo: ''sumant''). * 8/11: Problemas de borde al fortalecer invariantes (ejemplos: segmento de suma máxima, máxima distancia entre elementos). * 10/11: Estados intermedios (ejemplo: varianza). * 15/11: 2do parcial. * 17/11: Consulta. * 22/11: Consulta. * 24/11: Recuperatorios. */