Regular and context-free languages, pumping lemmas. Introduction to context-sensitive languages. Turing machines and computability. The arithmetic hierarchy. Complexity theory: P, NP, and the polynomial hierarchy.