Discrete math used to be an advanced undergraduate subject, but it has migrated earlier in the curriculum and is often taught at the freshman or sophomore level today. These courses serve both math majors and computer science majors. The present text is slanted towards mathematics, although it gives heavy weight to algorithms and their analysis. At the authors’ institution (University of Oregon) the corresponding course is given to math majors in their freshman year and, in addition to providing subject matter, acts as a bridge to abstract mathematics course.

The exposition is slanted heavily towards examples rather than theories or methods. A typical section would introduce a couple of concepts, talk about the kinds of problems that use these, and then launch into half a dozen or a dozen examples. In the Preface (p. xii) the authors say, “We have always believed that students at this level learn best from examples, so we have added examples to the large number already present and have revised others, all to encourage students to read the book.” The examples are very well chosen and usually deal with serious mathematical problems rather than contrived ones. The exercises range from simple to moderately difficult, and tend toward numerical examples of things discussed in the body. There are answers and hints for the odd-numbered problems in the back of the book; most of these are brief.

There is not a lot of hand-holding, and it is not a cookbook where you can look up how to apply particular methods or solve particular problems — you have to study the examples.

The “bridge” part is fairly modest. Chapter 2 is an introduction to logic, with a lot of information about the structure of proofs woven in. The Preface says (p. xi), “One of our main goals is the development of mathematical maturity. Our presentation starts with an intuitive approach that becomes more and more rigorous as the students’ appreciation for proofs and their skill at building them increase.” There’s only a modest amount of proving in this book, both in the body and in the exercises. I thought the proofs themselves did not become any more rigorous as the book progressed, but the difficulty of the proofs and the number of things that are proved do increase.

Very Good Feature: the treatment of group theory emphasizes its combinatorial uses. The book includes Burnside’s Lemma (p. 477), although not labeled as such.

Very Interesting Feature: mathematical induction is explained using while loops and loop invariants rather than ladders or steps.

Although this is a fifth edition, the book has not been revised since 2003 and the publisher may be letting it approach the end of its life. The Preface (p. xiii) refers to a Companion Website, which seems not to exist. The amount of supplemental material is small by the standards of today’s beginning undergraduate texts, consisting of an instructor’s solutions manual (in print form). The review copy I received seems to be a black-and-white reprinting of a color book; the things that you would expect to be in color appear in a dithered gray.

The book seems to be pitched lower than most of its competition, but I think it is a good choice for a freshman or sophomore course. The examples provide an accessible look at a great deal of real mathematics. The dominant text in this field is probably Rosen’s *Discrete Mathematics and its Applications*, but that’s a much more difficult (and expensive) book. Despite the preponderance of examples in the present book, it is not very similar to Lipschutz & Lipson’s *Schaum’s Outline of Discrete Mathematics*; the present book has much better explanations and examples.

Allen Stenger is a math hobbyist and retired software developer. He is an editor of the Missouri Journal of Mathematical Sciences. His mathematical interests are number theory and classical analysis.