For the third year in a row, BCA has qualified in at least one division of the ACSL All-Stars, a national computer science contest. The first year, when I was a sophomore, we were all ecstatic to have made a national competition. (well who wouldn't be?) The three of us, Kamran, Pavel, and I, were to somehow get to Maryland on Friday, stay there for a night, and get back Saturday after the competition by ourselves because Mr. Tyndall, the ACSL advisor, couldn't make it. Balls.
I decided to take things into my own hands. I recruited my parents as drivers, since I had close connections to them and they were wiling to go to the competition. We found a relatively inexpensive hotel in the area and booked two rooms, one for the guys and one for my family. (It had free wifi, too :D) With some reviewing, but no formal programming practice or problem sets, we managed 4th place overall. Nice.
The next year, Mr. Tyndall decided to sign up two teams, one in the intermediate division and one in the senior division. Both teams qualified for All-Stars, to be held in Alabama. Unlike before, this trip was school sponsored (Dr. Mayers chaperoned!), but we had to pay a lot more than if we went by ourselves. Again, there was no formal practice except for a cursory review of the topics for the written contest the night before. This yielded mixed results: the powerhouse of a senior team (Sam, Kamran, and I) easily claimed second place, while the intermediate team managed sixth. What was worse was that the individual round scores for the intermediate team was absolutely horrendous, with one person getting a measly 4 out of 12. Seriously?!
Upon witnessing the utter massacre, I vowed to make sure it doesn't happen again. I decided that, since I got a perfect 40/40 on the monthly contests and a near perfect 11/12 on the All Stars written contest, there wasn't really a point to go to All Stars again, so I just participated in the seasonal contests to help the school's team score. I made sure that after both teams were invited to All Stars, optimal teams were chosen as soon as possible to maximize training time.
As expected, both teams were invited. I decided to implement a team selection test for additional data gathering. It covered all material on the seasonal contests and had two parts; the first part was a speed test with ten short-answer questions to be done in ten minutes and the second part was five All Star questions (open-ended!) to be done in thirty minutes. The scores were more or less what I expected; but I was highly disappointed that no one got the internal path length question correct on the speed section and only Andrew Cai got the pre/in/postorder traversal question right on the accuracy section. Now I had a better sense of everyone's skill level and collective strengths (bit string flicking) and weaknesses (trees).
The next step was to pick teams. Mr. Tyndall, Dr. Nevard, and I sat down during my lunch time to discuss teams. With everyone's seasonal contest and TST scores in hand, we debated for about forty-five minutes on everyone's qualifications. We focused on people's teamwork skills, motivation to prepare for the contest and reason for going, and ability to supply a driver. Finally, we decided that Alex K. Andrew H., and Mark M. should represent the intermediate team and Yumi S., Andrew C., and Jonathan S. should represent the senior team.
With the team selection out of the way, I quickly whipped up a problem set on trees. It had two sections; the first section had three parts; each required building a binary search tree out of the string (ABCDEFFEDCBA, BERGENACADEMIES, PRINCETONUNIVERSITY), find the internal and external path lengths, and do preorder, inorder, and postorder traversals on the tree. The second part consisted of building a max-heap out of the word SCHOLARSHIP and doing preorder, inorder, and postorder traversals. Time limits were given so that the contestants could pace themselves. The results were generally good; most of the six were able to do the heap question, but about half stumbled on the longer strings in part one.
The weekend before the competition, I emailed everyone a programming problem set. I couldn't find any `good' ACSL problems (this is where you rofl), so I stole one from Project Euler (find the sum of the digits in $$N^M$$), one from USACO (preface numbering), and made two up (sudoku solver and shortest path). I was plenty surprised to have seen a shortest path problem on last year's All Stars, given that ACSL was mostly about brute force and super annoying problems. I am not sure if anyone attempted the problems, since I did not receive any emails with programs. Oh well.
The second pset was on Finite State Automata and ACSL Assembly and the third was a speed test on bit string flicking. Again, the psets had two parts each. On pset 2, the first part consisted of drawing some finite state automata from regexes and the second part consisted of not reading, but writing assembly code given a task. The third pset had two sections of bit string flicking. I got responses from most of the All Starrers. They did well on the third one, but got pretty raped on the second one. One person said that ``his eyes bled'' when he wrote the assembly code. Since it was just days before the competition, I decided, at 23:30 the day before their departure, to type up and send them my solutions to the problems so not only could they check themselves, but also see how I attempt the problems.
During all of this writing problems and giving feedback fun stuff, I also had to maintain clear communication with Arlan Dietrich, the ACSL coordinator, Mr. Tyndall, and the driving parents. There was lots to be done logistics-wise, such as registering for the competition, placing lunch orders for the competition, and telling parents about the schedule of the competition and the times that they have to get to places. Although it was very overwhelming, I somehow got through everything fine…
I was really happy to hear that the competition went smoothly, and even more so when they said that they pwned the individual round :D I breathed a sigh of relief, now knowing that I have considerably mitigated our biggest weakness. Three people got 11/12s, one got 10, and two got 8s. Much much better than 11/11/10/9/7/4. The senior team did respectably well on programming, with 37 out of 40, but the intermediate team got absolutely annihilated, scraping up only six points out of forty. This resulted in a fourth place finish for senior team and sixth place for intermediate team. At least four of them got books for doing well on the individual round. Well done, guys :)