1. About
  2. Syllabus
  3. Course Tools
  4. Lab Solutions
  5. Week 1: Program Reasoning
  6. Demonstration Exercise #1
  7. 9/2: Introduction to Python and LaTeX
    1. Course Tools
  8. 9/4: A Review of Concrete Evaluation
    1. Concrete Evaluation
    2. Lab: Exploring Python
  9. 9/6: Symbolically Executing Programs
    1. Proposition and Proofs
    2. Symbolic Execution
    3. Lab: Program Equivalence Proofs
  10. Week 2: Inductive Reasoning
  11. Demonstration Exercise #2
  12. 9/9: Assumptions and the Nature of Proof
    1. Preconditions and Proof States
    2. Lab: Assumptions in Proofs
  13. 9/11: Structural Induction
    1. Inductive Reasoning Over Lists
    2. Lab: Recursion to Induction
  14. 9/13: Induction with Numbers
    1. Mathematical Induction
    2. Lab: Mathematical Induction Practice
  15. Week 3: Logic
  16. Demonstration Exercise #3
  17. 9/16: Variants of Induction
    1. Variants of Inductive Proof
    2. Lab: Strong Induction
  18. 9/17: Logic
    1. Propositional Logic
    2. First-order Logic
    3. Lab: Modeling with Logic
  19. 9/19: Logical Reasoning
    1. Natural Deduction
    2. Lab: Logical Reasoning
  20. Week 4: Logic Wrap-up
  21. 9/23: Natural Deduction (cont.)
    1. Natural Deduction (review)
    2. Lab: More Logical Reasoning
  22. 9/25: Logic Wrap-up
    1. Additional Topics in Logic
    2. Lab: Beyond Program Correctness
  23. 9/27: Exam #1
  24. Week 5: Mathematically Modeling Data
  25. Demonstration Exercise #4
  26. 9/30: Introduction to Sets
    1. Sets and Their Operations
    2. Set Inclusion Principles
  27. 10/2: Proving Set Equality
    1. Lab: Artificial Examples and Sets
  28. 10/4: Proof By Contradiction
    1. Contradictory Proof
  29. Week 6: Mathematically Modeling Behavior
  30. Demonstration Exercise #5
  31. 10/7: Relations and Functions
    1. Functions and Relations
  32. 10/9: The Ontology of Functions
    1. Lab: A Plethora of Definitions
  33. 10/11: Equivalences and Orderings
    1. Equivalences
  34. Week 7: Graphs
  35. Demonstration Exercise #6
  36. 10/14: Modeling with Graphs
    1. Introduction to Graphs
  37. 10/16: Exploring Graph Problems
    1. Lab: Exploring Graph Problems
  38. 10/18: Shortest Paths
    1. Minimum Spannning Trees
    2. Shortest Paths
    3. Lab: Spanning Trees and Shortest Paths
  39. (Fall break: 10/21–10/25)
  40. Week 8: Case Study: Finite Automata
  41. 12/2: Finite Automata
    1. Case Study: Automata
  42. 12/4: Modeling with Automata
    1. Lab: Verification of State Machines
  43. 11/1: Exam #2
  44. Week 9: Counting
  45. Demonstration Exercise #7
  46. 11/4: Fundamental Counting Principles
    1. Fundamental Counting Principles
    2. Ordered and Unordered Choice
  47. 11/6: Strategies for Counting
    1. Lab: Counting Practice
  48. 11/8: Double Inclusion
    1. Counting-based Reasoning
  49. Week 10: Complexity
  50. 11/11: Counting Wrap-up
    1. Lab: Case Study: Derangements
  51. 11/13: Counting Operations
    1. Counting Operations
    2. Graph Complexity
  52. 11/15: Recurrence Relations
    1. Recurrences
    2. Lab: Recurrences
  53. Week 11: Probability
  54. Demonstration Exercise #8
  55. 11/18: Frequentist Probability
    1. Frequentist Probability
    2. Random Variables and Expectation
  56. 11/20: Probability Lab
    1. Lab: Probability Practice
  57. 11/22: Conditional Probabilities
    1. Conditional Probabilities
  58. Week 12: Make-up Week
  59. 11/25: Make-up Exam
  60. 11/27: No class!
  61. (Thanksgiving break: 11/28–11/29)
  62. Week 13: Case Study: Probabilistic Reasoning
  63. 12/2: Markov Chains
    1. (No Reading or lab!)
  64. 12/4: Probabilistic Inference
    1. (No Reading!)
    2. Lab: Inference
  65. 12/6: Exam #3
  66. Week 14: Case Study: The Limits of Computation
  67. 12/9: Infinite Sets and Countability
    1. Counting
    2. Lab: Countability Proofs
  68. 12/11: The Thrilling Conclusion
    1. (No Reading!)
  69. 12/13: Guest Lecturer: TBD
  70. (Finals week: 12/16–12/22)
  71. 12/18 (2–5 PM): Revision Exam #4
  72. 12/20 5 PM: All work due deadline

CSC 208: Discrete Structures

Solutions to the labs

  • Exploring Python
  • Program Equivalence Proofs
  • Assumptions in Proofs
  • Recursion to Induction
  • Mathematical Induction Practice
  • Strong Mathematical Induction
  • Modeling with Logic
  • Logical Reasoning
  • More Logical Reasoning
  • Artificial Examples and Sets
  • A Plethora of Definition
  • Graph Problems
  • Spanning Trees and Shortest Paths
  • Verification of State Machines