9 Algorithms That Changed The Future: The Ingenious Ideas That Drive Today's Computers

  • John MacCormick
PRINCETON UNIV. PRESS: 2012. 248 pp. £19.95/$27.95

For Michael Faraday there was no doubt: “There is no better, there is no more open door by which you can enter into the study of natural philosophy, than by considering the physical phenomena of a candle.” Such were his words on opening a series of six lectures entitled 'The Chemical History of a Candle'. Although it is 150 years since the lectures first appeared in print, there is still something wonderfully satisfying in Faraday's exploration of the principles of combustion, capillary action, the cycling of carbon and other phenomena; and more than the mere enjoyment of Faraday's eloquent and insightful explanations, spiced up with lively anecdotes.

Faraday also delivered his 'candle lectures' several times as the Royal Institution Christmas Lectures in London — a tradition he began in 1825 and that continues today, with the goal of presenting scientific subjects to the wider public. It was only in 2008 — the 180th edition of the Christmas Lectures — that the theme turned to computer science, when Chris Bishop (of Microsoft Research Cambridge and professor of computer science at the University of Edinburgh) took his young audience on a 'High-tech Trek'. Bishop also provides the foreword to the new book by John MacCormick, 9 Algorithms That Changed The Future: The Ingenious Ideas That Drive Today's Computers. In any household in the developed world, computing devices are now likely to be more abundant than candles — for work, for communication, for shopping, for entertainment; they have transformed our lives. Yet, notes Bishop, “there is so little awareness of the fundamental concepts that make it all possible”.

Hence MacCormick has chosen nine algorithms (or “cases of algorithms”), guided by the following criteria: that the algorithms should be routinely used by “ordinary computer users”; that they should address real-world problems; and that they should “relate primarily to the theory of computer science”. The resulting list covers fields from search-engine indexing and Google's PageRank algorithm, to public-key cryptography and digital signature, to error-correcting codes and data compression, to pattern recognition, to databases. It's a well chosen mix, touching on topics that many of us would probably like to learn a little more about, even if we're already au fait with the basics.

Like Faraday's lectures, the book is directed at a general audience, and MacCormick gently takes the reader's hand and walks patiently through examples. Sometimes this is, admittedly, at a rather slow pace, but at the same time the book is highly didactical, and does a good job of exploiting a fair bit of intuition along the way. For me, it's been an ideal bedside-table book. There are some light-bulb moments and useful (and re-usable) analogies, and, thanks to the inclusion of anecdotes, it offers a glimpse of the more human side of computer science. Moreover, the book whetted my appetite, inspiring me to probe further under the bonnet of computing (on my bedside table now, ambitiously perhaps, is Cristopher Moore's and Stephan Mertens' monumental tome The Nature of Computation).

Indeed, MacCormick supports the more eager reader by providing suggestions for further reading, and although he avoids jargon, he does throw in the technical terms that aid the further exploration of certain topics. For the purposes of this book, however, MacCormick stays focused on the big picture and rarely loses the connection to the applications that a very wide audience will be familiar with. Only once did I feel that the author might have overreached himself in trying to set complex concepts before his readers — in attempting to explain quantum computation in a single page. Not much is gained from it. On the other hand, the chapter on computability does a remarkable job of conveying results that, for all their beauty, may easily appear esoteric.

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.