Problem solving the object of programming - SAVITCH, Walter (Addison Wesley, 2004)