CS701 : Theory of Computation

Course Overview

Course Synopsis

This is the first pure course in theoretical computer science. It discusses some of the fundamental questions about computation. It starts with an overview of the concepts in theory of automata. Then discusses computability theory in detail. After developing concepts in computability theory the course moves forward to complexity theory. Complexity theory is subdivided into time and space complexity. The course first discusses time complexity and after that space complexity is covered in detail.

Course Learning Outcomes

At the completion of the course, you should be able to answer the following questions:

  • What is computation?
  • Is there a universal model of computation?
  • Can everything be computed?
  • Can we identify problems that are not computable?
  • What resources are needed to perform a certain computation?
  • Can we identify computationally hard problems?


Course Calendar

1 Introduction to Theory of Computation and Overview of the Course
2 Set Thoery, Sets, Sequences, tuples, Functions, Relations and Graphs
3 Turing Machine and Its Language
4 Designing Turing Machines
5 Variants of Turing Machines
6 Enumerators, Dovetailing, The Church-Turing Thesis, Hilbert's tenth Problem
7 Decidable Languages, The Acceptance Problem for DFAs
8 The Halting Problem, Universal TM
9 Undicidability of the Halting Problem
10 Linear Bounded Automata, Computation Histories, Context Free Grammars
11 Russell's Paradox, Reducibility, Emptiness Problem
12 Post Correspondence Problem, Computable Functions
13 Computable Functions, Reducibility
14 Reducibility, Recursion Theorem
15 Recursion Theorems, Logical Theories
16 Logical Theories
17 Logical Theories, Godel's Theorem
18 Oracles, Turing Reducibility
19 A definition of information, Incompressible Strings
20 Incompressible Strings, Complexity Theory
21 Big Oh, Little Oh Notations, Time Complexity
22 Non-Deterministic Time, The Class P, The Class NP
23 The Class NP, Polynomial Time Verifiers
24 The Class NP
25 Subset Sum Problem, Satisfiability
26 NP-Completness, Satisfiability, 3-Color
27 Satisfiability
28 The Cook-Levin Theorem
29 NP-Completeness, Independent Sets
30 Independent Sets, NP-Completeness, Clique, Vertex Cover
31 NP-Completeness, Clique, Vertex Cover
32 Hamiltonian Path Problem
33 The Subset Sum Problem
34 The Traveling Salesman Problem
35 An Approximation Algorithm for TSP Problem
36 Space Complexity
37 Space Complexity (Cont.)
38 Relationship between Space and Time Complexity, PSPACE-Completeness
39 TQBF, Prove that TQBF is PSPACE-Complete
40 TQBF, FORMULA-GAME, Generalized Geography
41 Generalized Geography (Cont.)
42 LOGSPACE Transducer
43 Prove the Theorem: NL = co-NL
44 Prove the Theorem: NL = co-NL (Cont.)
45 Overview of the course covered