====== Algoritmos y Estructuras de Datos I - 2018 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=411|Aula Virtual]] (recuerden inscribirse).**
**[[https://groups.google.com/forum/#!forum/algo1-famaf|Lista de correo (Google Group)]]**
===== Novedades =====
* **20/11/2018: Cambio fecha recuperatorio!!**
* 6/11/2018: Práctico 5 publicado.
* 22/10/2018: Práctico 4 publicado.
* 25/9/2018: Cambio fecha primer parcial!!
* 11/9/2018: Práctico 3 publicado.
* 29/8/2018: Práctico 2 publicado.
* 15/8/2018: Práctico 1 publicado.
* 14/8/2018: Página publicada.
/*
===== 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órico/Práctico**: [[http://cs.famaf.unc.edu.ar/~francolq|Franco M. Luque]], Demetrio Martín Vilela, Pedro Sanchez Terraf.
/* Ayudantes: Jonathan David Mutal, Illak Zapata. */
**Laboratorio**: Martín Domínguez, Demetrio Martín Vilela, Juan Cruz Rodríguez, Emmanuel Gunther, Marco Rochietti, Leonardo Rodríguez, Alejandro Gadea.
/* 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 2016 o en el primero de 2017.
/* - 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: 2 de octubre 9 de octubre
* Segundo parcial: 20 de noviembre
* Recuperatorios: 22 de noviembre 27 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:2018-2:practico1.pdf|Práctico 1: Expresiones Cuantificadas y Formalismo Básico}}
* {{:algo1:2018-2:practico2.pdf|Práctico 2: Especificación, Derivación y Verificación de Programas Funcionales}}
* {{:algo1:2018-2:practico3.pdf|Práctico 3: Introducción a la Programación Imperativa}}
* {{:algo1:2018-2:practico4.pdf|Práctico 4: Introducción al Cálculo de Programas Imperativos}}
* {{:algo1:2018-2:practico5.pdf|Práctico 5: Programación Imperativa}}
===== Exámenes Años Anteriores =====
* 2016:
* {{: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:
* {{: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}}
/*
===== 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.
*/