Computability and Computational Complexity (2017 Autumn)

Objectives:
After completing the course, the student is able to reason about computability and computational complexity of different kinds of problems.

Content:
Computability is the area of computer science that studies the notion of computation: which problems can be solved by computers, which problems cannot be solved (by any future computer technology), and even different ways of doing computations. Computational complexity is the aim of computer science that focuses on classifying computational problems according to their inherent difficulty: which problems are easy and which are difficult, and how difficult computational problems can be. Contents: Turing machines Unsolvable problems Complexity classes P and NP NP-complete problems Space Complexity Beyond Turing