Spring 2014
EECS 335: Introduction to the Theory of Computation
3:30--4:45 Monday and Wednesday

Annenberg Hall, Room G21


Department of Electrical Engineering and Computer Science
Northwestern University


class homepage:



(last updated 5/25/2014)


Important announcements. Check regularly.


1.   The term paper is due by email to the instructor at noon Saturday 6/7/2014. (Posted on 4/19/2014.)


2.   The schedule for group presentations is being added below. (Posted 4/6/2014.)


3.   Please read this syllabus thoroughly yourself before attending the first class on Monday. (Posted on 3/30/2014.)


4.   Note that e-book versions of the textbook are available at Springer. (Posted on 3/29/2014.)



This course gives an introduction to the mathematical foundations of computation. The course will look at Turing machines, universal computation, the Church-Turing thesis, the halting problem and general undecidability, Rice theorem, the recursion theorem, efficient computation models, time and space (memory) bounds, deterministic and nondeterministic computation and their relationships, the P versus NP problem and hard problems for NP and beyond.


Course Goals:

A firm background in the basic principles of theoretical computer science with a particular understanding of undecidability and intractability, i.e., the theoretical limitations of computation.


Ming-Yang Kao

Office: Tech M324

Phone: 847-230-9867

Email: kao@northwestern.edu

URL: www.cs.northwestern.edu/~kao

Office Hours: 10:00--12:00 Friday, or by appointment


Teaching Assistants:

This class currently does not have a TA and is unlikely to have one.



1.   EECS 212 Mathematical Foundations of Computer Science


Course Work and Grading Policy:

The following grading policy is based on the assumption that this class will not have a TA. In the event that the department is able to provide this class with a TA, the following grading policy will be revised.


1.   0% for weekly reading assignments: Reading assignments will be posted on the class homepage. You are responsible for the materials that are assigned but are not covered in detail or at all in class. Some of such materials are covered in the prerequisites or even earlier courses.

2.   20% for weekly problem sets: Starting the second week, a problem set will be posted on the class homepage on Monday and will be due at the start of class on the following Monday. You will have one week to work on each problem set. A total of 8 problem sets will be assigned. Since we do not have a TA, these problem sets will be graded by your peer students in this class and/or nominally by the instructor.

3.   20% for participation in classroom discussions.

4.   30% for a group presentation. Group presentations will be graded by both the instructor and your peer students in this class.

5.   30% for a term paper, which can be a survey, original research, or a combination of the two.

6.   There will be no midterm examination or final examination.


Required Textbook:

1.   Computability and Complexity Theory by Steve Homer and Alan Selman, the second edition, 2011.


Tentative Schedule:

This schedule is subject to modification. More details will be added as they become available. There will be a total of 19 meetings. Some of the meetings will be group presentations by students.


1.   (3 meetings): Chapter 2 (Introduction to Computability)

2.   (3 meetings): Chapter 3 (Undecidability)

3.   (1 meeting): Chapter 4 (Introduction to Complexity Theory)

4.   (2 meetings): Chapter 5 (Basic Results of Complexity Theory)

5.   (4 meetings): Chapter 6 (Nondeterminism and NP-Completeness)

6.   (2 meetings): Chapter 7 (Relative Computability)

7.   (1 meeting): Chapter 8 (Nonuniform Complexity)

8.   (2 meetings): Chapter 10 (Probabilistic Complexity Classes)

9.   (1 meeting): Chapter 11 (Introduction to Counting Classes)


Student Presentation Schedule:

1.   4/07: Sections 2.4 and 2.5 by Sinan Bolel, Rishabh Gemawat, Billy Gross, Gregory Leung.

2.   4/21: Chapter 4 by Gregory Neil Elliott, William Flahive, Madalyn Joann Gisch, Jasmine Tara Powell, Christopher Michael Yungmann.

3.   5/12: Section 6.6 by David Oluwatomiwa Elutilo, Andrew Kahn, Torin Quinlivan.

4.   5/14: Sections 7.1 and 7.2 by Kristin Funch, Melanie Klerer, Jacob Samson, Patrick Weston. (Please coordinate with the group for 5/19.)

5.   5/19: Sections 7.3 and 7.4 by Kevin Lafferty Broh-Kahn, Jeremy Kramer Chase, William Avery Ginsberg, Alexander Edward Sanz, Matt Schley, Aiqi Xie. (Please coordinate with the group for 5/14.)

6.   5/21: Chapter 8 by Gregory Warren Chan, Donald David Childs, Moritz Gellner, Yifan Guo, Jodie (Xuezhou) Zong.

7.   6/04: Chapter 11 by Irsal Alsanea, Tae Hun Kim, Alexander Kowalczuk, Paige Audrey Weldon, Ryan Douglas Schiller, Andre Sguerra.


Weekly Reading Assignments and Problem Sets:


Week 1. (3/31 and 4/2)

(a) Reading Assignment: Chapters 1 and 2.

Week 2. (4/7 and 4/9)

(a) Reading Assignment: Chapters 2 and 3.

(b) Problem Set #1: posted 4:30PM on 4/6/2014.

Week 3. (4/14 and 4/16)

(a) Reading Assignment: Chapter 3.

(b) Problem Set #2: posted 7:50PM on 4/13/2014.

Week 4. (4/21 and 4/23)

(a) Reading Assignment: Chapters 4 and 5.

(b) Problem Set #3: posted 8:30PM on 4/20/2014.

Week 5. (4/28 and 4/30)

(a) Reading Assignment: Chapters 5 and 6.

(b) Problem Set #4: posted 4:30PM on 4/27/2014.

Week 6. (5/5 and 5/7)

(a) Reading Assignment: Chapter 6.

(b) Problem Set #5: posted 2:15PM on 5/4/2014.

Week 7. (5/12 and 5/14)

(a) Reading Assignment: Chapters 6 and 7.

(b) Problem Set #6: posted 7:15PM on 5/11/2014.

Week 8. (5/19 and 5/21)

(a) Reading Assignment: Chapters 7 and 8.

(b) Problem Set #7: posted 1:30PM on 5/18/2014.

Week 9. (5/28)

(a) Reading Assignment: Chapter 10.

(b) Problem Set #8: posted 9:30PM on 5/25/2014.

Week 10. (6/2 and 6/4)

(a) Reading Assignment: Chapters 10 and 11.

(b) There is no new problem set for this week.

(c) The term paper is due by email to the instructor at noon Saturday 6/7/2014.