CS 360: Introduction to the Theory of Computing (Spring 2018)

General information

Timothy Ng (tim.ng@uwaterloo.ca)
Office hours: Tuesday and Thursday 10:00-11:00 , DC 3124
Teaching assistants
Rylo Ashmore (rjashmor@uwaterloo.ca)
Office hours: Wednesday 2:30-3:30, DC 2551A
Stavros Birmpilis (sbirmpil@uwaterloo.ca)
Office hours: Tuesday 3:30-4:30, DC 2302D
RCH 308, Tuesday and Thursday 8:30-9:50
Official course information
University undergraduate calendar
School of Computer Science description
Course webpage


We will use Piazza for course announcements and communication.

Marks will be made available through LEARN.


There is no required textbook for this course. Lectures will be roughly following Hopcroft, Motwani, Ullman. Introduction to Automata Theory, Languages, and Computation, 3rd ed. (2007).

A copy has been placed on reserve in the DC library. However, the material in this course is fairly standard and so any introductory theory of computation textbook will suffice (although notation may differ). In addition, lecture notes will be made available shortly before or after each lecture.


Final grades for this course will be determined by the following formula: $$ \sum_{i=1}^5 (6\% \times A_i) + (25\% \times M) + \left( 45\% + \sum_{i=1}^5 (6\% \times (1-A_i)) \right) \times F,$$ where $A_i$ is the percentage grade for assignment $i$, $1 \leq i \leq 5$, $M$ is the grade for the midterm, and $F$ is the grade for the final.

In other words, there are five assignments worth up to 6% each, one midterm worth 25%, and a final exam worth at least 45%, with the portion of the grade that you don't receive on the assignments assigned to the final.


References are given as section numbers for Hopcroft, Motwani, Ullman 3rd ed.

May 1
Introduction and basic definitions (1.5)
May 3
Deterministic finite automata (2.2)
May 8
Nondeterministic finite automata (2.3)
May 10
$\varepsilon$-NFAs, regular operations (2.5, 3.1.1, 3.2.3)
May 15
Kleene's theorem (3.1, 3.2)
May 17
Non-regular languages, closure properties (4.1, 4.2)
May 24
Context-free grammars (5.1)
May 29
Parse trees, ambiguity, Chomsky normal form (5.2, 5.4, 7.1)
May 31
Pushdown automata (6.1, 6.2)
June 5
Equivalence of PDAs and CFGs (6.3)
June 7
Non-context-free languages (7.2)
June 12
Closure properties of CFLs (7.3)
June 14
Computability theory and Turing machines (8.2)
June 19
Extensions of Turing machines (8.4)
June 21
Decidability and decidable properties of regular and context-free languages (4.3, 7.4)
June 26
Undecidability and universality (9.1, 9.2)
June 28
Undecidable problems (9.3)
July 3
Reductions (9.3)
July 5
Rice's theorem, Post correspondence problem (9.3.3, 9.4)
July 10
Time complexity and P (10.1)
July 12
NP (10.1)
July 17
NP-completeness and the Cook-Levin theorem (10.2)
July 19
co-NP and the polynomial hierarchy, space complexity (11.1, 11.2)
July 24


Assignment 1
Due May 18 (Marker: Rylo Ashmore)
Update (May 11, 4:30 pm): Q5 has been clarified to ask for the language of words with edit distance at most 1.
Assignment 2
Due June 1 (Marker: Stavros Birmpilis)
Assignment 3
Due June 15 (Marker: Rylo Ashmore)
Assignment 4
Due July 6 (Marker: Rylo Ashmore)
Assignment 5
Due July 25 (Marker: Stavros Birmpilis)


The midterm will be held on Tuesday June 19, 7:00-8:50 pm in STC 0010. There will be no makeup or deferred sitting for the midterm. In cases where a student is unable to write the midterm, with approval from the instructor, the weight of the midterm will be assigned to the final exam.

More information about the midterm.


The final will be held on Monday July 30, 12:30-3:00 pm in PAC 9,10.

More information about the final exam.

University Policies

Academic integrity

In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. Please see the Office of the Academic Integrity for more information.


A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.


A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about 'rules' for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties.


A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.

Note for students with disabilities

AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.