09. Jon M. Kleinberg and Eva Tardos, Computer Science
Algorithm Design (Addison Wesley, 2005). From years of teaching a Cornell undergraduate course on algorithms comes a text hailed as an “incredibly powerful and well done” effort that connects algorithmic ideas to real problems. Kleinberg and Tardos introduce algorithms by looking at the real-world problems that motivate them. Using a clear, straightforward style, they teach students to analyze and define problems for themselves and, based on their analysis, to recognize which design principles are appropriate for a given situation. The book encourages a greater understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science, with problems that are “a teacher’s dream.”