This book is one of the available standard choices for an introductory course on discrete mathematics. The topical coverage is, by and large, similar to that of competing textbooks. Therefore, the reviewer’s job is to talk about what makes this book different from others.

In short, the strength of this book is the clarity of explanations and the innovative methods used to drive a point home. At the same time, the mathematics is not as challenging and inspirational as in most competing textbooks. This is not to say that the book has no mathematically interesting examples, exercises, and excursions. The book does have all those features, but they are not integrated in the text; they are mostly part of the auxiliary materials.

The first block of chapters deals with formal logic, the concept of proofs, and the basic notions involving sets and functions. Fortunately, the sequence of these conceptually important but mathematically not so entertaining chapters is interrupted by a chapter on elementary number theory. This is good because this allows the author to prove theorems the reader may actually want to know. Textbooks teaching proof techniques often make the mistake of proving uninteresting statements just to show an example of a proof technique. That is a mistake since it may lead to the loss of student interest and enthousiasm. This book has its share of those mistakes (for instance when the author proves a formula for the exact value of the floor or ceiling of n/2, or when she proves that the square of an odd number is odd and the square of an even number is even), but the chapter on number theory has some interesting examples as well. The subsection on open problems in number theory is particularly well done.

After this introductory block, the first advanced topic is solving recurrences, most importantly second-order linear recurrences with constant coefficients. This reviewer would have liked to see the much stronger, much more general method of generating functions at least mentioned here for the interested students. Again, the last two pages of the chapter, those devoted to open problems and difficult examples, are a pleasure to read.

Most of what is covered in the rest of the book (combinatorial enumeration, discrete probability, graphs, and the analysis of algorithm efficiency) are often taught in combinatorics courses. Again, the explanations are clear and have plenty of detail, but the mathematics does not go as far as it could or should. For instance, the Principle of Inclusion and Exclusion is only discussed for up to three sets in the text itself, and the general case is left for the exercises.

The illustrations are far better than those of competing textbooks. The exercises are fine for the average student, and not challenging enough for the good student.

Miklós Bóna is Professor of Mathematics at the University of Florida.