COSC 545 - Theory of Computation (Spring 2012)

Georgetown University

Prof. Calvin Newport

Monday and Wednesday, 3:30 pm - 4:45 pm

Intercultural Center, Room 120

Course Overview


This course covers foundational results in theoretical computer science. Approximately the first half of the course will focus on finite automata and computability theory, with the remainder focused on complexity theory.


The required textbook for this course is Introduction to the Theory of Computation, 2nd Edition, Michael Sipser, 2006. Most of the topics covered in this course, and many of the problem set problems, will be drawn from this text.


Grades in the course will be based on six biweekly problem sets, two exams, and participation. The participation grade will be based on your attendance and involvement in class as well as the quality of your work when it is your turn to help grade problem sets. If you want full participation points, come to class, pay attention, ask good questions, and be thoughtful with your grading.

In determining your final grade, here is the relative weight for these factors:

Problem sets40%

How to Get an A in this Course (without Burning Out)

A few tips for doing well in this course without excessive amounts of stress:

Course Logistics

Office Hours

Office hours for this course will be held from 2:00 to 3:00 pm on Tuesdays, in my office. If we get backed up, office hours can continue as late as needed.


To ask me small logistical questions, I prefer that you grab my attention immediately before or after class. For substantive content questions, I prefer that you bring them to office hours. Use e-mail only when the above two options are not applicable.

Problem Sets

The following rules will help keep the problem set submission and grading process running smoothly:


There will be two exams in the course: a midterm and a final. The midterm covers automata and computability theory and the final covers complexity theory (i.e., it is not cumulative).

At least one question from the problem sets will be included on each exam. This question will be too difficult to figure out from scratch during the exam, so students should aim to understand their answers to every problem set problem they submit.

Material Covered by Midterm

The midterm covers lectures 1 to 10 and problem sets 1 and 2. From the lectures, you are expected to know all important definitions, to understand the proofs for any result that explicitly compares the strength of different language classes/computational models, and be comfortable with all important techniques (e.g., the pumping lemmas, mapping reducibility, etc.). You are not, however, expected to know all the examples covered in lecture. For the problem sets, you should understand and be able to provide an answer for every assigned problem.

Academic Integrity

I take academic integrity seriously. Your work on your problem sets should be the work solely of you and your collaborators. No other sources are allowed. That is, do not look up answers online, in other textbooks, etc. You must write-up your problem set work in your own words and list every collaborator.

Needless to say, during exams no outside resources may be consulted.

Problem Set Grading

Every student in the class will take turns grading problem sets. When it is your turn, we will meet, along with the other grader(s) for the problem set, at 1:00 pm on the Tuesday after the problem set is due, to review the problems and construct a grading rubric. You will then have a set period of time to grade your assigned problems according to the rubric and submit the grades.

My goal is for every student to only grade one problem set and have at least one other student helping with the problem set. The exact schedule will depend on enrollment.

We will discuss the details of this process as we get closer to the first problem set being due.

Qualifying Exam

The PhD qualifying exam includes a segment on theory of computation. It is based on the material covered in COSC 545 (which is summarized in the schedule below along with the corresponding chapters of the Sipser textbook). To help your review, here is a summary of what you are expected to know from this material for the qualifying exam:


Below is the tentative schedule for the course. Pending topics will be added and existing topics modified as the course progresses. Problem sets will be posted on the schedule as they become available. The readings column lists the chapters from the Sipser textbook that cover the corresponding lecture's material.

Class NumberDateDescription Readings
Part 1: Automata Theory
11/11Intro; finite automata1.1
21/18Non-determinism; regular languages; 1.2, 1.3
31/23Pumping lemma for regular languages; context-free grammars; Chomsky normal form1.4, 2.1
41/25Pushdown automata; pumping lemma for context-free languages2.2, 2.3
Part 2: Computability Theory
51/30Turing machines3.1
62/1Decidable languages; file look-up machine;
  • pset 1 due; (Graders: Amin and Andrew)
  • pset 2 available [Download] (Note: The pset has multiple pages)
72/6Undecidable and Unrecognizable languages4.2
82/8Reducibility5.1, 5.3, 6.3
92/13Linear-bounded automata; PCP5.1, 5.2
102/15Advanced topics in computability theory: recursion theorem; midterm review; pset 2 due (Graders: Brad and Chris)6.1
122/27Advanced topics in computability theory: decidability of logical theories, Godel's incompleteness theorem, and the computational complexity of information 6.2, 6.4
Part 3: Complexity Theory
132/29Time complexity; TIME and NTIME complexity classes7.1
143/12The classes P and NP7.2, 7.3
153/14NP-completeness; the Cook-Levin theorem;
  • pset 3 due; (Graders: Henry and Jon)
  • pset 4 available [Download]
163/19More NP-complete problems7.4, 7.5
173/21Space Complexity; SPACE and NSPACE complexity classes8.0
183/26Savitch's Theorem; PSPACE and PSPACE-Completeness8.1, 8.2, 8.3
193/28Games and Generalized Geography;
  • pset 4 due (Graders: Luca and Michael)
  • pset 5 available [Download]
204/2L and NL, NL-Completeness, and NL = coNL8.4, 8.5, 8.6
214/4Hierarchy Theorems9.0, 9.1
224/11Intractable Problems;
  • pset 5 due (Graders: Xiao and Yifang)
  • pset 6 available [Download]
9.0, 9.2
234/16No Class.
244/18Approximation Algorithms10.1
254/23Probabilistic Computation, BPP10.2
264/25Open (Lecture Overflow and/or Advanced Topic) pset 6 due (Graders: Me)
274/30Review for final examination
5/10Final Exam; 4:00 - 6:00pm; ICC 213