Course Overview
Course Description
Content
This course will cover topics in computability theory and
complexity theory. Specifically, we will cover automata theory, Turing
machines, decidability, P and NP, polynomialtime reductions,
circuit complexity, randomized computation and extraction,
and proof systems. There is no required text; we will rely very
heavily on
the lecture notes found in the links below. These notes adapted
from Prof. Jonathan Katz's notes, which can be found
under the "links" section on the right.
Objectives
Students will learn the distinction between various
computational models, and the relationship between these
models.
Students will learn how to formally reduce one computational problem
to another.
They will learn to prove that a problem is NPcomplete.
Students will gain an understanding of the value of
randomness in computation, and they will learn to analyze
simple probabilistic events.
Students will learn about interactive proof systems,
and how to prove that a protocol is sound.
Course Requirements
The material in this course is difficult, and I expect students
to work hard. However, my goal, first and foremost, is that students gain
a basic understanding of the material, and some enthusiasm for
the subject. I
encourage students to ask a lot of questions, and I am happy to
slow down or repeat material whenever necessary. Some of the course
grading is allocated for effort, which can be demonstrated in
class, in office hours, or by exchange via email. These points
are intended to help the students that are struggling: if I see
that such a student is engaging with the material, I am very happy
to take that into account when assigning grades.
Homework
There will be 5 homework assignments, due every other week.
Students are welcome to work in groups, but every student
must write their solutions independently. Homeworks that
appear overly similar will be considered to violate the honor
code. Only a random subset of the problems will be graded on each
assignment. Students are expected to do all of the problems anyway. We
will review all of the problems in class, so that students can
evaluate their own understanding of the ungraded problems, and
seek help as needed.
I encourage students to type their answers, both because they
will be easier to read, and also because I believe it helps you clarify your
own thinking. You can use
this LaTex
template file, if it is helpful to you. There are also command
definitions that might be helpful
to
you here.
(If you're using the template file, you will need to
remove the comment where the preamble file is included.) This is a
great
LaTex reference,
with a list of useful symbols on page 75.
Exams
The two exams are worth 60% of the course grade: the better of the
two exams will count for 35%, and the lesser of the two will count for
25%. All testing is closed book, and notes are not permitted.
The two exams, including the final, each cover about a half of the
semester. The final is not cumulative. The date of the final exam, as
specified
by the university, is 5/10 at 4:30pm. I will not offer any
makeup exams, so students should plan accordingly.
Grading
Homework:
30%
Midterm: 25% or 35%
Final:
35% or 25%
Participation: 10%
Tentative Schedule
Date 
Topic 
Lecture Notes 
Homework 
Jan. 25 
Finite automata. 
automata.pdf 
HW 1 out. 
Feb. 1 
Pumping Lemma, Push down automata, Turing machines. 


Feb. 8 
Countable and uncountable sets, Diagonalization, Universal
Turing machines, and the halting
problem. 
turing_machines.pdf 
HW 1 due. HW 2 out 
Feb. 15 
Mapping reductions, P and NP. 


Feb. 22 
Karp Reductions 
np_completeness.pdf 
HW2 due. HW 3 out. 
March 1 
More Karp reductions, NPcompleteness.



March 8 
Midterm. 

HW3 due. 
March 15 
Spring Break 


March 22 
Review of the midterm solutions. 

March 29 
Class canceled. 


April 5 
CoNP, decision
vs. search, Space Complexity 
co_np.pdf space.pdf 
HW 4 out. 
April 12 
Space Complexity 


April 19 
The Polynomial Hierarchy, Circuit Complexity 
poly_hierarchy.pdf circuits.pdf 

April 26 
Circuit Complexity. (We did NOT do Sections 2.1, 2.2 or 2.3) 
circuits.pdf 
HW 4 due. HW 5 out. 
May 3 
Randomized Time Complexity 
random.pdf 

May 10 
Final Exam 

HW 5 due. 