Description
Stay Tuned.
General Information
- Instructor: Toniann Pitassi (toni@cs.columbia.edu)
- Course Webpage: Introduction to Computational Complexity
- Time: Fridays: 1:10-3:40
- Classroom: TBD
Course Syllabus and Grading : Please read the following syllabus carefully. It includes information on grading, collaboration and use of AI policy, and important dates. Syllabus
Textbook and Reading Materials: We will post readings and lecture notes for each lecture. Supplementary recommended books are: Computational Complexity by Christos Papadimitriou; Computational Complexity A Modern Approach, by Arora and Barak.
Prerequisite: A very good background in CS Theory. You are expected to be familiar with the basic notions of Turing machines, decidability, nondeterminism, and NP-completeness, at the level of Chapters 3,4,7 of Sipser, Introduction to the Theory of Computation. You should also be comfortable with asymptotic notation (Big-O and Big-Omega), and basic run-time analysis of algorithm.
Grading: Stay tuned.
List of Topics : Here is a preliminary list of core topics. For more information, go to the details of each lecture below.
- Introduction to complexity theory; Turing machines; time complexity, the complexity classes P and NP, NP-completeness. Introduction to other notions of complexity that we will cover in the class and their relationships: space, randomness, communication complexity. Types of problems and solutions we will discuss: decision problems, optimization, search, approximation algorithms, randomized algorithms, worst-case versus average-case.
- Time complexity. Complexity classes P, NP, PH, EXP. Complete problems.
- Space complexity. Logspace, NL, RL, PSPACE. Graph connectivity, Branching Programs, Reversible and Catalytic Space
- Circuit complexity: circuits and formulas. Lower bounds for constant-depth circuits.
- Communication complexity.
- Randomized algorithms, BPP and RP, Relationship between Hardness (worst-case, average-case time complexity) and Randomness.
- Approximation algorithms, PCP theorem and consequences.
Materials
Lecture notes, homework assignments, and other materials will be posted here!
Lecture Notes and Slides: Here is the tentative plan for each lecture and corresponding readings. We will update these summaries as we progress through the semester.
- Sept 11: Intro to computational complexity. Lecture 1
- Sept 18: TBD. Lecture 2
- Sept 25: TBD. Lecture 3
- Oct 2: Lecture 4
- Oct 9: Lecture 5
- Oct 16: Lecture 6
- Oct 23: Lecture 7
- Oct 30: Lecture 8
- Nov 6: TBD. Lecture 9
- Nov 13: TBD. Lecture 10
- Nov 20: TBD. Lecture 11
- Nov 27: Holiday, No Class
- Dec 4: TBD. Lecture 12
- Dec 11 (Last Class): TBD. Lecture 13
Homework and Supplementary Material:
- Homework 1 To be posted.