This is not your grandparents’ algorithm book. Sorting is not covered and big O is banned. Instead, the authors focus on topics like cryptography, DNA, web searches, TV networks, the life sciences, the P versus NP problem, auctions, and game theory. The book starts with the ancient and medieval history of algorithms, and finishes with a dialog on randomness in problem solving. For each topic, the key problems are presented and the accepted algorithms are described. The topics are discussed through the established history of the area.
The presentation is aimed at university-level students who are not majoring in computer science (CS). The deeper mathematics is optional and formatted with a grey background. The book explains what computer scientists do--we need more courses that do this. I wish colleagues in other disciplines had studied this book! But I was disappointed (given the subtitle) that some everyday algorithms like sorting socks [1], pancakes [2], and paperwork [3] are not mentioned. Similarly, the publication of proofs of the hardness of games like Minesweeper (NP-complete) [4] and Candy Crush (NP-hard) [5] might inspire some students to try their hand at algorithmic analysis.
The book achieves its purpose, but either needs editing or an online resource for teachers that includes errata, exercises, review questions, and other supporting materials. Its length is suitable. The consolidated list of references is good; each chapter ends by citing some of these.
The best thing about this book is its selection of topics and style. The worst things are the minor errors: an “until” where a “while” is correct in the pseudocode for binary search (Figure 2.24); the use of “orientated” in chapter 2 for “directed”; the use of “didascalic” where “didactic” is better (Section 1.2); the extra “an” on page 11; the use of “it is” when “is it” is correct (Section 3.5); “the square matrix” in the caption of Figure 5.2 should be “the square of the matrix”; “mitigated” should be “transformed” in Section 5.4.4; and the word “silent” should be “B” in the table in Section 9.3.3. I cannot figure out the phrase “The luck of the Web” in Section 5.2 even though I like it.
Despite the aforementioned errors, this book belongs in all college libraries and CS faculty may like a copy beside their classic algorithms texts.