COSC 40
Computational Complexity
This course covers the basics of computational complexity, whose broad goal is to classify computational problems into classes based on their inherent resource requirements. Five key computational resources are studied: time, space, nondeterminism, randomness, and interaction. Key concepts studied include reductions, the polynomial hierarchy, Boolean circuits, pseudorandomness and one-way functions, probabilistic proof systems, and hardness of approximation.
Prerequisites & course information
Prerequisite COSC 039. Recommended Preparation: Familiarity with Turing Machine and NP-completeness.
Sources
- Course catalogue ↗2026-2027