tl;dr
If you open the book without a lot of theoretical math background, you'll have a good time with this book. It's written for computer scientists, so doesn't go heavy on the proofs and exact arguments, definitions, theorems, results, etc., but it makes itself relevant with many examples of how conepts are applied in CS.
Math people will probably be frustrated at the lack of depth, verbose yet fuzzy explanations, and redundant examples. You'll probably want something more concise.
Liked:
- (Usually) very accessible for people who aren't used to pure math (proofs, axioms, abstractness).
- Many illustrative, real-world examples
- Decent breadth of topics
Disliked:
- Skimpy proofs, interesting results are usually tucked away amongst the dozens of computational exercises. It's hard to figure out which problems are even worth doing.
- Too many examples. There are chapters where the vast majority of the text is just examples of the concept in action; in the graph theory chapter, there was a section with like 13 examples of basically the same thing.
- Shallow treatment of the math, sloppy definitions (he defines "clique" with the definition of the maximal clique), doesn't cover a lot of cool material that's appropriate to the subject.
- Slightly disorganized: the order in which graph theory concepts are described is awkward; you end up having to flip to the previous section, go through 12 examples to find a definition or theorem, and then flip back to the current page in order to remember what's going on.
- Doesn't acknowledge when facts are implicitly used despite not having been introduced yet.
- Not very good at explaining a lot of things, especially since his narration is inconsistent.