Automata, Computability, and Complexity

Diagram showing transitions between four states.

Lecture 3 introduces finite automata and provides several examples; this one includes a trap state, state d. (Image by MIT OpenCourseWare.)


MIT Course Number

6.045J / 18.400J

As Taught In

Spring 2011



Cite This Course

Course Description

Course Features

Course Description

This course provides a challenging introduction to some of the central ideas of theoretical computer science. Beginning in antiquity, the course will progress through finite automata, circuits and decision trees, Turing machines and computability, efficient algorithms and reducibility, the P versus NP problem, NP-completeness, the power of randomness, cryptography and one-way functions, computational learning theory, and quantum computing. It examines the classes of problems that can and cannot be solved by various kinds of machines. It tries to explain the key differences between computational models that affect their power.

Other Versions

Related Content

Scott Aaronson. 6.045J Automata, Computability, and Complexity. Spring 2011. Massachusetts Institute of Technology: MIT OpenCourseWare, License: Creative Commons BY-NC-SA.

For more information about using these materials and the Creative Commons license, see our Terms of Use.