O principal foco desta disciplina é a introdução à análise de algoritmos (vistos como uma sequência finita de passos para atingir um dado objectivo).

Esta análise é dividida em duas vertentes: correcção e complexidade.

Quanto à correcção, faz-se uma introdução à Lógica de Floyd-Hoare e mostra-se como esta se pode aplicar a exemplos suficientemente pequenos. Para exemplos mais complicados as provas de correcção apresentadas não passarão de esboços de prova.

Também no que respeita à complexidade a abordagem é muito introdutória. Apresentam-se as notações standard de análise assimptótica de algoritmos e classificam-se alguns algoritmos simples.
Faz-se ainda uma ligeira referência a algumas das classes de complexidade mais usuais (P, NP e NP-Completo) ilustrando-as com alguns exemplos conhecidos.

Como exemplos ilustrativos dos conceitos referidos acima, apresentam-se algumas estruturas de dados e os respectivos algoritmos associados. Entre estas contam-se as árvores binárias (balanceadas ou não), grafos, tabelas de hash, queues, stacks e heaps.