Computational complexity theory is about the fundamental capabilities and limitations of efficient computation. Framing the subject in the broader context of computer science, this textbook is both a self-contained tutorial for general computer science students and a thorough reference for specialists. Using only elementary discrete math, the book rigorously covers the central concepts of time, space, and randomness in computing, as well as connections to other areas of computer science such as cryptography and machine learning. Intuitions and general techniques are emphasized. The book features full proofs, numerous concrete examples and illustrations, and hundreds of exercises.
This material will be published by Cambridge University Press as
Complexity in Computer Science by Thomas Watson. This prepublication version is free to view and download for personal use only. Not for re-distribution, re-sale, or use in derivative works.
© Thomas Watson, 2026.
Please send corrections to:
Thomas.Watson@memphis.edu