1. Análise de Complexidade de Algoritmos
	1.1.	Análise do comportamento de algoritmos iterativos simples
	1.2.	Uso de relações de recorrência para analisar a complexidade algorítmica de definições recursivas
	1.3.	Análise assimptótica (notações O, Teta e Omega)
2. Estratégicas algorítmicas
	2.1	Algoritmos Incrementais, divisão e conquista, programação dinâmica
	2.2.	Análise de correcção e complexidade associadas a estratégias algorítmicas
	2.3.	Apresentação de algoritmos clássicos para como exemplos destas estratégias (procuras, ordenações e travessias)
3. Estruturas de Dados clássicas e algoritmos associados
	3.1.	Estruturas Lineares (Stacks, queues, tabelas de hash): inserção e consulta
	3.2.	Estruturas hierárquicas (heaps, árvores binárias balanceadas, árvores B): inserção, consulta e travessia
	3.3.	Grafos: travessias, árvores geradoras, caminhos mais curto, fecho transitivo
4. Classes de Complexidade
	4.1 Classe P: definições e reduções polinomiais
	4.2 Classe NP: Não determinismo e reduções de SAT