Volunteering to teach programming – some observations from the trenches

coding group adI believe that teaching kids the basics of coding is an absolute essential in this modern world. They wont all become programmers, that’s not the point. The point is to give them some control over the devices with which we are surrounded. There isn’t any activity in which being able to do some light programming can’t be of assistance; but the core idea was summed up for me in a quote from Douglas Rushkoff: “You will either create the software or you will be the software. It’s really that simple: Program, or be programmed.”

So for the last few years I’ve put some of my time where my mouth is and volunteered to teach programming and robotics. I’ve run several groups each week covering from Year 2 (never again!) to Year 9 in lunchtimes and after school. I’ve now done that in two primary schools and one high school – that’s perhaps not a wide experience, but equally it may be enough for me to pass on some observations about the process of volunteering to teach. You see I’m not alone in this, over the years I’ve had several other people volunteer to help teach and recently I received an email from Geek In Sydney reader Greg T that said in part:

The real reason I’m writing (prompted by your recent post on Grok Learning) is that I’m looking for places to volunteer my time and experience helping kids to learn to program, maybe with simple electronics. This has been something I’ve been wanting to do for a while; I think it’s a vital skill, even more so in marginalised groups, but I haven’t come across a way of getting involved. So I wondered if you knew of any places in or near Sydney that were looking for volunteers, or any other avenues I could try?

The short answer is that I’m not aware of anyone doing this on an organised basis – that’s one of the reasons I’m so supportive of the professional courses run by Thinkspace. In my experience, this really requires getting something running yourself. So here we go, a grab-bag of some lessons I’ve taken away from the last few years:

Teaching is tough. Do not for a moment under-rate how difficult it is to engage a group of kids week after week. I have no idea how full-time teachers do this as a proper job and remain sane, but I walk away exhausted after a few hours. A voluntary group that takes up the kids’ lunchtime or after-school time is a continual balancing act between education and entertainment and that balance requires effort to maintain. For someone new to this I suggest starting a controlled activity – offer a one-day, weekend course and see both what the interest is and how you find teaching it.

So much depends on the school. I’ve been lucky that all three of the schools I’ve been involved in have been supportive; but it must be said that one of them while supportive doesn’t display much enthusiasm for the activity. If you find an enthusiastic teacher to be your evangelist it makes a huge difference, and an enthusiastic principal can work absolute wonders: Our High School venue recently agreed to have us spend two hours with every incoming Year 7 class during next year’s orientation week introducing them to programming.

There are procedures. As a volunteer you need to have a working with children check done. You also, technically, must be insured. All at your own expense. The insurance part can be dealt with if you can persuade a teacher to sit in the classroom while you take the group and the school is willing to view it as a school activity. That has the potential to be a more difficult issue if you’re dealing with electronics.

The Department of Education computers are awful. The computer room in primary schools is often small, hot and an ergonomic nightmare. High schools do better. The computers, though, are universally awful, slow and difficult. They are connected to a network that values security over utility. Doing anything out of the ordinary with them is either impossible or requires a great deal of intervention that is only tenuously under the control of the school as much of the computer system is remotely managed by the Department. For anything even slightly different my line in the sand is that it must either run remotely or off a USB-key to avoid having to negotiate with the Department’s IT people. For programming I use browser-based systems like Scratch and Grok, which are wonderful as long as the Department firewall doesn’t block them, and Portable Python running from a USB. For robotics the LEGO Mindstorms software is often already on the computers and otherwise I use Enchanting, again running from a USB key.

Programming is easier than anything involving hardware. While many schools do have some robotics kits it usually means sharing amongst several kids (which generally leads to poor outcomes) and a lack of continuity as they have to be packed away at the end of each session. I’ve had most success with robotics when requiring that kids provide their own kits – while this is expensive up-front, it is, over a year, far cheaper than any other after-school activity because the sessions themselves are free. There’s also the practical problem that in a primary school the computer lab often has no free desk space to work on at all. Programming is easier because it doesn’t involve fiddly pieces or sharing. Using Scratch it is completely free; Grok does come with a cost but at $30 for the year it’s not really a hurdle. And programming doesn’t require you to always have a supply of batteries on hand.

The range of students is huge. There is a body of thought that you can’t teach programming. That there’s a twist of the mind that means you either get it or you don’t. While I can see something in that, at a school-level it’s just not true. That said, it does become quickly clear that there are a variety of skills and enthusiasms amongst any group of kids. Some get the problem-solving detail of the programming, some love the design, some like the graphics, some just like doing geeky things with their friends. It’s crucial to find a way to cater to a great range of approaches and that takes pre-work and a lot of patience.

All of this sounds a bit like a cautionary tale on why not to take this on. I don’t mean it to be. There are hurdles to be considered, but they aren’t insurmountable – they just need to be recognised. It would be nice if there was an organisation that had already handled all this; but out here on the cutting-edge it’s all something the enthusiastic volunteer needs to take into their own hands.

The flip side is that it’s an immensely rewarding activity. Kids who opt in to get involved in these activities tend to be very engaged and enthusiastic and can do some amazing things. Seeing your group turn a school assembly into controlled chaos as they use robots to distribute Easter eggs throughout the hall; watching a kid air-punch as he finally gets his program to work; seeing the joy as a student is told by her peers that her game is fun to play. And above all feeling that the kids are all walking away with some greater control over their world. It’s truly worth the effort.

One thought on “Volunteering to teach programming – some observations from the trenches

Leave a Reply