This textbook provides an elegant route through the theoretical
fundamentals of computer science. In doing so, it shows that theoretical
computer science is a fascinating discipline, full of spectacular
contributions and miracles. The book also presents the development of
the computer scientist's way of thinking as well as fundamental concepts
such as approximation and randomization in algorithmics, and the basic
ideas of cryptography and interconnection network design.