# Mathematics for Computer Science

Watch the Mathematics for Computer Science course from MIT, taught by Prof. Tom Leighton and Dr. Marten van Dijk in the fall of 2010. License: Creative commons BY-NC-SA This course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.

### Videos

- Lecture 1: Introduction and Proofs
- Lecture 2: Induction
- Lecture 3: Strong Induction
- Lecture 4: Number Theory I
- Lecture 5: Number Theory II
- Lecture 6: Graph Theory and Coloring
- Lecture 7: Matching Problems
- Lecture 8: Graph Theory II: Minimum Spanning Trees
- Lecture 9: Communication Networks
- Lecture 10: Graph Theory III
- Lecture 11: Relations, Partial Orders, and Scheduling
- Lecture 12: Sums
- Lecture 13: Sums and Asymptotics
- Lecture 14: Divide and Conquer Recurrences
- Lecture 15: Linear Recurrences
- Lecture 16: Counting Rules I
- Lecture 17: Counting Rules II
- Lecture 18: Probability Introduction
- Lecture 19: Conditional Probability
- Lecture 20: Independence
- Lecture 21: Random Variables
- Lecture 22: Expectation I
- Lecture 23: Expectation II
- Lecture 24: Large Deviations
- Lecture 25: Random Walks