Um algoritmo é um método (finito) para resolver um dado problema.
A complexidade de um algoritmo mede os recursos necessários para que este seja executado.

Esta disciplina debruça-se sobre a correcção de algoritmos e a análise da sua complexidade, apresentando algoritmos para alguns problemas clássicos da programação de computadores.

Exemplos desses problemas são: a implementação de funções parciais finitas e de grafos.