Theory of Computation

Theory of Computation. Instructor: Prof. Raghunath Tewari, Department of Computer Science and Engineering, IIT Kanpur. This is an introductory course on Theory of Computation intended for undergraduate students in computer science. In this course we will introduce various models of computation and study their power and limitations. We will also explore the properties of the corresponding language classes defined by these models and the relations between them. We will assume the student is comfortable in analytical reasoning and has preferably done a course on Data Structures and Algorithms. (from

Lecture 35 - Applications of Reduction

In this lecture we discuss several undecidable languages and prove their undecidability using reductions.

Go to the Course Home or watch other lectures:

Lecture 01 - Introduction to Finite Automata
Lecture 02 - Basic Notation and Convention, DFA (Deterministic Finite Automaton) Edit Lesson
Lecture 03 - Examples of DFAs
Lecture 04 - Computation by DFA and Regular Operation
Lecture 05 - Introduction to Nondeterminism
Lecture 06 - NFA (Nondeterministic Finite Automaton), Definition and Examples
Lecture 07 - Equivalence of NFA and DFA, Closure Properties
Lecture 08 - Regular Expressions
Lecture 09 - Algebraic Properties, Regular Expression to NFA Conversion
Lecture 10 - Generalized NFA (GNFA) to Regular Expression Conversion
Lecture 11 - More Closure Properties of Regular Languages
Lecture 12 - Non-regular Languages and Pumping Lemma
Lecture 13 - Examples of Non-regular Languages
Lecture 14 - DFA Minimization
Lecture 15 - Introduction to Context Free Grammars (CFGs)
Lecture 16 - Examples of Context Free Grammars, Reg Subset of Context Free Languages
Lecture 17 - Parse Tree, Derivation, Ambiguity
Lecture 18 - Normal Forms, Chomsky Normal Form
Lecture 19 - Non-CFLs, Pumping Lemma
Lecture 20 - Examples of Non-CFLs
Lecture 21 - Pushdown Automata
Lecture 22 - Pushdown Automata - Definition and Example
Lecture 23 - Pushdown Automata - Examples and Relation with CFGs
Lecture 24 - Closure Properties of CFLs
Lecture 25 - Deterministic Context Free Languages
Lecture 26 - Turing Machine
Lecture 27 - More on Turing Machine
Lecture 28 - Non-deterministic Turing Machine Edit Lesson
Lecture 29 - Configuration Graphs
Lecture 30 - Closure Properties of Decidable and Turing Recognizable Languages
Lecture 31 - Decidability Properties of Regular and Context Free Languages
Lecture 32 - Undecidability
Lecture 33 - More on Undecidability
Lecture 34 - Reduction
Lecture 35 - Applications of Reduction
Lecture 36 - Rice's Theorem
Lecture 37 - Introduction to Computational Complexity Theory
Lecture 38 - More on the Class NP
Lecture 39 - NP-Completeness
Lecture 40 - More on NP-Completeness