CS304
Theory of Computation
The mathematics of computation itself: automata, Turing machines, undecidability, and the P vs NP question.
10 modules · 40 lessons · Practice after every lesson
Leads to
Syllabus
Module 1
Formal Languages
- Alphabets, Strings, and Languages
- Operations on Languages
- Grammars and Derivations
- Decision Problems and Encodings
Module 2
Finite Automata
- Deterministic Finite Automata
- Nondeterministic Finite Automata
- Epsilon Transitions
- Closure Properties of Regular Languages
Module 3
Regular Expressions and Regular Languages
- Regular Expressions
- Equivalence of Automata and Regular Expressions
- State Minimization
- The Pumping Lemma for Regular Languages
Module 4
Context-Free Languages
- Context-Free Grammars
- Parse Trees and Ambiguity
- Normal Forms
- Closure Properties of Context-Free Languages
Module 5
Pushdown Automata
- Pushdown Automata
- Equivalence of PDAs and CFGs
- Deterministic Context-Free Languages
- The Pumping Lemma for Context-Free Languages
Module 6
Turing Machines
- The Turing-Machine Model
- Variants and Robustness
- Recognizable and Decidable Languages
- Universal Computation and Encodings
Module 7
Decidability
- Deciders and Recognizers
- Mapping Reductions
- The Halting Problem
- Rice’s Theorem and Semantic Properties
Module 8
Complexity Foundations
- Time and Space Complexity
- Polynomial Time and Efficient Computation
- Nondeterminism and NP
- Certificates and Verification
Module 9
NP-Completeness
- Cook–Levin and Satisfiability
- Polynomial-Time Reductions
- Classic NP-Complete Problems
- Designing Correct Reduction Gadgets
Module 10
Beyond NP
- Space Complexity and PSPACE
- Randomized Complexity Classes
- Approximation and Hardness of Approximation
- The Church–Turing Thesis and Limits of Models
Start Theory of Computation.
No setup, nothing to install. Try the first lessons before you sign up.