Table of Contents

Programación funcional (CC5115)

Motivación, objetivos y contenido

El objetivo de este curso es introducir la programación funcional a través del lenguaje Haskell. La programación funcional es reconocida por dar lugar a un estilo mucho más declarativo –y elegante– de programación, y tres características que la hacen particularmente atractiva son su conveniencia para verificar programas, razonando algebraicamente de la misma manera que lo hacemos en matemática, para paralelizar la ejecución de programas, ganando órdenes de magnitud en eficiencia, y por último, para abstraer patrones de programación recurrentes, generando código más compacto, robusto y reusable.

Lenguajes populares como Java, JavaScript o Scala han sabido explotar estas características adoptando un enfoque multi-paradigma. Para los objetivos de este curso utilizaremos sin embargo Haskell, un lenguaje puramente funcional. Haskell se considera en la frontera del diseño de lenguajes de programación y hoy en día tiene una penetración no menor en la industria, siendo usado por compañías como Microsoft, Facebook, IBM, Galois, AT&T, JaneStreet y la NASA.

A lo largo del curso cubriremos tanto la práctica como la teoría de la programación funcional. Al finalizar el mismo, los estudiantes serán capaces de:

Para un listado más detallado de los temas abordados en el curso consultar el programa del curso. Para una discusión más a fondo sobre la relevancia y beneficios de la programación funcional consultar el artículo Why functional programming matters.

Elegibilidad

Curso electivo para Ingeniería Civil en Computación.

Requisitos

Algoritmos y estructura de datos (CC3001) y matemáticas discretas para la computación (CC3101).

Evaluación

Evaluación continua a través de tareas y una presentación oral (en base a un artículo o capítulo de libro). No habrá controles.

Material

Contacto

Federico Olmedo, Oficia 311N, email