Discrete Mathematics
for Computer Science
Learn the math that defines computer science, and practice applying it through mathematical proofs and Python code.
Discrete Mathematics
for Computer Science
Learn the math that defines computer science, and practice applying it through mathematical proofs and Python code.
Discrete Mathematics is the language of Computer Science. One needs to be fluent in it to work in many fields including data science, machine learning, and software engineering (it is not a coincidence that math puzzles are often used for interviews). We introduce you to this language through a fun try-this-before-we-explain-everything approach: first you solve many interactive puzzles that are carefully designed specifically for this book, and then we explain how to solve the puzzles, and introduce important ideas along the way. We believe that this way, you will get a deeper understanding and will better appreciate the beauty of the underlying ideas (not to mention the self confidence that you gain if you invent these ideas on your own!). To bring your experience closer to Computer Science applications, we incorporate programming examples, problems, and projects in the book.
Problem-Based
Throughout the book we follow a ``try this before we explain everything'' approach: we always ask you to solve a problem first, and then explain how to solve it and introduce important ideas needed to solve it. We believe, this way you will get a deeper understanding and also develop a better appreciation for the beauty of the underlying ideas (not to mention the self-confidence that you get if you invent these ideas on your own!).
Interactive Puzzles
Interactive puzzles provide you with a fun way to "invent" the key ideas on your own. The puzzles are mobile-friendly, so you can play with them anywhere. The goal of every puzzle is to give you a clean and easy way to stateproblem where nothing distracts you from inventing a method for solving it. In turn, the corresponding method usually has a wide range of applications to various problems in computer science.
Programming
Code snippets are helpful in two ways: they show you how ideas from discrete mathematics are used in programming and they serve as interactive examples and challenges (tweak the given piece of code, run it, and see what happens). Programming challenges will help you to solidify your understanding. As Donald Knuth said, "I find that I don’t understand things unless I try to program them."
Testimonials
"I loved this course! So many interesting things to think about, thoughtfully explained by brilliant instructors. The puzzles really get you thinking. Such genius to put them before the lectures!"
"Lots of fun challenging puzzles and things to think about. Had a lot of fun. Learned interesting techniques like induction, double counting, and backtracking — which controls the combinatorial explosion of non-polynomial problems. The final bonus problem is really challenging and a great joy to solve. Don’t give up even if you’re not really a natural math person like me. You will find value here. Generally, this course, like my other favourites, is about how to think about things when you don’t know the formula."
"This course is really good for anyone who loves mathematics and programming. After this course I feel the way in which I used to analyse problems has changed. This thing really important for me as I’m a programmer. One more reason to recommend this course is that apart from learning material it has many puzzles which are really interesting."


Learn Anywhere
All the learning materials (videos, interactive puzzles, book) are optimised both for laptops and mobile devices. Enjoy them anywhere!
Authors

See more reviews at Coursera
Get Your Copy!
The book contains material corresponding to three courses in the associated specialization at Coursera: Mathematical Thinking in Computer Science, Combinatorics and Probability, and Number Theory and Cryptography. Future editions will cover the additional two courses: Graph Theory and Delivery Problem. There are 374 problems and 191 code snippets in the book. Most of the problems come with solutions and 165 of them are graded automatically (allowing you to get instant feedback). By purchasing it, you will get all further updates for free.
Order the Book!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website