2017 Computational Complexity Theory

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Mathematical and Computing Science
Watanabe Osamu  Ito Toshiya 
Course component(s)
Day/Period(Room No.)
Mon7-8(W832)  Thr7-8(W832)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

This course introduces the fundamentals of computational complexity theory. The course covers basic concepts such as computational models, computational complexity measures (e.g., time and space complexity measures), complexity classes, reducibility and completeness notions. Highlights are the proofs and applications of Time Hierarchy theorem and the NP-completeness of SAT, two fundamental results in computational complexity theory. Some advanced topics are also given.

Student learning outcomes

At the end of this course, students will be able to:
1) Evaluate the efficiency of algorithms correctly and appropriately, and use this ability to design algorithms.
2) Understand a formal treatment of computational complexity of a given problem, and discuss its upper and lower bounds.
3) Explain the time hierarchy of computational complexity of problems.
4) Understand a method for comparing the computational complexity of problems, and use it for analyzing given problems.


computation model, randomized computation model, cicuit computaion model, time and space complexity measures, circuit size complexity measure, complexity classes, P, NP, EXP, BPP, RP, ZPP, Time Hierarchy Theorem, reducibility, completeness, NP-completeness, polynomial-time hierarchey, interactive proof, circuit size lower bound, derandomization

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

At the end of each class, students are given exercise problems as a homework assignment (due next class). Then at the beginning of each class, the lecture starts with explanation to the exercise problems given in the previous class.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Algorithm and complexity measure Formal definition of a basic programming language
Class 2 Circit computation model: nonuniform model of computation and circuit size complexity An example of nonuniform computation
Class 3 Randomized computation model Examples of randomized computation
Class 4 Complexity class: deterministic complexity classes such as P, E, EXP Equivalent definitions for P, E, EXP. Inclusion relations among thise complexity classes.
Class 5 Time Hierarcky Theorem (1): Introduction An example of diagonalization method.
Class 6 Time Hierarcky Theorem: Proof Review of important points of the proof of Hierarchy Theorem
Class 7 Time Hierarchy Theorem: Applications Proof of P < E.
Class 8 Introduction of Class NP Examples of NP problems
Class 9 Relations between complexity classes Proof of P <= NP <= EXP
Class 10 Polynomial-time reduction (1): Introduction and examples Examples of polynomial-time reductions
Class 11 Polynomial-time reduction (2): Complexity analysis by using reductions Proofs of basic facts on reductions
Class 12 Polynomial-time reduction: Proof of NP-completeness of SAT Review of the details of the proof
Class 13 Polynomial-time hierarchy and relations among complexity classes: Introduction Proofs of basic facts on the polynomial-time hierarchy
Class 14 Polynomial-time hiererchy and relatinos among complexity classes: Randomized complexity classess Proof of the lemma of Adleman
Class 15 Circuit size lower bound its applications Conrete examples of applying derandomization techniques


All materials are provided during class; they can be also found on OCW-i.

Reference books, course materials, etc.

1) M. Sipser, Introduction to the Theory of Computation, 3rd edition, PWS Pub., 2013, ISBN-13: 978-1133187790.
2) D. Du and K. Ko, Theory of Computational Complexity (Wiley Series in Discrete Mathematics and Optimization), 2nd edition, Wiley, 2013 ISBN-13: 978-1118306086.

Assessment criteria and methods

Students' course scores are determined based on solutions to homework assignments given at the end of each class.

Related courses

  • MCS.T213 : Introduction to Algorithms and Data Structures
  • CSC.T271 : Data Structures and Algorithms
  • ZUS.F302 : Discrete Structures and Algorithms
  • MCS.T322 : Combinatorial Algorithms
  • MCS.T405 : Theory of Algorithms

Prerequisites (i.e., required knowledge, skills, courses, etc.)

No prerequistites are necessary, but basic knowlege on programming and algorithms is expected.

Contact information (e-mail and phone)    Notice : Please replace from "[at]" to "@"(half-width character).

Osamu Watanabe watanabe[at]is.titech.ac.jp

Office hours

Contact by e-mail in advance for an appointment.

Page Top