The standard AI text is Artificial Intelligence: A Modern Approach by Russell and Norvig, but I'd like to argue that Elaine Rich's AI book is better i...moreThe standard AI text is Artificial Intelligence: A Modern Approach by Russell and Norvig, but I'd like to argue that Elaine Rich's AI book is better in many ways.
First, it is shorter, and it covers less. While that makes it less suitable as a desk reference than the Russell/Norvig book, it makes it perhaps better as an introductory text, as it's a bit more focused, more content to cover "core" AI rather than comprehensively cover every aspect of the field like Russell/Norvig.
Second, and this may run counter to what a lot of people may say, but frankly the Rich book is simply more readable. She's a better writer overall, and lays out the material in a way that I think is more instructive and more informative. I think that, as an introductory text, this book works much better than Russell/Norvig. Despite Russell/Norvig devoting more overall text to explaining any given topic, I think Rich's coverage of the same material tends to be clearer.
There's no denying that nothing is going to knock Russell/Norvig from it's throne any time soon, but I have to suggest for any professor teaching an introductory AI class to at least consider Rich's book, which as a student I found helped me with the material much more than A Modern Approach.
I've seen a lot of complaints about this book being overly formal, grounded in theoretical material too much. As a theory-focused student, I actually liked that, and I think a lot of the complaints are from students who just wanted to build Quake bots or something. Besides, Russell/Norvig is just as formal, if not more so.
It's an Algorithms book. So I know what you're thinking "why would I read this book, when the standard text on Algorithms is CLRS, which is in fact so...moreIt's an Algorithms book. So I know what you're thinking "why would I read this book, when the standard text on Algorithms is CLRS, which is in fact so popular that nobody even refers to it by name, but simply as 'CLRS'?" Bear with me here; Algorithm Design is better than CLRS.
Now, it's not as COMPREHENSIVE. If you want a reference book to sit on your desk for later use, by all means use CLRS. CLRS is a great book to pick up, flip to the index, find the thing you're curious about, and read the relevant section on it. Virtually everything you encounter in Algorithms is in that book.
Algorithm Design isn't that way. There's tons of stuff in CLRS that isn't even touched on in Algorithm Design. Basic data structures like stacks, queues, heaps, trees, and such are not taught at all. You're expected to already be familiar with these concepts, since they should be covered in a Data Structures course, not an Algorithms course.
That's it. These topics tend to show up in graduate courses more than undergrad courses, so if you're an undergrad, this probably isn't the right book for you. But if you're taking graduate algorithms, this book is fantastic. The reason why is that Algorithm Design doesn't merely cover those 7 topics, it annihilates them.
The presentation of each topic is so well-covered, so perfectly-paced, so thorough, and so readable, that you almost forget you're reading a textbook. Topics are introduced slowly and gradually. The authors write in a readable style unmatched by any other algorithms book I've ever read. While you are reading, the authors may make a claim. As soon as they do this, they immediately prove it true. The proofs are just as readable and followable as the rest of the text. I never felt lost or confused with this book, it was like having an excellent professor close by at all times. Each section is packed with examples - it's not enough to prove something true, Algorithm Design also delves into enough examples that it makes things extremely clear.
My only real complaint is that, in the name of readability, sometimes the book authors deviate a bit too far from standard terminology. As a quick example, proving a Greedy Algorithm to be correct, one must illustrate that it exhibits a) The Greedy-Choice Property and b) Optimal Substructure. These names don't really tell you what they are, so the authors refer to them as the "staying ahead" properties. This works well within the confines of the book because the argument is that the greedy algorithm "stays ahead" of the optimal solution, but I can easily imagine a student using that terminology getting confused looks from peers who learned with other books.
Otherwise, AD is a fantastic book that I cannot recommend highly enough for people studying algorithms within the confines of the limited subset of what the book covers.(less)