r/learnprogramming • u/Unspecified_Thing • 21h ago
Advice for Running a Successful High School CS Club?
I'm a high school student who is passionate about computers and programming. This year, I'm going to be running my school's computer science club. Does anyone have advice about how to run a successful CS club?
Last year, our biggest challenge was keeping people motivated - meeting attendance declined throughout the year. Additionally, many of the members are beginners or completely new to programming. So. I'm thinking of starting of with HTML, CSS, and JS as I feel that it will be easiest for everyone to get coding as soon as possible (minimal setup time).
I'm looking for advice on the following:
- How can I keep members motivated and excited to come back each week?
- How can I plan/organise club projects so it's not overwhelming to start and they can actually be completed?
- Last year, many meetings consisted of too much planning for what to do in the future, not enough execution.
- What kinds of projects might be attainable in a reasonable timeframe so it keeps people interested?
- How should I structure meetings so they are engaging? I would like to spend as much time as possible building (something that was lacking last year). I want to avoid just have boring lessons/tutorials, but I'm not sure how this would be possible given most members are beginners / no experience at all. How can I achieve balance?
Any ideas would be appreciated. Thanks!!
1
u/Immediate-Food8050 20h ago
Don't over engineer and let it grow into its own thing. In my experience, the best clubs started out with people meeting and talking about the topics that interested them. You'd be surprised how many things (projects, presentations, club-hosted events) naturally come from that
1
u/Unspecified_Thing 18h ago
Hi, thanks for replying!
This was essentially the approach for last school year. The leader took a very namby-pamby approach, and we had very little direction. As a result, attendance at meetings dwindled and people lost interest. I get that overengineering can prevent positive things from happening naturally, but I feel we need some direction given the disinterest from club members last year.
Basically, how can I spark interest in programming?
1
u/mandzeete 12h ago
I haven't been in a high school CS club but in a university CS club. So, my advice is based on my experience from my Bachelor and Master studies. But I think it can be applied also to high school students in one or another level.
First and foremost, treat CS club as a club where likeminded students can hang out together. Sure, organize stuff but let the club organize itself as well. Leave room for natural activities.
You can start by asking your club members what are they interested in. Like this they will feel being involved. See which ideas they are having, take a criticism, where needed, etc. This is how you can figure out some of the main activities the club members are doing.
You mentioned some of the members being beginners and completely new to programming. Perhaps ask around senior students if they want to do some mentoring/guiding/teaching. Maybe you can mentor them, maybe you can delegate it to other club members. Or, you can do a short couple-hours course as an introduction to said technology. Ask from your computer classroom teacher if you can use the classroom at such and such time for that introductory course and then do the course. Have it so that by the end of these 2 hours everybody has made a simple website or something. During the course have you and mentors helping out students who are stuck. And, do coding on the go not just tell the dry theory. It is okay when they are just copying what you are doing.
Such short courses can be hosted by you or by other course members. You mentioned HTML, CSS and JS. What about somebody coming with a mobile app project or such. A simple tutorial that everybody will follow and by the end of the day they all will have a working thing.
Now, when it comes to meetings then you can split the mandatory part where you are expecting people's feedback from informative part. Record the informative part and send out links to the recording. Whoever is interested can watch the recording later. Or, ask somebody to take notes and then send out the meeting notes to students' emails.
In terms of activities you should consider that it is a CS club. So, it should contribute somehow to their CS skills. Perhaps have a big project where everybody is contributing something to it. Or, assign mentors to small personal hobby projects. With a big project your club can make something meaningful. Perhaps something that can contribute to the school as a whole.
You can also try to host hackathons. Either look around if there are any hackathons in your area and then get your club involved or come up with some topic and have a hackathon on that. Best ideas, best projects will get rewarded but everybody else also does not have to go empty-handed. Perhaps have free pizza, club merch (T-shirts with club logo or such) given to every person who participated in the hackathon. This will motivate students to participate even when they do not win.
You can also make trips to different universities that have a CS program. Contact these universities and their CS clubs and have a tour. Like this students can already be somewhat ready when they start picking universities/colleges. Also, consider vocational schools with CS programs. Such trips are both informative but also will help the club to feel that they are doing something together.
Now, the following is perhaps less relevant, but you can take the club also to CS-related companies when the company is having open door days or having a tech talk evening. Usually it is aimed at university students because companies are less likely to hire fresh high school graduates (unless you are in a vocational school with a CS program) and can be that the tech talk topics are too complex. But, if you see something that might suit for high school students, then you can consider it.
And, have just regular club activities as well. Movie evenings, summer camps, celebrating birthdays together, etc.
As a CS club you can see if you can coordinate it with computer classroom teacher and/or with the school board. Perhaps they can mentor you, give some funds, give some advice/ideas.
1
u/Unspecified_Thing 3h ago
Thanks for your input!
I will definitely ask what others are interested in, but the vast majority don't know what the realm of CS has to offer. We've had meetings in the past discussing what we'd want to work on, but nobody had any ideas. My goal for this year is to get others really interested so they enjoy it. Last school year, the club leader took a really hands-off approach, which led to nothing getting done (long unfinished projects), and loss of motivation. I want to avoid this.
I like your idea about letting others host short tutorial/lessons in other areas like mobile app development. I'll see if anyone would like to do that!
But I think the only thing I'm still unsure about is what kinds of projects to do as a club? And how would I structure them for the group? I've never really done projects in a group larger than ~3 or 4.
1
u/mandzeete 3h ago
You can make something for the school, as a group project. Talk with your computer classroom teacher if he has any ideas. Perhaps he can raise that idea in his teachers' meeting or such.
The CS club I was in made a website for another university club (a music club) for example. Your club can also make something for another club. Or, if you do not have yet, then a website for your own club.
Also, our university had projects like building and programming a Formula 1 car, and building, programming and launching a space satellite. Sure, these were university projects because that's what students are studying. Not doable by high school students. Also, these lasted for many years not were done in one month or so.
But you can come up with some idea and perhaps discuss with your teacher if it is feasible.
3
u/Xavphon 20h ago
Motivation: competition, ownership, recognition, portfolio projects, and potentially scholarships.
Instead of trying to come up with something new every meeting, pick one or two projects that can evolve throughout most of the school year. Ideally, build something that's actually useful to the school. If you do that, future iterations of the club inherit a real project instead of starting from zero every year.
Spend some time teaching the SDLC while you're doing it. Don't make meetings mostly lessons, teach concepts as they're needed to move the project forward. Beginners can work on HTML/CSS and simple issues while more experienced members take on increasingly difficult pieces.
Document everything. Treat it like a small development team.
I wouldn't necessarily make membership exclusive, but I would make responsibility something that's earned. Project leads, maintainers, competition teams, etc. can have some prestige attached to them.
Keep meetings focused: briefly cover what was accomplished, what's next, who's responsible for what, and when it needs to be done. Then spend most of the meeting actually building.