Computational Complexity is the mathematical investigation of several broad questions that have to do with computation. In this class, we shall develop the mathematics required to ask:
We seek to give a rigorous mathematical framework that will enable us to answer some of these questions. Along the way, we shall encounter several interesting mathematical tools. Complexity theory has been around as an area for more than 50 years, but it is still in its infancy. It is notorious for generating the hardest open questions in computer science.
This graduate level course will spend 2/3rds of the time on basic topics. The last 1/3rd of the course will be spent on advanced topics.