What is this course about?
This course presents an in-depth introduction to the main
models and concepts of the mathematical theory of
computation, including: Computability, Complexity, and
Logic. I will emphasize the ability to go from a
concrete problem to a mathematical model; and, after
proving things about the mathematical model, to correctly
interpret what we have learned about the concrete
problem. For example, we will learn how to tell whether
a problem we need to solve is NP complete, or even
undecidable, and if so, what to do about it.
Required Textbook:
Computational Complexity: A Modern Approach
by Sanjeev Arora and Boaz Barak, Cambridge University Press.
Meeting times: T, Th, 2:30 -- 3:45, room TBA
First meeting Tues., Jan. 19, 2016.
Prerequisites: A course on Finite Automata and Formal Languages such as CMPSCI 501.
Here is a diagram of the world of computability and complexity: