Programação Funcional
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2024/2025 - 2S
Ciclos de Estudo/Cursos
Docência - Responsabilidades
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
Introdução à programação funcional usando a linguagem Haskell.
Resultados de aprendizagem e competências
No final da disciplina, o(a) aluno(a) deverá ser capaz de:
1. Definir funções usando equações com padrões;
2. Codificar algoritmos recursivos elementares sobre listas e árvores em Haskell;
3. Definir novos tipos algébricos para representar dados;
4. Compor problemas de programação usando funções de ordem superior e lazy evaluation ;
5. Provar propriedades elementares de programas usando teoria equacional e indução.
Modo de trabalho
Presencial
Programa
Expressões, valores e tipos básicos. Definições de funções simples; tipos funcionais. Execução passo-a-passo usando substituição. Tipos compostos: listas e tuplos. Algumas funções sobre listas do prelúdio-padrão. Notação de listas em compreensão. Definições recursivas. Polimorfimo paramétrico. Funções de ordem superior. Programas interactivos usando o mónada de I/O. Definição de novos tipos concretos. Estudo de um caso: árvores binárias de pesquisa. Tipos abstractos: pilhas, filas, conjuntos. Especificação usando equações e implementação usando módulos. Classes de tipos e sobrecarga de operadores. Raciocínio sobre programas usando teoria equacional e indução.
Bibliografia Obrigatória
Hutton Graham 1968-;
Programming in Haskell. ISBN: 9780521692694 pbk
Thompson Simon;
Haskell. ISBN: 978-0-201-40357-2 pbk
Bibliografia Complementar
Hudak Paul;
The Haskell school of expression. ISBN: 978-0-521-64338-2
Métodos de ensino e atividades de aprendizagem
Aulas de exposição usando quadro e projeção de slides. Aulas laboratoriais com computador.
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Designação |
Peso (%) |
Teste |
50,00 |
Exame |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
114,00 |
Frequência das aulas |
48,00 |
Total: |
162,00 |
Obtenção de frequência
Os alunos que não obtiverem um mínimo de 6 valores (em 20), no teste intercalar, não poderão realizar o exame de época normal. Todos os alunos poderão realizar o exame de recurso.
Fórmula de cálculo da classificação final
Teste intercalar (50% de peso na nota final).
Exame (50% de peso na nota final).
Sendo TI a classificação obtida no teste intercalar e e EX a
classificação obtida no exame, então a nota final é dada por:
F = TI*(0.5) + EX*(0.5)
TI,EX >= 6 e F >= 9.5
Não obterão aprovação, os alunos que não obtiverem um mínimo de 6 valores (em 20), em cada componente e um mínimo de 9.5 valores de nota final.
O exame de recurso, será cotado para 20 valores.
Avaliação especial (TE, DA, ...)
N/A
Observações
Júri da Unidade Curricular: Sandra Alves e Mário Florido