I just spent the afternoon working with teenagers at some of our summer school workshops. As luck would have it, we had two different sessions running on the same afternoon, and while galloping between labs it occurred to me some interesting things were going on. A bit about the workshops first: the summer schools were both for 17-18 year olds, both were set up to encourage young people to study computer science, and both involved virtual world building. One of the workshops, on computer game making using the Neverwinter Nights 2 toolset, lasted for just two hours, and the other was the final presentation session of an eight week project on Second Life programming. Both of them went very well indeed from the point of view of introducing young people to the fun aspects of computer science. Whether they pay off in terms of recruiting people to study our degree courses in CS remains to be seen. But you have to start somewhere, right? Here are some things I noticed which might be useful to others who are interested in schools outreach and recruitment.
It is probably now apparent that my view on CS education diverges from some of the viewpoints which have been published in CACM in the past few months. Some of these articles argue passionately that we should be teaching particular topics to address a skills gap in the current labour market. This may be so, but we need to make sure there are any computer science graduates in four years’ time, never mind experts in complex systems or other advanced areas. We simply can’t get enough people interested in computer science just now, and many universities have problems with retaining students past the first year. Rather than pushing our agenda of what we think is important and berating young people that they ought to find it interesting, we need to meet them halfway. We need to start from their interests, and then help them to see how computer science knowledge can help them achieve something which appeals to them. As in: “You’re interested in alcohol and The Simpsons. Ideal. How about you make a 3D Homer Simpson whose arm can move up and down to drink beer?” At that point you can start explaining the necessary programming and maths concepts to do the rotation in 3D space (it’s not as easy as you might think. Try it, but not after a few pints). Or even just admire what they have figured out for themselves. “You really managed to make a script where an excessively large pig kills some piglets to make the player a bacon sandwich? Marvellous! Did you know that creating and disposing of objects is something you do a lot when you’re programming? Let me tell you all about it”. Once you have them hooked on programming, or signed up on your degree programme you can build on it. I’m not saying we don’t need to teach sober, serious and worthy aspects of computer science. Of course we do. I’m just saying we don’t need to push it immediately. It’s kind of like when you have a new boyfriend and you know you have to introduce him to your weird family. Do you take him to meet the mad uncle with the scary eyebrows straight off? No, you introduce him to a friendly cousin who will make him feel at home and has something in common with him. (Note: I’m talking about the metaphorical eyebrows of computational complexity here, not the actual facial hair of my esteemed colleagues.)
What I’m suggesting is not new – there are pockets of excellent outreach work with kids in various parts of the world. I think it’s time we tried more of it, even although it is time consuming. After all, we know we can recruit hard core computer scientists to our degrees with our current tactics (you know – the people who are born with silver linux kernels in their mouths). But given there aren’t that many of them, it’s well worth the effort to reach out to the normal population. Unleash the inner computer scientists in everyone!
No entries found