# UCB CS70: Discrete Math and Probability Theory

## Descriptions

- Offered by: UC Berkeley
- Prerequisites: None
- Programming Languages: None
- Difficulty: 🌟🌟🌟
- Class Hour: 60 hours

This is Berkeley's introductory discrete mathematics course. The biggest highlight of this course is that it not only teaches you theoretical knowledge, but also introduce the applications of theoretical knowledge in practical algorithms in each module. In this way, students majoring in CS can understand the essence of theoretical knowledge and use it in practice rather than struggle with cold formal mathematical symbols.

Specific theory-algorithm correspondences are listed below.

- Logic proof: stable matching algorithm
- Graph theory: network topology design
- Basic number theory: RSA algorithm
- Polynomial ring: error-correcting code design
- Probability theory: Hash table design, load balancing, etc.

The course notes are also written in a very in-depth manner, with derivations of formulas and practical examples, providing a good reading experience.

## Course Resources

- Course Website: <http://www.eecs70.org/>
- Textbook: refer to the course website
- Assignments: refer to the course website

## Personal Resources

All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/UCB-CS70 - GitHub](https://github.com/PKUFlyingPig/UCB-CS70)
