A Practical Guide to Using This Text
The book is called Essentials Of Discrete Mathematics By David J Hunter, and it is one of the more straightforward introductions to the subject available right now. It was written for undergraduate students in computer science and related fields who need a solid foundation without wading through excessive formalism. The author keeps the proofs tight and the notation consistent, which matters more than people realize when you are juggling three other courses at the same time. I used this text while teaching an intro discrete structures course, and the main thing I noticed is how cleanly the chapters are organized. Propositional logic comes early, followed by set theory, functions, relations, and then combinatorics and graph theory. The pacing is deliberate but not slow. Each chapter ends with exercises that range from routine verification to problems that actually require you to construct something from scratch. One thing that trips up students repeatedly is the transition from naive set notation to rigorous predicate logic. The book handles this better than most by introducing quantifiers alongside sets rather than treating them as separate topics. But even so, I still see students lose points on proofs involving universal and existential statements because they treat the symbols as decorative rather than functional.
Here is a specific problem I remember clearly from grading. A student was asked to prove that the intersection of two equivalence relations on the same set is itself an equivalence relation. They wrote something like: "Since R and S are equivalence relations, their intersection inherits reflexivity, symmetry, and transitivity." That is not a proof. It is a restatement of what needs to be proved. The correct approach requires unpacking each property from the definition. For reflexivity, you show that for every element a in the set, (a,a) is in R and (a,a) is in S, therefore (a,a) is in R intersection S. The book's exercises guide you through this kind of reasoning, but only if you actually write out the steps instead of summarizing them. The combinatorics section is where the book shows its real strength. Counting problems are usually where discrete math courses fall apart for students because the patterns are not always obvious. Hunter breaks down permutations, combinations, the pigeonhole principle, and inclusion-exclusion with worked examples that gradually increase in difficulty. The inclusion-exclusion chapter in particular is well done, with applications to probability and to counting derangements. Graph theory coverage is reasonable for an essentials-level text. You get definitions of walks, paths, cycles, connectivity, Eulerian and Hamiltonian circuits, trees, and planar graphs. The treatment of coloring and matchings is lighter than you would find in a dedicated graph theory course, but that is expected given the title. If your program requires deeper coverage of spectral graph theory or extremal combinatorics, you will need supplementary material.
I should note a limitation that the book does not address directly: it does not include many applications to algorithms. If you are studying discrete math specifically to prepare for data structures and algorithms courses, you will benefit from pairing this text with something like Kleinberg and Tardos or the CLRS algorithm analysis chapters. Hunter assumes mathematical maturity that not all incoming freshmen possess, though the exercises are designed to build that maturity over the semester. Another area where the book could improve is in its exercise solutions. Some end-of-chapter problems have answers in the back, but many do not, and the ones that do often skip intermediate steps. When I assigned problems from this book, I found myself writing out full solution sets for my students rather than relying on the published material. This is not a dealbreaker, but it is worth knowing before you commit to the text as your sole resource. The digital version is available through most academic publishers and library platforms. Check your institution's subscription first. If you are purchasing independently, the paperback edition is reasonably priced compared to most STEM textbooks, and the digital format is functional though the typesetting is not as polished as what you get from publishers like Cambridge or Oxford.
Get the Full Details

For self-study, the best approach is to work through every proof in the text yourself before looking at the solution. Write it out on paper. Do not read passively. Discrete mathematics is not a subject you absorb by scanning; it is a subject you learn by doing the constructions and verifications. The book gives you the framework. You supply the repetition. If you are taking a course that uses this text, attend the sessions where equivalence relations and proof techniques are covered. Those topics form the backbone of everything that follows. Missing them makes the later chapters on relations, functions, and counting significantly harder than they need to be.