Middle School Coding Clubs
Clubs I founded and led during high school where I taught middle school students programming.
Overview
In my first year of high school, I founded the Coding Club at Lake Oswego Junior High School (now Lake Oswego Middle School), where I attended in the years prior, and went on to lead the club through my senior year in 2024. What started as a virtual experiment on the Wednesdays of Spring 2021 during online school grew to become an in-person Monday tradition attended by around 30 members. Those weekly meetings, spent teaching enthusiastic students a subject area I personally love, became one of the most rewarding highlights of my high school years.
During my sophomore year (2021–2022), in addition to the original club at Lake Oswego JHS, I also started and ran a Coding Club at the other middle school in my school district, Lakeridge Middle School. I invited a fellow high school classmate to join me at the new club. In the 2 years that followed, he also joined me in leading the original Lake Oswego club.
Club meetings were typically carved up into 2 or 3 time segments. Some components involved me presenting: explaining concepts or syntax, or walking through an example project while students followed along. Some components involved students working hands-on on their own projects while I walked around the classroom, providing pointers and suggestions. Some components were more collaborative. Kahoot games I created to reinforce learning in a fun way were a staple of the club from the beginning. Another memorable group activity centered on a slideshow shared with the whole club, where we all added a slide advocating for our favorite coding language and presented on it.
Those 4 years of teaching middle school students coding were an incredibly fulfilling experience. I learned a lot: how to explain complex topics using simple analogies, how to keep students engaged after a long day of classes, how to design lesson plans to balance instruction and hands-on learning, how to foster genuine long-term curiosity rather than merely encouraging short-term memorization of facts and syntax, and much more. The best part of the whole experience for me was watching the students grow over time, sometimes over multiple years. Many joined with only a vague idea of what coding is or a general interest in making websites. Through the club meetings, they gradually grew not only in their ability to write and debug computer programs, but also in their confidence and drive to learn more.
As a member of a FIRST Tech Challenge (FTC) robotics team, I sometimes used robotics as a tangible demonstration of programming in action. I showed video clips of my team’s robots to explain how software controls robot movements and decision-making, connecting abstract concepts I shared from the podium with concrete examples of how they work in the real world. Quite likely as a result of that exposure to robotics, over half a dozen Coding Club students became members of various FIRST robotics teams in the school district over time.
I am grateful to the numerous middle school faculty members for helping me with logistics and for supervising the club meetings over the years. I am thankful to Mark, my co-teacher, for helping me lead many of the club meetings. Finally, I am appreciative of all the middle school students for their eagerness and willingness to learn as well as their infectious energy and all the lighthearted moments we shared. The little details of Coding Club meetings — helping a student figure out a bug, watching students passionately share their learning with each other, observing students’ excitement when they wave me over to show me the games they made — will forever be treasured memories in my heart.
Topics Covered
A wide variety of topics were covered throughout the 4 years of club meetings. I created and presented slideshows on programming topics like functions, control flow, and variables. I gave high-level overviews on software fields like web development and artificial intelligence. I created coding tutorials on everything ranging from programming language basics to game development with p5.js and pygame to web development to web scraping to walkthroughs of fun programming projects.
Instructional materials I created and used for the clubs include slideshows, Jupyter Notebooks, and Markdown files. The latter two can be found here.
A main goal I had for Coding Club was to ensure that everyone got to learn about topics that matched their interests. To that end, there was no expectation that students had to follow along with my presentations if they would rather spend time working on their own projects instead. I also routinely asked club members for their input to craft the curriculum around topics they wanted to learn about. I found this approach effective in fostering a fun atmosphere where students were eager to learn rather than an additional class where they were required to study one particular thing or another.
Student Remarks
Below are a few touching notes I received from Coding Club members.