Theory of Computation / Fall 2025

Course Description

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 intractability. We will rely heavily on Michael Sipser's book titled "Introduction to the Theory of Computation" and the lecture notes provided by the instructor.

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.

Course Requirements

The material in this course is challenging, and I expect students to put the time and effort. However, my goal, 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 who 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. Homework that appears overly similar will be considered to violate the honor code. All problems will be reviewed in a dedicated session led by the TA, giving students the opportunity to assess their 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. This is a great LaTex reference, with a list of useful symbols on page 75. You can use this LaTex template file to type your solutions.

Exams

The two exams are worth 70% of the course grade: the better of the two exams will count for 40%, and the lesser of the two will count for 30%. All testing is closed book, and notes are not permitted. The two exams, including the final, each cover about half of the semester. The final is not cumulative. I will not offer any makeup exams, so students should plan accordingly.

Grading

Homework: 25%

Midterm: 30% or 40%

Final: 40% or 30%

Participation/Quiz: 5%

Hours

Class: Thursday, 4:30-7:10 PM, James Buchanan Hall D023

Office Hours (Instructor): TBD, Research Hall 352

Office Hours (GTA): Click here for the Zoom info


Graduate Teaching Assistant