Problem solving - Savitch, Walter (Addison Wesley, 2003)