Recursos-LCC

Um arquivo de todo material que consegui reunir, pertinente ao curso de LCC da UM.

View on GitHub

Programação Funcional


Informação geral

Código: 14294
Área científica predominante: Informática
Regime: Semestral
ECTS: 5
Tipo de ensino: Presencial


Carga Horária

Trabalho autónomo: 80 Horas
Aulas:
30 horas - Teóricas
30 horas - Teórico-práticas


Objetivos de ensino

Esta UC corresponde a uma introdução ao paradigma funcional da programação.
É usada a linguagem de programação Haskell que não requer dos alunos conhecimentos sobre a arquitetura física dos computadores e que para além dos tópicos fundamentais da programação funcional permite abordar conceitos avançados.


Resultados de aprendizagem

No fim da disciplina, o aluno deverá ser capaz de:


Programa sucinto

  1. Introdução ao paradigma funcional de programação. Aspectos básicos da linguagem Haskell: valores, expressões e tipos. O mecanismo de avaliação. Inferência de tipos. Definições multi-clausais de funções. Polimorfismo.
  2. Listas. Funções recursivas sobre listas. Modelação de problemas usando listas.
  3. Algoritmos de ordenação de listas: insertion sort, quick sort e merge sort.
  4. Ordem superior. Padrões de computação. Programação com funções de ordem superior.
  5. Tipos algébricos. Definição de novos tipos e sua utilização na modelação de problemas.
  6. Árvores. Árvores binárias, árvores de procura, árvores irregulares e algoritmos associados.
  7. O mecanismo de classes no tratamento do polimorfismo e da sobrecarga de funções.
  8. O tratamento puramente funcional do input/output. O monade IO.


Bibliografia essencial


Métodos de ensino

A escolaridade da UC é utilizada da seguinte forma:


Métodos de avaliação

A avaliação é feita por um teste final escrito e/ou exame de recurso.
O acesso ao teste final é feito através da resposta a uma questão escolhida aleatoriamente de um conjunto de 50 questões que os alunos conhecem antecipadamente.
Essas questões são uma parte do repositório de desafios de programação que estão disponibilizados no sistema de “online coding” referido acima.



retroceder