This document provides an overview of the 18.404/6.840 Intro to Theory of Computation course taught by Mike Sipser at MIT. The course covers computability theory from the 1930s-1950s, including models of computation like Turing machines and complexity theory from the 1960s to present, including the P vs NP problem. The course will include lectures, recitations, homework, midterms, and exams. Topics covered will include finite automata, regular languages/expressions, and proofs of closure properties for regular languages.