Logic and Computation
Lectures meet Tuesdays and Thursdays.
Tutorials meet Fridays.
A schedule (including tentative due dates) can be found here.
This course uses Piazza as an online discussion forum. You are encouraged to post
any questions you might have about the course material.
For administrative questions unrelated to the course material, please see
below for whom to contact.
The course staff monitor the forum regularly, and you will usually get a
response within two business days if you make your question clear.
You are encouraged to answer questions on Piazza. Thinking through
other students' questions and writing down a response is a
good exercise and earns you good karma.
But please avoid giving away details of your solution to any homework problems.
By default, your posts are visible to the course staff and other students, and
you should prefer this mode so that others can benefit from your question and
the answer. However, you can post privately so that only the course staff can
see your question, and you should do so if your post might reveal information
about a solution to a homework problem. If you post privately, we reserve the
right to make your post public if we think the class will benefit.
You can post anonymously if you wish not to reveal your identity to other
The discussion forum is the most effective way to communicate with the course staff.
However, please do not post things that add no useful technical information;
posts like "I have the same question as this one posted" or
"I agree with this comment" should be avoided.
Important course announcements will be posted on Piazza, so check in often.
Office hours start in the second week of classes.
Times and locations are subject to change.
For questions concerning course material, please join us during the instructors'
and the instructional apprentices' office hours.
For administrative questions, contact the coordinator, Dalibor Dvorski.
CS 245 plays a key role in the development of mathematical skills
required in the Computer Science program, and thus complements MATH 135
(Algebra), MATH 239 (Graph Theory and Enumeration), and STAT 230
(Probability). The course covers a variety of topics related to logic
and computation that are required as background for other courses in
computer science. It differs both in tone and content from a logic course
one would typically find in a mathematics program. The course aims to
At the end of the course, students should be able to
The recommended textbook is
Mathematical Logic for Computer Science (2nd Edition) by Lu Zhongwan.
Students may access an electronic version of the textbook through the library.
Please note that this book does not cover all the material presented in the
course, and is meant mainly for definitions, notation, and the sections on
formal deduction. For the rest of the material, students should use the lecture
slides as the main reference. Lecture slides are available electronically on