Seymour Papert was a driving force behind the LOGO programming language/environment. In 1980 (some 33 years ago!) he published a book entitled “Mindstorms” in which he set out the case for LOGO and the power of introducing children to programming. I’ve recently read it, and this post has some brief thoughts on a few salient points from the book.
No right or wrong
One attribute of teaching children programming that Papert picks up on is one I have heard several computing teachers relate to me recently: the chance to be wrong — the inclusion of failure as a normal, acceptable part of education. As Papert says:
For example, many children are held back in their learning because they have a model in which you have either “got it” or “got it wrong”. But when you learn to program a computer you almost never get it right the first time… The question to ask about the program is not whether it is right or wrong, but if it is fixable. [p23]
In my mind, programming is really one long stream of failure: after all, as soon as the program is correct and well-designed, you tend to move on to the next task and start failing again. Papert does a good job of capturing some of the exploration-based learning that we see in programming education.
Papert spends some time in Mindstorms discussing programming languages. At a couple of points Papert uses a bad metaphor between natural language and programming languages:
Programming a computer means nothing more or less than communicating to it in a language that it and the human user can both “understand”. And learning languages is one of the things children do best. [p6]
This idea of programming as being similar to learning a natural language has thankfully died away recently. Programming is about control flow and variables and data structures and modularity and abstraction and tracing and debugging. Where are the variables in French? The data structures in Japanese? It is a very limited analogy and it’s a shame to see it crop up in Mindstorms.
One famous talking point that crops up over and over again in programming is the choice of programming language. One of the refreshing aspects of the Computing At School group in the UK has been the relative infrequency of heated language discussions. Most people seem to agree that there is no single right choice, and that the choice of language (within a reasonable set) does not have a major impact on programming education. Papert takes a different view:
The [programming] language used strongly colors the computer culture. It would seem to follow that educators interested in using computers and sensitive to cultural influences would pay particular attention to the choice of language. But nothing of the sort has happened…. An informative example is the way in which BASIC has established itself as the obvious language to use in teaching American children how to program computers. [p34]
It’s worth remembering that whenever historical texts (e.g. Dijkstra’s writings) criticise BASIC, that the BASIC of their day was a fairly ugly, brutal beast, that was progressively streamlined into the more manageable later BASICs like GW-BASIC and Visual Basic. So it may be that Papert’s view applies to the languages of his time, but by now many imperative languages have converged on a common ground that means there are few major differences remaining.
Mindstorms suffers from the problem of many old texts: it was doubtless more revolutionary when it was published, but now that we have accepted several of its ideas into mainstream thinking, the remaining notable parts are the ones that have been rejected. I cannot really read the book in the context of 1980. Read in a modern light, it still has a few interesting points, but I find a few parts go too far in their revolutionary zeal, and the book does obsess over Piaget, who was a major influence on Papert.
The book is a giant position paper: it argues by anecdote rather than data, and has some fairly strident opinions. The abolition of school as we know it, the transformation of the teacher’s role and using LOGO-like environments to revolutionise the teaching of mathematics, physics and potentially more. On the last point I don’t disagree with some of the ideas (I’ve had some similar thoughts), but I would be more conservative in assessing the scale of impact that computing could/should have on other disciplines. At several points, the book is reminiscent some of the worse excesses of the technology-enhanced learning movement that would have all the pupils on iPads for the entire school day. Papert would have us all in LOGO or similar, but I think he overestimates the place for computers in education.