This thoughtful and well-written introductory text is designed for students at the sophomore level in a variety of majors, including mathematics, computer science, and engineering. The book, now in its fifth edition, is billed by its publisher as “the most widely used textbook in its field.” The fourth edition was used at more than 500 institutions in the US, as well as in Canada, Europe, and elsewhere. According to the author, college algebra is the “only explicit prerequisite” to using the book. There is no formal computer science requirement, and the pseudocode used to express algorithms is easily understood.

Although the “big” topics in this text have remained largely constant over five editions, each edition has incorporated incremental improvements and expanded coverage. The first edition (1988) consisted of 10 chapters, covering logic, sets, and functions; algorithms, the integers, and matrices; mathematical reasoning; counting; advanced counting techniques; relations; graphs; trees; Boolean algebra; and modeling computation. This fifth edition contains ten similarly titled chapters, plus a new chapter on discrete probability that pulls together and expands previous coverage of the topic. Comparing the first edition, with its 598 pages (excluding preface, appendices, and other end-of-book material), to this new 787-page edition (excluding comparable pages), demonstrates the significant degree to which topical coverage and supporting material have been expanded.

There is some strategic reorganization of topics in this edition, especially in the first five chapters. Coverage has also been expanded in a number of domains, in particular in those related to logic, methods of proof, and proof strategy, but also in such other areas as sorting algorithms and depth-first and breadth-first search. There is ample material here around which to fashion a one- or two-term course to meet varied student needs. Core material appears in the first chapter, and in various sections of chapters 2 through 9. For courses that require a stronger computer science or mathematics emphasis, the core can be supplemented with optional chapters or sections.

This is a well-crafted book, with a level of abstraction appropriate for a first course in discrete mathematics. Each chapter starts with an overview, and concludes with extensive end-of-chapter material, consisting of key terms and results, review questions, supplementary exercises, computer projects (which require students to write programs with specified input and output), computations and explorations (which use programs previously written), and writing projects (which call for students to write essays using outside sources). All chapters begin at a very accessible level, and carefully build towards more difficult concepts, with a nice balance between the formal and the informal. A wealth of illustrative examples enhances clarity throughout. At the conclusion of each section, there is a set of exercises.

In addition to two appendices (exponential and logarithmic functions, and pseudocode), the end-of-book materials include suggested readings by chapter, with a complete list of references, answers or solutions to odd-numbered exercises, an index of biographies, and a helpful subject index. The book has a “user-friendly” physical appearance that adds to its appeal: definitions and statements of theorems are highlighted with a colored background, and the flyleaves have a list of symbols used in the text printed on them, together with their meanings and page references. The 66 biographies, plus additional historical notes, that appear throughout the text increase its pedagogical effectiveness, and add a human interest component. An added bonus of a fifth edition is the expectation that, by now, most of the small inaccuracies that invariably make their way into any book have been corrected.

The exercises included are a major strength of the book: they are numerous (over 3,500 altogether, including over 600 new exercises); varied in type, from problems that are straightforward and reinforce basic material in the text, to those that develop new concepts beyond the text; and varied by degree of challenge. There is “a special emphasis on new exercises related to logic and proof, including mathematical induction” (p. x).

Extensive ancillaries accompany the text. They include a student solutions guide; an instructor’s resource guide with solutions to all even-numbered exercises, a test bank, and other resources; and a software version of the test bank for use on Windows or Macintosh systems. An accompanying well-designed Web site is organized into an “Information Center,” an “Instructor Center,” and a “Student Center.” Resources on the Web site include interactive demonstrations of selected algorithms, self assessments for a number of topics, and chapter-level resources with links to relevant Web sites, extra examples, and additional steps to further clarify key examples and proofs in the text, each keyed by page.

While one can always quibble with an author’s decisions about the specifics of topical coverage or emphasis, this is, overall, an excellent text, with an impressive supplemental package.