By Seymour Papert
I just can’t stand reading those articles in the literature for and against programming that leave you not knowing what kind of experience, if any, the author has had with this activity. Personally, I’d feel really uncomfortable about arguing that programming (or anything else) is “good for” children if I never did it myself, or hated doing it, or had any doubts about its value for me. So I thought I would write this column about the kinds of programs I have made recently.
I begin with a very simple program that came about while I was writing this column.
Most of the writing was done when I was alone in a log house deep in the woods in Maine. It had been so beautiful that I stretched out my stay longer than I ought to have and created a situation of having to leave at a fixed time. The snag was that I needed some sleep, but had no alarm clock. I know from experience that I can sleep easily through the single beep of the alarm clock feature I have on my Mac. So I had to make a better one….
Piece of cake! It took about half a minute to set up a Logo instruction in MicroWorlds that would keep on repeating a recorded message until I stopped it. (Wait 4 * 36000 forever [message]) Hardly a program, but I couldn’t resist adding a frill that made it one by any criterion: At the set time it would start with a message gentle in decibel level and in content and move progressively to messages that were more insistent in both dimensions. Making it took a few minutes, plus five more to get rid of a silly bug. As I was doing this I realized that with another 10 or 20 minutes I could transform a LEGO-Logo construct I had built some time back for another purpose into a water pourer. Although this mechanical frill would absolutely ensure wake-up, I decided that sound was enough and lucked out: Here I am; awake and ready to go.
In this job I used two bits of knowledge that go beyond what a third grader with Logo experience could be expected to know. One is technical: There are 36,000 tenths of a second in an hour. The other is much more important. I fear that even in some of the very best school Logo environments the students don’t actually know that what makes sense of Logo, of computers, and of programming in general is putting it to use when one really needs it in real-life situations.
Real life uses can be very varied. I have written programs as gifts for little children – sometimes to amuse, sometimes to open horizons for thinking, sometimes as a basis for relationship, most often for all these together. I have even written programs to amuse a cat. Last week I wrote one to help figure out where to plant bushes so as to make sure that a shack would be invisible at all points on a complexly shaped shore-line, and then used Logo graphics to present the underlying principles of geometric perspective without “trig” or any other “fancy” math.
These examples sound too serious. Some of the programs I do are pure play…. which doesn’t mean they don’t serve a purpose. Think of doodling. When people sit in a meeting drawing patterns on paper this doesn’t mean they are not listening – doodling is more like an accompaniment to the intellectual music. I’ve often written little Logo programs in the same spirit – sometimes even at a meeting; but more often, as I tried to warm up to writing this column. As a matter of fact I tell in The Children’s Machine how the idea of the turtle came from a doodling experience.
One of the most interesting programs I wrote recently was a little job for a friend, an assistant to a prominent sculptor, who asked me if I knew any software he could use to make figures like the following with different numbers and forms of the curvy spokes and different positions in the circle for their meeting point.
Maybe there is. But it was more fun for him and for me (and probably quicker) to make some Logo tools to let him play with the figures.
The curvy spoke program touches on the reason that is most often given to explain why programming isn’t “necessary” for nonprofessionals. They can just buy ready-made software tools. But do these always exist?
Perhaps there is a tool suitable for my friend’s purpose, and of course the only reason I had to make my Logo alarm clock was that the designers of the one in my Mac weren’t thinking…. given time the world of software makers would wake up to the likely uses of alarm clocks.
My next two examples show programming that is less likely to be made irrelevant by software tool makers. The first of the two is an exceedingly simple case where I used the computer as a medium in the way I use pencil drawings when I see a new wildflower.
Last winter I saw my first total eclipse of the moon and was lucky enough to be able to observe it through the window next to the computer I most often use at home. My first thought was to take advantage of the computer to keep notes on the progression of the eclipse, which, as I learned for the first time from watching it, takes more than an hour. So I fired up Microsoft Word. I soon realized I’d like to have graphics as well so I switched to Logo. As the eclipse progressed I began to ask myself questions. The form of the eclipse suggests a circle – the full Moon – moving through a second circle – the shadow of the Earth. What is the ratio of their diameters? I was able to do some quick experiments which enabled me to find the answer and then to predict pretty accurately when the eclipse would end. None of this required any formal mathematics beyond junior high school level and in fact led me to some new general insights about geometry as well as to specific ones about the moon, the sun, and the earth.
The most “technical” programming I did this summer was the result of conversations at NECC with Michael Tempel and Brian Silverman about a kind of project in exploratory math that they have developed for use in workshops with teachers. Consider the following rule for transforming numbers:
If the number is even divide it by 2. If the number is odd multiply it by three and add 1
Look what happens if you apply this rule to a number and recursively to the result. Choose 7 as the starting number:
7 → 22 → 11 → 34 → 17 → 52 → 26 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
Choose another number and I bet that it will also end in 1. I say “I bet” because very determined attempts to find one that does not have all failed, but as far as I know there is no proof that there isn’t some enormous number that will prove to be the first exception.
What Michael and Brian have discovered is that Logo is a wonderful tool for exploring a problem such as this. Many teachers who would find the problem too tedious to explore empirically without good computational tools and too technical to explore analytically, find it tantalizing when presented in a good Logo environment. For example, think about how you might pursue this problem in the range of numbers in the millions or billions without a computer!
But the anti programmers will say: Exactly, you need computer tools but not programs. A few incidents from my own and other people’s explorations of this problem would be enough to remove any tendency I ever had to agree with this.
First of all, some of the greatest excitement came from setting up the computer to do a long and tedious exploration overnight. There is something very special about coming in in the morning to see how it cooked overnight.* In my playing with the 3n + 1 problem, one time in four or five the tense expectation was rewarded with an interesting mathematical nugget – a little discovery, something to think about.
Making the computer do the work is going beyond tools – it involves programming in an essential way. But even if one could imagine a “tool” to do that without “programming,” another incident rejoins the alarm clock and the moon situation in reminding us that the makers of software just can’t anticipate all needs.
Exploring large numbers took me into higher and higher ranges…. millions, trillions… and eventually beyond the size of number that could be handled by whatever tools I might be using – as it happens, Logo. At this point I’d have been flummoxed had I been relying on a non-programmable tool. As it happened, I could simply write a Logo program that gave me the greater precision of arithmetic I wanted!
*Mitch Resnick gives some excellent examples of how this kind of excitement can be used in school settings. See Logo Overnight, 1993, Logo Foundation.
Reference:
Papert, S. (1993). Is programming a good activity for children? Logo Update, 2(2), 1-3.