Textbooks for Discrete Math for Computer Science
The topic of discrete math is covered in many textbooks, and so there are a lot of different options to choose from.
When looking for textbooks or resources for this course, it is important to consider the following:
- Topic Match: The topics covered in this course (in order) are: Sets, relations, counting (also called combinatorics), discrete probability, logic, discrete proofs, and an introduction to simple graphs. The textbook should cover these topics in a way that is accessible to a computer science student.
- Computer Science: There are many topics, related to discrete math, that are not useful to the average computer science student. For example, the course will not cover topics like number theory, abstract algebra, or combinatorial optimization. Instead, the course will focus on topics that are most relevant to computer science, such as sets, relations, counting, probability, logic, proofs, and (the very beginning of) graphs. In addition, these topics have very direct application to computer science and hearing about these applications will help you understand and remember the material better, because it will be related to something you care about.
- Conciseness: It is easy to buy (or download) a textbook that is very long, but sorting through the content often requires reading it, which is very time-consuming. For this reason, it is often better to choose a textbook that is concise and to the point.
- Modernity: For lack of a better word, some textbooks are just old. They may have been written in the 1980s or 1990s, and they may not have been updated since then. This is a problem because the field of computer science has grown a lot since then, and the applications of discrete math to computer science have blossomed as well. A more modern textbook is better able to: (1) single-out topics that are most useful today, and (2) provide examples and exercises that are more relevant to today’s computer science student.
For these reasons, I recommend strongly against the more traditional textbook by Rosen, “Discrete Mathematics and Its Applications.” This textbook is definitely a classic, it is accurate, but it is too grandiose: The topics are organized in a very opinionated way, and it is hard to read them out of order; the content is probably overwhelming for someone that is looking to learn just enough to get through a CS curriculum. This is not a good resource for someone in this course.
This is the recommended companion textbook for this course, in addition to our official lecture notes.
Download it on OpenTextbooks, on the author’s website or here.
This book is absolutely excellent and highly recommended for this course. It has the following features:
- It is written in an accessible, engaging, and relatable style.
- It is comprehensive, yet concise.
- It is free, yet there is an affordable ($6!) print version available.
- It contains a lot of practice questions and exercises, that grow in difficulty and provide good practice.
The chapters relevant to this course are: Chapters 1, 2, 3, 6, 4, 8, 9, 5.
Specifically, start by reading the introduction to the book, Chapter 1, then:
- Sets: **Chapter 2
- Relations: **Chapter 3
- Counting: **Chapter 6
- Probability: **Chapter 4
- Logic: **Chapter 8
- Proofs: **Chapter 9
- Graphs: **Chapter 5
Download it on OpenTextbooks, on the author’s website or here.
Download it on OpenTextbooks, on the author’s website or here.
https://cs.carleton.edu/faculty/dlibenno/book/
https://open.umn.edu/opentextbooks/textbooks/a-cool-brisk-walkthrough-discrete-mathematics-davis
“A Cool Brisk Walk Through Mathematics” by Stephen Davies (Chapters 1, 2, 3, 6, 4, 8, 9, 5) Links to an external site. Published. Click to unpublish “A Cool Brisk Walk Through Mathematics” by Stephen Davies (Chapters 1, 2, 3, 6, 4, 8, 9, 5). External Url “Discrete Math: An Open Introduction” by Oscar Levin (Chapters 1, 3, 4) Links to an external site. Published. Click to unpublish “Discrete Math: An Open Introduction” by Oscar Levin (Chapters 1, 3, 4). External Url “Connecting Discrete Mathematics and Computer Science” by David Liben-Nowell (Chapters 2, 8, 9, 10, 3, 4, 5, 11) Links to an external site. Published. Click to unpublish “Connecting Discrete Mathematics and Computer Science” by David Liben-Nowell (Chapters 2, 8, 9, 10, 3, 4, 5, 11).