An introduction to programming and problem solving with pascal - Perlman, David M (1982)