← Back to Teaching

Postgraduate · NUST

CS-850 — Advanced Theory of Computation

A graduate-level study of computability and complexity — what can be computed, how efficiently, and how to prove the limits of both.

Credit hours: 3
Prerequisite Course(s): Theory of Automata & Formal Languages
Office hours: By appointment

Course Description

This course examines the theoretical foundations of computation at a graduate level, building on undergraduate automata theory to study computability, decidability, and computational complexity in depth. Topics include advanced models of computation, the Church-Turing thesis, the halting problem and undecidability, complexity classes such as P, NP, and PSPACE, NP-completeness and reduction techniques, and an introduction to advanced topics such as randomized and approximation complexity.

The course emphasizes rigorous proof technique and mathematical maturity, preparing students to engage with research-level questions in theoretical computer science and to apply complexity-theoretic reasoning when evaluating the tractability of problems in their own research.

Course Outcomes / Objectives

Text Books