Como evaluación final de Programación Declarativa, deben entregar un proyecto que va a juntar varias cosas que aprendieron en Haskell. Se espera de ustedes que dediquen entre 4 y 8 horas por semana sobre ese proyecto durante 3 semanas (o el equivalente en menos tiempo).
Pueden trabajar solos o en grupos de 2.
Me mandan un mail de unos párrafos a guillaumh@gmail.com, conteniendo su propuesta de proyecto en texto bruto en el cuerpo, y, si hace falta, con unos links útiles. Traten de contestar a las preguntas siguientes:
Escribir la propuesta implica investigar un poco el asunto. ¿Qué librerías Haskell pueden ayudarles a implementar e proyecto? ¿Qué algoritmos existentes van a implementar? ¿El proyecto es alcanzable?
Hay dos tipos de proyectos que pueden hacer:
Contribución a un proyecto de software libre.
Elegir una librería o aplicación libre en Hackage u otro lado, y contribuir. Pueden arreglar bugs, agregar nuevas funcionalidades y/o documentación.
Unas ideas de proyectos: darcs pandoc (ver 1 y 2), gitit, xmonad, ghc…
Asegúrense de ponerse en contacto con los autores/mantenedores del software.
Aplicaciones/librerías.
Pueden escribir una aplicación en Haskell o una librería que haga algo divertido/útil/interesante. Por ejemplo (pero no solamente):
Un programa que juega contra el usuario (go, truco, poker, damas, ajedrez …), una implementación de estructura(s) de datos interesante(s), un analizador sintáctico (parser) para un pequeño lenguaje de programación, un raytracer, reimplementar un proyecto que ya escribieron en otro lenguaje, reimplementar un programa en línea de comando conocido (grep, netcat, cliente SSH, FTP o IRC, servidor HTTP), un binding para alguna librería existente en C++ (proveer ejemplos que demuestran que funciona)…
Si piensan presentar su proyecto en una fecha de examen final, pónganse en contacto conmigo por mail unos días (en plural) antes.
Mándenme la URL del repositorio de su proyecto. Así puedo hacer recomendaciones para mejorar su proyecto (y su nota).
La entrega final tiene que ser todo el código que escribieron, acompañado de un documento que describe su proyecto (un archivo README.md
es suficiente). La documentación tiene que incluir:
Pueden entregar el proyecto de una de las dos manera siguientes:
A revisar antes de presentar el proyecto…
Aspectos | Criterios de evaluación |
---|---|
Previo aviso |
|
Adecuación |
|
Esfuerzo |
|
Correctitud |
|
Técnicas |
|
Estética |
|
Demostración |
|
Autoría |
|
# alumnos | Descripción | Nota |
---|---|---|
|
Generador de resumen de textos en HTML |
9 |
|
Juego de truco en modo texto |
6 |
|
Intérprete de Chip8 |
10 |
|
Mejoro de un programa de path tracing |
7 |
|
Resolvedor de Sudoku |
8 |