Algoritmos e Estruturas de Dados

 

 

Licenciatura: Matemática

 

Ano Lectivo:1999/00

 

Programa:

  1. Noções Gerais da Programação Modular: Construção descendente de programas; Algumas regras da "boa programação".
  2. Verificação Formal da Correcção de Algoritmos: A noção de invariante de ciclo; A Axiomática de Hoare; Verificação formal da correcção de diversos algoritmos de pesquisa e de ordenação.
  3. Algoritmos Recorrentes: Construção de soluções recorrentes; "Backtracking"; Análise de algoritmos recorrentes de ordenação.
  4. Eficiência Computacional e Análise de Complexidade: Algoritmos de pesquisa; Algoritmos de ordenação; Algoritmos recorrentes; Algoritmos para multiplicação de matrizes; Algoritmos para concordância de modelos ("Pattern Matching").
  5. Estruturas Dinâmicas de Dados: Estruturas estáticas vs. Estruturas dinâmicas; Listas simplesmente ligadas – representações e operações habituais; Listas circulares simplesmente ligadas; Listas duplamente ligadas; Listas generalizadas.
  6. Tipos Abstractos de Dados: Modularidade e abstracção dos tipos de dados; Os tipos abstractos de dados Lista linear; Polinómio linear, Cadeia de caracteres, etc. Os tipos abstractos de dados Pilha, Fila, Deque e suas aplicações; O tipo abstracto de dados Árvore Binária: estruturas de dados alternativas; travessias; árvores binárias de pesquisa; árvores binárias equilibradas; aplicações .