This document describes a graduate course on computational complexity taught by Antonis Antonopoulos. It includes the course syllabus, which covers topics like Turing machines, complexity classes, randomized computation, interactive proofs, and derandomization of complexity classes. It also provides recommended textbooks and lecture notes. The document lists some of the major complexity classes like P, NP, BPP, and includes definitions of time-constructible and space-constructible functions, which are used to formally define complexity classes. It also discusses the relationships between different complexity classes and proves theorems like the time hierarchy theorem.