Physicist Richard Feynman remarked about scientists that if you can't explain what you are doing to your grandmother, then you don't understand what you are doing. That's from the guy who made common sense out of quantum electrodynamics (QED).
The sorry fact of the matter is that science relies upon obscure vocabulary, technical jargon and a maze of self-reference, a practice that holds the curious public at a comfortable two-arms-length distance. Important information is certainly conveyed through that technical mess, for sure, but important interests are protected from general scrutiny just as surely.
John MacCormick's "9 Algorithms That Changed the Future" has done for a handful of computer algorithms what Feynman did for QED. I would add two caveats to that statement, though. First, these 9 algorithms are profoundly more relevant to the everyday lives of virtually everyone using a computer. They are, in fact, what make modern computing possible. We use these algorithms with every search, email and internet transaction. Second, these algorithms are accessible to a popular understanding in a way that QED will, I doubt, ever be, even in hands of a genius like Feynman.
The only way to make complex topics accessible to a general audience is through the skillful us of analogy, and here is MacCormick's talent. For example, sending encrypted messages between two computers (such as we do each time we make an online purchase) is analogous to the problem of having to share a secret between two people at opposite ends of a crowded room when information can only be yelled from one end of the room to the other, in full earshot of everyone present. This is the task of computers trading your credit card number, for example. MacCormick makes this complicated task - the algorithm that accomplishes this seemingly impossible obstacle - easily evident by using yet another analogy, one related to the solution instead of the problem, one involving buckets of paint.
I'll not go into the details of that analogy. Readers can check out chapter 4 of MacCormick's book.
He distills a broad set of computer tricks down to a set of analogies that I think are accessible to anyone. However, this book is not all analogy. There are several cases where he is simply telling the reader how something happens, but he makes it unintimidating. Consider error correction, for example, that beautiful algorithmic trick that lets us transmit a file with millions of bits of data without a single little smidgeon arriving out of place. Without it we could not rely on the integrity of a single communication we make. With it, we generally have no idea it is there, hovering over every puff of transmission we send and receive, checking every bit twice to be sure the noise in the line doesn't degrade our eloquence and attention to detail.
MacCormick has done two groups of people a favor. The first and largest is the computer using public. I have long lamented that I am, almost universally, strictly a user of modern technology. If I were transported back in time 100,000 years with nothing but my current knowledge, I don't know that I know much that would advance the technology or civilization of people of that time. I could not, for example, demonstrate how to generate electricity, build a combustion engine (I certainly have no idea how to forge metal), or even get water out of a well with anything other than buckets. While this book doesn't allow me to instruct neanderthals about error correction in digital communications, it does, at least, let me see behind the curtain a bit and have a sense that I understand how this seeming miracle actually works. I am morphed from a passive user to an active one, if only in a trivial sense.
The second group that benefits from MacCormick's book is that of computer scientists, as well as the mathematicians and programmers that largely round out the technical aspects of computer program architecture. This book makes at least these few algorighms accessible. At the same time, the book inspires a sense of admiration for the brilliance behind the tricks and manipulations that make our computers do what they do.
MacCormick has done an admirable job. I recommend this book to anyone with a curiosity about how computers, and more specifically computers in communication, do what they do.