Um algoritmo é um método (finito) para resolver um dada problema.

O principal foco desta disciplina é a introdução à análise de algoritmos.

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

Na vertente da análise da correcção é feita uma introdução à lógica de Hoare e apresentada uma disciplina de anotação de programas.

Na vertente de análise da complexidade de algoritmos faz-se introduz-se o modelo de complexidade assimptótica bem como a análise de algumas estratégias algoritmicas comuns.

No contexto da análise de algoritmos estudam-se alguns problemas clássicos da programação de computadores, tais como a implementação de funções parciais finitas e de grafos.