Google recently asked my permission to write a profile of me for a book they are putting together. They wanted to write about the Digital Economy, and about how we get Students involved in Computational Science. The journalist, Fran Molloy, who interviewed me for the profile asked a lot of questions about how we get kids involved in CS.
I didn’t feel as though I had many answers for her, but when I read the profile she wrote, something clicked for me. The exciting thing about the Computational Science project I run with my year 11s is that it is a real project, with real outcomes and real world consequences. It gets students engaged who have never been fully engaged before. It gets them working before the project is set, and keeps some of them working long after the project is over. It is an almighty hook into the excitement of Computational Science.
This, I am starting to realise, is the key. At the start of our year 10 course I like to give the students a little spiel about how, whatever field they go into, computation is going to have a huge impact on their work. So even if they don’t want to be computer scientists, the more they understand about computation, the better prepared they will be to do awesome things in their own fields. What better way to illustrate that than have them doing real projects with real impact from the start?
Even if you have a bunch of kids putting together a token web page – why not find a local charity or community organization that needs a web page built? There are hundreds of them out there. They don’t all have to do unique projects – make it a competition, where the best project gets used out in the real world.
If they are learning programming, why not have them write small scripts to process data in ways that some local organization (it could even be the school admin office) has to do often, that could easily be automated?
Creating real world projects takes work – you have to find the organizations that need IT support, frame the project at a level to meet all of your students needs, and coordinate the communication between your students and the organization (so as to moderate what goes out, and also to protect both students and organizations from any inappropriate or troublesome communication).
The framing part sounds the most difficult, but in fact the key is to provide the simplest level of project for the kids who can’t manage any more. From what I have seen so far, the advanced kids will come up with all kinds of amazing ideas that aim at the moon all on their own, and the most important thing is to get out of their way and let them fly. It’s also important to set the assessment criteria so that incomplete projects that aim at the moon still receive marks that are relative to achievement. There’s nothing more demotivating than aiming for the moon and falling slightly short, and thus receiving a lower mark than someone who aimed for the doorstep and got there.
In last year’s project, which I rate as the most successful so far, I had kids creating simple text based graphs in python, and kids creating iOS apps in objective C, together with a python server side application that processes the data (which is shared between the applications via dropbox). The range of projects was amazing, and there was success within the reach of every student. For the most part they set their own level, and worked really hard to get there.
An important element of these projects is that they are always not for profit. They are either in support of volunteer organizations, scientists doing real research, or worth causes. Students rightly question the production of IT resources for profit-making organizations, and feel exploited when they don’t get paid for it. Working with not-for-profit enterprises increases the sense that they are doing something worthwhile, and making a difference in the world.
I won’t pretend these projects motivated every student in the class. There are always some that are hard to reach. But I’ve seen kids work harder on these projects than they’ve ever worked before, and when I run my feedback survey at the end of the year, the overwhelming response to “what was the best part of the course?” is always “getting to work on real projects.”
I think that says it all, really.