Complexity theory creates an appropriate framework for,among other things, the questionHow complex is a given algorithmic problem? (as opposedto how complex an individual algorithm for solving that problem is),and in many important situations, provides a satisfyingly precise answer to this question.
This course will offer a reasonably comprehensive introduction to logic,computability, and complexity. In particular, we intend to cover the following topics:
6 x 45 minutes a week worth of freely interleaved lectures, discussions, and exercises.
At the (4-hour) exam, students will be offered a collection of small problems of theoretical nature.