Publisher's Synopsis
This text adopts a modern software engineering approach to teaching a programming language which recognizes that the main difficulties experienced by students are associated with the understanding of problems and the synthesis of their related algorithms. Throughout the book, the concept of a software "system" rather than a "programme" is emphasized, and software design is tackled independently from any programming language. Modularisation and its implications for software engineering are described early on, so that the tools, techniques and principles developed may be used throughout the remainder of the text.