Saltar para:
Logótipo
Você está em: Início > CC4028
Mapa das Instalações
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Tópicos Avançados em Programação Funcional

Código: CC4028     Sigla: CC4028     Nível: 400

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores

Ocorrência: 2014/2015 - 2S

Ativa? Sim
Unidade Responsável: Departamento de Ciência de Computadores
Curso/CE Responsável: Mestrado em Ciência de Computadores

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M:CC 5 PE a partir do ano letivo de 2014 1 - 6 42 162
MI:ERS 0 Plano Oficial desde ano letivo 2014 4 - 6 42 162

Língua de trabalho

Inglês

Objetivos


Aprofundar os conhecimentos de programação funcional com ênfase em algumas técnicas avançadas para maior modularidade e correção na construção de programas.

Resultados de aprendizagem e competências

No final desta unidade os alunos devem ser capazes de:
* compreender e extender programas Haskell estruturado usando classes de tipos, mónadas, functores e aplicativos:
* especificar testes de correção funcional usado propriedades e geradores QuickCheck;
* implementar linguagens de domínio específico embutidas (DSLs) como bibliotecas Haskell de combinadores.

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Programação funcional.

Programa

Polimorfismo paramétrico e polimorfismo "ad-hoc". Classes de tipos. Verificação e inferência de tipos.
Classes de tipo para estruturação de computação: functores, aplicativos e mónadas.
Programação monádica. Exemplos de mónadas de parcialidade, listas, estado, "reader" e "writers"; “parsers” monádicos. Transformadores de mónadas. Functores e functores aplicativos

Testes de correção baseados em propriedades. Uso da biblioteca QuickCheck. Definição de propriedades e geradores. Simplificação automática de contra-exemplos (shrinking).

Desenho e Implementação de linguagens espécificas  de domínio embutidas (EDSLs). Implementações "shallow" e "deep".


Bibliografia Obrigatória

Bryan O'Sullivan, John Goerzen, Don Stewart; Real World Haskell, O'Reilley, 2008
Miran Lipovaca; Learn you a Haskell for Great Good!, 2011

Métodos de ensino e atividades de aprendizagem

Aulas teórico-práticas com exposição de conceitos e demonstração interativa de exemplos de estudo.

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 60,00
Trabalho laboratorial 40,00
Total: 100,00

Fórmula de cálculo da classificação final

40% * Notas de trabalhos propostos + 60% * Nota de exame

Observações

Precedência da UC "Programação Funcional" (ou equivalente).
Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-10-06 às 16:39:15 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias