The new school half term has started and I’m now teaching my students how to “draw cool patterns” on their computer. We’re doing this in LOGO, a programming language so simple a five year old not only could pick it up, but routinely does. I wonder if those primary school teachers showing their kids how to make ‘Terry Turtle’ or ‘Roamer’ move around the floor realise they’re teaching their students a subset of LISP? No, I didn’t realise I was either.
Unlike in my previous post, LOGO is a bit more complicated than FLOWOL, it requires the students to be able to type in commands precisely with no error, or the computer will spit out an error saying “I don’t know what to do with FD10″.
I start off by explaining how to use the software, our choice being the excellent MSW Logo because it’s free, GPL and doesn’t require complicated installation on school’s PCs. The top screen is where the pictures happen, the triangle is the turtle and then you type commands into the bottom part. Easy stuff. They are then told to copy out various instructions that I put on the board.
Once I see they’ve got the point, I get them to do simple challenges – “Write the first letter of your name”, “Draw a house”, “Draw a stick-man, he can have a square head if you can’t do circles”. And it progresses from there.
For 99% of the kids they do this and the room is full of immense quiet and concentration for five minutes, then a strange event horizon gets crossed. When you ask a kid to follow instructions it’ll have a strong desire to mess around and do its own thing to see what happens. So rather than typing ‘FD 10′ they’ll type in ‘FD 10000000′ and instead of ‘RT 90′ they’ll type in ‘RT 12374′. The computer will dutifully execute these valid LOGO commands and draw all sorts of mess on the screen.
And the kids think it’s the coolest thing ever. Even the kids who, at first, said “sir this is rubbish, what’s the point of drawing stupid boxes?”. The point, dear child is that after drawing stupid boxes you can move onto drawing the cool stuff all your classmates are drawing. From small simple beginnings you can make the interesting stuff happen, but first you must understand the simple stuff.
Same with learning how to write “real” software – first you have to learn the boring, contrived “Hello world” examples before you can create the next hit game or killer application. If you don’t you’re just copying and not understanding.

