Computer Science
>
>

15-453 - Formal Languages, Automata, and Computability

Course Page

Overview

This course provides an introduction to formal languages, automata, computability, and complexity. The course consists of a traditional lecture component supported by weekly homework assignments and quizzes and a course project. There are two midterms and a final examination.

Topics

  • Automata and Languages: finite automata, regular languages, pushdown automata, context-free languages, pumping lemmas.
  • Computability Theory: Turing Machines, decidability, reducibility, the arithmetic hierarchy the recursion theorem, the Post correspondence problem.
  • Complexity Theory: time complexity, classes P and NP, NP-completeness, space complexity, PSPACE, PSPACE-completeness, the polynomial hierarchy, randomized complexity, classes RP and BPP.

Prerequisites

15-251 or 21-228.

Learning objectives

No data.

Textbooks and other notes

Textbook: Introduction to the Theory of Computation (3rd Ed.) by Michael Sipser, 2012. Errata for 3rd Edition: http://math.mit.edu/~sipser/itoc-derrs3.1.html

Other courses in Theoretical Computer Science

CS 263 Counting and Sampling

Autumn 2022

Stanford University

CS 251 Great Ideas in Theoretical Computer Science

Fall 2022

Carnegie Mellon University

CSE 311 Foundations of Computing I

Autumn 2021

University of Washington

Courseware availability

Lecture slides available at Schedule

No videos available

Assignments available at Assignments

No other materials available

Covered concepts