Recursos-LCC

Um arquivo de todo material que consegui reunir, pertinente ao curso de LCC da UM.

View on GitHub

Algoritmos e Complexidade


Informação geral

Código: 14305
Área científica predominante: Informática
Regime: Semestral
ECTS: 5
Tipo de ensino: Presencial


Carga Horária

Trabalho autónomo: 80 horas

Aulas:
30 horas - Teóricas
30 horas - Teórico-práticas


Objetivos de ensino

Esta unidade curricular visa tornar os estudantes aptos a analisar algoritmos (do ponto de vista da correção e da utilização de recursos, em particular o tempo de execução), bem como a utilizar algoritmos sobre estruturas de dados avançadas, nomeadamente os grafos.
A UC introduz ainda conceitos elementares de complexidade algorítmica, como a noção de problema NP-completo.


Resultados de aprendizagem

Após a frequência da UC os alunos serão capazes de:


Programa sucinto

  1. Introdução à análise de correção de algoritmos: pré e pós-condições; invariantes de ciclo; anotação de programas.
  2. Análise de tempo de execução de algoritmos: modelo de complexidade assimptótica; estratégias algorítmicas; recorrências; análise de melhor caso, pior caso, e caso médio; análise amortizada; casos de estudo.
  3. Estruturas de dados eficientes: árvores AVL, tabelas de dispersão, heaps. Implementação eficiente de buffers e dicionários.
  4. Algoritmos fundamentais sobre grafos; estratégia algorítmica greedy e programação dinâmica.
  5. Introdução às classes de problemas de decisão P, NP, e NP-completo


Bibliografia essencial


Métodos de ensino

A escolaridade da UC é utilizada da seguinte forma:


Métodos de avaliação

A avaliação é feita através de dois testes, um intercalar e outro final, ambos com peso de 50%, sendo requisito para a aprovação a obtenção de uma classificação mínima de 25% em cada um dos testes.



retroceder