I've told before the story of how we had Logo on BBC Model B computers in the UK primary school I went to. Between that and reading a few chapters of a book on Forth (but lacking an interpreter to try anything out on) at a tender age, I got what would nowadays be considered quite an unusual initial perspective on programming.
I've noticed that people learning to write VBA macros for Excel almost always start out writing commands to move the "current cell" cursor around to where they want it, instead of referencing cells directly. It's almost as if they're trying to control a sort of spreadsheet turtle.
The metaphor of having some kind of agent of avatar inside the system to which you address instructions, and which you can teach to do increasingly sophisticated things, is obviously a beguiling one. It also means that you are led quite quickly from an imperative mode of address - go there, do that, pen up, pen down... - to a declarative mode - what I mean when I say "box" is...
It's a similar story with Smalltalk: you can start with a few ready-made objects, and write little scripts consisting of sequences of messages sent to those objects (this really comes alive in Squeak, of course), but before long you're drawn into in the immense hierarchy of class definitions accessible through the browser, and thinking about how to extend those definitions to suit your own purposes.
I think that for pedagogical purposes, it's often very helpful to start out with something on the screen that visibly responds to direct commands. But I've always liked the way that Logo places the child in the position of the instructor, trying to "teach" the turtle new things: it's a great way of encouraging reflection about learning, about the ways in which knowledge can be encoded and transmitted, and about the purpose of formal languages. It can also stimulate children, or adults for that matter, to start considering questions like: in what ways is teaching *not* like programming?
|