Just Coding vs. Improving and Learning New Things
The more years our school's Code Club runs, the more I realise how well-designed the Code Club Australia curriculum is. I've previously mentioned that we started our Code Club just picking out what we thought would be most fun for the kids. Now I've realised that it's probably time to stop apologising for teaching coding, and muster a degree of boldness and work hard to show kids what they can do with it. In order for them to be able to do things with code, they just need to get through the projects; if they get too bogged-down, they may never see the potential or learn the lessons gained from trying to make something, and make that something work.
Projects are Designed to Take Under an Hour to Complete
Recently, one of our volunteers reminded me of something I'd forgotten: The Code Club projects are designed to be completed in under an hour, and for that reason, they're really not that difficult. So...then, why is it that sometimes we find kids that should have completed Scratch 1 and 2, but have only just done a few projects? In a word, passwords. Students' school passwords are normally able to be reset by teachers, so parents sometimes won't recognise this as their responsibility, since our Code Club is at a school. However, talking with other Code Club volunteers and teachers, this seems to be a fairly common problem.
Since getting bogged down on one project too long can discourage some kids, it's important to identify operational issues and get these fixed in a practical way. Once you have a process to fix an operational issue, it helps to make a 'cheat sheet' for volunteers and teachers. That way, it's essentially a case of, "if this happens..do this", and we're all sorted ;). Of course there's always initially some degree of student learning required to understand various interfaces used, and this usually sorts itself out quite quickly. Since we have previously taken students through a number of projects that involve the use of other operating systems and interfaces, like Linux on the Raspberry Pi computer, it's handy to maintain a degree of adaptability.
Scratch Teacher Accounts For Central Management of Student Accounts
One solution, suggested at a meetup, is to use a Scratch teacher account. This means the teacher creates the Scratch accounts, and can reset passwords as required. However, the problem with this, is that after Code Club, the accounts aren't accessible to the kids, and this means they aren't empowered to, or don't feel like they actually own their Scratch account.
A lot of our Code Club parents ask me about continuing on with coding and creating, after Code Club. Also, our Code Club doesn't run outside of school terms. So we looked for a way to combine the central management of Scratch teacher accounts, that doesn't result in disabling of Scratch accounts after Code Club. Something that is important, when rotating teachers, and with changes to our volunteer availablity from year to year, is redundancy: being able to reset accounts without exposing personal information accessible from an individual's email account.
A Compromise That Lets Kids Express Some Ownership
Something that may be a better solution, is to have regular accounts created, and then use a common email address so that these can be reset during Code Club, as required. The accounts are still accessible outside of Code Club times, but during Code Club times at least one volunteer, or teacher can reset these. Once Code Club is done for the year, access is then transferred back to the parents so that the account still lives, and the kids realise they can still keep coding.
Get Those Skills
Why do we need to get through Scratch 1 and 2? Sometimes it can seem that when kids are coding, they're always learning. But it's easy to only stick to what they know and become restricted with what can be created. Take a look at the concepts taught by each Code Club Scratch 1 project here and Scratch project 2 here. The concepts taught vary across the projects, meaning that kids looking to progress through to Python really need to have done Scratch 1 and 2, to understand initial concepts.
The Australian curriculum now includes programming (coding) components. From the perspective of our Code Club, this seems to be a good thing, as it will allow us to do more for the year levels that we provide our Code Club for. I'm excited about the projects we'll be able to challenge ourselves with over the next few years. For teachers, it's worth considering using the overlap of the Australian curriclum with the Code Club Australia curriculum, shown here. It looks like an easy way to complement some of the teacher material with the ready-made projects that will fit into a class.
It's Still About the Journey
To get the most out of Code Club, kids need to deal with many challenges and often end up needing to troubleshoot if they've got ahead of themselves. It's this very process of challenge and resolution in order to reach a goal, that helps kids learn effectively, from coding. Sometimes this can involve some failures and letting our code become overwhelming, so that we can re-design (re-factor) our code to be easier to read and debug. A more elegant solution to a problem is much easier to consider mentally, and so allows for more complex problems to be modelled and solved.
Useful ways of creating these elegant solutions for our own projects can include:
- using a whiteboard or paper to draw a visual representation of a problem and solution
- writing pseudo code i.e. a quick and readable descriptions rather than actual specific programming language
- learning how to use a wider variety of data structures and concepts, that help us model common solutions more easily
Push Ourselves A Bit and Learn Cool Stuff
So, rather than just 'doing something' when they are at Code Club, to get the most benefit, kids can progress through the Code Club curriculum. Part of this requires maintaining continuity both with volunteers, teachers, and working to get through the projects, and helping them to complete projects. It's really great to be able to point out how far the kids have come with their coding, so they feel a real sense of achievement at the end of the year.
Although there's great value in letting kids create freely, we've found that there's still a certain amount of guidance required so that they'll have the skills they need to create. Having said this, it can often take getting totally confused by writing an impossibly complex solution, to appreciate the more straightforward and elegant approach.