# Course - Mathematics for Computer Science

Course Level: Senior

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.

Prerequisites
• 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