Program Construction

This book is about programming per se. It is about the most elementary principles of program construction—problem decomposition, invariant properties, and guarantees of progress. It is intended to appeal to both novice programmers, who wish to start on the right track, and to experienced programmers who wish to properly master their craft.
Although the subject matter of the book is 'elementary', in the sense of foundational, it is not 'easy'. Programming is challenging, and it is wrong to skirt the issues or to wrap it up in a way that makes it seem otherwise. I have lectured on this material for many years, mostly to undergraduates on computing science degrees, and, occasionally, to professional programmers. Inevitably, it is the experienced programmers who appreciate its value the most. Novice programmers have the additional hurdle of learning how to write code—too often in a highly complex programming language. For them, the problem is the programming language, whereas, of course, the programming language should not be a problem, but part of the solution.
The book has been written primarily for self-study. Many exercises have been supplied, with complete solutions, interspersed throughout the text. Only by making a serious attempt at the exercises can the material be properly mastered. My hope is that readers will do the exercises as they read, rather than postponing them until the chapter has been completed. Many of the exercises are quite challenging; the solutions are there to be consulted, so that the reader can build up confidence and experience in an effective, calculational style of reasoning.
TABLE OF CONTENT:
Chapter 01 - A Science of Computing
Chapter 02 - A Searching Problem and Its Solution
Chapter 03 - Calculational Proof
Chapter 04 - Implementation Issues
Chapter 05 - Calculational Logic: Part 1
Chapter 06 - Number Conversion
Chapter 07 - Calculational Logic: Part 2
Chapter 08 - Maximum and Minimum
Chapter 09 - The Assignment Statement
Chapter 10 - Sequential Composition and Conditional Statements
Chapter 11 - Quantifiers
Chapter 12 - Inductive Proofs and Constructions
Chapter 13 - Iteration
Chapter 14 - Sorting and Searching Algorithms
Chapter 15 - Remainder Computation
Chapter 16 - Cyclic Codes
Password:ganelon
Random Posts
- JXTA - Java P2P Programming - Sams
- iPhone: The Missing Manual
- Developing Web Applications With ASP.NET And C# (with source code)
- The Geometry of Stock Market Profits
- Teach Yourself OpenOffice.org 2 Firefox and Thunderbird for Windows All in One - SAMs
- Learn Russian Now! 9.0
- Data Structures And Algorithms With Object-Oriented Design Patterns In Python
- VBScript Programmers RefereVBScript Programmers Reference - Wrox
- MCSE Self-Paced Training Kit (Exam 70-294)
- Building Database Driven Flash Applications - APress

















