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: Nine Algorithms That Changed the Future unlocks their secrets, and lays bare the incredible ideas that our computers use every day.
Watch a short introduction to the book below:
Chapter 1. Introduction: What Are the Extraordinary Ideas Computers Use Every Day? 1
Chapter 2. Search Engine Indexing: Finding Needles in the World's Biggest Haystack 10
Chapter 3. PageRank: The Technology That Launched Google 24
Chapter 4. Public Key Cryptography: Sending Secrets on a Postcard 38
Chapter 5. Error-Correcting Codes: Mistakes That Fix Themselves 60
Chapter 6. Pattern Recognition: Learning from Experience 80
Chapter 7. Data Compression: Something for Nothing 105
Chapter 8. Databases: The Quest for Consistency 122
Chapter 9. Digital Signatures: Who Really Wrote This Software? 149
Chapter 10. What Is Computable? 174
Chapter 11. Conclusion: More Genius at Your Fingertips? 199
Sources and Further Reading 207
John MacCormick is a leading researcher and teacher of computer science. He 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.
"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."
"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
"An easy to read introduction to algorithms for a non-technical audience."
– Ben Everard, Linux Voice
"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