Notícias
Terão lugar (no anfiteatro A1 do DI) as seguintes sessões de esclarecimento de dúvidas:
2a.fa. 14 Fev 10:00, com possibilidade de consulta dos exames (1a. chamada).
4a.fa. 16 Fev 10:00, com possibilidade de consulta dos exames (2a. chamada).
-- JorgeSousaPinto - 06 Jan 2005
Disponíveis nesta página (com a preciosa ajuda de Nuno Rodrigues) alguns exercícios resolvidos.
-- JorgeSousaPinto - 08 Jan 2005
Já disponível nesta página a versão final dos slides das aulas teóricas.
-- JorgeSousaPinto - 2 Dec 2004
Disponível nesta página a versão 5 dos exercícios da disciplina. A menos de correcções de erros e algum rearranjo de estrutura, esta é a versão final deste documento
-- JorgeSousaPinto - 11 Dec 2004
|
Enunciados Exames
Notas
Época Especial (Outubro 2005)
N. | Nome | Curso | Nota Exame | Nota Final |
17871 | Marco Freire | ESI | R | |
19699 | Ivan Noor... | ESI | R | |
19710 | Luis Rocha | ESI | D | |
22692 | Miguel Fernandes | ESI | 11 | 12 |
24871 | Ricardo Gonçalves | ESI | D | |
27620 | João Lopes | ESI | R | |
27650 | Paulo Braga | ESI | R | |
27662 | Ricardo Gomes | ESI | R | |
27663 | Ricardo Figueiredo | ESI | R | |
27604 | Duarte Lourenço | ESI | D | |
27683 | Sara Santos | ESI | 8 | 10 |
30166 | António Pereira | ESI | R | |
30185 | Ernesto Festas | ESI | 10 | 12 |
33198 | Personal.Nuno Tendais | ESI | R | |
33232 | Rui Rodrigues | ESI | D | |
35360 | Pedro Carvalho | ESI | R | |
35375 | Sérgio Miranda | ESI | D | |
36765 | Sandra Fazendeiro | ESI | D | |
23218 | Susana Pacheco | MCC | D |
28154 | João Carmo | MCC | D | |
35862 | Sofia Moreira | MCC | 12 | 12 |
41029 | Adriana Santos | MCC | D | |
Os exames da época de recurso poderão ser consultados na próxima semana em data a designar.
Métodos de Programação I 2004-2005
Para consultar a página antiga:
MP-I
Curiosidades...
- Uma lista coligida recentemente das artigos de investigação mais influentes no domínio das Linguagens de Programação
Equipa Docente
Horários de Atendimento
FAQ da Disciplina
Disponível
nesta página
(faça login como TWikiGuest e coloque as suas questões)
Material Disponibilizado
Material de Apoio
- Ficheiros contendo definições e exemplos de utilização dos padrões de recursividade de listas e árvores binárias: MP1-Libraries.tgz
Trabalhos Práticos
Submissão Electrónica
- Siga este link. Os trabalhos têm de ser submetidos em formato .zip ou .tgz
- Para efectuar a entrega do trabalho é necessário registar primeiro o grupo, registo este que so deve acontecer uma única vez. Para isso devem seleccionar a opção Registar e introduzir um username e uma password para o grupo; Depois de registado o grupo, devem fazer login com o username e password escolhidos; Uma vez dentro do sistema, devem selecionar a opção "Elementos do Grupo" e registar todos os elementos do grupo um por um; Por fim, para submeter o trabalho selecionem a opção "Submeter Trabalho" e escolham qual o trabalho a submeter bem como o ficheiro contendo o trabalho, fazendo "Submit" no final.
Se algum grupo perder a password contacte NunoRodrigues. Não tentem nunca registarem-se mais do que uma vez.
Enunciados
- Trabalho 1, a ser submetido electronicamente até às 24:00 do dia 10 de Outubro.
- Trabalho 2, a ser submetido electronicamente até às 24:00 do dia 7 de Novembro.
- Trabalho 3, a ser submetido electronicamente até às 24:00 do dia 12 de Dezembro.
Pré-Requisitos
Não havendo pré-requisitos formais, assume-se que os alunos possuem o seguinte conjunto de conhecimentos:
- familiaridade com conceitos básicos de Programação Funcional
- familiaridade com a linguagem de programação Haskell
Critérios de Avaliação
- Nota final
- Componente Teórica (Exame): 60% (nota mínima de 8 valores)
- Componente Prática (Trabalhos Práticos): 40% (nota mínima de 10 valores)
- Avaliação prática
- A componente prática da nota resulta da avalição de três trabalhos práticos.
- Os trabalhos serão realizados extra-aulas, por grupos de exactamente 3 alunos.
- Datas para a entrega dos trabalhos práticos: 10 de Outubro, 7 de Novembro, e 12 de Dezembro.
- Aqueles alunos que obtiveram classificação prática positiva no ano anterior poderão congelar essas notas para o ano corrente. O CONGELAMENTO IMPLICA QUE O ALUNO NÃO SERÁ AVALIADO NA VERTENTE PRÁTICA ESTE ANO, NÃO PODENDO POR ISSO ENTREGAR QUALQUER TRABALHO.
Programa Resumido
- Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade e reutilização.
- Programação funcional: sua motivação e antecendentes históricos. Composição de funções. Noções de abstracção e de isomorfismo.
- Iniciação à estruturação de dados. Combinadores básicos e suas propriedades estruturais (reflexão, fusão, absorção, cancelamento e de functorialidade). Álgebra de um tipo de dados. Lei da troca.
- Introdução às estruturas de dados indutivas regulares. Álgebras de functores. A triologia «cata-ana-hilo». Recursividade polinomial. Caso de estudo: algoritmos de ordenação.
- Parametrização e polimorfismo. Programação genérica. Functores de tipo. Introdução ao politipismo.
- Programação funcional com mónadas. `Input/output'. Excepções
Bibliografia
Textos de referência sobre Programação Funcional e Haskell:
- R. Bird, Introduction to Functional Programming Using Haskell. Prentice-Hall International, 2nd edition, 1998
- J.M. Valença e J.B. Barros, Fundamentos da Computação II: Programação Funcional. Universidade Aberta, 2000
Recomenda-se ainda, como apoio específico aos temas tratados na disciplina: