Enter your mobile number or email address below and we'll send you a link to download the free Kindle Reading App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

Every day, we use our computers to perform remarkable feats. A simple web search picks out a handful of relevant needles from the world's biggest haystack: the billions of pages on the World Wide Web. Uploading a photo to Facebook transmits millions of pieces of information over numerous error-prone network links, yet somehow a perfect copy of the photo arrives intact. Without even knowing it, we use public-key cryptography to transmit secret information like credit card numbers; and we use digital signatures to verify the identity of the websites we visit. How do our computers perform these tasks with such ease?

This is the first book to answer that question in language anyone can understand, revealing the extraordinary ideas that power our PCs, laptops, and smartphones. Using vivid examples, John MacCormick explains the fundamental "tricks" behind nine types of computer algorithms, including artificial intelligence (where we learn about the "nearest neighbor trick" and "twenty questions trick"), Google's famous PageRank algorithm (which uses the "random surfer trick"), data compression, error correction, and much more.

These revolutionary algorithms have changed our world: this book unlocks their secrets, and lays bare the incredible ideas that our computers use every day.

Editorial Reviews

Review

Honorable Mention for the 2012 Award for Best Professional/Scholarly Book in Computing & Information Sciences, Association of American Publishers

"Nine Algorithms That Changed the Future offers a great way to find out what computer science is really about. In this very readable book, MacCormick (a computer scientist at Dickinson College) shows how a collection of sets of intangible instructions invented since the 1940s has led to monumental changes in all our lives. . . . MacCormick provides a taste of why we computer scientists get so excited about algorithms--for their utility, of course, but also for their beauty and elegance."--Paul Curzon, Science

"MacCormick's book is an easy-to-read and enjoyable guide to some key algorithms. Above all, it conveys a sense of wonder--at the beautiful science, rather than the technical feats, that makes computers do their magic."--Andreas Trabesinger, Nature Physics

"Excellent. . . . MacCormick clearly believes that to be a responsible driver of current technology, you need to understand what is going on at the fundamental level. In addition, he wants us to take delight in the elegance of the solutions that have been developed to address complex questions of the security, integrity and availability of data and digital services. . . . This is an unusually well-written text suitable for anyone with an interest in how today's information systems really work."--John Gilbey, Times Higher Education

"Despite the widespread popular interest in computers, there are very few good, popular introductions to the central ideas of computer science. Nine Algorithms that Changed the Future is certainly one of the best that I have seen. . . . An extraordinary achievement in the daunting task of presenting computer science for a popular audience."--Ernest Davis, SIAM News

"Most people know little and care less about how, say, electronic payments are kept secure or how movies are crammed onto DVDs. But as MacCormick shows, they're the result of often stunning ingenuity and creativity. . . . For insights into the thinking that can turn gigabytes into gigabucks, start here."--Robert Matthews, BBC Focus

"[MacCormick] masterfully uses everyday analogies in a way that gets to the heart of the ideas (he calls them tricks) that make the algorithms work. While this is essential for readers without mathematical background, the other lesson that jumps out is that this is a great way to introduce these algorithms to mathematics and computer science students who will go on to more in-depth treatments. . . . This excellent survey is an outstanding achievement and would make an excellent library acquisition."--Art Gittleman, MAA Reviews

"MacCormick leaves the reader with a sense of the engine that powers the networked world. And at its best, Nine Algorithms enables you to recognise the real world and begin to see those algorithms alive and kicking all around us."--Kevin Slavin, New Scientist

"Nine Algorithms That Changed the Future is technically right on the money, but manages to explain things in ways that are both understandable and fun. . . . Each chapter starts out very simply, gradually building up more complex examples until you reach a full understanding of the algorithm being explained. . . . The writing is excellent: clear, precise, and fun. I highly recommend this book to anyone curious about the ingenious mathematical and algorithmic ideas underlying some of today's most ubiquitous technology."--Brent Yorgey, Math Less Traveled

"One of the best things about Nine Algorithms That Changed the Future is that it is of interest to computer professionals and innocent bystanders (non-professionals) alike. The author doesn't attempt to 'baffle us with science' or blow us away with his mathematical prowess. Instead, he employs simple analogies that we can all understand. His use of mixing colored paints to explain the machinations of public key cryptography is, frankly, brilliant. . . . I highly recommend this book as a very enjoyable read that will be of interest to anyone who would like to understand more about the way in which the computer systems we use every day perform their magic."--Clive Maxfield, EE Times

"In our increasingly digitally dominated world, any book that attempts to explain for the layperson 'the ingenious ideas that drive today's computers' should find a ready audience and become required reading for the curious, enthusiastic, responsible and attentive netizen. . . . [Nine Algorithms That Changed the Future] does indeed go a long way toward satisfying that need. . . . MacCormick's two main techniques for conveying his insights are metaphor and a stepwise progression of complexity, moving from usefully oversimplified examples to the actual algorithmic realities. . . . A real sense of the steady progression of computer science arises."--Paul Di Filippo, Barnes and Noble Review

"Unusual and engaging. . . . A clear and simple explanation of what it is that makes everyday business and personal computing work. . . . MacCormick has a knack of explaining the smart tricks behind how search engines work and why Google is the best; the cryptography that makes online payments safe (with a brilliant paint-mixing analogy for public keys); error correction of noisy signals; pattern recognition from handwritten postcodes to people's faces (his specialism); data compression in 'zip' files; database structures and certified digital signatures. . . . I raced through it and eagerly want to know more."--Diana Hunter, Financial World

"Algorithms are the controls that drive the engines of the Internet age. Here, MacCormick provides a popular account of several algorithms that affect people's everyday lives."--Choice

"John MacCormick's Nine Algorithms that Changed the Future joins a small set of books that have tried to communicate the nature of the field for a general audience. MacCormick provides something like a quick package tour, with stops at a few highlights--the 'great algorithms' of the title. . . . MacCormick has provided a nice introductory tour, suitable for those who are willing to commit to only a brief visit. Perhaps the taste that he provides will inspire some of those tourists to a more extensive exploration."--Cary Gray, Books & Culture

"This is a valuable addition to the popular computing literature. I would definitely recommend it for any university computer science collection, both for computing students and for those that are just interested. Larger public library systems would probably also benefit, especially for branches located near high schools. As for high schools, this is definitely the kind of book that could make a huge difference in the life of a young man or woman who's wavering about a career in computing."--John Dupuis, Confessions of a Science Librarian

"In Nine Algorithms that Changed the Future, John MacCormick illustrates the magical mix of tricks, genius, and raw number-crunching power that computers use to solve the everyday problems behind activities like web searches and secure online banking. This book stands out for presenting complicated algorithms in a way that is accessible to a wide variety of readers."--Andrew M. C. Dawes, Books & Culture

"[This is an] extraordinary achievement in the daunting task of presenting computer science for a popular audience."--Ernest Davis, Popular (Computer) Science

"MacCormick writes in a very clear, simple style, leading the reader step by step through even the most complex explanations."--Wendy M Grossman, ZDNet

"For a reader unskilled with computers, there's likely no better account of the software that underpins everything from Amazon to Facebook."--Brett Szmajda, COSMOS Magazine

"The book will certainly delight not only readers with little or no computer science background, but computer scientists as well."--Y. Narahari, Current Science

"The author gives enough detailed mathematical information to interest students at all levels but also has an intriguing way of explaining things for mathematicians. . . . I highly recommend this book to anyone--students and teachers of mathematics as well as nonmathematicians who, whether they realize it or not, use the main ideas of computer science every day."--Anne Quinn, Mathematics Teacher

"[N]o mathematics, no Computer Science with capitals but easy reading for everyone from 9 till 99. If you are a computer scientist yourself, you might find ideas about how to explain things, or you might find this book an excellent idea to give as a present to grandma so that you don't have to explain yourself."--A. Bultheel, European Mathematical Society

"These revolutionary algorithms have changed our world: this book unlocks their secrets, and lays bare the incredible ideas that our computers use every day."--Zentralblatt MATH

From the Back Cover

"It's been a long time since any book has given me the excitement I remember from reading Hawking and Feynman in my teens. This book does exactly that. It reminds me why I love computer science. MacCormick's explanations are easy to understand yet they tell the real story of how these algorithms actually work. This is a book that deserves not just to be admired, but celebrated."--Andrew Fitzgibbon, creator of Emmy-winning camera software and consultant for the Xbox 360 Kinect

"This book is for those who have wondered, 'What actually goes on in my computer?' MacCormick clearly explains some of the algorithms used by hundreds of millions of people daily. Not the simple algorithms like arithmetic and sorting, but more complex things such as how to determine the importance of web pages, if and when we are justified in trusting a computer-mediated conversation with another person, and the puzzling issue of what cannot be computed. I recommend it highly."--Chuck Thacker, winner of the 2010 Turing Award

"This is a delightful exploration, in layman's terms, of nine beautiful algorithms that are essential to today's computers. Using clever analogies, MacCormick gives readers a greater knowledge of both the technology they use every day and the intellectual underpinnings of computing. He combines a mathematician's appreciation of powerful ideas and an educator's skill at explaining them in an engaging way."--Sharon Perl, Google

"MacCormick picks nine algorithms for his version of 'genius awards,' and they are good ones. The reader comes away with a new sense of what genius in computer science looks like. And MacCormick leaves room for a future genius, perhaps inspired by this book, to someday make it a top ten list."--William H. Press, coauthor of Numerical Recipes

"John MacCormick has taken many of the algorithms that we rely on every day and explained them in a way that you can understand even if you have a meager mathematical background. I particularly like how he explains public-key cryptography by analogy to mixing paint."--Thomas H. Cormen, Dartmouth College

"MacCormick does a great job of explaining sophisticated ideas in a simple way, and his analogies are wonderful. I particularly enjoyed the thoughtful and detailed historical asides."--Amy N. Langville, coauthor of Google's PageRank and Beyond: The Science of Search Engine Rankings

Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry.
Shop now

Related Media

More About the Author

John MacCormick is a computer science teacher and researcher. He grew up in New Zealand, studied mathematics and computer science in England, and now lives in Pennsylvania, USA. MacCormick has a PhD in computer vision from the University of Oxford, has worked in the research labs of Hewlett-Packard and Microsoft, and is currently a professor of computer science at Dickinson College. His work spans several sub-fields of computer science, including computer vision, large-scale distributed systems, computer science education, and the public understanding of computer science.

MacCormick targets this book at intelligent laypeople, folks who use computers but don't have a formal background in either computer science or mathematics. The book's greatest strength is in the examples he structures to illustrate some fairly deep computer concepts using concrete metaphors such as paint mixing and padlocks.

The algorithms he describes include the key insights that have gone into building search engines such as Google and its predecessor Alta Vista, public key cryptography and digital signatures, data compression, error correction, pattern recognition techniques, and relational databases.

The nature of the algorithms varies. Public-key cryptography and digital signatures are based on very elegant mathematics. Many of the other algorithms are simpler, insights into how people work and clever ways of programming. Many of the things he discusses involve whole families of different algorithms. There are lots of different schemes to compress data, each with advantages and disadvantages, most of which work better with some kinds of data than others. The same seems true of error detection and correction techniques. There is a lot of common sense, but nothing he describes in those realms seems like true genius.

I made my living with relational databases. MacCormick does a good job of describing a couple of the tricks that ensure data integrity, which as he explains is absolutely vital to the functioning of a database. Those tricks include a two-phase commit, rollbacks, and transaction logging. I think he did not devote enough explanation to the power of joins, selects, and the other operators that enable a programmer to easily assemble data in a useful format.Read more ›

Great book. Good for showing young people that computers can do more than just play games and access facebook.

Written on VERY elementary level, rather not for professional but for complete amateur. Good as a basis for popular lectures, on K-12 level.

However, selection of "great" algorithms is a bit arbitraty and limited. Some GREAT algorithms are missing:

1. FFT (Fast Fourier Transform). This is the bridge bewteen analog world and digital world. Without FFT would be no digital communications, digital music and modern cell phones

2. Kalman Filter. Algorithm for extracting useful signal from noise. Without Kalman Filter would be no space ships, telecommunication satellites and car computers

3. Linear Programming. How to make optimal decisions. This is the tool that makes economy efficient, controls manufacturing and transportation

Conceptually, these algorithms are a bit more complex than ones described in the book - some mathematics is needed to present these algorithms. But experience shows that elementary presentation is possible. In addition, these algorithms show that MATHEMATICS is the basis for great algorithms. This simple fact is not understood by young peopole who associate great algorithm with nothing more than programming in Java. And this simple fact is not sufficiently visible from the book

The book was enjoyable but did in many ways feel like a father trying to explain things to his toddler. The style of the book felt unnecessarily "soft" given that the topic is Algorithms. Even the pictures that were used seem almost childlike. Some of the chosen algorithms were interesting, some were a little boring. The last chapter on what is computable was way too long and mostly uninteresting. Having said that, for those who have never before experienced, or had exposure to, algorithms and/or the science of computing there is something to be found here.

The Kindle version wasn't really up to scratch. For example big chunks of chapter 10 were centered rather than justified making it surprisingly hard to read and the imagery was almost impossible to digest in some points. I'm sure the experience of the physical copy would be better.

On the whole, not a bad read, but not recommended for geeks who already have a background in algorithms.

A terrific book if you are interested in understanding how these algorithms work. The author is superb at explaining the core ideas in clear, understandable terms. You don't need to be a computer geek to follow this book. All you need is a desire to understand. I wish I had had more teachers like this guy when I was in school. I am truly impressed with his ability to explain.

While I was reading the book, I kept thinking, "why don't CS professors explain like this?" One of the author's contributions is that the book mitigates not only the difficulties most CS starters experience when trying to grasp the idea behind wonderful codes, but also the fear that the discipline is for some gifted intellectuals. The author makes readers to explore more into other algorithms. This book was the first that makes me feel introducing to my homeland people by translating this into my mother language.

In this book, the author presents the concepts behind some algorithms which have had profound impact on our everyday lives. And most importantly, he does it in a way which makes it understandable for people without formal training in computer science. And even more importantly I think that even computer scientists should really use this book as a learning on how to present complex mathematical ideas with simple examples which almost anyone can understand. My personal favourite is the explanation on public key cryptography using the "paints" example. A must buy for anyone with the curiosity to understand how things work in the world.