The authors employ this philosophy in their writing technique. The text asks the broad question "What is programming?" Having come to the conclusion that programming consists of procedures and data, the authors set off to explore the related questions of "What is data?" and "What is a procedure?"
The authors build up the simple notion of a procedure to dizzying complexity. The discussion culminates in the description of the code behind the programming language Scheme. The authors finish with examples of how to implement some of the book's concepts on a register machine. Through this journey, the reader not only learns how to program, but also how to think about programming. --This text refers to an out of print or unavailable edition of this title.
The writing is crisp, clear, and the theory easy to follow because of the book's excellent use of examples and diagrams.
I highly recommend this book, not just to students taking a course, but for practitioners working in industry.
It was expensive, but well worth the price.
(Robin Milner, Computer Laboratory, University of Cambridge)
Types are the leaven of computer programming; they make it digestible. This excellent book uses types to navigate the rich variety of programming languages, bringing a new kind of unity to their usage, theory, and implementation. Its author writes with the authority of experience in all three of these aspects.
(Henk Barendregt, Faculty of Science, Mathematics, and Computer Science, University of Nijmegen, The Netherlands)
Introduction to Algorithms is the standard reference on algorithms.
It's good for both learning to design algorithms and just learning the standard set most programs rely on.
Each topic in the book is covered in the same way:
- Explanation of problem or concept.
- Example(s) and/or diagram(s)
- Mathematical proofs, where applicable.
- Problem set
(Daniel Spielman, Department of Computer Science, Yale University)
Introduction to Algorithms, the 'bible' of the field, is a comprehensive textbook covering the full spectrum of modern algorithms: from the fastest algorithms and data structures to polynomial-time algorithms for seemingly intractable problems, from classical algorithms in graph theory to special algorithms for string matching, computational geometry, and number theory. The revised third edition notably adds a chapter on van Emde Boas trees, one of the most useful data structures, and on multithreaded algorithms, a topic of increasing importance.
(Gabriel Robins, Department of Computer Science, University of Virginia)
As an educator and researcher in the field of algorithms for over two decades, I can unequivocally say that the Cormen et al book is the best textbook that I have ever seen on this subject. It offers an incisive, encyclopedic, and modern treatment of algorithms, and our department will continue to use it for teaching at both the graduate and undergraduate levels, as well as a reliable research reference.