2023

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

Leccionação de aulas teóricas ou orientação de estudo, esclarecimento de dúvidas, tendo cada aluno de responsabilizar-se pelo estudo da bibliografia indicada pelo docente.
Consoante os tópicos poderão ser promovidos seminários focados sobre pontos específicos do conteúdo programático.
Avaliação: Realização de trabalhos práticos e de um código de cálculo, com discussão final.

Bibliografia

Books on computer languages (for the used ones).
Manuals of the languages and computacional libraries used.
Parallel Computing: Theory and Practice, M. Quinn, McGraw-Hill.