LINGUAGENS DE PROGRAMAçãO
Código: 21077
ECTS: 6
Departamento: Departamento de Ciências e Tecnologia
Área Científica: Engenharia Informática
Palavras-Chave:

    1. Paradigmas
    2. O'Caml
    3. Prolog
    4. Java

Docente:
Ricardo José Vieira Baptista
Área Científica: Informática/Multimédia
Correio Eletrónico: ricardjose@fe.up.pt

Sinopse:
Mais do que o estudo de uma única linguagem de programação, a cadeira de Linguagens de Programação da Universidade Aberta vai-se centrar sobre o estudo comparado dos diversos paradigmas e características das linguagens de programação. Assim os alunos vão conhecer os diversos conceitos e técnicas de programação associados aos principais tipos de linguagens de programação (nomeadamente linguagens imperativas, linguagens funcionais, linguagens orientadas por objetos e linguagens lógicas).


Competências:
Ao concluir esta unidade curricular o aluno deverá estar capaz de:
Reconhecer a importância dos diferentes paradigmas de programação, nomeadamente, os de programação orientada por objetos, programação em lógica e programação funcional.
Descrever, em termos sintáticos, semânticos e funcionais, as principais características das linguagens associadas a cada um dos paradigmas
Aplicar as linguagem Java, Prolog e O’Caml na resolução concreta de problemas de pequena e média dimensão.


Conteúdos:
Paradigmas de programação. Programação orientada por objetos. Programação em lógica. Programação funcional.
Estudo da linguagem Java. Tipos. Assinaturas, protocolos e objectos. Classes. Interfaces. Herança. Classes abstratas. Excepções. Input/Output. Streams.. Packages e construtores.
Estudo da linguagem Prolog. Factos e regras. Cláusulas de Horn. Programas e perguntas. Semântica declarativa e operacional. Mecanismo de retrocesso (backtracking). Programação de predicados sobre variáveis simples e sobre listas.
Estudo da linguagem OCaml. Funções como "valores de primeira classe". Tipos básicos e estruturados. Sistema de tipos e inferência de tipos. Funções monomórficas e polimórficas. Formas “curried” e não-“curried” de funções com múltiplos parâmetros. Aplicação parcial. Padrões. Método indutivo. Listas. Tipos produto e soma. Árvores binárias.
 


Bibliografia:
F. Mário Martins, Java 6 e Programação orientada pelos objectos, FCA
Leon Sterling and Ehud Shapiro, The Art of Prolog (2nd Edition), MIT Press, 1994
Jason Hickey, "Introduction to the Objective Caml Programming Language", 2004


Metodologias de Ensino:

E-learning.




Total de Horas de Trabalho: 156
Total de Horas de Contacto: 26

Avaliação:
O regime de avaliação preferencial é o de avaliação contínua, constituída pela realização de 2/3 e-folios (trabalhos escritos em formato digital), ao longo do semestre letivo, e de um momento final de avaliação presencial (p-fólio), a ter lugar no final do semestre, com peso de, respetivamente, 40% e 60% na classificação final. Os estudantes podem, no entanto, em devido tempo, optar um único momento presencial de avaliação, realizando, então uma prova de Avaliação Final (exame) com o peso de 100%.