**Instructor:** Marcel Goh

**Email address:** marcel[dot]goh[snail]mail[dot]mcgill[dot]ca

**Classes:** Tuesdays and Thursdays 16:05 to 17:25 in Leacock 26.

**Office hours:** Tuesdays 13:00 to 15:00 at a bench under the western slab of Burnside Hall.
(I will be wearing a large black hat for visibility purposes.) In case of inclement weather, I will
hold office hours in Burnside 1117 instead.

**Notes:** A PDF of the course notes can be found here. These will
be updated shortly after each class with the new material covered. They are intended to be much more
comprehensive than what actually appeared on the board: a combination of everything I *planned* to
say, *did* say, and *wished* I'd said.

**Midterm exam:** Wednesday, 23 October 2024, from 18:10 to 20:10.

**Final exam:** Date to be announced later.

**29 August**

Today we introduced ourselves to each other and made some new friends. Then we talked about sets,
set-builder notation, special sets of numbers, and set inclusion. We did our first proof, a proof
by double-inclusion. Next we learned about set operations and laws thereof.

**3 September**

We learned about De Morgan's laws, defined the Cartesian product and power set, and talked a bit about
using counterexamples to prove that statements are false.

**5 September**

We began the lecture by discussing Russell's paradox, then embarked on a new section—propositional logic.
We defined
the AND, OR, NOT, and XOR operations, then learned some properties thereof. We ended the class by pondering the truth
table of the conditional operator. This was quite tricky, so we'll pick up next week by revising it.

**10 September**

We kicked off by going over the conditional and biconditional operators again, then
we defined the terms tautology,
contradiction, contingency, satisfiable, and falsifiable. We then launched into a long example about using
propositional logic to encode a Sudoku game. Then we briefly touched upon the *boolean satisfiability
problem*, which is outside the scope of the course, but you can read more about its importance to
computer science by searching it up on Wikipedia, etc.

**12 September**

Today we started a new section on predicate logic, learning how to translate between English sentences
and formulas in this logic. We also learned how to negate statements. Then we moved on to yet another
new section on proofs. We learned what constitutes proofs of "for all" and "there exists" statements.
It is at this junction where we had our first fearsome encounter with the Adversary.