Teaching Kids Computer Skills and Programming

May 11, 2008 – 2:21 pm

Last year, Kiwi Foo Camp acted as a fundraiser for my kids’ local primary school. Around 60 kids, 3.5 teachers, and at the time they had around six old Windows 2000 and Windows XP boxes in various stages of decay. They’d planned to buy new computers but were making the “Macs are too expensive” noises. I gave them the Foo money and said, “use this to buy Macs”. They were able to buy nine bright shiny new Macbooks.

Once they had the computers, I came in to teach the kids how to use them. I started with the basics (keyboard, trackpad, power switch, desktop, menu bar, dock, finder) and before long they were making presentations in Keynote and having fun. One of the teachers got right into it and one day I came in to find them all making amazing music in GarageBand, a program that I hadn’t shown them!

One of the most important classes (in my opinion) was on how to use Google. I taught the senior (8-10) and intermediate (6-7) kids how Google works, what kinds of things to search for, how to interpret the results page, and how to improve your search if at first you don’t find what you’re after. The ads part of the results page was, in particular, news to them. “Why would somebody pay to be there?” they asked. My demo search was “shark pictures” and at the time one of the paid results promised shark pictures but, if they clicked on it, they were taken to a page of software advertisements–no shark pictures. You could feel their disappointment, and it became a great teaching moment.

It was an eye-opening experience teaching the two age groups in quick succession. The older kids have patience and can sit through a brief lecture before playing. The younger kids have no time for talking adults and no immunity from distraction—if the laptops are open in front of them, their attention is 100% on the laptop. I had one kid repeatedly going to the 50cent web site and playing videos with not-entirely-wholesome language, which was a challenge to manage along with 12 kids who mostly did want to learn.

System administration has also been eye-opening: I had no idea how much work it takes to keep just nine machines working. I lost two days in 2007 getting the school’s printer working on all the machines. Months later I updated to Leopard and had to do it all again. The old Windows network is still there (admin and teachers still have PCs, because of price and “the school administrative software only runs on PCs”) and Mac-Windows interaction is still fragile. The old Windows machines in the classroom are finally being evicted, to my joy—the teachers were always tempted to fall back to software they knew, Microsoft Publisher in particular, which was incompatible with the Mac software. The consumer Mac software isn’t perfect for a classroom, either: ideally, the photos would be loaded onto a server and all programs could get them from there, instead of our having to put the pictures into iPhoto on every computer. I have even more respect now for the high school’s admin, who deals with several hundred Macs day in day out.

I also taught a computer club: 2 hours a week, four weeks, with 8 kids. We did stop-motion animation, Keynote presentations, and then I used Scratch to teach them how to program. It was a huge success! (in 2006 I used Lego Mindstorms which wasn’t all good—see my writeup on O’Reilly Radar for details)

The kids got quick wins from moving drawings and bouncing them off the sides. They learned the same concepts as were in NXT, but got to do more things they could relate to. They made sprites have conversations with one another (using the kids’ recorded voices), built games, and were constantly calling each other over to say “look at what I did!”. A girl, whose parents firmly don’t want a computer at home, built an animated summary of the first chapter of her favourite book. Boys wanted to make guns that shot bullets.

I can’t praise Scratch enough. My next project is to teach it to a teacher. I would love to see the kids building presentations or simulations around their coursework. I believe the OLPC has software for this purpose. Studying global warming? Simulate the carbon cycle in a Scratch program. Studying local marine ecology? Build a fish tank in Scratch, with fish, shellfish, seaweed, and plankton interacting.

I know there’s always the feeling “do we need to teach our kids to program?”. I have three responses to this: first, I never suggest we throw out the running around, reading, writing, and maths parts of the school. They’re essential. Kids can have computers and literacy, it’s not an exclusive choice. Second, kids love working on the computers and that helps them learn the material (who can forget the marine ecosystem after they had to BUILD one?). Third, I can’t imagine how people survive without programming. The alternative to knowing a little bit of code is suffering through hours of manual labour in Excel or Word. I’m not planning to produce a class of 12 year old Java drones working on bank billing systems in hot warehouses with the fire doors locked from the outside. Knowledge workers who can’t program are like commuters who can’t fill up a gas tank or change a tire.

(This is a longer version of a post I made on O’Reilly Radar).

  1. One Response to “Teaching Kids Computer Skills and Programming”

  2. Hi Nathan,
    I agree that Scratch is great. I’ve always been impressed by the fact that it’s used to teach programming at Harvard.

    Here is a list of the best resources for teaching Scratch http://www.kidslike.info/scratch_computer_programming_tutorials

    However, Scratch has severe limitations, most
    importantly not teaching functions.

    This encyclopedia article on kids like . info compares Scratch, Alice, and Greenfoot. To me, they make a logical progression.
    http://www.kidslike.info/computer_programming_educational_programming_languages

    By kidslike.info on Aug 19, 2008

You must be logged in to post a comment.