Programação Funcional
_Licenciatura em Matemática e Ciências de Computação_
1º Ano - 1º Semestre
Ano lectivo 2004/2005
Notas
Programa
Na actual estrutura da Licenciatura em Matemática e Ciências de Computação, esta é a primeira disciplina de Informática. Por esta razão, o primeiro grande objectivo desta disciplina é a introdução à programação de computadores.
Dos vários paradigmas de programação (imperativo, funcional, lógico e orientado a objectos) apresentados ao longo da licenciatura, nesta disciplina estuda-se o paradigma funcional, tendo por base a linguagem de programação Haskell.
Esta abordagem tem a vantagem de não exigir dos alunos grandes conhecimentos prévios sobre a arquitectura física dos computadores, para poderem entender e escrever programas funcionais, permitindo, por esse motivo, trabalhar mais facilmente com turmas heterogéneas em conhecimentos de informática.
A linguagem Haskell é uma linguagem puramente funcional fortemente tipada e com um sistema de tipos extremamente rico, o que permite não só ensinar os conceitos fundamentais da programação (funcional), onde se incluem tópicos tais como: tipos de dados, estruturas de controlo, e recursividade; como também ensinar conceitos avançados, como por exemplo: funções de ordem superior, polimorfismo, classes, modularidade, e monades.
Bibliografia
Fundamentos da Computação, Livro II: Programação Funcional. José
Manuel Valença e José Bernardo Barros. Universidade Aberta, 1999.
Introduction to Functional Programming using Haskell. Richard
Bird. Prentice-Hall, 1998.
Haskell: the craft of functional programming. Simon Thompson.
Addison-Wesley.
Introduction to Functional Programming. Richard Bird and Philip
Wadler. Prentice-Hall, 1988.
A Gentle Introduction to Haskell. Paul Hudak, John Peterson and
Joseph Fasel.
Critérios de Avaliação
A avaliação tem uma componente teórica e uma componente prática, ambas
obrigatórias. A nota final será calculada com base na seguinte
fórmula:
Nota Final =
NT * 0.6 +
NP * 0.4
sendo
- NT a nota teórica (nota mínima de 9 valores), obtida através da realização de uma prova individual escrita;
- NP a nota prática (nota mínima de 10 valores), resultante da avaliação obtida ao longo das aulas laboratoriais e que terá por base a realização de trabalhos práticos.
Regime de Avaliação Prática
Alunos inscritos para melhoria de nota
A avaliação prática será efectuada através de um trabalho prático a entregar no final do semestre em data a agendar.
O enunciado correspondente está disponível aqui
(Enunciado para alunos inscritos para melhoria).
Novos alunos e alunos repetentes sem nota prática.
A inscrição nos turnos laboratoriais é obrigatória (e será feito controlo de
presenças nas aulas). A nota prática resulta da avaliação obtida ao
longo das aulas laboratoriais (avaliação contínua) e terá por base a
realização de 3 fichas de trabalho e 2 trabalhos práticos.
Estudantes trabalhadores.
A inscrição destes alunos nos turnos
laboratoriais é opcional. Caso o aluno opte por não se inscrever
nas aulas laboratoriais, a nota prática será obtida através da
realização de um trabalho prático global (e as aulas laboratorias
poderão ser frequentadas em regime livre).
Alunos repetentes com nota prática positiva.
Os alunos que obtiveram classificação prática positiva no ano anterior
poderão congelar essas notas para o ano corrente (deverão
avisar os docentes). Para os alunos nestas condições que optem por
não congelar a nota prática, a (nova) nota prática será
obtida através da realização de um trabalho prático global. As aulas
laboratorias poderão ser frequentadas em regime livre.
O ficheiro seguinte contém a lista de alunos em condições de
congelar a nota prática obtida em 2003-2004 (
LMCC).
A decisão de congelar a nota deverá ser comunicada por e-mail a ManuelBernardoBarbosa.
Metodologia de Inscrições e Formação de Grupos de Trabalho
- Cada turno prático terá no máximo 36 alunos inscritos (em regime de avaliação contínua), havendo ainda 3 máquinas (9 lugares) que poderão ser usados (em regime livre) pelos alunos sem inscrição obrigatória nos turnos.
- As inscrições dos alunos nos turnos são individuais.
- Dentro de cada turno serão formados grupos de 3 alunos.
- O trabalho na aula é feito em grupo (fora da aula é como quizerem).
- A nota prática é individual.
Equipa Docente
Horário Lectivo
| Horário | Sala | Docente |
Teórica | 2ªfeira 9:00-10:00 | CP2.104 | jmv |
Teórica | 4ªfeira 10:00-11:00 | CP2.111 | jmv |
Turnos TP | Horário | Sala | Docente |
TP1 | 2ªfeira 17:00-18:00 | CP3.402 | jsp |
TP2 | 3ªfeira 8:00-9:00 | CP3.202 | jsp |
TP3 | 3ªfeira 12:00-13:00 | CP1.215 | jsp |
Turnos P | Horário | Sala | Docente |
P1 | 2ªfeira 11:00-13:00 | DI 0.11 | mjf |
P2 | 2ªfeira 18:00-20:00 | DI 0.11 | mjf |
P3 | 3ªfeira 9:00-11:00 | DI 0.11 | |
P4 | 5ªfeira 11:00-13:00 | DI 0.11 | omp |
P5 | 6ªfeira 11:00-13:00 | DI 0.11 | mbb |
Horário de Atendimento
Docente | Horário |
jmv | 2as. 15-18, 3as. 15-18 |
jsp | 2as. 14-17, 3as. 9-12 |
omp | |
mjf | 2as. 12-13 e 14-18 |
mbb | 2as. 11-13 e 18-20, 3as. 18-20 |
Material Disponibilizado
Aulas Teóricas
Aulas Teórico-Práticas
Aulas Práticas
- Ficha de trabalho número 1: Ficha1
- Ficha de trabalho número 2: Ficha2
- Ficha de trabalho número 3: Ficha3
- Ficha de trabalho número 4: Ficha4
- Ficha de trabalho número 5: Ficha5
Links Úteis
Exames