Recommended Outside Resources
Discrete Mathematics has been a core subject in mathematics and computer science for decades, and it is taught at thousands of universities. Because of the ubiquity of the subject, there are a lot of resources out there, including our own tutorials! Knowing where to start is challenging when you don’t know the subject already, so the resources on this page have all been screened by Logical Learning, and are resources that we vouch for. The links for books that are available for purchase are Amazon Affiliate links: buying using the supplied link will not cost you any more, but will provide a small commission to Logical Learning that is used to support our website and the creation of tutorials for this site.
Books for Purchase
The benefit of commercial books is that there is an entire team of editors, reviewers, and support staff that works on producing high-quality material.
Textbooks used in university-level discrete math classes
If you are currently taking a discrete mathematics class, or preparing for taking the class in the future, you should definitely have a copy of the textbook used at your college or university. The following two books stand out as the most widely-used books, used because of the high-quality material and presentations. Check your university textbook store or course listings for information on what book you use.
Discrete Mathematics and Its Applications
by Kenneth Rosen
Purchase links: E-Book Print
Used at the University of North Carolina, Texas Tech University, Louisiana State University, Oregon State, and many, many others. This seems to be the most popular textbook for discrete mathematics, and in addition to solid mathematical exposition, Rosen does an excellent job relating the material to computer science topics. For example, there’s an early chapter on algorithms and computational complexity, as well as a more advanced chapter on modeling computation.
Discrete Mathematics with Applications
by Susanna S. Epp
Purchase links: E-Book Print
Used at the University of Texas, Georgia State, Florida Atlantic University, Washington State University, and others. This book seems to be used more often in discrete math classes taught in Mathematics departments rather than in Computer Science departments. Epp’s writing is very clear, and her mathematical explanations are fantastic. Some computer science topics, like algorithm analysis and machine models, are included but relegated to the final two chapters and not incorporated as core material.
Other recommended books on specific topics
How to Prove It: A Structured Approach
by Daniel J. Velleman
Purchase link: Print
First published in 1994, and now on its 3rd edition, this book takes a methodical approach to writing proofs in the same way that How to Solve It (see below!) approaches general mathematical problem-solving. This is a great book loaded with examples and practice problems, many with solutions in the back of the book. A stand-out feature of this book is that proofs often start with a “Scratch Work” discussion that derives, in informal terms, the thought process behind coming up with the proof. This is followed by the formal proof, and the earlier discussion helps the reader cut through the formality and see how the pieces fit together.
How to Read and Do Proofs
by Daniel Solow
Purchase link: Print
This book has similar goals to the How to Prove It book above, and in fact has a longer history, but has a noticably different style. There are plenty of worked examples, with additional discussion (labeled “Analysis of Proof”) in addition to the written proof. Many of the exercises have solutions available online. The author attempts to show in very specific detail the logical structure of the proof, and this results in the main “different style” that we referred to above. At this level, style is largely a matter of personal taste, and while we (the people behind Logical Learning) prefer the Velleman book, this one is certainly a valuable resource to people learning to write (and understand) proofs.
How to Solve It: A New Aspect of Mathematical Method
by George Pólya
Purchase link: Print
This is an absolute classic, originally published in 1945. Pólya describes a step-by-step approach to mathematical problem solving, with lots of examples. If you find yourself staring at a blank page and wondering “where do I start?” when given mathematical problems, this book is a life-saver! With the techniques described in this book (as well as practice) you can approach problems with a structured, clear approach. While the latest edition was published relatively recently, in 2014, this book is inexpensive and a fantastic resource to have for anyone working in a mathematical field, including computer science, data science, and more.
Proofs from THE BOOK
by Martin Aigner, Günter M. Ziegler, et al.
Purchase link: Print
To understand the purpose and philosophy of this book you need to understand that Paul Erdös, one of the most brilliant and productive mathematicians of the 20th century, talked about “The Book” – a collection kept by God of the most elegant proofs of mathematical theorems. These are proofs that stand out for their beauty in revealing mathematical truths, and while this was obviously a metaphor (by a self-described agnostic atheist, no less), the idea of particularly beautiful proofs is compelling. The authors of this book have collected some of the most succinct and elegant proofs in mathematics, and is a joy to read for examples of great proofs.
Free Resources
Who can argue with free, right? For better or worse, anyone can put anything out on the Internet, and there is no high-level quality control. The reality is that there are a lot of bad and downright incorrect resources that you might stumble across. Fortunately, there are some excellent resources too (after all, our tutorials are free!) – the trouble for beginners is distinguishing between these.
The following resources are books or websites that we have reviewed and meet our quality standards.
From university classes
Many top universities base their courses on their own lecture notes, rather than a published textbook. The good side of this is that the mathematics is impeccable, and the choice of topics is well-informed. The bad side of this is that these are typically support materials for in-person classes, which also have large staffs of faculty, teaching assistants, discussion leaders, and tutors, none of which are available for self-study students on the web. Nonetheless, these notes can be great resources for motivated readers. Here are some of the best:
Lecture notes from CS70 at UC Berkeley. The “Notes” column on the standard course website are well-written textbook-style presentation of key topics in discrete math and basic probability theory. While the material is there, the notes themselves are very light on examples and exercises. A dedicated self-study student can supplement the basic notes presentation with posted discussion problems and homeworks, which are also on the class website and typically have solutions posted when they are not actively being assigned in the class. (Disclaimer: Dr. Tate, from Logical Learning, has taught this class at Berkeley, so has a fondness for these notes. You may see some similarities between those topics and the lessons here!)
Stanford also has a solid course for their computer science majors, CS103: Mathematical Foundations of Computing. The materials for this course are more of a moving target, as they have repeatedly redesigned the course over the past decade or so, but there are high-quality materials available. It seems that the class is currently organized around a series of “Guides” for topics, which are available under the “Resources” tab on the class website. In previous years, there was a more textbook-like set of notes, and the Fall 2015 notes are still available here. Going even further back, Vladlen Koltun prepared a good set of notes for the Winter 2008 CS103x class (the class is different now, but notes are still good!).
The MIT course, 6.1200J Mathematics for Computer Science, is fully available online through MIT’s OpenCourseWare initiative. This includes not only the full written notes but also recorded lectures and problem sets. While this is the course specifically for computer science students, a more pure math approach, course 18.200, Principles of Discrete Applied Mathematics, is also available.
Other free resources
Given the high price of textbooks from commercial publishers, many faculty and universities have started a push for free, open educational resources, or “OER”. These are often formatted and organized like traditional textbooks, but lack the support of editors and other commercial support. The following are standouts for solid mathematics and presentation.
OER: Discrete Mathematics, An Open Introduction, Oscar Levin
Applied Discrete Structures, by Al Doerr and Ken Levasseur