Nine Algorithms That Changed the Future: Book review

Nine Algorithms That Changed the Future: Book review

Summary: In this admirably readable book, a selection of commonly-used algorithms that solve specific problems and underpin computer science theory are explained in satisfying detail.

TOPICS: After Hours, Reviews

"Any sufficiently advanced technology is indistinguishable from magic," says the third of Arthur C. Clarke's 'laws' — and to many of today's iPad/Android/tablet/mobile phone generation that's exactly what computers look like. In Nine Algorithms That Changed the Future, John MacCormick, a professor of computer science at Pennsylvania's Dickinson College (and a former researcher at Oxford, Hewlett-Packard and Microsoft), takes on the mantle of the magician who reveals the trade's secrets.


To be included among the nine studied here, algorithms had to meet specific criteria. They had to be in common, everyday use by ordinary computer users. They had to solve specific, real-world problems. They had to relate to computer science theory — that is, they couldn't just be about software or hardware. And they need to have an imaginative, ingenious leap — which MacCormick calls a "trick" — to make them work.

The subject areas covered by the algorithms are: search engine indexing; public key cryptography; error-correcting codes; pattern recognition; compression; databases; and digital signatures.

You may not recognise these as things you use every day, but indeed they are. Without error-correcting codes there would be no internet communications; without compression no DVDs; without public key cryptography no secure spontaneous online transactions between strangers; without databases no e-commerce or government benefits systems; without pattern recognition no spam filtering.

MacCormick leaves in a lot more detail than you'll usually find in a book aimed at a general audience.

MacCormick writes in a very clear, simple style, leading the reader step by step through even the most complex explanations. He does, of course, elide some aspects — no-one could fit a complete explanation of the inner workings of cryptography algorithms in a single chapter. Having said that, he leaves in a lot more detail than you'll usually find in a book aimed at a general audience. The result ought to be understandable to a wide variety of readers, including science and maths-oriented secondary school students.

At the end of the book, MacCormick spends a chapter exploring the limits of what can be computed, and these are pretty significant, as anyone who has studied computer science theory knows: it is provably impossible to write a program that can detect all possible crashes in another program (as a university sophomore, my computer science class was assigned this proof as one of a dozen problems to complete by the end of the semester). By "provably impossible", MacCormick is referring to the unique characteristic of his own field of mathematics, which is that once something is proven it stays proven — and mathematics is the base upon which computer science is built.

If those in charge of making public policy read only that last chapter, it would be a vast societal benefit. They would learn this: computers are not magic, after all, and expecting them to do the impossible is a good way to spend a lot of money on failed IT projects.

Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers
By John MacCormick
Princeton University Press
ISBN: 978-0-691-14714-7

Topics: After Hours, Reviews

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Those Are Not "Algorithms"

    Those subject areas listed are not "algorithms", they are merely problem areas. And the solutions to those problems are not always algorithms (guaranteed exact solutions); for example, there are no pattern-recognition algorithms as such, since pattern-recognition is an imprecise problem anyway; there are only imprecise heuristics.
    • Your point being?

      While you are correct that the subject areas listed are not algorithms, the rest of what you write could not be further off the mark.
      First, no where does the author claim these subject areas are algorithms. She clearly states themas what they are, subject areas. She merely states that they are the subject areas these algorithms fall in. She could not have been clearer.
      Second, your definition of algorithm is not even remotely correct. An algorithm is
      a process or set of rules to be followed in calculations or other problem-solving operations. It in no way shape or form guarantees an exact solution, or even any solution at all. Any solution generated is most decidedly NOT guaranteed.
      Third, there most certainly are pattern recognition algorithms, the imprecise nature of the problem notwithstanding. And, in fact, many areas of pattern recognition are not imprecise at all. In fact, they are binary. An item either does or does not fit the pattern. An item either is or is not the item being checked for.
      Fourth, what do you think the word heuristics means? It clearly does not mean what you think it means.
      • Re: no where does the author claim these subject areas are algorithms.

        It's in the title of the book.
        • And nowhere in the title does it say that those are the algorithms

          Again, the article is QUITE clear. The algorithms in question fall into the subject areas listed. It does NOT say these subject areas are the algorithms themselves.
          And no, that is NOT in the title of the book.
  • Eh

    Decision trees, algorithm, heuristics, loop counters, escape clauses to the least objectionable item, I forgot, were we discussing logic patterns or my weekly process of trying deciding where to dine with the wife?
    Allen Frady