algo1:2006
Tabla de Contenidos
Algoritmos y Estructuras de Datos I
- Docentes: Javier O. Blanco, Laura Alonso Alemany, Renato Cherini, Valeria Rulloni, Damián Barsotti, Martín Dominguez, Walter Alini, Tomás Cohen Arazi, Luis Ferrer Fiority, Franco Luque, Ignacio Moretti, Jorge Venzon, Santiago Videla.
Notas
Calendario de parciales
28 de Septiembre – primer parcial
16 de Noviembre – segundo parcial
23 de Noviembre – recuperatorio del primer o segundo parcial
Bibliografía
- Cálculo de Programas (contiene los teóricos y ejercicios del práctico).
- Haskell
- Lenguaje C
- Manual de referencia C (en inglés).
- Lecturas recomendadas:
Prácticos
el machete de axiomas y teoremas
* Práctico 1: Cuantificación Generalizada
* Práctico 2: Inducción
* Práctico 3: Funciones Recursivas
* Práctico 4: Recursión Final
* Práctico 5: Programación Imperativa
* Práctico 6: Programación Imperativa: derivación de ciclos
* Práctico 7: Tipos Abstractos de Datos
* Práctico 8: Recursión Final en Programación Imperativa
Laboratorio
Modalidad
Generalidades
- Los teóricos del laboratorio se dictan los jueves de 12 hs. a 13 hs. despues del práctico (en la misma aula).
- El taller se reliza en tres comisiones. Los horarios de ellas son: lunes de 9 hs a 13 hs y de 14 a 18 hs el mismo día, y martes de 14 hs. a 18 hs. Cada alumnos debe inscribirse en una.
- El taller consiste en la realización de una serie de proyectos.
- Los contenidos necesarios para su realización serán impartidos en los teóricos del taller.
- Los proyectos podrán ser consultados en los laboratorios del taller.
- La realización de los mismos es grupal. Los grupos permanecen fijos para todos los proyectos.
- Cada grupo tendrá un ayudante asignado. Los ayudantes harán un seguimiento de los proyectos.
- Existe el horario reservado para práctica libre en el laboratorio los jueves de 14 hs. a 18 hs.
Criterios generales para la corrección de proyectos
- Los proyectos se evaluarán de forma individual aunque su realización haya sido grupal.
(martín escribime!!)
Clases
- 17/8: Conceptos básicos de Sistemas Operativos. Manejo de File System de Linux.
- 24/8: Modelo computacional. Expresiones en Haskell. Creación de programas en haskell (definiciones). Uso de Hugs. Lanzamiento proyecto 1 (pip).
- 31/8: Tipos de datos definidos por el usuario en Haskell. Tipos simples y recursivos. Razonamiento sobre tipos de datos inductivos. Tipo sinónimos, newtype. Polimorfismo paramétrico y ah hoc (conceptos básicos y ejemplos del prelude de Haskell).
- 7/9: Clases en Haskell. Ejemplo de clases con tipo Digito Binario digbin.hs.gz.
- 14/9: Continuación de clases en haskell. Ejemplo de NumInf numinf.hs.gz.
- 21/9: Feriado.
- 28/9:
- 5/10: Primera clase de C. Procesos y programas. Compilación. Uso de librerías. Sentencias básicas.
- 12/10: Repaso de última clase. Uso de librerías de entrada salida. Precompilación (
#include
,#define
). Definición de constatesTRUE
yFALSE
en C. Sentenciasif
ywhile
. - 19/10: Funciones en C. Explicación de pasaje de parametros por valor. Uso de gcc.
- 26/10: No hubo clases.
- 2/11: Simulación de pasajes de parametros por referencia en C (punteros). Modelo de memoria. Stack. Uso de gdb.
- 9/11: Arreglos en C. Pasaje de argumentos de tipo arreglo a funciones. Modelo de memoria para arreglos. Relación con punteros.
Proyectos
- Proyecto 1: pip.
- Proyecto 2: productoria y fibonachi.
- Proyecto 3: razonamiento inductivo I.
- Proyecto 4: razonamiento inductivo II.
- Proyecto 5: primer proyecto en C.
- Proyecto 6: algoritmos iterativos y funciones.
- Proyecto 7: algoritmo de la división - pasaje por referencia.
- Proyecto 8: arreglos.
- Proyecto 9: TAD Poly. Poly.hs.
algo1/2006.txt · Última modificación: 2018/08/10 03:03 por 127.0.0.1