Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Undergraduate Computational Complexity Theory

Ryan O'Donnell via YouTube

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Explore computational complexity theory through this comprehensive lecture series from Carnegie Mellon University's Spring 2017 undergraduate course taught by Ryan O'Donnell. Master fundamental concepts including Turing machines, time and space complexity classes, NP-completeness, and advanced topics like the polynomial hierarchy and interactive proofs. Begin with basic computational models and progress through key theorems including the Time Hierarchy Theorem, Cook-Levin Theorem, Savitch's Theorem, and the Immerman-Szelepcsényi Theorem. Examine complexity classes such as P, NP, coNP, PSPACE, and BPP while learning essential techniques like reductions, padding arguments, and oracle constructions. Investigate randomized complexity, interactive proof systems, and modern perspectives on hardness within P. Conclude with an analysis of why the P vs. NP problem remains one of computer science's greatest challenges. The course corresponds to Part III of Sipser's textbook and requires prior knowledge of basic computer science theory including big-O notation and Turing machines.

Syllabus

Undergrad Complexity at CMU - Lecture 1: Course Overview
Undergrad Complexity at CMU - Lecture 2: Turing Machines
Undergrad Complexity at CMU - Lecture 3: Simulations and Turing Machine Variants
Undergrad Complexity at CMU - Lecture 4: Time Complexity and Universal Turing Machines
Undergrad Complexity at CMU - Lecture 5: Time Hierarchy Theorem
Undergrad Complexity at CMU - Lecture 6: Problems in P
Undergrad Complexity at CMU - Lecture 7: SAT
Undergrad Complexity at CMU - Lecture 8: NP
Undergrad Complexity at CMU - Lecture 9: Nondeterminism
Undergrad Complexity at CMU - Lecture 10: Reductions
Undergrad Complexity at CMU - Lecture 11: NP-Completeness and the Cook--Levin Theorem
Undergrad Complexity at CMU - Lecture 12: NP-Completeness Reductions
Undergrad Complexity at CMU - Lecture 13: Search-to-Decision, Padding, Dichotomy Theorems
Undergrad Complexity at CMU - Lecture 14: Ladner's Theorem and Mahaney's Theorem
Undergrad Complexity at CMU - Lecture 15: coNP
Undergrad Complexity at CMU - Lecture 16: Space Complexity
Undergrad Complexity at CMU - Lecture 17: Savitch's Theorem and NL
Undergrad Complexity at CMU - Lecture 18: NL-Completeness and Logspace Reductions
Undergrad Complexity at CMU - Lecture 19: From P-Completeness to PSPACE-Completeness
Undergrad Complexity at CMU - Lecture 20: The Immerman--Szelepcsényi Theorem
Undergrad Complexity at CMU - Lecture 21: Randomized Complexity: RP, coRP, and ZPP
Undergrad Complexity at CMU - Lecture 22: BPP
Undergrad Complexity at CMU - Lecture 23: The Polynomial Hierarchy
Undergrad Complexity at CMU - Lecture 24: Oracle Turing Machines and P^NP
Undergrad Complexity at CMU - Lecture 25: Interactive Proofs: IP=PSPACE
Undergrad Complexity at CMU - Lecture 26: Beyond Worst-Case Analysis
Undergrad Complexity at CMU - Lecture 27: Hardness within P
Undergrad Complexity at CMU - Lecture 28: Why is P vs. NP Difficult?

Taught by

Ryan O'Donnell

Reviews

Start your review of Undergraduate Computational Complexity Theory

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.