Principles and applications of algorithmic problem solving. - Joao Fernando Peixoto Ferreira (2011)