Herramientas de usuario

Herramientas del sitio


algo1:2009

¡Esta es una revisión vieja del documento!


Algoritmos y Estructuras de Datos I

Novedades

Docentes

Javier O. Blanco, Damián Barsotti, Silvina Smith, Valeria Rulloni, Martín Dominguez, Walter Alini, Natalia Bidart, Sergio Giro, Mariana Badano, Avalos Ambroggio Santiago, Dionisio E Alonso, Leonardo Rodriguez, Marco Brunello, Florencia Mihaich, Raul Monti.

Parciales

Calendario

Consultas

Notas

Bibliografía

Haskell

Español

Inglés

Lenguaje C

Lecturas recomendadas

Prácticos

Laboratorio

Modalidad

Generalidades

  • El taller se reliza en dos comisiones. Los horarios de ellas son: lunes de 9 hs a 13 hs y de 14 a 18 hs. Cada alumnos debe inscribirse en una en el despacho de alumnos.
  • Los teóricos del laboratorio se dictan los jueves en el horario del teórico/práctico (en la misma aula).
  • 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 son de 4 personas. Los grupos permanecen fijos para todos los proyectos.
  • Cada grupo tendrá un ayudante asignado. Los ayudantes harán un seguimiento de los proyectos.
  • Existen horarios reservados para práctica libre en el laboratorio los martes y 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.

Las posibles notas son las siguientes:

  • B+ (superó los objetivos que se plantearon para el proyecto, por ejemplo, haciendo una implementación novedosa)
  • B (cumplió con todas las pautas estipuladas para el proyecto)
  • B- (el proyecto funciona, pero se evidencia cierta inseguridad en las respuesta)
  • R (El proyecto no fue implementado en su totalidad, o las respuestas son poco precisas)
  • M (no presentó el proyecto, o lo presento y no conoce la resolución del mismo)

Bitácora de clases

13/8 :

Modelo computacional (introduccion): evaluacion lazy e eager. Expresiones que tienen forma normal en una pero no en la otra. Ejemplo: mult inf 0 con la definicion

mult x 0 = 0

mult y (x+1) = y + mult y x

Clases en haskell: sintaxis para instanciar en una clase, ejemplo con clase Show para mostrar numeros expresados como

data Natural = Cero | Sucesor Natural

en la forma estandar 0, 1, … Definicion de la funcion naturalAInt que realiza esta transformacion.

Consulta de la tarde: implementacion de las conceptos introducidos en la clase de la mañana. Repaso de currificación y filter.

18/8:

Funcion foldr:

- foldr como formalizacion de la definicion inductiva (captura la manera en la que definimos inductivamente las funciones)

- foldr como homomorfismo (reemplaza [] por c y (:) por f)

- foldr como mecanismo de iteracion estructurado (empezando por c, reemplaza este valor por f x (foldr f c xs), hasta que la lista termina)

Por consulta de un alumno, resolvi el ejercicio de la funcion primIgualesA en el pizarron.

27/8:

Tipos de datos definidos por el usuario
  • Tipo sinónimo.
  • Valores y expresiones. Representación computacional.
  • Tipos enumerados. Ejemplo tipo Color.
  • Tipos polimórficos simples. Ejemplo tipo Punto a.

Bibliografía : http://www.lcc.uma.es/~blas/pfHaskell/gentle/goodies.html

3/9:

Tipos de datos definidos por el usuario (2da parte)
  • Tipos de datos recursivos. Ejemplos de Lista a y Arbol a (árbol con información en las hojas).
  • Modulos en haskell. Ejemplo de Cola a (Cola.hs gzipeado1)).

10/9:

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.

Proyectos

Instrucciones para inscribirse en la lista de mails

Desde la cuenta de mail <tu-usuario>@famaf.unc.edu.ar enviar un mail a:

alualgo1-join@famaf.unc.edu.ar

con cualquier subject o cuerpo del mail.

Después de enviarlo debe llegar un mail donde diga que la subscripcion fue realizada correctamente. Hacer un reply con el mismo subjet (pero que no diga Re: —).

Todo esto hay que hacerlo desde el webmail del FaMAF.

¡¡ Tener en cuenta !!

Si se cometió un error el sistema enviará un mail avisando. Por lo cual, siempre lea el mail de respuesta a la inscripción y verifique que no hubo un error. Si es así, repita el proceso.

Cualquier problema consultar con los administradores del laboratorio.

1)
Para descomprimirlo usar el comando gunzip.
algo1/2009.1256769426.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)