A Generative Approach to Programming
Algorithms are central to all areas of computer science, from compiler construction to numerical analysis to artificial intelligence. Throughout your academic and professional careers, you may be required to construct new algorithms, analyze existing algorithms, or modify algorithms to suit new purposes.
How do we know that such algorithms are correct? One method involves making claims about how we expect our programs to operate, and then constructing code that carries out these tasks. The key component of such reasoning is the invariant, and is the topic of this book.
In these pages, you will study how invariants are developed, how they are used to construct correct algorithms, and how they are helpful in analyzing existing programs. Along the way, you'll be introduced to some classic sorting, searching and mathematical algorithms, and even some solutions to games and logic puzzles. These examples, though, are only conduits for the loftier goal: understanding why algorithms work.
26 June 2008
Buy from Amazon: UK US