By my senior year in high school, I had nearly complete freedom to do what I wanted, so I chose to help teach programming to my friends.

Background

Most people can probably agree that high school can be as easy as you want it to be. In my school, I needed a total of 24 credits. There were eight class slots per year. One of those slots was often taken up by a free block, so the average student often would gain seven a semester. Even if you complexly fail a class every semester, you would still have six credits a year, multiplied by four years will give you the 24 credits needed to graduate. If you do well in school, you could easily skip the free block and have eight credits a year, which means you would be theoretically able to graduate a whole year early. Anyone that was that smart though would spend time working on AP classes to get a head start in college.

I had taken AP Computer Science A (APCSA) my junior year of high school over VLACS, as the class was effectively self taught due to lack of teachers and limited demand for the class. VLACS was an online curriculum which can substitute classes in your high school, and unbeknownst to me it would become my favorite class would take in high school.

My class felt heavily more academic than most years students, and that could be seen
in the growth of students applying for APCSA my senior year. In my junior year the teacher had “taught” 2 students, this time there were 15, all of which I would consider my friends as we had a relatively small school. I decided to talk to the computer science teacher at the school to judge if I should be a teacher’s assistant (TA), and from what I remember he pretty much admitted that he did not have the ability to teach the course as his job at the school consisted of teaching Scratch projects and extremely basic Python for many years, and he was not aware of how the College Board’s AP tests worked.

I was a good student. Not the best, but was still proud of my accomplishments because as I stated my class felt extremely academic compared to average. None of the classes I wanted to take interfered with the APCSA time slot, and I learned that both of the other students that took the class with the teacher last year failed. Due to all this, I felt obligated to my friends to help teach the course as a TA with this teacher.

Starting Teaching

I knew I had to maintain an interesting balance of not overshadowing the teacher, teaching the students what was needed for the test, and not turning my friendly relationships into ones of teacher and student.

This was the first time I had taught others that actually depended on the accuracy of what I said. Sure there were times in Boys Scouts or talking through what to do in a game, but nothing at this level. This combination of figuring out how I wanted to teach for the first time and the interesting set of social circumstances I was in allowed me to not only create a unique teaching style that worked for me and my peers but also a love for teaching within myself. I was taking a few other AP classes as well and found the lectures of those classes extremely boring with little interaction and way too much memorization. I felt like I could have the students remember much more if I taught in a more interactive way without trimming down on content. A metric I used was that I felt like I was doing a good job if everyone agreed we were keeping on pace for the test while the class felt like a social break where we discussed interesting topics and how to solve new problems that I could get the class invested in.

Just a Chill Guy

I would often discuss with the teacher what topics we should cover, and ask to present on them in class. When I presented, instead of lecturing, I led a conversation with my students like an interactive live show, where I would make sure my entire thought process of a problem was explainable in plain English, and talk through solutions that everyone could get behind in theory as we wrote them out and tested. Students could interject almost whenever they wanted, and I often asked for random inputs from the students for critical components, which often ended up entertaining everyone including myself while staying on track and learning about what we needed. I taught much of the course as thinking of physical objects that could be manipulated though what we write. One of my favorite exercises was trying to explain sorting algorithms by moving around playing cards, defining all of the possible moves in terms of what we learned so far in class, and letting the students try to figure out the sorting algorithms themselves in a gamified way.

Having in-class programming also was extremely fun for me and the students. We always did some sort of pair programming, as it is much more fun talking and bouncing ideas off each other and it is good practice in the industry. Additionally, I was able to see the wide variety of solutions that everyone was able to come up with. While the students didn’t understand why I was taking so long at first, almost every pair had a different approach to the problem. This showed me that programming is inherently creative. Technically, there is probably an optimal solution, but like deciding on a JavaScript framework, where that type of discussion quickly becomes irrelevant most of the time.

Result

The entire year I had fun teaching the class and I felt like the students enjoyed coming every day. The teacher loved all of the work and dedication I put in over the school year. While we did butt heads at times, we were great teammates. My peers in my class also could sense my dedication and commitment to keep the class light-hearted and bragged about being in my class or talked about how well I could explain concepts even when we were with other students outside the class.

Teacher’s assistants are discouraged from knowing the grades of the students they teach. Even so, I know that one of my best friends from the class passed, and that he said the whole class had done reasonably well. The coronavirus pandemic hit at the end of the year, so not much happened after the test, but at graduation I was awarded the top computer science student of the year. An honor I was proud of receiving as a student that never took a programming class at the school.