There is a considerable, satisfying and underappreciated depth in the science of computing, it offers so much more than simply a driving licence for using a computer. The author of this book is a top researcher working on the fundamentals of informatics, and he has considerable experience teaching complex subjects in a simple manner. In this book he invites the reader to explore the science of computing, convinced that a good explanation of even the most basic techniques can demonstrate the power and magic of the underlying principles. The author starts with the development of computer science, algorithms and programming, and then explains and shows how to exploit the concepts of infinity, computability, computational complexity, nondeterminism and randomness. Finally, he offers some insight into emerging computing paradigms such as biological computing and quantum computing.This book is a fascinating read for students of all levels, and for those curious to learn about the science and magic of algorithmics and its role in other scientific disciplines.