This section is an introduction and explanation of why the study and analysis of algorithms is important. Algorithms can be used to model many situations and processes in the natural world, although it is often not immediately obvious in what way they are able to do this. The author suggests two “fundamental components” to help one in understanding how an elegant algorithm can apply to a messy real-world situation. The first component involves cutting through the junk and exposing the “mathematical core of the problem”; understanding the precise mathematical model that lies under the application-specific noise. The second component is recalling and applying a fitting algorithm design for this problem's specific mathematical needs. These two components when used well together allow the computer scientist not only to solve problems but to better communicate what the problems are.
This section also discusses the background in computer science that one should have when he or she enters this course and where the course will progress from there. This book suggests at least two semesters of introductory computer science and a curiosity about the analysis of algorithms. This is necessary because the book will discuss some problems that deal with computational intractability and NP-completeness, concepts that are tough to master on their own, let alone with a tenuous grasp of the fundamentals of computer science and programming.
Finally, the author states that a complete answer to a problem in this book includes a fully explained algorithm, an analysis of its running time, and a proof of its correctness.