See this page for changes to the course structure resulting from the cancellation of in-person classes.

CSC236, Winter 2020

Welcome to the course website for CSC236, Introduction to the Theory of Computation. In this course you will augment your intuition as a programmer with analytical skills and proof. The course content comprises the following chapters:

  1. Induction
  2. Recurrences
  3. Program correctness
  4. Formal languages

The text for this course is CSC 236/240/B36 Introduction to the Theory of Computation, by Vassos Hadzilacos, available online at no charge.


You can reach me (Colin Morris) at I will aim to reply to e-mails within 48 hours. Please include "236" in the subject line.

Office hours

My office hours are Wednesday 2-4 p.m. in BA2283 via BB Collaborate.

The CSC Help Centre is another resource for getting help with course material. They are open Monday to Friday from 2-6 p.m.

Course discussion board

If your question is potentially of general interest, consider posting it to the course discussion board instead of e-mailing me. It increases your chance of getting a prompt answer, and helps your fellow students.

Please do not discuss assignment solutions on the board until the deadline has passed and solutions have been posted to the course website (see Academic integrity).


Please verify that you meet the prerequisites for this course. If you do not, but would still like to take the course, it's important that you contact me as soon as possible to request a waiver. If you don't, you may be removed from the course.

Grading scheme

Note: This marking scheme was modified following a vote held during week 11. For the original marking scheme, see the original course information sheet from the beginning of the year.

Item Due Weight
Final April 9 20%
Assignments Assignment 1 Thurs January 30 12.5%
Assignment 2 Thurs March 12 12.5%
Assignment 3 Thurs April 2 7%
Term tests Term test 1 Mon February 3 15%
Term test 2 Mon March 16 23 10%
Quizzes Every tutorial 23%

Grades will be posted to MarkUs.


In case you find it useful, here is a link to a Google calendar with some important dates for the course (e.g. midterms, assignment due dates, extra office hours).


You will have opportunity on MarkUs to request a review of the grading of any piece of term work. Please give a specific reason for any request, indicating any errors or omissions you think the marker may have made. Remark requests may not be accepted if they are not accompanied with a reason, or if they are made more than three weeks after the work in question was returned.

Note that the result of a re-mark may be that the mark goes down, up, or stays the same, depending on what we see when we reconsider it. Also, we may choose to review the grading of the entire piece of work, rather than one specific question.

If you would like me to review the grading of a tutorial quiz, please bring it to me during office hours. Your TA may be able to answer questions about why your quiz was graded a certain way (or explain comments that they left), but they will not modify quiz grades after returning them.

Course information sheet

For posterity, this is the course information sheet that was distributed on the first day of class. (All the information on the course info sheet is also present on the course website. In fact, the course info sheet is essentially a partial snapshot of the course website as it existed on January 6.)