Advent of Code Becomes a Poly Holiday Tradition
This winter, nearly 30 members of the Poly community are participating in the Advent of Code, an advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language. People use the game as interview prep, company training, university coursework, practice problems, a speed contest, or to challenge each other. Upper School Computer Science Teacher Richard White first participated in the game in 2017 and introduced it to Poly in 2018. Participation has continued to grow each year. This year there are 29 Poly community members on the local leaderboard, including four current and former faculty (Richard, Rachel Dunham, Dom Rosato, and Dinh Nguyen), three alumni from the class of 2022, and a variety of current students at all levels. Some students start the next day’s event at 9 p.m. the night before when the problem is released online. Students share notes and encouragement on the group’s Discord server. Other students wait until the actual day to start the problems and can be found sharing strategies in the hallway between classes or discussing the problem in their CS classes. We spoke with participants in this year’s Advent of Code to find out more about the competition.
What interested you in participating in the Advent of Code?
I’ve really enjoyed participating in Advent of Code (AoC) since Mr. Rosato and Mr. White introduced me to it last year. Not only has AoC expanded my knowledge of libraries, data structures, and algorithms, but it has also created opportunities to share and discuss code with fellow members of the Poly community, including students, teachers, and alums. Every evening, I’m excited to see what the newest puzzle will bring. What keeps AoC puzzles stimulating is their creative variety—some problems encourage mathematical approaches, while others promote algorithmic or ad hoc solutions. And in keeping with the holiday spirit, there’s a festive storyline cleverly woven throughout all of the puzzles.
—Alexandra K. ’24
I enjoy Advent of Code each year for several reasons: one, it’s a chance to dust off my skills again and refresh my memory in Python, since I don’t use it much otherwise. I also like that it’s a fun challenge for ME, not a task I have to do but for my own enjoyment and self-satisfaction. Some of the challenges are waaaay beyond me, but there are always a few that make me push my knowledge and learn a new skill, which I appreciate. (This year, it’s been practicing with dictionaries). Finally, I love that it’s a thing that both faculty and students can do, and there’s fun competition and collaboration among us.
—Rachel Dunham, Upper School Science
Why is coding important to you?
In a world connected by the flow of information, our devices, whether it be our phones, laptops, or desktops, shape our online presence and provide the bridge between the physical world and the internet. Every day we are bombarded with data relevant or not and programming allows us to replace some of the need for devices in place of automation. One such example is when people email me and Gmail flags the email as “important” and a physical light will illuminate on my desk to be a physical reminder to check my mail. Web 2.0, as they called it back in 2010, was all about the flow of information. Services used each other to provide an increasingly integrated experience for the user. Programming allows you to bring back this feeling of connectedness. Don’t like something? Make your own version of it.
—Jeremy H. ’25
What is one surprising or challenging thing you have learned during the competition?
One surprising thing that I learned during the competition was how many different solutions there could be to one problem. In fact, participants could choose an altogether different language from one another and arrive at the exact same result. However, working through the problems with fellow competitors has shown me the importance of thinking algorithmically. For example, our syntax may not be the same but we can still sit down together and figure out any problem. I suppose I never realized how computer science is much more than one language or way of thinking.
—Charlie B. ’23
One of the most challenging things for me has been keeping up with the nightly problems. I don’t have time in my schedule to work on this many puzzles! Also, the puzzles vary in difficulty, and some of the harder ones can require solution strategies that I’m not familiar with. It’s a humbling experience, to work on a challenging problem, and a good reminder for me of what it’s like to be a student in one of my computer science courses, struggling to learn new, unfamiliar concepts.
—Richard White
Polytechnic School, 1030 E. California Blvd., Pasadena, (626) 396-6300 or visit www.polytechnic.org.