Problem Solving and Computer Programming - Grogono, Peter (Addison-Wesley, 1982)