CS 245: Logic and Computation (Spring 2026)



General Information

Course Description

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:

Course Meet Times

Students registered in the course may log into Quest to view their lecture and tutorial meet times.

If you wish to register or to change sections, either use Quest or contact a Computer Science academic advisor. The instructors and course coordinator do not support course registrations.


Office Hours

For questions concerning course material, please join us during our scheduled office hours. Office hours will start in the second week of classes. Times listed below are in Eastern Time. Note whether specific office hours are on campus or online; and refer to LEARN on how to connect to online office hours. For administrative questions, contact the coordinator, Dalibor Dvorski, by email: ddvorski@uwaterloo.ca.


Grading Scheme

Note: Students must pass the weighted exam portion of the course (Midterm Exam, Final Exam) in order to pass the course.


Textbook

For the first part of the course, we will roughly follow the lecture notes of Eric Blais, available online here. The recommended textbook for this course is Mathematical Logic for Computer Science, second 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 take notes from the course and work from these.