Reflecting Upon My First Year of ACSL

As my freshman year, the 2021-2022 school year, began, I was unsure of myself when it came to computer science. Of course, I could confidently code in python and understood very well the syntax of the language. Rather, I was unsure how I would pursue programming/compsci as I entered high school - at this point I had only pursued personal projects, not organized competitions and whatnot. Additionally,  computer science does mean just simple programming, and although I could code well, other compsci topics were somewhat alien to me. 

Nevertheless, I decided to join my school’s computer science team, which partakes in the American Computer Science League, or ACSL for short. I was joined by my two friends, Abe and Harry, both of whom were also avid programmers. The three of us were introduced to the format of the ACSL. 

There were four “contests” throughout the year, each of which consisted of a coding question and a quiz. The coding question was generally rather straightforward  - a prompt was given, and participants needed to write a program that matches the prompt (my programs from this year can be found here). A maximum of five points could be awarded for the coding question in each contest. 

The quiz was a little different. Each contest would be centered on three computer science topics. For example, the first contest focused on “Computer Number Systems,” “What does this Program Do,” and, “Recursive Functions.” The quiz would feature questions relating to each contest’s topics. The quiz was five questions long and a maximum of five points could be awarded for the quiz in each contest. Five points for the quiz and five points for the coding question meant that one could earn 10 points in each contest. Four contents meant that forty points could be awarded to each participant throughout the year. 

As the only freshmen on the team, Abe, Harry and I felt as though we collectively had something to prove, and so we set out to study together for the first contest. We didn’t practice our programming, as we felt we had that covered, but rather worked on the topics that would be present in the quiz. Of the three topics present in Contest One, I found “Computer Number Systems” to be the easiest, as it was essentially just binary, octal, decimal, and hexadecimal conversions. “What does this Program Do” was also not too bad, as it was essentially just reading a piece of pseudocode (informal, guideline code that helps programmers develop an algorithm as opposed to proper syntactic code) and determining what the output would be - it very much matched the name. Abe, Harry, and myself quickly found that the best way to solve these problems was to make a table of values and update them manually as we parsed the program. Finally, there was “Recursive Functions,” or functions that call themselves. While these appeared somewhat challenging at first, we soon got the hang of solving them. 

Because the three of us studied together and helped each other out, Contest One went very well for us. Harry and Abe both scored nine, and I scored 10. At this point, Abe and Harry would still study together, while I preferred to study at home. We had by no means fallen out or anything. Far from it; we were still working on various other projects together, and we still spoke about the competition and certain topics. However, I felt as though the solitude helped me study, and so I parted ways in the studying regard. Now though, I somewhat regret that I chose to study alone, despite the fact that I scored 10s in Contests 2 and 3. They scored well, too, although neither attained a 10. I feel as though it would have been beneficial for all of us collectively if I had chosen to study with them more. I feel as though I could’ve added value, and I feel as though studying with them would have been quicker, as I spent a lot of time studying concepts I had trouble with while on my own. 

In any case, at that point, I had 30 points out of 30 I could have received, and was feeling very good about Contest 4, the final contest. I had outgrown the initial trepidation I had at the beginning of the year, and I was gunning for a 40 out of 40. I did the programming question first, getting a five. That meant I was sitting pretty at 35 points and only needed five more. And, as life goes, I choked the quiz. I ended up only getting two points, finishing the competition with 37 points. 

Afterwards, I tried to figure out why I did so poorly. Obviously, I clearly did not study enough. I think, however, I could chalk up my poor performance in Contest Four to bad timing. I took the quiz right around AP Test week - a week before, in fact. Thus I had to study for my AP test during the time that I would have dedicated to the ACSL contest. Additionally, by the time I took the Contest Four quiz, I was feeling a little burnt out. If I had studied for and taken the quiz about two weeks earlier than I actually did, I think I would have fared much better. I don’t really think that studying collectively with Abe and Harry would have changed the outcome much in this case, either. 

In any case, I’m happy with my 37, especially considering this past year was my first one. And, the ACSL doesn’t quite end after Contest Four, either. 

If a student scores 24 points or above throughout the four contests, they are invited to ACSL Finals, a day-long, individual competition that occurs after the fourth contest. Normally, one has three days to complete a programming question. In the finals, one has three hours… to complete two. Additionally, the difficulty of the problems is greatly increased. There is also a 20 question, hour long quiz that covers topics from all of the contests. 

Truthfully, I did not pursue reviewing the topics for Finals as vivaciously as I had studied prior. I was content with my 37, and viewed Finals as an opportunity to observe harder questions and stricter time limits as opposed to necessarily competing for the top spots (this should change next year). Even though I knew of the three hour time limit for the two coding questions and their increased difficulty, I was still surprised and encountered much difficulty when solving them. I ended up scoring three points out of 20. I fared better in the quiz, scoring 12 out of 20. The fact that I did better in the quiz than the coding was odd to me, since during the four contests, I found the coding to be much easier and struggled more with the quizzes. Abe and Harry were also both invited to Finals. Abe fared about the same as I did, while Harry fared very, very well, scoring 23 points total, the highest on our team. 

Again, I’m more than happy with my 37 points during this season, and am also happy with the 15 I scored in Finals. The year started very well, despite some hiccups towards the end. Nevertheless, I feel as though the reservations I had at the beginning of the year have been addressed and rectified. I’ve learned a lot, improved my abilities a considerable amount, and had lots of fun while doing so. Next year (and beyond)  should bear even better fruits, and I’m looking forward to increased collaboration with Abe and Harry.