Herramientas de usuario

Herramientas del sitio


algo1:2009

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
algo1:2009 [2009/09/10 17:59] damianalgo1:2009 [2018/08/10 03:03] (actual) – editor externo 127.0.0.1
Línea 75: Línea 75:
  
   * {{:algo1:2009:2009pra2.pdf|Práctico 2}}.   * {{:algo1:2009:2009pra2.pdf|Práctico 2}}.
 +
 +  * {{:algo1:2009:2009pra3.pdf|Práctico 3}}.
 +
 +  * {{:algo1:2009:2009pra7.pdf|Práctico 7}}.
  
 ===== Laboratorio ===== ===== Laboratorio =====
Línea 187: Línea 191:
   * Modulos en haskell. Declaración simple (sin exports). Uso desde otros archivos.   * Modulos en haskell. Declaración simple (sin exports). Uso desde otros archivos.
   * Ejemplo de tipo ''Cola a'' en módulo ({{:algo1:2009:cola1.hs.gz|modulo Cola}}, {{:algo1:2009:maincola1.hs.gz|programa que lo usa}}. {{:algo1:2009:colaadt2.hs.gz|Modulo cola implementado con dos listas}}, {{:algo1:2009:maincolaadt.hs.gz|programa que lo usa}}).   * Ejemplo de tipo ''Cola a'' en módulo ({{:algo1:2009:cola1.hs.gz|modulo Cola}}, {{:algo1:2009:maincola1.hs.gz|programa que lo usa}}. {{:algo1:2009:colaadt2.hs.gz|Modulo cola implementado con dos listas}}, {{:algo1:2009:maincolaadt.hs.gz|programa que lo usa}}).
 +  * Explicación de ''foldl''.
 +
 +
 +=== 17/09: ==
 +
 +  * Principios de ingeniería del software que resuelven los TADs: abstracción, ocultamiento de información, modularidad.
 +  * Ejemplo de diferentes implementaciones de un mismo TAD: cola con un datatype isomorfo a lista, y cola con dos listas.
 +  * Introducción al proyecto 3 (poquito porque se hizo la una y empezaron a guardar los útiles). 
 +  * Consulta de la tarde: probar las dos implementaciones del TAD "cola" en máquina.
 +
 +=== 8/10 ===
 +
 +== Primera clase de C ==
 +
 +  * Programas compilados: programar entrada/salida.
 +  * Traducción de GCL (guarded command language) a C. Solo asignación, skip e if con dos guardas (lo demás no se dió en el teórico).
 +  * Ejemplo de cálculo de mínimo.
 +  * Estructura básica de un programa en C.
 +  * Expresiones y tipos en C.
 +
 +=== 15/10 ===
 +
 +  * Estructura de un programa simple.
 +  * Directivas de preprocesamiento.
 +    * Definición de constantes con ''#define''.
 +    * Inclución de archivos con ''#include''.
 +  * Traducción de ''If'' y bucles con muchas guardas.
 +  * Gramática de lenguaje C.
 +  * Asignación múltiple.
 +
 +=== 22/10 ===
 +
 +  * Funciones en C.
 +    * Modularización (dividir y venceras) y reuso.
 +    * Gramática C.
 +    * Procedimientos.
 +  * Sinónimo de tipos.
 +    * Tipo ''bool''
 +  * Registros o estructuras en C.
 +
 +=== 29/10 ===
 +
 +  * Archivos separados.
 +  * Arreglos en C.
 +
 +=== 5/11 ===
 +
 +== Modelo de memoria == 
 +
 +  * Memoria global, stack y heap.
 +  * Variables y direcciones de memoria.
 +  * Paso de parámetros. Variables y arreglos.
 +
 +=== 12/11 ===
 +
 +  * Cadena de caracteres en C.
 +  * Tipos abstractos de datos en C.  
  
 ==== Proyectos ==== ==== Proyectos ====
Línea 192: Línea 253:
   * {{:algo1:2009:proy1.pdf|Proyecto 1}} - Recursión.   * {{:algo1:2009:proy1.pdf|Proyecto 1}} - Recursión.
   * {{:algo1:2009:proy2.pdf|Proyecto 2}} - Tipos de datos creados por el usuario en Haskell.   * {{:algo1:2009:proy2.pdf|Proyecto 2}} - Tipos de datos creados por el usuario en Haskell.
 +  * {{:algo1:2009:proy3.pdf|Proyecto 3}} - TAD Diccionario en Haskell.
 +    * {{:algo1:2009:interface.tar.gz|Interface}} - Interface para probar los Dict del proy3.
 +  * {{:algo1:2009:proy4.pdf|Proyecto 4 (versión nueva)}} - Traducción de programas imperativos del teórico a C.
 +  * {{:algo1:2009:proy5.pdf|Proyecto 5}} - Programas con arreglos y TAD números complejos en C.
 +
 +==== Condiciones para rendir libre el taller ====
 +
 +Para rendir el taller se deberá presentar 5 dias hábiles antes de rendir el examen:
 +
 +  * Una carpeta por cada proyecto del taller de la materia.
 +
 +  * Cada carpeta debe contener:
 +    * Título del proyecto.
 +    * Una sección por cada ejercicio.
 +    * Cada seccion debe contener las siguientes subsecciones:
 +      * Enunciado del proyecto.
 +      * El programa resultado escrito en el formalismo del teórico.
 +      * La demostración o derivación de este resultado.
 +      * El programa resultado escrito en el lenguaje de programación correspondiente. 
 +      * Este debe ser el mismo programa que el del item anterior. Es decir debe ser una traducción del anterior.
 +      * Si el ejercicio tiene preguntas, se deberá agregar una nueva subsección con las preguntas y las respuestas correctas.
 +      * Cualquier otro agregado que crea conveniente para la correcta interpretación del trabajo.
 +    * Se deben hacer todos los puntos extras o ejercicios estrella del proyecto.
 +
 +  * Se deberá entregar además un CD o disquette con todos los programas de los proyectos. 
 +    * Los programas de cada proyecto deberán estar en un directorio separado cuyo nombre deberá ser el numero del proyecto. 
 +    * Se pueden crear subdirectorios para cada ejercicio si lo considera necesario.
 +
 +  * Los programas deben poder compilar sin ningún problema y deben coincidir con los de  las carpetas. 
 +    * Para el caso de programas en C, deben poder compilar sin "warnings" con las directivas -Wall -ansi -pedantic.
  
 +  * Si todos los resultados presentados en las carpetas y el CD o disquette son correctos y cumplen con todos los requisitos anteriores entonces el alumno pasará a un examen oral. Este examen se realizará en un horario a convenir con los profesores de la materia.
  
 ===== Instrucciones para inscribirse en la lista de mails ===== ===== Instrucciones para inscribirse en la lista de mails =====
algo1/2009.1252605545.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)