A First Taste of Algorithms · Epilogue: The Edge of the Map

The schoolroom, again

Return, one last time, to where this began — a classroom, a boy, a long column of numbers to add. The teacher meant the sum of 1 through 100 as busywork; the boy, Gauss, refused to do most of the work, paired the numbers off, and wrote a single line. Every chapter of this book was a variation on that morning. Binary search refused to examine all-but-one of a sorted list. The notebook refused to recompute what it had already computed. The ripple refused to wander a graph twice. Backpropagation refused to find a billion derivatives separately. Each is a particular, hard-won way of not doing the work — and each was invented by a person, often unnoticed for years, sometimes by two people on opposite sides of a border who never met.

You set out to learn the usual algorithms, the ones in a college book, and some foundations of the machines that learn. You have them. But you have also, I hope, learned the deeper thing the algorithms are made of: the conviction that effort and intelligence are different quantities, that the second can dramatically reduce the first, and that the reduction is itself a thing you can study, prove, measure, and improve. That conviction is the whole of the subject, and it does not run out. There is no last refusal. The interlude’s other exponential — the one made of ideas rather than transistors — is still climbing, and it climbs through people, and it has just acquired one more: you have the tools now.

The map has edges. Two of them you have just seen — the wall that cannot be passed, and the door no one can find. There are others, and there are regions with no edges drawn yet at all, blank space where the next refusals are waiting to be invented. Some of them are waiting for you.

The work that remains is not busywork. Go find the line that does it in one stroke.


End of the technical arc. What follows in a complete edition — solutions to selected Diamond problems, a guide to the labs, and notes for the teacher — is scaffolding. The book is the nine chapters, the ten labs, and the two questions. Everything else is commentary.

Questions to talk about

No answer key. These are for arguing over, with someone who read the same chapter.

  1. 'An algorithm is a way of not doing most of the work.' The whole book was a campaign of refusal. Does refusal have a limit?
  2. Some answers are unknown because nobody on Earth knows them, and some are 'no' and proved. Which is stranger to you?
  3. The chapter was written to be over your head now and exactly right later. Note down one sentence you do not yet understand, and come back to it.

All 32 chapters of A First Taste of Algorithms · Foundations · All courses