Esta obra está destinada a quienes quieren mejorar sus métodos de programación y aprender a razonar sobre la corrección y la eficiencia de sus programas. En el libro se describen técnicas tales como el diseño y la verificación de programas recursivos, la derivación formal de programas iterativos y la especificación algebraica de tipos abstractos de datos; se estudian tanto las técnicas como los fundamentos matemáticos de éstas y se dan numerosos ejemplos de ellas. También se incluyen un CD-ROM con numerosos ejercicios prácticos.