CS 245: Logic and Computation (Spring 2019)
- Section
- 001, MC 2054, Tuesday and Thursday 8:30-9:50
- Instructor
- Timothy Ng (tim.ng@uwaterloo.ca)
- Office hours
- Mondays 3:30-4:30 & Thursdays 10-11, DC 3515
- Official course websites
- http://www.student.cs.uwaterloo.ca/~cs245/
- Piazza
This is where I'll put my lecture notes and other materials for my section.
These notes are based on lecture slides, available on the main course website, and other materials which incorporates the contributions of many previous CS 245 instructors over the years. Here is what I hope is a fairly complete list of all the contributors who helped shape this particular version of the lecture notes, in alphabetical order: Jonathan Buss, Borzoo Bonakdarpour, Alice Gao, Lila Kari, Anna Lubiw, Brad Lushman, Daniela Maftuleac, Prabhakar Ragde, Collin Roberts, Ryan Trefler, Peter Van Beek, Steve Wolfman.
Lectures
References are given as section numbers for Huth and Ryan.
- May 7
- Introduction to Propositional Logic (1.1, 1.3)
- May 9
- Structural Induction (1.3, 1.4.2)
- May 14
- Unique Readability (1.3, 1.4.2)
- May 16
- Semantics (1.4.1)
- May 21
- Logical Equivalence and Applications (1.5.1)
- May 23
- Semantic Entailment and Natural Deduction (1.4.3, 1.2)
- May 28
- Rules of Natural Deduction (1.2)
- May 30
- Derived Rules for Natural Deduction (1.2.2)
- Jun 4
- Soundness of Natural Deduction for Propositional Logic (1.4.3)
- Jun 6
- Completeness of Natural Deduction for Propositional Logic (1.4.4)
- Jun 11
- Introduction to Predicate Logic (2.1)
- Jun 13
- The Language of Predicate Logic (2.2)
- Jun 18
- Substitution, Semantics of Predicate Logic (2.2.4, 2.4.1)
- Jun 20
- Environments (2.4.1)
- Jun 25
- Satisfaction and Semantic Entailment for Predicate Logic (2.4.2)
- Jun 27
- Natural Deduction for Predicate Logic (2.3)
- Jul 2 (No lecture)
- To make up for Canada Day on July 1, July 2 is treated as a Monday.
- Jul 4
- Natural Deduction for Predicate Logic (2.3)
- Jul 9
- Soundness and Completeness of Predicate Logic
- Jul 11
- Introduction to Program Verification (4.1-4.3)
- Jul 16
- Conditional Statements (4.3)
- Jul 18
- While Loops and Total Correctness (4.3, 4.4)
- Jul 23
- Arrays
- Jul 25
- Introduction to Computability
- Jul 30
- Undecidability and the Halting Problem
Mid-term feedback
I asked the class for some feedback sometime before the midterm test. I've made the results available here. As always, if there's something that I can do to help you learn, please let me know.