Theory of Computation

CS41001, Autumn 2019-20, LTP: 3-1-0


Class Timings MON: 12:00-12:55; TUE: 10:00--11:55; THUR: 08:00-08:55
Venue NC 333
Instructor Somindu Chaya Ramanna
Teaching assistants Manideep Burada, Siddharth Singh, Prajwal Singhania, Arkajyoti Pal

Syllabus

Theory of Computability

Complexity Theory

References

1. Automata and Computability by Dexter Kozen. (main text)
2. Computational Complexity by S. Arora and B. Barak. (main text)
3. Introduction to Automata Theory, Languages and Computation by John E. Hopcroft and Jeffrey D. Ullman. (reference for some topics covered in class)
4. Introduction to Computability by Fred C. Hennie. (recursive function theory)
5. Introduction to the Theory of Computation by Michael Sipser.
6. Elements of the Theory of Computation by H. Lewis and C. Papadimitriou.
7. Computational Complexity by C. H. Papadimitriou.
8. Computers and Intractability: A Guide to the Theory of NP-Completeness by Michael Garey and David S. Johnson.

Evaluation

The evaluation for this course will be based on a class test mid-sem and end-sem examinations. Details are below.
50%: end-sem exam
30%: mid-sem exam
20%: class test(s)

Tests/Exams

Class Test 1

Mid-Sem

Class Test 2

Class Test 3

Tutorials

Tutorial 1 Turing Machines and their Variations

Tutorial 2 Recursive and Recursively enumerable sets, (Un)decidability, Rice's theorem

Tutorial 3 Valid/Invalid Computations of Turing Machines

Tutorial 4 PCP, Undecidable Problems in Language Theory and More

Tutorial 5 Recursion Theorems

Tutorial 6 Incompleteness Theorem, Type-0 Grammars

Tutorial 7 P, NP, NP-Completeness

Tutorial 8 Space Complexity

Tutorial 9 Hierarchy Theorems and Relativisation

Tutorial 10 Polynomial Hierarchy

Practice Problems

Note: There will be no evaluation for the tutorials. The purpose is for you to get more exposure and be able to solve problems independently. DO NOT search for solutions online during these sessions. -->

Possibly Useful Links

Courses:

An Intensive Introduction to Computational Complexity Theory by Venkatesan Guruswami, Ryan O'Donnell
Computational Complexity Theory by Chandan Saha
Computational Complexity by Luca Trevisan

Blogs:

In Theory by Luca Trevisan
Gödel's lost letter and P=NP by Richard Lipton
Shtetl-Optimized by Scott Aaronson

Complexity Zoo: a compilation of all existing complexity classes; the pdf version

General/Expository Articles:

Gödel, Hilbert and Brouwer
Hibert, Gödel and Turing
Hibert's Program Then and Now
Computability and Complexity by Jon Kleinberg and Christos Papadimitriou
Complexity Theory by Eric W. Allender, Michael C. Loui and Kenneth W. Regan
Complexity Theory - A Survey by Oded Goldreich
Complexity Theory - A Survey by Oded Goldreich and Avi Wigderson
The History and Status of the P vs. NP Question by Michael Sipser