The OLPC (aka the ‘hundred dollar laptop’) has a ‘View Source’ button on the keyboard. See if you can guess which one it is in this image here.
The motivation for this is to let kids ‘under the bonnet’ and learn to program (Python, specifically). Is it really a good idea?
- Could source code be confusing for people who hit the button by mistake?
- Is the source code up to scratch? One example Mike looked at (BlockParty) was completely uncommented.
- Is a fully-fledged program containing advanced code (e.g. sound servers, graphics libraries, etc) really a good place to start learning about programming?
When I was a kid, my school had a computer lab containing on BBC Micros. They were used for teaching maths, using LOGO and that sort of thing. They didn’t even start teaching us programming until we had a good grasp of maths and ‘procedural thinking’. Then when they did, they introduced it very slowly, so not to leave anyone behind. On BBC micros, you could get to the source code (BBC BASIC) at any time by hitting the Escape key. And you know what? Teachers would shout at us for doing this. When you teach kids, lessons are highly structured, and you drip feed them concepts one-at-a-time. You don’t throw them in the deep end.
To give an analogy, if you were teaching 10 year old kids literature, you wouldn’t do it by reading them random chunks of Macbeth. That would just turn them off. It would be overwhelming and, more to the point, boring.
But isn’t this exactly what the View Source button does? Take a quick look below at the source code of BlockParty (A Tetris-style game), and put yourself in the shoes of a 10 year old kid.
I’m sure it’s a neat feature if you’re already up-to-speed on Python, but there’s a fairly tough learning curve you’d have to get past first. So, like the OLPC itself, the View-Source button is just an adjunct to traditional teaching, rather than a learning solution in itself.
I’d find it so much more reassuring if there was some well planned open source teaching and teacher-training materials coming out of this project in addition to the OLPC hardware/software bundle.