Menu Conteúdo Rodapé
  1. Início
  2. Cursos
  3. Matemática e Aplicações
  4. Programação Funcional

Programação Funcional

Código 14786
Ano 2
Semestre S2
Créditos ECTS 6
Carga Horária PL(30H)/T(30H)
Área Científica Informática
Objectivos de Aprendizagem Os objectivos gerais de aprendizagem são os seguintes:

Perceber os fundamentos de programação funcional para resolver problemas de natureza computacional.
Compreender as diferenças entre os paradigmas de programação imperativa e funcional.
Introduzir os conceitos básicos de programação funcional.
Desenvolver capacidades de programação com recurso à uma linguagem funcional.
Estudar algoritmos sobre estruturas de dados como listas e árvores.
Estudar algoritmos de procura e de ordenação.
Estudar técnicas algorítmicas como, e.g. a programação dinâmica ou ainda backtracking.
Conteúdos programáticos Tipos Básicos, Entrada/Saída, Estruturas de Controlo e Funções, Recursividade e Funções de Ordem Superior.
Polimorfismo, Tipos de dados algébricos: tipos produtos, enumerados, soma e estruturados.
Módulos e Estruturas de dados abstractas.
Noções Gerais de analise de programas: complexidade computacional e correcção funcional.
Estruturas sequenciais: vectores (redimensionáveis), tabelas de Hash, listas, pilhas e filas.
Estruturas não sequenciais : conjuntos, dicionários, árvores, cordas, amontoados, árvores binária equilibradas.
Ordenação, indexação e pesquisa.
Algoritmia: dividir-e-conquistar, algoritmos gulosos, por retrocesso, programação dinâmica, memoização.
Bibliografia principal As referencias principais são:

Jean-Christophe Filliâtre, Sylvain Conchon, com tradução de Simão Melo de Sousa. “Aprender a programar com OCaml : algoritmos e estruturas de dados”. 1ra Edição, 2021.

Ocasionalmente:

Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Developing Applications With Objective Caml.
Yaron Minsky, Anil Madhavapeddy, Jason Hickey. Real World OCaml, Functional Programming for the masses. 2nd Edition. O’Reilly.Versão online.
Robert Sedgewick, Kevin Wayne. Algorithms. Addison-Wesley Professional; 4th edition (April 3, 2011).
Jon Kleinberg, Éva Tardos. Algorithm Design. Pearson; 1st edition 2005.
Thomas H. Cormen, Charles Eric Leiserson, Ronald Rivest, Ronald L. Rivest E Clifford Stein. Introduction to Algorithms. MIT Press; 3rd edition (September 1, 2009).
Steven S. Skiena. The Algorithm Design Manual. Texts in Computer Science. Springer; 3rd edition (October 6, 2020).
Tim Roughgarden. Algorithms Illuminated. Soundlikeyourself Publishing; Illustrated ed.
Língua Português
Data da última atualização: 2021-06-24
As cookies utilizadas neste sítio web não recolhem informação pessoal que permitam a sua identificação. Ao continuar está a aceitar a política de cookies.