This is the very first book to discuss the theory and principles of
computer programming on the basis of the idea that a proof of
correctness and a program should be developed hand in hand. It is built
around the method first proposed by Dijkstra in his monograph The
Discipline of Programming (1976), involving a "calculus for the
derivation of programs." Directing his materials to the computer
programmer with at least one year of experience, Gries presents explicit
principles behind program development, and then leads the reader through
example programs using those principles. Propositions and predicate
calculus are presented as a took for the programmer, rather than simply
an object of study. The reader should come away with a fresh outlook on
programming theory and practice, and the assurance to develop correct
programs effectively.