2025

Programação Avançada

Nome: Programação Avançada
Cód.: INF13279D
6 ECTS
Duração: 15 semanas/156 horas
Área Científica: Informática

Língua(s) de lecionação: Português, Inglês
Língua(s) de apoio tutorial: Português, Inglês
Regime de Frequência: Presencial

Objetivos de Desenvolvimento Sustentável

Objetivos de Aprendizagem

Desenvolver os conhecimentos e capacidades de raciocínio algorítmico e programação dos alunos, utilizando linguagens direccionadas para o cálculo numérico.
Dar ferramentas que possibilitem a escrita e implementação de códigos de cálculo computacional de elevada complexidade.
No final do curso os alunos devem conseguir desenvolver um programa de cálculo numérico que permita resolver um problema avançado de engenharia.

Conteúdos Programáticos

- Linguagens de programação: Os paradigmas das linguagens de programação: imperativo, declarativo, funcional, orientado por objectos. Exemplificação recorrendo (nas normas mais recentes) ao Fortran, C, Java, Matlab e Python.
- Implementação de algoritmos: Estruturação dos dados, subdivisão do problema em pequenas tarefas, definição de classes e objectos, arranjo da sequência de cálculo. Recurso a bibliotecas de cálculo numérico. Interoperabilidade entre linguagens. Pacotes de interface gráfica e visualização de resultados. Elaboração da documentação de programas de modo automático.
- Computação paralela: Motivação. Aspectos fundamentais das arquitecturas para o cálculo paralelo. O processo de paralelização de algoritmos de cálculo. Ferramentas disponíveis para a comunicação entre processadores. Avaliação do desempenho. Casos de aplicação. GRID. Bibliotecas para cálculo numérico utilizando processamento paralelo.

Métodos de Ensino

As aulas combinam teoria e prática e incluem sessões de esclarecimento de dúvidas. São realizados fichas formativas de forma regular. Cada aluno é responsável pelo estudo da bibliografia recomendada pelo docente. Consoante os tópicos abordados, poderão ser organizados seminários sobre pontos específicos do programa.

Avaliação

Avaliação Contínua:
* Testes curtos (3, ao longo do semestre, sobre a matéria corrente): 50%
* Teste na época de exames (abrange todo o conteúdo): 30%
* Projeto final: 20%

Nota final = 0.5 × Média dos testes curtos + 0.3 × Teste final + 0.2 × Projeto

O estudante aprova se a nota final for superior ou igual a 10 valores.
Há nota mínima de 7,5 (em 20) tanto na média dos testes curtos como no teste final.

Bibliografia

Multimedia presentations and references provided by the lecturer (on Moodle).

Parallel Computing: Theory and Practice, M. Quinn, McGraw-Hill.

Equipa Docente