Disciplina Curricular

Algoritmos e Modelação Computacional AMC

Minor em Aplicações da Matemática à Engenharia - Min-AME 2021

Contextos

Grupo: Min-AME 2021

Período:

Peso

6.0 (para cálculo da média)

Objectivos

Programar em linguagem de programação imperativa de grande difusão, recorrendo a algoritmos e estruturas de dados comuns. Desenvolver aplicações de grande escala.

Programa

Programação imperativa em C++ ou JAVA. Noção de objeto, classe, polimorfismo e herança. Correção de programa imperativos. Noção de invariante e variante de um ciclo. Introdução ao estudo da eficiência de algoritmos. Notação assimptótica. Análise no pior caso e no caso médio. Algoritmos de ordenação: inserção direta, seleção direta, bubblesort, quicksort, fusão binária e heapsort. Tipos de dados abstratos: árvores e grafos. Implementações estáticas e dinâmicas. Problema da pesquisa. Tabelas de dispersão. Árvores binárias de pesquisa. Árvores de pesquisa equilibradas e B-Trees. Pesquisa de padrões: algoritmo baseado em autómatos e Knuth-Morris-Pratt. Alinhamento de Sequências. Aplicações à Bioinformática. Algoritmos sobre grafos: Pesquisa em profundidade e largura, subárvore maximal. Aplicações à Aprendizagem Automática: Redes de Bayes e neuronais. Fluxo máximo e encaminhamento de pacotes. Problemas difíceis. Classes de complexidade P e NP. Projeto adequado ao curso.

Metodologia de avaliação

Exame 50% e Projeto 50% (avaliado oralmente).

Componente de Competências Transversais

A UC permite o desenvolvimento de competências transversais em Pensamento Crítico, Criatividade e Estratégias de Resoluções de Problemas, nas aulas, em trabalho autónomo e nas várias componentes de avaliação. A percentagem de avaliação associada a estas competências deverá ser da ordem dos 15%.

Componente Laboratorial

Os exercícios são resolvidos em laboratório computacional, onde os alunos experimentam os conceitos apreendidos.

Componente de Programação e Computação

Cobre todo o programa recomendado de 6 ECTS que está para além da primeira UC obrigatória de Programação e Computação, nomeadamente: metodologia de programação orientada a objectos, estruturas discretas, algoritmos, análise e síntese de algoritmos, introdução à complexidade algorítmica e computacional. Projeto computacional numa linguagem orientada a objectos com aplicações no domínio da licenciatura onde é lecionada.

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Disciplinas Execução