The book emphasises and develops important mathematical techniques for reasoning about programs and for deriving programs from their specifications.
The book 1s self-contained and assumes no prior knowledge of programming. Each chapter contains numerous exercises and Chapter 4 consists of extended case studies from a variety of areas.