Paradigmas de Programação
Informações Gerais
 

Programa

Objectivos
 
Dar uma visão de conjunto dos diferentes paradigmas de programação e das suas linguagens mais representativas.
 
Dar uma perspectiva histórica da criação e evolução dos paradigmas e linguagens de programação.
 
Alargar o leque de conhecimentos sobre a programação orientada a objectos.
 
Introduzir o paradigma da programação em lógica.
Programa
 
Paradigmas de programação: imperativo, lógico, funcional e orientada a objectos. Linguagens orientadas a objectos derivadas de linguagens imperativas, lógicas e funcionais. Perspectiva histórica.
 
Tópicos avançados de programação orientada a objectos. Métricas de desenvolvimento: coesão, acoplamento, suficiência, completude e operações primitivas. Hierarquias de protótipos versus hierarquias de classes. Sistemas Reflexivos. Mecanismos de herança: herança pública, protegida e privada; herança múltipla e instanciação múltipla. Reutilização de código por herança, por composição de objectos e por composição de componentes. Design Patterns.
 
Programação em Lógica. Lógica proposicional, lógica predicativa de primeira ordem e princípio da resolução. Representação de conhecimento e mecanismos de inferência. A linguagem de programação Prolog. Técnicas de programação e depuração de programas.
 

Avaliação

Presenças
 
Aulas: quatro faltas permitidas
Alunos com o estatuto de trabalhor-estudante isentos do regime de presenças
Frequências
 
Duas provas escritas com a duração de 90 minutos cada
Cada prova cotada para 7 valores
Datas: 11 de Novembro e 20 de Janeiro
Primeiro trabalho individual (enunciado)
 
Cotado para 2.0 valores
Data de apresentação: 9 de Novembro
Segundo trabalho individual (enunciado)
 
Cotado para 4.0 valores (implementação: 3.0 valores, apresentação: 1 valor)
Desenvolvido ao longo do semestre
Data de apresentação: 5 de Fevereiro, 14:30
Exames
 
Provas escritas com a duração de 120 minutos
Cotadas para 20 valores
Datas: Datas: (a marcar pelos Serviços Académicos)
 

Temas dos trabalhos

15311 — João Leite
 
Programação Funcional
Ruby
17590 — Rui Raposo
 
Programação em Lógica
Python
17756 — Rui Silva
 
Programação Orientada a Objectos
JavaScript
m3107  Tiago Velho
 
Programação Concorrente
Eiffel
19417 — Ângelo Santos
 
Programação Imperativa
Ada
 

Bibliografia

Linguagens de Programação
 
Handbook of Programming Languages (Volumes I, II, III e IV)
Peter H. Salus, Series Editor in Chief
Macmillan Technical Publishing
ISBN 1-57870-008-6, 1-57870-009-6, 1-57870-010-6 e 1-57870-011-6
 
Programação em Lógica
 
Introdução à Programação em Lógica
Delfim F. M. Torres
Ed. Universidade de Aveiro, 2000
 
Programming in Prolog
W. F. Clocksin, C. S. Mellish
Springer-Verlag
ISBN 3-540-17539-3 (I-3.3-162/3)
 
Prolog Programming: A Tutorial Introduction
C. McDonald
Blackwell Scientific Publications Ltd
ISBN 0-632-01246-3 (I-3.3-179)
 
Prolog: The Standard - Reference Manual
P. Deransart, A. Ed-Dbali, L. Cervoni
Springer
ISBN 3-540-59304-7 (I-3.3-268)
 
Design Patterns
 
Design Patterns - Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides
Addison-Wesley Professional Computing Series
ISBN 0-201-63361-2
 

Internet

Programação em Lógica
 
Free Online Logic Programming Books :: FreeTechBooks.com
 
First-order logic - Wikipedia
First-Order Logic
Resolution Theorem Proving
Resolution (logic) - Wikipedia
Normal Forms
Conjunctive normal form - Wikipedia
Skolem normal form - Wikipedia
Prenex normal form - Wikipedia
 
Prolog tutorials
Prolog Programming: a do-it-yourself course for beginners
Logtalk links to Prolog resources
 
Design Patterns
 
Brad Appleton's Documents on Design Patterns
Tutorials about Patterns
Design Patterns Tutorial
An Introduction to Design Patterns (PowerPoint)
Introduction to Patterns and Frameworks (PDF)
Metrics
 
The role of object-oriented metrics (by Bertrand Meyer)
Metrics for Object Oriented Software Development
Eclipse Metrics plug-in
 

Recursos

Arquivo com elementos de estudo (normas, tutoriais, provas, problemas, livros, ...)
 
PalestraReutilizacao.pdf
recursos.zip (Última actualização: 4 de Novembro de 2007)
 

Software

(instalado nos computadores da Sala 6.19)
 
 

Horários

Aulas
 
Segunda-feira: 11h-13h, Sala 6.25
Quarta-feira: 09h-11h, Sala 6.07
Atendimento dos alunos
 
Quarta-feira: 14-16h, Gabinete 3.18