The authors have written an ambitious textbook for use in an introductory discrete mathematics course for computer scientists. Topics covered in substantial detail include basic set theory and combinatorics, basic logic, matrix algebra, relations and functions, recursion and recurrence formulas, introductory graph theory, Boolean algebra, and introductory abstract algebra. Adequate coverage of this material would require two terms or semesters; however, the presentation is largely self-contained to enable individual instructors to “pick and choose” appropriate sections. The scope of the textbook is suitable for sophomore level.
Particular strengths of this presentation of the material include the extensive discussion of applications for computer scientists and the useful outlines of proof techniques. Despite my overall positive reaction to the text, there remain a few serious defects. In a discussion of the computational complexity of the Hamilton cycle problem, the authors observe the existence of an exponential time algorithm; they then note that “a faster algorithm would have to be one that takes only polynomial time.” This is false since there are subexponential superpolynomial time algorithms. Slips like this are bound to confuse students.
Instructors will have to be aware of the few problems of this type in the text. Nevertheless, the text seems to be a valuable addition to a burgeoning collection of such texts. Its main appeal will likely be the inclusion of a broader range of useful topics.