Blog: Teaching Kids to Program, or Don't Try to Teach 8-Year-Olds Java Subclassing
- 01 August, 2008 15:16
When Nathan Torkington moved back to New Zealand, he got involved in his kids' school. Initially he provided hardware, which somehow turned him into the school's de-facto system administrator. Before long, he found himself teaching the grade-school students programming skills... and his experiences might inspire you to help out, too.
I have a folder stuffed full of "cool things I saw at OSCON" (the O'Reilly Open Source Convention, held last week). And not enough time to write about all of them at once. So, to get myself to focus on one topic at a time, I'll begin with a topic near-and-dear to my heart: training the next generation of IT workers. It's what Nathan Torkington, who's board member of The Perl Foundation among other achievements, called "Spawning the Next Generation of Hackers" in his keynote session. Declaring-rightly, I think-that "Programming is now a basic life skill," Torkington shared his experiences in teaching programming to grade-school children. Here's a few of the points he made in his presentation.
(I've long wanted to write a feature story on this subject, but have always put it off in favor of higher-priority issues. E-mail encouragement might get me off my butt, so don't hold back.)
One lesson he learned is that robots aren't cool. Torkington started teaching the children using a LEGO MindStorms kit; it let them build a robot by programming the central controller. It sounded cool to him but he came to this conclusion: "Robots are lame." The killer app for the MindStorms robot was to make it follow a line on a page, he said, and it didn't even do that consistently. So children could work really hard on a project and have it still fail to work right, through no fault of their own.
Instead, he found, a better tool for teaching kids to program is the sprite-based Scratch from MIT, which despite some limitations is a fully-featured language. It subtlely introduces important programming concepts without banging the kid over the head. "You don't want to explain Java subclassing to an 8 year old boy," Torkington opined.
Torkington cajoled the audience to get involved, and to volunteer in schools. ("Unless you're a pervert," he added, which made everyone laugh.) Go in and ask, "What do you need?" Help the school acquire hardware; his initial involvement began when the New Zealand Foo Camp (a.k.a. Baa Camp-you know those New Zealand sheep fans) had money left over, which he made available to the school. Help your school make stuff work; the teachers need training, too. Run a computer club for the summer. And-since this was, after all, the open-source community- tell them, "I can get rid of your license problems." When you create useful courseware, he suggested, share it and post it online.
"There is no downside to volunteering in a school and helping kids," Torkington said.