Learning by approximation
We make to ourselves pictures of facts, Wittgenstein wrote.
It is indeed the case that nearly everything is an approximation. Even a photo that you take, since you determine the composition and the lighting and the depth of field. You can tell different stories using the same photo by changing one or more of those parameters. A series in the New York Times’s Opinion Pieces from 2009 gives one riveting historical example (see “The Case of the Inappropriate Alarm Clock” by Errol Morris.)
And yet, we can frame approximations in a positive way, as just another layer of indirection, where we’re trading rigor for insight. And as such, they can be useful tools for learning.
One type of approximation is the metaphor, an effective way for making a concept familiar. “The affinities of all the beings of the same class have sometimes been represented by a great tree,” Darwin writes when explaining common descent. “Rudimentary organs may be compared with the letters in a word, still retained in the spelling, but become useless in the pronunciation, but which serve as a clue in seeking for its derivation,” he writes when discussing inheritance.
His final passage contains yet another metaphor, “It is interesting to contemplate an entangled bank . . . and to reflect that these elaborately constructed forms, so different from each other, and dependent on each other in so complex a manner, have all been produced by laws acting around us.”
Alan Turing talked of “burying” and “unburying” when describing a stack—one of the fundamental data structures in computing. Free software is defined on the GNU project’s page using a metaphor, “free as in speech, not as in beer.” Von Neumann reportedly modelled memory on how memories might be stored in the human brain, “an element which stimulates itself will hold a stimulus indefinitely.” Examples are aplenty.
A second type of approximation is rates of growth—a way of thinking that looks at, say, how the time it takes to do something changes as the number of things you’re working with grows. Computer scientists use that all the time to measure the goodness of algorithms. And there are ways of classifying algorithms based on how they grow.
I was listening to an episode of Radiolab a while back, and they were interviewing a neuroscientist who talked about something I hadn’t heard before, about how children might think in terms of orders of magnitude. That’s why a child may be more hesitant to give away two of something versus one of that thing, because the child sees two as twice as many as one, rather than one more than one.
And that brings us to a third type of approximation, the concept of relative magnitudes—how things fare relative to each other. Faster or slower. Less space or more space. Better or worse, and so on. Do the letters on that wall look clearer now . . . or now? The first one, doctor. An effective approach in survey design is to ask respondents to choose between pairs of answers based on which is most important to them and which is least important.
Feynman famously talked about that when reminiscing about how he was taught. “If a T-rex’s head is 6ft across,” his father would say, “that would mean that if he stood in our front yard, he would be high enough to put his head in the window.”
In Bad Choices, those three tools are brought together in the form of a set of vignettes to show how one might evaluate various methods of completing the same task, and to highlight the tradeoffs involved in each of those methods.
For instance, given a pile of socks, we can find pairs by picking a sock and then rummaging through the pile for its pair. Alternatively, we can put each sock that we find to one side and only pair socks when we find a match. Both methods are fast when we have a few socks. The second method is much faster when we have lots of socks. The first method might be described as growing at a quadratic rate and the second method as growing at a linear rate.
As another example, given shirts on a rack, we can find our size by starting at one end of the rack and moving to the other. Alternatively, we can start in the middle of the rack and then move left or right, thus halving the number of shirts we have to go through at each step. Again, both methods are fast when we have a few shirts. The second method is much faster when we have lots of shirts. The first method may be described as growing at a linear rate and the second method at a logarithmic rate. The second method also has a name in computing—binary search.
And so, by placing that approach in a familiar setting—everyday life—one can better appreciate the value of thinking in terms of approximations and deciding between different ways of achieving the same objective. The learning is not happening in isolation. The other great thing is that those scenes and the discussions that they provoke are engaging and hopefully memorable.
Yet another great thing about this approach is that one learns, incidentally, about the fundamental algorithms in computing—those building blocks that underlie all the code and all the machines around us. This is perhaps a slightly different approach to teaching the topic, as it doesn’t focus on coding or on syntax and constructs, but rather on the value of algorithmic thinking.