Gems of Theoretical Computer Science by U. Schoning (Universitat Ulm, Germany)
An introduction to important results in theoretical computer science. The "gems" are central problems and their solutions from the areas of computability, logic, circuit theory, and complexity. The text presents complete proofs in understandable form, as well as previously open problems that have found a (perhaps unexpected) solution, complex proofs from bottom drawers, probabilistic constructions, and more. There are over 240 exercises.