COURSE CONTENTS AND STRUCTURE In the first 3 weeks, we briefly treat the basic elements of Formal Language Theory, Computability and Recursive Function Theory. The main focus of this course is modern complexity theory, including an introduction to some state-of-art topics: basic relation among complexity classes reducibility completeness theory complexity hierarchies randomized computation Kolmogorov complexity Quantum computation There will be regular homeworks -- you are encouraged to get in groups of two or three (but not more) to work together. But any work you hand in MUST represent your own work -- you cannot share write-ups from your discussion group. Academic integrity includes citing any sources as appropriate.