Which Discrete Mathematics Books Are Best for Computer Science Self-Study?
At a glance
- 1. Check your starting point
Choose a proof-focused book if mathematical reasoning is new; otherwise start with a broad computer science text.
- 2. Pick one main book
Use Rosen, Epp, or Mathematics for Computer Science as your core rather than trying to read several cover to cover.
- 3. Learn actively
Work exercises, write complete proofs, and compare your solutions with explanations when available.
- 4. Add focused practice
Use Book of Proof for proof skills or a more combinatorial text for extra depth.
A good discrete mathematics book for computer science should do more than list topics. It should help you reason about proofs, sets, counting, relations, graphs, algorithms, and recurrence relations—and give you enough problems to practice those ideas.
There is no single best book for every self-learner. If you want material written specifically with computer science in mind, start with Mathematics for Computer Science by Eric Lehman, F. Thomson Leighton, and Albert R. Meyer. If you prefer a conventional textbook with broad coverage and many exercises, consider Kenneth Rosen’s Discrete Mathematics and Its Applications. If you want a gentler introduction to mathematical reasoning, Susanna Epp’s Discrete Mathematics with Applications is a strong choice.
Choose a main textbook
| Book | A good fit if you want | Things to keep in mind |
|---|---|---|
| Mathematics for Computer Science — Lehman, Leighton, and Meyer | A free, computer-science-focused text connecting discrete math to algorithms and computation | It can feel demanding if you have little experience with proofs; use a proof primer alongside it if needed |
| Discrete Mathematics and Its Applications — Kenneth Rosen | Broad coverage and a large selection of exercises across standard topics | Its scope is extensive, so you may not need to study every chapter for an introductory CS course |
| Discrete Mathematics with Applications — Susanna Epp | A careful introduction to logic, proof, and mathematical writing | It is less centered on computer science applications than the MIT text |
A useful supplementary choice is Richard Hammack’s free Book of Proof. It is focused on the language and methods of proof rather than serving as a complete computer science discrete mathematics course. Use it if statements such as “for every,” “there exists,” or “if and only if” are hard to work with.
A practical self-study route
Start with logic, sets, and methods of proof. Learn how to negate quantified statements, use implication correctly, and distinguish a proof from an example. Practice direct proofs, contrapositive proofs, contradiction, and induction. These techniques recur throughout computer science, including correctness arguments and proofs about algorithms.
Then study functions and relations, including equivalence relations and partial orders. Move on to counting and discrete probability, followed by recurrence relations and graphs. Depending on your goals, later topics might include Boolean algebra, number theory, trees, or finite-state machines. Follow the sequence in your chosen book when topics depend on one another, and use a course syllabus to decide which optional chapters matter for your goals.
For each section, read a small amount, close the book, and try a problem without looking at the worked examples. Write proofs in complete sentences: state what is assumed, explain each step, and make clear why the conclusion follows. When you get stuck, identify the precise obstacle—an unfamiliar definition, a missing lemma, or an algebraic step—rather than immediately reading the solution.
Worked example: prove a sum formula by induction
A typical discrete mathematics text will ask you to prove that, for every integer ,
For the base case , the left side is , and the right side is . So the statement holds at .
For the induction step, assume it holds for some :
Then add the next term, :
This is the claimed formula with . The base case and induction step prove the formula for every integer . The point of the exercise is not only to recognize a familiar sum; it is to practice stating the assumption and showing how it produces the next case.
Common self-study mistakes
- Reading without solving problems. Discrete math is learned by using definitions and constructing arguments. Reading a proof can make it seem obvious without preparing you to write one.
- Trying to cover every topic at once. A book may include material beyond what you need. Pick a goal—such as foundations for algorithms—and prioritize the chapters relevant to it.
- Treating worked solutions as a substitute for practice. Try a problem first, then compare your reasoning with a solution. Keep a note of the point where your approach failed.
- Skipping proof basics. If the main text assumes familiarity with proofs, pause and learn those skills rather than memorizing proof templates.
- Collecting too many books. One main text plus one targeted supplement is usually more useful than switching among several textbooks.
If you are unsure which one to choose, start with the MIT text for its direct connection to computer science. Pair it with Book of Proof if proofs are unfamiliar. If you prefer a more conventional textbook presentation, choose Rosen or Epp based on which writing style helps you work through exercises consistently.
References
- Mathematics for Computer Science — Eric Lehman, F. Thomson Leighton, and Albert R. Meyer
- The Book of Proof — Richard Hammack
- Discrete Mathematics with Applications — Susanna S. Epp
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.