Saltar para:
Logótipo
This page in english Ajuda Autenticar-se
Projecto da Casa da U. Porto
Você está em: Início > PRODEI018
Autenticação




Mapa das Instalações
Edifício A (Administração) Edifício B (Aulas) - Bloco I Edifício B (Aulas) - Bloco II Edifício B (Aulas) - Bloco III Edifício B (Aulas) - Bloco IV Edifício C (Biblioteca) Edifício D (CICA) Edifício E (Química) Edifício F (Minas e Metalurgia) Edifício F (Minas e Metalurgia) Edifício G (Civil) Edifício H (Civil) Edifício I (Electrotecnia) Edifício J (Electrotecnia) Edifício K (Pavilhão FCNAUP) Edifício L (Mecânica) Edifício M (Mecânica) Edifício N (Garagem) Edifício O (Cafetaria) Edifício P (Cantina) Edifício Q (Central de Gases) Edifício R (Laboratório de Engenharia do Ambiente) Edifício S (INESC) Edifício T (Torre do INEGI) Edifício U (Nave do INEGI) Edifício X (Associação de Estudantes)

Paradigmas de Programação

Código: PRODEI018     Sigla: PP

Áreas Científicas
Classificação Área Científica
OFICIAL Ciências e Tecnologia da Programação

Ocorrência: 2018/2019 - 2S Ícone do Moodle

Ativa? Sim
Página Web: http://www.fe.up.pt/~rcamacho/cadeiras/PP/
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Programa Doutoral em Engenharia Informática

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
PRODEI 11 Plano de estudos Oficial 1 - 6 28 162

Docência - Horas

Teórico-Práticas: 2,00
Tipo Docente Turmas Horas
Teórico-Práticas Totais 1 2,00
Rui Carlos Camacho de Sousa Ferreira da Silva 2,00

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

ENQUADRAMENTO

Nos anos anteriores do curso, os estudantes aprenderam diversas linguagens de programação. Não lhes foi, no entanto, lecionada uma perspectiva global e sistemática das Linguagens de Programação.

OBJETIVOS ESPECÍFICOS

Dotar os estudantes 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.

Resultados de aprendizagem e competências

Ao completar esta disciplina, o aluno deve ser capaz de:

  1. Distinguir o papel das linguagens de programação de mais alto nível
  2. Distinguir os vários paradigmas de programação
  3. Descrever os problemas associados à implementação de linguagens de programação
  4. Enumerar as inovações associadas à linguagem LISP
  5. Descrever características e problemas da linguagem imperativa Algol 60: sistema de tipos rico e estruturado, Anomalias em "Pass-by-name", goto e gestão de memória, princípio da ortogonalidade (atribuição em variáveis procedure)
  6. Descrever características e limitações da linguagem imperativa Pascal: Limites de array fazem parte do tipo
  7. Descrever características e limitações da linguagem imperativa C: arrays vs. apontadores
  8. Descrever características do ML, nomeadamente: garbage collection, funções de ordem elevada, funções parciais, funções curried, padrões, células referência, características imperativas
  9. Descrever a utilização de tipos em linguagens de programação
  10. Descrever o algoritmo de inferência de tipos do ML
  11. Descrever implementações de polimorfismo
  12. Descrever as necessidades de gestão de memória colocadas pela chamada a funções e passagem de parâmetros nas suas variadas formas
  13. Descrever os conceitos principais relacionados com o controlo de execução de programas
  14. Descrever o propósito e a semântica de excepções em ML e em C++
  15. Descrever o suporte para a modularidade de programas
  16. Descrever o suporte para a abstracção em programas
  17.  Descrever os conceitos principais do paradigma de Orientação por Objectos
  18. Descrever as características principais da linguagem de programação Simula.
  19. Descrever as características principais da linguagem de programação Smalltalk
  20. Descrever as características da linguagem de programação C++
  21. Descrever as características da linguagem de programação Java
  22. Descrever algumas características da linguagem de programação Prolog
  23. Descrever algumas características das linguagens de "Scripting" como Perl e Python
  24. Enumerar vantagens da programação usando concorrência

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Os estudantes devem ter conhecimentos de linguagens de programação como Scheme, C, C++ ou Java e Prolog

Programa

1. O papel das linguagens de programação
2. Funções, recursão, listas e o LISP
3. Compiladores, sintaxe e cálculo-lambda
4. A família Algol e o ML
5. Sistemas de tipos e inferência de tipos
6. Âmbito, funções e gestão de memória
7. Abstracção de dados e modularidade
8. Conceitos em linguagens orientadas por objectos, o Simula e o Smalltalk
9. Objectos e eficiência em tempo de execução em C++
10. Portabilidade e segurança em Java
11. O paradigma de programação em lógica e o Prolog
12. Concorrência
13. Linguagens de "scripting"

Bibliografia Obrigatória

Mitchell, John C.; Concepts in programming languages. ISBN: 0-521-78098-5

Bibliografia Complementar

Thompson, Simon; Haskell the craft of functional programming. ISBN: 0- 201-34275-8
Arnold, Ken; The Java programming language. ISBN: 0-201-70433-1
Sterling, Leon; The Art of Prolog. ISBN: 0-262-69163-9
Springer, George; Scheme and the art of programming. ISBN: 0-07-060522-X
Sethi, Ravi; Programming languages. ISBN: 0-321-21074-3

Métodos de ensino e atividades de aprendizagem

Aulas de exposição teórica e discussão de tópicos relevantes.

Software

DrScheme
Yap Prolog
Java SE 8

Palavras Chave

Ciências Físicas > Ciência de computadores > Programação
Ciências Físicas > Ciência de computadores
Ciências Físicas

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Trabalho escrito 30,00
Trabalho laboratorial 70,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Frequência das aulas 42,00
Trabalho de investigação 30,00
Trabalho laboratorial 90,00
Total: 162,00

Obtenção de frequência

N/A

Fórmula de cálculo da classificação final

A nota final será calculada usando a fórmula:
Nota = 60% qualidade do trabalho + 30% artigo + 10% apresentação e discussão

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 unidade curricular , é exigida a todos os alunos, independentemente do regime de inscrição. Os estudantes que não frequentam regularmente a unidade curricular fazem as entregas dos trabalhos e apresentações nas épocas previstas e devem tomar a iniciativa de acordar, com o docente, reuniões específicas para acompanhamento dos trabalhos práticos.

Melhoria de classificação

O trabalho pode ser repetido na edição seguinte da disciplina.
Recomendar Página Voltar ao Topo
Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2019-04-23 às 09:49:40 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais