Computational Complexity
Jan - May 2023

About this course

Complexity theory attempts to understand the amount of resources (time, space, energy, communication, randomness) that is necessary and sufficient to solve computational problems that can be solved by a model of computation (Classical or Quantum).

Starting in the early 60s, this study has resulted in many conceptual ideas about computation, randomness, and proofs being developed which subsequently ended up being deeply interrelated. In this course, we plan to cover some of these foundational ideas and connections.

To get a panoramic view of these connections, please check out this very well written book titled Mathematics and Computation by Avi Wigderson. For a broader perspective giving connection to mathematics and other fields, do have a look at Chapter 20 of this book.

Below is a tentative syllabus. We will not be able to cover all of it.

Tentative Syllabus