Theory of Computation (TOC) is the part of computer science that studies which problems computers can solve, how they solve them, and how efficiently they can do it.
- Studies simple abstract machines and helps design compilers and language processors.
- Identifies which problems can or cannot be solved by a computer.
- Analyses the time and memory needed to solve problems and compares their efficiency.
- It provides a foundation for understanding the limits and capabilities of computers and helps us explore the fundamental principles of computation.

Why We Need Theory of Computation:
- Understand the limits of what computers can solve.
- Design faster and more efficient algorithms and programs.
- Building a strong foundation in programming and algorithms, making coding easier to understand.
- Improve the performance and reliability of computing systems.
Example: TOC can help a computer check if a password is correct or not. This shows how it solves problems step by step.
Introduction
Explains different abstract machines to model computation and understand its limit.
Finite Automata
Studies automata and formal languages to model computation and understand its limit.
- Finite Automata Introduction
- Minimization of DFA
- Operations on DFA
- NFA to DFA Conversion
- Problems on Finite Automata
Regular Expressions, Grammar & Language
Highlighting how they work together in pattern recognition and language processing.
- Regular Expressions, Grammar & Languages
- Designing Finite Automata from Regular Expressions
- Arden’s Theorem
- L-graphs and what they represent
- Hypothesis (language regularity) and algorithm (L-graph to NFA)
- How to identify if a language is regular or not
- Star Height of Regular Expression and Regular Language
- Generating regular expression from finite automata
- Kleene’s Theorem Part-1
- MEALY and MOORE Machines
>> Quiz on Regular Languages and Finite Automata
CFG (Context Free Grammar)
It handles nested structures and generate context-free languages, which are essential for defining programming language syntax and structure.
- Relationship between grammar and language
- Simplifying Context Free Grammars
- Closure Properties of Context Free Languages(CFL)
- Union & Intersection of Regular languages with CFL
- Converting Context Free Grammar to Chomsky Normal Form
- Converting Context Free Grammar to Greibach Normal Form
- Pumping Lemma
- Check if the language is Context Free or Not
- Ambiguity in Context Free Grammar
- Operator grammar and precedence parser
- Context-sensitive Grammar (CSG) and Language (CSL)
PDA (Pushdown Automata)
Describe automata that uses stack-based memory, used for recognizing context-free languages.
- Pushdown Automata
- Pushdown Automata Acceptance by Final State
- Detailed Study of Pushdown Automata
- Problems on Pushdown Automata
>> Quiz on Context Free Languages and Pushdown Automata
Turing Machine
Studies the Turing Machine model to understand the fundamental theoretical limits and power of algorithmic problem solving.
- Turing Machine
- Halting Problem
- Theory of Computation | Applications of various Automata
- Turing Machine as Comparator
- Problems on Turing Machine
>> Quiz on Turing Machines and Recursively Enumerable Sets
Decidability
It covers which problems can be solved or cannot be solved at all and classifies them based on time and space complexity.
- Decidability
- Undecidability and Reducibility
- NP-Completeness | Set 1 (Introduction)
- Proof that Hamiltonian Path is NP-Complete
- Proof that vertex cover is NP complete
- Computable and non-computable problems