skip to main content
Skip header Section
Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's ComputersDecember 2011
Publisher:
  • Princeton University Press
  • 41 William St. Princeton, NJ
  • United States
ISBN:978-0-691-14714-7
Published:27 December 2011
Pages:
248
Skip Bibliometrics Section
Reflects downloads up to 22 Jan 2025Bibliometrics
Skip Abstract Section
Abstract

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.

Contributors

Index Terms

  1. Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers

      Reviews

      Edgar R. Chavez

      Since the latter part of the 20th century, computers have penetrated our daily lives to the extent that without them, a modern industrialized society is practically inconceivable, as is much of the rest of daily life. But computer science, being a young science, has not gotten to the point that it forms a part of K through 12 education, or even the core baccalaureate curriculum, the way that mathematics, physics, chemistry, and biology do. Consequently, most computer users, even those who can't live without Twitter, searching, and texting every other minute, have almost no concept of the basic ideas that drive the gadgetry they love so much. The author of this book aims to rectify that. The book explores nine ingenious areas of computer science that are widely used by millions every day. In fact, one of MacCormick's criteria for inclusion is just that: something used universally and constantly. He freely acknowledges that he uses the term "algorithm" in the title to refer to an area of computer science, such as cryptography, rather than to a single mathematical algorithm in the strictest sense. The list of topics includes search engines, indexing and page ranking, public key cryptography, error-correcting codes, pattern recognition, data compression, databases, digital signatures, and computability. Underlying each of these areas is a handful of key concepts or ideas, and these ideas, rather than programming, make up the core of computer science. MacCormick's goal is to describe these ideas in ways that render them accessible to an intelligent reader, even if the reader is totally unfamiliar with computer science or with mathematics above the grade-school level. MacCormick achieves this goal brilliantly: he uses analogies everyone can relate to, and exceptionally clear writing to describe concepts, ideas, and techniques that admittedly have been simplified but not beyond recognition. The result is that the reader can confidently feel the satisfaction of having a clear glimpse of what lies behind the magic at his fingertips. Reluctantly, I admit having trouble accepting without qualms a term MacCormick uses ubiquitously: "trick." As a matter of fact, he overuses that term to refer to every concept or technique that he describes. I can accept avoiding technical terminology and using catchy phrases instead. For example, MacCormick calls the "two-phase commit protocol" the "prepare then commit trick." But I have trouble with the term "trick." In the introduction, MacCormick tells the reader that the tricks he will be describing are not mean or deceitful, but rather clever techniques to accomplish goals that would be otherwise extremely difficult or impossible. Nevertheless, I simply could not ignore deeply rooted usage and the shady connotations that my thesaurus describes as follows: "trick implies cheating or deceiving, and often evil intention." I think that MacCormick would not have sacrificed any vigor or vivacity in his writing if he had used instead a neutral phrase such as "key concept" or "clever idea." However, that does not prevent me from recommending this book very highly for the intelligent layman and as supplementary reading for courses in computer science, particularly computer science for liberal arts. Online Computing Reviews Service

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Recommendations