COMP 690: Computational Complexity
Spring 2027Instructor: Saba Eskandarian
Contact: saba@cs.unc.edu
TA: TBD
Class Meetings: Tues/Thurs 2-3:15pm, Bingham 1005
Office Hours: TBD
Links:
Course Schedule
Gradescope
Canvas
Anonymous Feedback
Course Description
Computation is a powerful tool that has reshaped human life and solved centuries-old problems. But what are its limits? Are there some technical problems that simply cannot be solved by a combination of more ingenuity and silicon? Do we live in a world where the very structure of information in the universe prohibits efficient solutions to certain computational problems?
Motivated by these questions, this course explores the theory of Computational Complexity, an area of computer science concerned with understanding how computational resources allow us to solve problems of greater and greater complexity. Picking up where COMP 455 leaves off -- the celebrated P versus NP problem -- we will study various classes of computational problems, focusing on the techniques used to reason about the relationships between them.
Topics covered include time and space complexity classes, circuit complexity, randomized complexity classes, interactive proofs, and hardness of approximation. Along the way, we will find that the world of computational complexity is full of surprises and unexpected results that challenge our mathematical intuitions and preconceived notions of computation, randomness, and proof.
Textbook: Computational Complexity: A Modern Approach, by Sanjeev Arora and Boaz Barak
Assignments
Each student will act as a scribe for two lectures, preparing detailed notes in Latex for the content covered in their assigned class meetings. Each student will also give a presentation on a relevant topic of their choice that is not covered in the class lecture materials. A list of suggested topics is provided in the assignment directions, linked below. Finally, students will complete the four problem sets below. Problem sets are submitted on Gradescope using the Latex template provided here.- Scribe notes (2) and presentation: directions, scribe template
- Problem set 1 (source): due Tuesday, January 19
- Problem set 2 (source): due Thursday, February 18
- Problem set 3 (source): due Tuesday, March 30
- Problem set 4 (source): due Thursday, April 22
Note: After completing each problem set, you will receive feedback on your submission from AI and submit the feedback, along with a brief reflection, as part of your submission. See the template above for details. Points will be given for completion of the problems, or evidence of a serious attempt, and the feedback exercise.
Late Work. All problem sets are due at 11:59pm on the listed day and must be submitted via Gradescope. You get five “late days” in total for problem sets during the semester. You may use a late day to submit a problem set after the deadline via Gradescope. You may only use late days in one-day increments (no partial late days), and you may use at most two late days on a single assignment. If you submit an assignment late after running out of late days, you will receive no credit for the submission. Please submit your assignments on time and save your late days for extraordinary situations. Please contact me in advance if there are extenuating circumstances that may warrant an exception to this policy.