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
Língua(s) de apoio tutorial: Português
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.
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.
- 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.
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.
Manuals of the languages and computacional libraries used.
Parallel Computing: Theory and Practice, M. Quinn, McGraw-Hill.
Equipa Docente (2024/2025 )
- João Pedro Lebre Magalhães Pereira [responsável]