How to think like a programmer problem solving for the bewildered - Vickers, Paul 1966- (Course Technology Cengage Learning, 2008)