CS 600: Theory of Computation, Spring 2018

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, polynomial-time 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 NP-complete.
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 un-graded 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: 40%
Midterm: 25% or 35%
Final: 35% or 25%
Participation: 10%

 

 

Tentative Schedule

Date Topic Lecture Notes Homework
Jan. 25 Grammars and finite automata. automata.pdf HW 1 out.
Feb. 1 Turing machines, Universal Turing machines, the halting problem, P, NP and defining Karp reductions. turing_machines.pdf
Feb. 8 Countable and uncountable sets, Diagonalization, the halting problem revisited and mapping reductions. diagonalization.pdf HW 1 due. HW 2 out
Feb. 15 The recursion theorem, Karp reductions, NP-completeness of SAT. np_completeness.pdf
Feb. 22 More NP Completeness, CO-NP, Decision vs. Search. co_np.pdf HW2 due. HW 3 out.
March 1 Space Complexity:~A hierarchy theorem, Savage's Thoerem, NL = coNL. space.pdf
March 8 Midterm.   HW3 due.
March 15 Spring Break  
March 22 Review of the midterm solutions. Start of circuit complexity circuits.pdf  
March 29 Class possibly canceled. To be decided.  
April 5 Continuing circuit complexity. HW4 out.
April 12 Randomized Time Complexity random.pdf  
April 19 Interactive proofs aurthur_merlin.pdf HW 4 due. HW 5 out.
April 26 Interactive proofs: IP = PSPACE ip.pdf
May 3 Zero knowledge proofs ip_equals_pspace.pdf  
May 10 Final Exam   HW 5 due.