Nesta unidade curricular estuda-se o paradigma funcional de programação, tendo por base a linguagem de programação Haskell.

Programação funcional em Haskell.
- Conceitos fundamentais: expressões, tipos, redução, funções e recursividade.
- Conceitos avançados: funções de ordem superior, polimorfismo, tipos indutivos, classes, modularidade e monades.

Estruturas de dados e algoritmos.

Tipos abstractos de dados.