Algoritmic problem solving - Roland Backhouse (Wiley, 2011)