Think like a programmer an introduction to creative problem solving - Spraul, V. Anton. (No Starch Press, 2012)