1. Introduction
  2. Course Tools
  3. Program Correctness
  4. Concrete Evaluation
  5. Proposition and Proofs
  6. Symbolic Execution
  7. Preconditions and Proof States
  8. Inductive Reasoning
  9. Mathematical Induction
  10. Variants of Inductive Proof
  11. Propositional Logic
  12. First-order Logic
  13. Natural Deduction
  14. Additional Topics in Logic
  15. Mathematical Modeling
  16. Sets and Their Operations
  17. Set Inclusion Principles
  18. Contradictory Proof
  19. Functions and Relations
  20. Equivalences
  21. Program Complexity
  22. Fundamental Counting Principles
  23. Ordered and Unordered Choice
  24. Counting-based Reasoning
  25. Counting Operations
  26. Recurrences
  27. Mathematical Applications to Programming
  28. Modeling with Graphs
    1. Introduction to Graphs
    2. Minimum Spannning Trees
    3. Shortest Paths
    4. Case Study: Automata
  29. Probabilistic Reasoning
    1. Frequentist Probability
    2. Random Variables and Expectation
    3. Conditional Probabilities