The study of computational complexity and intractability: Cook's Theorem, NP-completeness, oracles, the polynomial hierarchy, lower bounds, heuristics, approximation problems.