There is an exciting buzz in the Zoom meeting; the Stuyvesant Competitive Coding Club members, with coffees in hand, are awaiting midnight. Amit, the CCC president, proclaims to the members, “Today marks the first day of Advent of Code. You have spent your whole lives training for this competition. Whoever solves the problem the fastest will be crowned victor. I hope everyone is ready!” He pauses a little, then continues, “We are looking for a prospective CCC president, so try your hardest. After winning this competition, you will be crowned the single best computer science student and will have a chance to lead the prestigious CCC club!”
The Zoom meeting erupts into excited chatter: who wouldn’t want to become the president of the best and biggest coding club in the world? Most students were excited to show off their fancy new algorithms they had learned in CCC and spent months perfecting. On the other hand, some students, perhaps with earlier bedtimes, seemed less enthusiastic and half-asleep. Sherlock, Cody, and Elmo, however, are preparing their elaborate coding templates and racing to finish their practice binary search problems.
The clock is ticking, and it is almost midnight, time to start the competition. It is the biggest moment of their lives, so the students are arguing about what the best strategy should be in order to finish the fastest.
The massive-brained Sherlock proclaims, “Although most of us are more familiar with Python, the large input size of the problems in this competition suggests the use of C++, the fastest and most efficient programming language. My years of experience with C++ will allow me to implement the Depth First Search (DFS) algorithm in under thirty seconds!”
Cody, a Java prodigy, laughs, “you scrub, Java is just as fast as C++ and is syntactically simpler with more safety features. I will spend less time debugging and will therefore finish faster.”
To this, the tall, muscular, and handsome Elmo grunts, knowing that although Python is slower than the other languages, Python’s pseudocode-like syntax only would complement his 500 words per minute typing speed. Sherlock, Cody, and Elmo, the star CCC members, are ready to prove each other wrong and are confident that their strategies will render them victorious. However, before they knew it, it was 12 am, and the timer had started.
There came nothing but the sounds of students furiously typing away at their mechanical keyboards and the occasional cough or sneeze. With their eyes on the prize of becoming CCC president, the members of CCC knew that even a missing character would lead to their downfall.
Three hours in, Sherlock announces, “I have finished part one of the problem and have figured out how many bag colors contain the shiny gold bag by implementing a simple Depth First Search algorithm to process the different colored bags. I knew that C++ was the superior language in terms of speed. My extensive research in programming data structures, adjacency list representation of graphs, and different ways to transverse nodes and trees really did come in handy.”
Not long after, Cody, determined to win, declares, “Don’t worry, I will catch up. I have spent years training with Mr. Konstantinovich and I will not disappoint.” Cody knew that it was not over—the smallest bug in Sherlock’s program would allow Cody to overtake him. Many hours later, after furiously debugging his program, Cody finishes the contest. Shortly after, Sherlock finishes, but it is too late. The birds are chirping and the sun is rising and sleep-deprived Sherlock is slightly irritated. Sherlock angrily declares “I should be crowned CCC president because I have a faster program runtime than Cody therefore I can teach CCC the best.” To this, Cody declares “No, you are wrong I implemented faster, therefore my skills are more useful to the club.”
Little did Sherlock and Cody realize, Elmo already finished and was sound asleep.
“Computer Labs: Services and Support: ITS.” Pace University, www.pace.edu/its/it-services-and-support/computer-labs.