Expandir conceitos e prática de programação por meio dos paradigmas clássicos (gulosos, divisão e conquista, backtracking, Programação Dinâmica) e tópicos avançados tais como teoria dos números, teoria dos jogos e grafos.