Tom Rombouts works in product development for Ashton-Tate in Torrance, California. He is also the leader of the dBASE SIG of the Los Angeles Computer Society. USENET: tomr@ashtate.A-T.com.
Algorithmics is an introduction and overview of the history, methods, theory, and future of algorithm study and analysis. Excellently written, well-researched, and with numerous illustrations, the book contains fascinating material in every chapter. However, David Harel's approach may be too theoretical for most day-to-day programming work, and likely too academic and mathematical at times for many managers or end-users.
To some, the fundamental issue of computer science might be creating faster, smaller, and cheaper hardware. To others, it might be designing more efficient and reliable methods of software development. But to noted theoretician David Harel, it is Algorithmics (the study of algorithms planned processes used to solve specific problems) that most captures the true "Spirit of Computing."
Based on a series of radio lectures by the author, the book starts by comparing a recipe from a cookbook to a computer program, and eventually works its way up to presenting issues on the leading edge of algorithm theory involving such things as algebraic quadratic equations, prime number theory, and reduction equivalency. Believe it or not, in some ways factoring a 150-digit number is not so different from preparing a chocolate mousse!
The book consists of four somewhat self-contained parts. Part one, Preliminaries, includes a quick historical review, a summary of the basic concepts of algorithms and data, and a brief survey of common computer languages and the types of problems they are best suited for.
The second part, Methods and Analysis, covers algorithmic methods, trying to prove the correctness of algorithms, and efficiency considerations regarding algorithms.
The third part, Limitations and Robustness, covers topics such as the two classes of problems that computers can solve, problems that can not be solved by computers, and finite state machine theory. This section contains the bulk of the book's math and theory, which, depending on your point of view, is either the most or least important material.
Part four, Relaxing the Rules, discusses issues such as new problems that must be addressed when introducing parallel processing, algorithms that use randomization techniques to generate "probably correct" solutions, and artificial intelligence and possible limits of future computing applications.
Finally, there is a 48-page section of bibliographic notes and a comprehensive 20-page index.
Although the author intends the book to be read sequentially, two chapters in particular can be read by themselves. Programming Languages gives a quick yet insightful overview of seven major languages (including Pascal and not C?), while Algorithmics and Intelligence gives a clear outline of issues relating to artificial intelligence in areas such as voice and pattern recognition and game theory.
I find one of the book's real strengths to be its light, humorous style. Each chapter begins and ends with old testament bible quotations that apply (out of context, of course) to the topics covered in that chapter. Or, in the bibliography for the section on recursion, the book references itself!
The book teaches that there are four main categories of algorithmic problems, only one of which can be realistically solved by computers. Given a certain minimal set of abilities, and unlimited space and time, all programming languages and computers are equivalent in the types of problems they can and cannot solve.
Overall, I think this is an excellent book. However, it probably will not help you debug your C program, nor help you decide when to upgrade to the latest version of your favorite compiler.
On the other hand, it is my (perhaps minority) opinion that knowing more than the absolute minimum needed to get your paycheck can make many day-to-day tasks seem much simpler in comparison. After all, if you can grasp the concepts of the limits of algorithmics, debugging a text parser should be a breeze!
Reading the book might even enhance your humor skills at your next party. The next time someone says, "Did you hear the one about the traveling salesman?" you will be able to immediately reply: "Yes! The traveling salesman's search for a minimal, perhaps Hamiltonian, visitation path is perhaps the best-known example of a Nondeterministic Polynomial-time Complete algorithmic problem!"
Algorithmics: The Spirit of Computing
David Harel
Addision-Wesley
1987
$25.00
425 pages
ISBN 0-201-19240-3.