Reinfelds, Juris, A brief introduction to the derivation of programs, Department of Computing Science, University of Wollongong, Working Paper 86-8, 1986, 47p.
These notes introduce a method of program derivation. We start by inventing a skeleton structure of the program and by writing down a statement of what conditions should program variables satisfy upon termination of the program. We then derive the rest of the program by algebraic techniques and logical reasoning. We use the methods of Dijkstra and Gries but introduce only a minimum of formalism and theory. Emphasis is on practical application of these methods to classes of problems where success is most likely. The theoretical basis for the methods can be established in later courses.