This year brought a few changes to how we're running our local Code Club. In addition to having our largest group yet, this year we have the most volunteers we've ever had. With these challenges, we seem to manage to stay aware of individual skill levels in students, and seen volunteers grow their skills as well. I thought it might be useful to sit down to reflect on how things are going, and try and share some insights into things that seem to work for us, and talk about some of our experiences and issues we deal with.
Broader Demand for Coding Skills
In previous years, we've had smaller groups, but these would generate more interest during the year, resulting in a waiting list due to the limited computers and volunteers we had available. This year, there was an increased demand at the start of the year, with parents asking about Code Club literally as soon as school started. Since our club is school-based, we only run during the school term. We also added another two year levels midway through last year, at that time making the decision to run the sessions concurrently. Due to larger numbers this year, we've opted to cater for years 3/4 and 4/5 in separate semesters. This decreases the ration of students to teacher/volunteer, allowing us to reduce the time students have to wait for help.
Initally, there were three of us running a Code Club, scrambling around to answer questions and demoing projects, to keep the students excited about coding. Fast-forward a few years later, and we have a reasonable group of parent volunteers, and past students volunteering from multiple previous Code Club groups. Now, it seems we have more past student volunteers than parents! One of the great things I've observed with our Code Club alumni volunteers, is the way they just adapt and get things working. After some thought, we attributed this to our previous Code Club years, where we worked hard on instilling a degree of resilence where we would push forward, to achieve as much as we could while figuring out how things worked. And, coupling greater numbers of volunteers with dividing the larger group into two, this smaller student to volunteer ratio also means that no students are left idle during Code Club sessions. The rate of progress this year is increased, and that theoretically means students can achieve more in a shorter amount of time. A side-effect of this is that there's less time to get bogged down on a project, and potentially more excitement generated.
Issues we're Working On
As almost every Code Club volunteer I talk to will attest to, forgotten passwords are probably the most common issue that adds extra time to each session. We usually have workarounds, such as shared accounts, but these often require some extra steps e.g. copying a project file to somewhere that is accessible for next time, downloading projects rather than having them automatically save, and doing this before students are collected for their next extra-curricular activity. One initiative one of our Code Club teachers started last year, is to rotate other teachers in the school, through Code Club: So they either come along and assist, or take turns as the main teacher representative at the Code Club. As more teachers in the school understand more about how Code Club works, they can incorporate some of this knowledge into their day-to-day content, as well as teaching some awesome teacher skill to volunteers, or even helping reduce the 'forgotten password' issues.
Volunteers and teachers new to Code Club will sometimes cite minor issues as problems, such as lack of familiarity with an operating system interface, or hardware. However, as some of our seasoned returning Code Club alumni quickly demonstrate, these are really minor, since young students will figure these out within a couple of weeks. In contrast, I've found this environmental agiity to be valuable in later projects, when more advanced students will venture into robotics and create web applications on small Raspberry Pi computers.
A useful by-product of our sessions, is that students become more aware of privacy and security principles and can start to apply these to their everyday life decisions. For instance, computational thinking can often help students consider logic that affects accessibility and access privileges, both in computer systems but more broadly in terms of which and what types of information they share with others. This includes considering whether another individual requires specific information, how much information the require, and how that information could potentially be misused.
This brings me to a real issue that has plagued some of our workshops has been recent changes to school laptops that prevent compatibility with other networks. Although previously, the IT folk at the school have been helpful, we still struggle to get notified of changes that affect our sessions, or restrict our ability to set up specific software or hardware. Although we have the skills to sort things out ourselves, when Code Club starts, time is critical, and something stalling can mean a wasted weekly session, and is frustrating and distrating for kids. The real answer has been to find a time to sit down next to an IT guy at the school, and just get things sorted out. Other than that, it's often a matter of making sure we depend on unknown factors as little as possible. Although this has really only affected our more advanced workshops and activities, as more students progress faster and faster, I could see this having a larger impact. Ideally, a small pool of computers that we control, or just finding some accessories for our Raspberry Pis may be a good start. Interestingly, since we're seeing much more progress in our students this term, this may need to be sorted out sooner than we expect!
Tracking Individual Skill Levels and Interests
As Code Clubs progress, the gap between least skilled and most skilled students starts to increase. At the same time, students also discover areas that they are keen to focus on, further diversifying the types of activities we have running. Last year, we started to introduce the myEd application, as a way for students to track their progress; and this term we had the right student to volunteer/teacher ratio to ensure that students recorded their completed projects. In one of our recent sessions, there was lots of enthusiasm about more exciting projects in the future; and it'll be easier to get these going because we know exactly whom to call in for specific project groups, based on the work they've done. Code Club Australia had a great curriculum base to get started and seeing students work through it faster than ever before, is very encouraging. So, with more advanced workshops running, it's great to have volunteers that are equally as eager to build their skills and play with robots or (attempt to) shadow other more experienced volunteers, while they rush from student to student during each session. For some students that are after a deeper understanding of some principles, I've also found that referring them to a list of recommended books can be useful to accomodate those students that enjoy working on more advanced content at home. Other Code Clubs I've talked to have also been quite successful in introducing pair programming to allow students to solve problems and review each other's code.
Developing Volunteer Skills
One major benefit of training up volunteers, is redundancy. It means that Code Club will still run when a particular volunteer is away, and that students will stay on track with what they are working on, rather than ending up with a bunch of abandoned projects. Lately, we've placed a bit more focus on completing projects that we start, because this helps to reinforce the idea that our projects are alive even when Code Club isn't happening due to a long weekend, or school activity.
Communicating to as many volunteers as possible can be hard. Earlier on, I would try and email each volunteer after Code Club sessions, and see how they were going, or what they were getting stuck on. These days, we'll get onto a collaboration platform where I can post files and URLs for userful learning resources. The idea behind this is to keep the excitement going with our volunteers and teachers. It also pays to try and tee up a time with teachers at least once a month to either:
- play with tech/electronics/code
- catch up and work on any issues or upcoming events
- drink coffee and discuss face-to-face, how things are going
It can be hard to find the time to catch up, but it's usually time well spent if I can get it. Sometimes meetups can be useful to catch up with teachers and volunteers from other school. If you're thinking of volunteering, or starting your own Code Club or similar, you can't go wrong turning up to a relevant meetup. It's great to compare notes and give each other ideas and tips. Very often, I come across other Code Clubs that have fallen into situations that we haven't, and can offer friendly insights into how what approaches to take. Other times I find myself travelling or just talking to other Code Club people online. Having the Internet really has advantages at times ;).
As students become more advanced at coding, the demand for challenging activities may require more skills from teachers/volunteers. Some of the best ways to help volunteers and teachers skill up quicker, is to run training workshops. A good example could be a robot workshop. Other times, we just invite teachers to our Code Club sessions. I stil marvel at how they will quickly drop straight into teaching mode with only a little coding experience, and do such an awesome job. Inviting other teachers to Code Club sessions really helps to let other teachers know that coding isn't really that scary, and give them exposure to what their students might be interested in outside of their normally classes.
If you're a teacher or volunteer, Code Club also run training that you can attend - I have even heard of a Code Club set up just for adults wanting to learn to code!
With every year that we run our Code Club, it seems that students are learning things faster, and progressing further during the given time. Last year we were able to run two different robot workshops in parallel and in addition to the standard Code Club activities. There were plenty of distractions that may or may not be relevant, including: - 3D design and printing - Spheros - Drones
Ultimately, these should all be able to integrate with the result being much more of a maker workshop where students are equipped with the basic skills to code and find their way around various machinery and eletronics, to create whatever they can dream up. We're seeing more ownership of coding projects, where projects are initiated and run by students, that continue with their own energy. I'll often tell our students that we can go as far and as fast as they like, they just need to put in the effort. These days, we're getting more and more efficient, so maybe we'll find ourselves further than we expected ;).