# Theory of Computation

- Institution: IIT Kanpur
- Department: Computer Science and Engineering
- Teacher: Prof. Raghunath Tewari
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106104148)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106104148)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

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.

Intended audience: Computer Science undergraduate students.

Prerequisites: It is recommended that the candidate has done a course in Data Structures and Algorithms.

## Lectures

1. [Introduction to Finite Automata](https://invisiblenetwork.ai/learn/nptel/106104148/63dd76546715) (YouTube)
2. [Basic Notation and Convention, DFA](https://invisiblenetwork.ai/learn/nptel/106104148/485f14d71e92) (YouTube)
3. [Example of DFAs](https://invisiblenetwork.ai/learn/nptel/106104148/fd5fbe9c1a99) (YouTube)
4. [Computation by DFA and Regular operation](https://invisiblenetwork.ai/learn/nptel/106104148/923464dae026) (YouTube)
5. [Introduction to Nondeterminism](https://invisiblenetwork.ai/learn/nptel/106104148/7586e70ee556) (YouTube)
6. [NFA, definition and examples](https://invisiblenetwork.ai/learn/nptel/106104148/b8547ca1a0bc) (YouTube)
7. [Equivalence of NFA and DFA, Closure properties](https://invisiblenetwork.ai/learn/nptel/106104148/c0f136578821) (YouTube)
8. [Regular expressions](https://invisiblenetwork.ai/learn/nptel/106104148/8caa7a800b09) (YouTube)
9. [Algebraic properties, RE to NFA conversion](https://invisiblenetwork.ai/learn/nptel/106104148/5c597ab1f510) (YouTube)
10. [GNFA to RE conversion](https://invisiblenetwork.ai/learn/nptel/106104148/f681ffe74105) (YouTube)
11. [More closure properties of regular languages](https://invisiblenetwork.ai/learn/nptel/106104148/9e7cc259ceeb) (YouTube)
12. [Non-regular languages and pumping lemma](https://invisiblenetwork.ai/learn/nptel/106104148/aacbe2c3d051) (YouTube)
13. [Examples of non-regular languages](https://invisiblenetwork.ai/learn/nptel/106104148/7710440619f4) (YouTube)
14. [DFA minimization](https://invisiblenetwork.ai/learn/nptel/106104148/4b137356955f) (YouTube)
15. [Introduction to CFGs](https://invisiblenetwork.ai/learn/nptel/106104148/c1336c410006) (YouTube)
16. [Examples of CFGs, Reg subset of CFL](https://invisiblenetwork.ai/learn/nptel/106104148/77bd0a3856a2) (YouTube)
17. [Parse tree, derivation, ambiguity](https://invisiblenetwork.ai/learn/nptel/106104148/6829c61896dc) (YouTube)
18. [Normal forms, Chomsky normal form](https://invisiblenetwork.ai/learn/nptel/106104148/516487760e65) (YouTube)
19. [Non-CFLs, pumping lemma](https://invisiblenetwork.ai/learn/nptel/106104148/466b3fe28331) (YouTube)
20. [Examples of non- CFLs](https://invisiblenetwork.ai/learn/nptel/106104148/a3bea280eb36) (YouTube)
21. [Pushdown Automata](https://invisiblenetwork.ai/learn/nptel/106104148/805cac75aa63) (YouTube)
22. [Pushdown Automata - Definition and Example](https://invisiblenetwork.ai/learn/nptel/106104148/48ce8d7d5a93) (YouTube)
23. [Pushdown Automata - Examples and Relation with CFGs](https://invisiblenetwork.ai/learn/nptel/106104148/c04cc490a1f4) (YouTube)
24. [Closure Properties of CFLs](https://invisiblenetwork.ai/learn/nptel/106104148/5d1a493fb727) (YouTube)
25. [Deterministic Context Free Languages](https://invisiblenetwork.ai/learn/nptel/106104148/1b5027fe86b2) (YouTube)
26. [Turing Machine](https://invisiblenetwork.ai/learn/nptel/106104148/aa2b7869d6ec) (YouTube)
27. [More on Turing Machine](https://invisiblenetwork.ai/learn/nptel/106104148/801b31fb4234) (YouTube)
28. [Non deterministic Turing Machine](https://invisiblenetwork.ai/learn/nptel/106104148/25720100beb6) (YouTube)
29. [Configuration Graphs](https://invisiblenetwork.ai/learn/nptel/106104148/f458befc7f55) (YouTube)
30. [Decidability properties of Regular and Context Free Languages](https://invisiblenetwork.ai/learn/nptel/106104148/e08a2e87f77a) (YouTube)
31. [Undecidability](https://invisiblenetwork.ai/learn/nptel/106104148/fa62832ea71d) (YouTube)
32. [More on Undecidability](https://invisiblenetwork.ai/learn/nptel/106104148/bb9f78b8be24) (YouTube)
33. [Reduction](https://invisiblenetwork.ai/learn/nptel/106104148/60bd138766b3) (YouTube)
34. [Applications of Reduction](https://invisiblenetwork.ai/learn/nptel/106104148/029759957d80) (YouTube)
35. [Rice's theorem](https://invisiblenetwork.ai/learn/nptel/106104148/22e3994da386) (YouTube)
36. [Introduction to Computational Complexity Theory](https://invisiblenetwork.ai/learn/nptel/106104148/ef69aa5e445e) (YouTube)
37. [More on the class NP](https://invisiblenetwork.ai/learn/nptel/106104148/5e6013ed237a) (YouTube)
38. [NP-Completeness](https://invisiblenetwork.ai/learn/nptel/106104148/6a52625f9c9c) (YouTube)
39. [More on NP-Completeness](https://invisiblenetwork.ai/learn/nptel/106104148/c780e31bdcc3) (YouTube)
