Presents a rich and varied set of problems and solutions (many devised from real-life experience). The aim is to demonstrate by example some of the difficulties which can be encountered in designing and writing effective programs, and to suggest ways of coping with them. Provides a good source of ideas for teachers, instruction through practice and example for beginning computer science students, and a set of problems which even the more seasoned...