(If you are looking at this in GitHub, go to cs70.bencuan.me for a much better experience!)

This is a non-comprehensive guide to discrete math and probability, specifically for computer science applications. It's based off of Berkeley's CS70 material (and doubles as my notes for the course).

Big preface: The course notes are already extremely good. Those should be the #1 resource when trying to understand the material, especially the proofs behind many of the principles at hand. This guide will not discuss proofs, but rather the intuition behind what they are trying to prove in the first place.

Note that this guide will be WIP until mid-December 2020. I'm completing this as I take the course for the first time, so pages won't be added until I learn more about their topics (and might be inaccurate until I can go back and review everything at the end).

Who is this for?

Mostly me; making unnecessarily detailed guides is my goto method of making sure I understand everything😁But you are welcome to use it as well for reviewing for exams, touching up on discrete math, or whatever you want!*

Again, I will emphasize that this isn't a textbook. While I try to be as comprehensive as possible, I'm sure I missed plenty of important concepts or assume you know others. I don't have an army of peer reviewers and guinea pigs to test-read the thing, so it's also not guaranteed that everything is 100% accurate. Please open an issue if you think something's wrong!

For more difficult topics, I'll put a warning like this at the top of the page with links to prerequisites or supporting topics so that you won't feel completely lost 😉

How to contribute

Fork the GitHub repository and create a pull request. All contributions are welcome! Pages are formatted in Markdown syntax. Please edit existing pages only unless you have created an issue and I have gotten back to you about making a new page. Thanks 😄

This content is hosted on GitBook, and relies fairly heavily on their custom formatting for LaTeX parsing, tables, and more! You can take a look at their documentation for using these features here.

For LaTeX specifically, you can easily create expressions by surrounding them with double dollar signs. For example, $$\lnot A \iff B$$ will create the equation $\lnot A \iff B$when rendered. Check out the LaTeX Reference for commonly used commands.