An introduction to theoretical computer science. Includes a study of models of computation, complexity classes, Cook's theorem, polynomial and nonpolynomial classes, discrete problems.