Um algoritmo é um método (finito) para resolver um dada problema.
A complexidade de um algoritmo mede os recursos necessários para que este seja executado.
Esta disciplina debruça-se sobre a análise da 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.