Code Club, one year in…
Thoughts on the Code Club project after a year of volunteering
Background and Motivations
Almost exactly a year ago, I signed up to Code Club, a UK-based project that describes itself as a “nationwide network of volunteer-led after school coding clubs for children aged 9-11". I had heard about the programme via Twitter, and had been following the Coding For Kids meme closely, writing about it on my personal blog in January 2012. Around the same time, the Guardian launched their Digital Literacy Campaign, and the UK government, in response to demand from companies such as Google and Microsoft, announced plans to overhaul the secondary ICT curriculum.
There was a general feeling in the software industry, hacker communities and education sector that increasing digital literacy by teaching kids to code was a good idea since it encourages young people to make things and be creative with computers. On a more fundamental level, learning to code enables people to better understand the world around them.
Learning to code — like learning to read — de-mystifies technology and has potential for social empowerment.
In lieu of formal currilcula to achieve this, an informal approach was proposed, building on hacker culture, and the pioneering work of Rewired State and Young Rewired State that emerged in 2009. Part of the proposed approach was the setting up of after school clubs, identified as a good environment to enable volunteer programmers to help kids get started. I believe in response to these issues, Code Club formed in April 2012 — identifying a clear problem and a means to address it. Social networks were used to attract volunteers, which was my entry point into the programme.
Getting a Club Started
Signing up for the Code Club programme is straightforward, with good support for volunteers through the process of getting started. However, before you can actually teach in schools, a full CRB check is required as well as various forms of insurance in case anything goes wrong in the course of running a club. These are provided by the excellent STEM Ambassadors scheme, which also gives volunteers a half-day induction on how to manage your club, what your responsibilities are etc.
The most difficult part of getting a club started is engaging with the school.
It took me 16 emails, 2 phone calls and an in-person meeting to get my club set up with the school.
I think this is common problem, as I had other volunteers contact me about similar issues. Schools can be quite impenetrable if you don’t work at one or have a child there. My advice to anyone starting a club would be to initially communicate directly to the head teacher of the school you want to work with. The head will ultimately need to approve the club anyway, and I always find it is easier to get things done if you have the backing of senior managers! The school I’ve worked with has turned out to be extremely keen and co-operative, but in the event that volunteers need to do some persuading, I recommend emphasising the large-scale nature of the Code Club programme, the kudos this can bring to the school and the potential to “unlock” the creativity in pupils who may struggle with traditional lessons.
Running The Club
My first Code Club session was mid-way through the Autumn term. I ran the club on Friday afternoons after school from 3:30-4:30pm, starting with a group of ten Year 6 students (10 - 11 year olds). There were only two girls in the group, which was quite disappointing, and something I’m trying to address for next year.
Code Club provides an extensive set of resources for running a club from printable signage, name badge templates, certificates to the actual curriculum materials. The curriculum currently divides into three terms, with the first two based around the Scratch software developed by MIT.
- Term One: Scratch — three levels, nine small projects
- Term Two: Harder Scratch — three larger projects
- Term Three: HTML & CSS — seven lessons with projects
According to the developers…
“Scratch helps young people learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century.”
Code Club provides branded materials for each session such as: an overview of the project, examples of completed projects, step-by-step worksheets, and a set of “scratch cards” with information about how to do generic tasks such as “making a timer”. Each session worksheet is between 4–14 pages, with usually at least two scratch cards. With ten pupils in the group that’s over 1000 pages of colour printouts! When I initially started my club I paid for these myself, but quickly realised this was going to be very costly. My current policy is to initially encourage the pupils to read the PDF files on-screen and alt-TAB between Scratch and a PDF reader. I print the materials at the school on demand for those who find on-screen reading frustrating. This system has worked well.
The Code Club curriculum is highly structured, and although there is no obligation on volunteers to follow it precisely, there is little room for creativity on the part of the volunteer in terms of how the sessions are taught. For example, the use of a language other than Scratch to complete the tasks would be impossible. Further learning such as adding extra features to games is also built into the tasks, so there is no need for volunteers to invent these for more advanced pupils. The role of the volunteer is therefore intended to be one of facilitator and resource: the pupils follow the instructions on the worksheets and the volunteer circulates, helping with difficulties as they arise. For this I found a group size of 10 about right. In an hour I was able to help most of the pupils with their problems.
The Code Club learning experience is cumulative, so the tasks need to be completed in order, gradually building up the knowledge and skills of the pupils. My group skipped a couple of the tasks in order to catch up, and to get onto the more open-ended tasks.
In terms of “natural ability” level, there seemed little to differentiate the pupils in my group. My first impression was they were all intelligent, confident and capable of successfully completing the projects with the right support.
All pupils were initially attracted to the drawing and customisation aspects of Scratch. However, some of them never got past engaging with the software on this level. For example, many pupils were easily side-tracked by changing the “costumes” of sprites (e.g. using a ghost instead of a dragon) and drawing backgrounds in the built-in graphics editor as a way of individualising their projects. Others (particularly those familiar with gaming) became pre-occupied with imagining advanced extensions to the projects such as power-ups, different levels, missions, character development etc. Keeping the pupils on task was therefore a big challenge.
This makes me question the use of Scratch for teaching pupils of this age. At the age of 10-11, the pupils are starting to focus on expressing their own identities.
With Scratch, the easiest way for them to express themselves is with the drawing and sprite customisation tools rather than through programming.
The pupils who progressed most quickly through the curriculum were the ones who were most methodical and able to maintain focus on following the worksheets precisely. Interestingly, some of these pupils tended to struggle with the more open-ended tasks with a higher design component.
Attendance was variable from week-to-week, but I only had one pupil drop out over the course of the year. However, there were some subtle frustrations. The pupils who “got it” seemed eager to move onto the “real” programming in Term 3, but we never actually got to this in our sessions. Some of the students didn’t progress beyond basic programming level, and might have been better suited to focusing on some other aspect of building the projects than code. For example, I had one pupil who excelled at drawing, with a unique style and clear potential as a designer. It would’ve been good if I could’ve enabled him to explore this more within the Code Club framework.
My Ideal Club
In my ideal Code Club I’d start the pupils off individually, but as the club progressed, I’d allow them to collaborate on projects. Teamwork is incredibly important to real-world software development, and it would be great to see this mirrored in the club environment. This would enable pupils to work to their strengths with the more code-focused pupils working more on the programming and logic, and the more design-focused students working more on content. Pupils good at both could of course fly solo if they wished.
Complimenting this, it would be good to get onto more open-ended projects sooner. In practical terms, this could mean halving the existing Term One from the Code Club curriculum and adding in the option for pupils to chose one of the projects from Term Two as their final Term One project.
As it stands, the Code Club curriculum seems conducive to the habits of “instruction following” on the one hand and “customisation” on the other, becoming too ingrained in Term One
Finally, it would be good to spend more time on the non-coding aspects of the projects. I know this is “Code Club” not “Design Club”, but I felt that a lot of the pupils weren’t really understanding what made a project a game vs “a collection of animated sprites on a background”. One of the best sessions we had was when I ad-libbed a brainstorm on the “elements of a game” on a white board. It really got the pupils thinking about what makes a game engaging (and it was great to get away from focusing on the computers for a bit).
Coda: The Kids are Already “Coding”
One of the biggest lessons I learned through being a Code Club volunteer is not to judge the next generation by your own generation’s standards. As someone in their mid-thirties looking nostalgically at my own childhood (where myself and most of my friends had a home computer we used to write simple programs) it’s easy to view the current generation of 11-year olds as digitally impoverished. However, on asking the group what games they play, I was surprised to find that most of them are into Minecraft. Minecraft facilitates a kind of playing-by-making “sandbox” game experience, and the kids are obsessed with the endless customisation through “mods”. I can tell it won’t be long before they start writing their own mods and discover programming for themselves. Or maybe they’ll get into the world of hardware / software hacking through the Minecraft 3D printing scene. Who knows. One thing I do know is that kids are creative, and want to express themselves. We need to make sure we leave room for that expression, because the kids of today will define what coding means in the future.