This book takes up the challenge to equip first year students in computer science, engineering, life science, economy, finance or mathematics with the algorithmic mindset needed in their studies, and in many aspects of their lives, while assuming almost no prior knowledge in mathematics beyond what is taught at elementary school. Students of other programs, and actually anyone interested in understanding how to think as a problem-solver, will benefit from this tutorial and its hundreds solved exercises and detailed examples.
A problem-solver needs a problem to tackle. Contemporary online banking, secure company and state communication, e-commerce, private communication in today’s cyberworld: All crucially rely on prime numbers. But how to check whether a number is prime or not? How to perform this test in a couple of seconds for an integer larger than the number of particles in the observable universe? How to assess the balance between speed and risk?
The author uses this problem as a pretext to present in a very clear way some of the most relevant algorithms in mathematics of computation and in computer science. While literature and pictural art punctuate its chapters, this elegantly written book goes beyond. It guides the novice to assess orders of magnitude, to think algorithmically, and to make sound decisions despite partial information.
This new edition contains substantial revisions.