Running a programming club in high school
I'm legally required to say that we don't hack computers, we're just program. (I promise!)
Hack Club is a programming club I run in my school every Tuesday at 4 pm. It is part of a larger group of Hack Clubs run all over the world. We get funding every term from GitHub (which sponsors Hack Club) and we just run lessons, workshops and fun games which help students ("learners") build a knowledge in computer science and programming.
Why we started Hack Club
I started a hack club with Felix Ronneberger in our school on October 29th, 2019. We had a couple reasons for starting the Hack Club in our school, but there was one main one: To help the bright students of our school have a love of building things. Even things that doesn't work. That feeling of enthusiasm and euphoria when you create something from nothing is what I wanted to promote in the school.
Our first workshop
Our first workshop was a bit of a mess. I mean literally, there was pizza everywhere. But, we managed to run a workshop, from start to finish, in one hour. Success!
The first workshop was focused around building a personal website, and learning HTML and CSS through that. As much as I love project-based learning, the guide that Hack Club provides is a bit... too easy. I figured out quite quickly that the learners were just copy-pasting the code and changing it a little bit. Skimming the explanations and just walking through. I think that having a mechanism in the site that makes it so you can't copy-paste code would be a good idea.
Another issue was the responsibility on each learner. For project-based learning to work, each learner must have some kind of accountability. This means the learner puts more effort into their work. Since Hack Club doesn't have a way to do this, I noticed students drifting in and out of concentration and work.
Even though these issues where prevalent, the atmosphere was fun. There was music, jokes, laughter, all good fun.
What I learned from the first workshop
Have a clear goal
Knowing that learners have to present their work at the end means they work harder throughout the session.
- Keep a good atmosphere Making sure everyone knows what they're doing, but still having fun is they key to a good session.
Sometimes we didn't have that many people
Whiteboard teaching
After a few workshops, I noticed that we were scratching the surface of programming. Learners understood how to follow the tutorial, but not much more. The best way to advance here is to dive in to a complex, but understandable problem.
For this, I chose Fibonacci numbers.
This is a classic choice for beginner programmers as you can explain the problem easily, and the result is clear. In other words: The problem and solution are well defined.
Before the session, I whipped up a presentation which I used to explain:
- What Fibonacci numbers are
- How we can generate them (in terms of maths, not programming)
- Refresher on:
- Variables
- For loops
Although the students had used variables and for loops, I thought it was important for them to have someone refresh their memory.
I made sure to never give away the actual code, as I used that as an exercise for the rest of the lesson. I made sure to be available and help out if anyone got stuck. However, I tried to ask the learners leading questions like "how would you find that out?" instead of just telling them what to do.
Opportunities
Over the lockdown of 2020, everything changed. However, the online Hack Club community was stronger than ever. Weekly meetings with various famous creators were organised online. The whole community got to ask whichever questions we wanted, to some of the most knowledgable people around.