Versão oficial da ficha de disciplina »
Apresentação
Sigla: PPRO (PP)
Ano: 4º (1º)
Semestre: 2º
Créditos: 6 (3)
ECTS: 6 (7,5)
Horas/Semana: 3h teóricas
Nº de Turmas: 1 teóricas
Aulas Teóricas: João Correia Lopes (JCL)
Objectivos
Dotar os alunos de uma visão global dos vários paradigmas de programação com ênfase nos conceitos, implementação e adequação às classes de problemas, levando-os a perceber os compromissos no desenho de linguagens e as vantagens e desvantagens na utilização das linguagens mais usadas em programação.
Programa
- O papel das linguagens de programação.
- Funções, recursão, listas e o LISP.
- Compiladores e sintaxe, cálculo-lambda e semântica denotacional.
- A família Algol e o ML.
- Sistemas de tipos e inferência de tipos.
- Âmbito, funções e gestão de memória.
- Abstracção de dados e modularidade.
- Conceitos em linguagens orientadas por objectos, o Simula e o Smalltalk.
- Objectos e eficiência em tempo de execução em C++.
- Portabilidade e segurança em Java.
- O paradigma de programação em lógica e o Prolog.
- Concorrência e programação distribuída.
Bibliografia Principal
- John C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2003, ISBN=0-521-78098-5
Bibliografia Complementar
- Ravi Sethi, Programming Languages: Concepts and Constructs, 2nd Edition, International Edition, Addison-Wesley, 1996, ISBN=0-321-21074-3
- George Springer, Daniel P. Friedman, Scheme and the Art of Programming, MIT Press, 1989, ISBN: 0-262-19288-8
- K. Arnold, J. Gosling, The Java Programming Language, Adisson-Wesley, 3rd Edition, 2000, ISBN=0-201-70433-1
- Leon Sterling, Ehud Shapiro, The Art of Prolog - 2nd Edition: Advanced Programming Techniques, MIT Press, 1994, ISBN=0-262-69163-9
- Simon Thompson, Haskell: The Craft of Functional Programming, 2nd Edition, Addison-Wesley, 1999, ISBN=0-201-34275-8
Métodos de Ensino
Aulas de exposição teórica e discussão de tópicos relevantes e trabalho prático, em computador, fora das aulas.
Software
- Java SE 6 — Java para Unix, Macintosh ou Windows
- DrScheme — Scheme for para Unix, Macintosh ou Windows
- Yap Prolog — Prolog Linux, Solaris ou Windows
- Interpretador Hugs — Haskell para Unix, Macintosh ou Windows
Modo de Avaliação
Avaliação distribuída com exame final.
Componentes de Avaliação
A avaliação inclui um exame e um trabalho pratico, realizado ao longo do semestre, com as componentes indicadas.
Descrição | Tipo | Tempo (horas) | Data de Conclusão |
---|---|---|---|
Aulas da disciplina (estimativa) | Aulas | 36 | — |
Definição (R1) | Trabalho | 27 | 13/03/2008 |
Interface com o Utilizador (R2) | Trabalho | 36 | 17/04/2008 |
Aplicação Multi-paradigma (R3) | Trabalho | 54 | 5/06/2008 |
Produto (P) | Trabalho | 0 | 5/06/2008 |
Apresentação e Discussão (A&D) | Trabalho | 0 | 5/06/2008 |
Estudo | 7 | — | |
Total | 160 | — |
Cálculo da Classificação Final
A nota final será calculada usando a fórmula: Nota = 50% Trabalho + 50% Exame, sendo:
Trabalho = 10% R1 + 10% R2 + 20% R3 + 50% P + 10% A&D.
Obtenção de Frequência
A disciplina tem uma componente de avaliação distribuída, em que são avaliadas componentes do trabalho pratico, a entregar antes das datas limite. Serão admitidos a exame os alunos que obtenham 50% na avaliação distribuída. A aprovação na disciplina está condicionada à obtenção de 40% no exame.
Provas e Trabalhos Especiais
Não há provas nem trabalhos especiais.
Avaliação Especial (TE, DA, ...)
A avaliação distribuída, realizada durante o semestre de funcionamento da disciplina, é exigida a todos os alunos, independentemente do regime de inscrição.
Melhoria de Classificação Final/Distribuída
A nota de exame pode ser melhorada em época de recurso. O trabalho prático pode ser repetido na edição seguinte da disciplina.