| Lecture 1 | Introduction |
| Lecture 2 | Propositional Logic |
| Lecture 3 | Predicate Logic |
| Lecture 4 | Basic Proof Techniques |
| Lecture 5 | Mathematical Induction, Quiz |
| Lecture 6 | Strong induction, well-ordering principle, method of invariants |
| Lecture 7 | More examples on invariants, introductions to sets, operations on sets |
| Lecture 8 | Russell's paradox, Halting Problem, Quiz |
| Lecture 9 | Countability, Pigeonhole principle |
| Lecture 10 | Pigeonhole Principle, GCD |
| Lecture 11 | GCD, Modular arithmetic |
| Lecture 12 | Multipicative inverse, checksum, Quiz |
| Lectures 13,14,15,16 | Fermat's Lemma, Chinese Remainder Theorem, Cryptography, Primality Testing |
| Lecture 17 | Basic Counting Techniques, Quiz |
| Lecture 18 | More Counting Techniques |
| Lecture 19 | Counting by Inclusion Exclusion |
| Lecture 20 | Counting by recurrence relations |
| Lecture 21 | Generating Functions |
| Lecture 22 | Fields, coding theory |
| Lecture 23 | Coding theory, Berlekamp-Welch algortihm |
| Lectures 24-25 | Graphs, Eulerian Graphs, Trees, Quiz |