. Essentially, it's a computer programming competition
for those high school comp sci
students who don't think 100 lines is a lot of code
. While the individual portion of the contest
mostly consists of writing little algorithms
to replace numbers with other numbers and multiplying in binary
, the team portion -- called "All-Stars
" -- is deceptively tricky and a great experience for any beginning programmer
ACSL is a computer programming
competition for high school
and middle school
students. There are three divisions, Junior
, and Intermediate
, each with its own set of programs that must be completed and its own short-answer problems. On the Senior and Intermediate levels, schools may have either three or five students on their team. On Junior, there must be five students on the team. Each school may only have one team per level.
Junior level is for more experienced middle school students, and high school freshmen
. Nobody beyond 9th grade
can compete on this level. From personal experience, the junior division is never very difficult, even as a freshman. The programs are straightforward, as are the short answer problems. The Intermediate division is for high school sophomores
, as well as more advanced younger students. Once again speaking from experience, Intermediate does not usually have many tricks to it, although it is certainly more difficult than Junior. The programs for Intermediate can usually be completed in one of two ways: the brute force
way, or the elegant
way. It is on Senior level (any high school student may compete) when the programs begin to require finesse to avoid running out of memory or other fun problems. The Senior programs are most frequently identical to the Intermediate programs, with a few words or a sentence added (usually along the lines of "print out all of the possibilities, not just the correct one").
The first half of the competition is conducted throughout the school year in the classroom
. There are four competitions, in December
, and April
. Each competition consists of one program to be completed within 72 hours and five short answer computer science
questions to be done within 45 minutes. These competitions are each worth ten points: five for each of five correct test inputs for the program, and one for each short answer question. This gives a total of 40 points for a perfect student score
at the end of the year, and either 120 or 200 for a perfect school score. The programs are usually fun to do but with no real use; there are a lot of board game
simulations, character counters, and binary tree
s being stuffed into one-dimensional array
s. The short answer questions have covered the following topics in the past few years:
- "What Does this Program Do": Strictly for Junior division; a short program where the student has to determine the output given the input.
- Number Systems: Converting back and forth between binary, octal, decimal, and hexadecimal, and doing arithmetic and simple algebra in them.
- Recursion: Given a recursive function and an initial x, determine f(x).
- Boolean: Boolean algebra, using and, not, or, and xor.
- Lisp: CAR, CDR, sets, and arithmetic operators in Lisp.
- Bit Strings: Bit string flicking and algebra with bit strings, usually five or so digits long, occasionally needing to be converted into binary from octal or hex.
- Digital Electronics: Diagrams of simple electronic systems with and and or gates; determine output given input.
- Prefix/Postfix: Converting from prefix and postfix to infix, and vice versa.
- Data Structures: Usually binary trees -- internal path length, number of children.
Each school reports the scores of its top three or five students in each division. These scores are added to determine the school scores. The schools with the top scores in each division get to travel to the All-Star
competition, which is a daylong event held at a participating high school somewhere in the United States
. On this day, each team (the top three or five students from each school) has to complete five programs within three hours, for a total of 40 points (more points for the more difficult programs), and each student works 8 difficult short answer
problems within an hour to determine their individual scores. Individual scores for a team are added to the team score to determine the total score, which is used to determine the winner
At the culmination of the All-Star competition, there is an awards ceremony
, with awards for the top student per team division per geographical division, for the top-scoring teams of the day, and for the top student scores. The top three teams get trophies, the highest scoring students of the year get plaques, and the top individual scores of the day get programming
books. Last year I got "Preparing for the AP
Exam in Java
" and "Java in a Nutshell
"; some of my teammates got books on game programming
stuff, and C++
. There are some special awards, mostly computer game
s. After winning one of those, our school's senior team spent the evening installing it on all our laptops and setting up the wireless network to work on the ride home. Spiffy
competition was first held in the 1978-79 school year, in the form of the "Rhode Island Computer Science League
". It is now in its twenty-fifth year. Each year it publishes four online newsletters, corresponding to the four contests, documenting challenges
over the correct answers and exceptional scores. Last year, I remember, they wrote in one newsletter
that two fifth graders
had achieved perfect scores on the Junior competition. What is the world coming to...
Overall, ACSL is a fairly incredible experience. The programs are fun and challenging, and it inspired a lot of teamwork in our computer science
classes. It had its moments of drama
("Hey, why isn't it working... wait for it... YES!
") and nuttiness
(our teacher chaperone yelling "Trogdor
" in the middle of the awards ceremony). And we got to go to Disney Land
Currently, twenty-four states and several Canadian
provinces participate in the ACSL competitions. There is also the occasional team from places like Japan
(be warned: they're really
good), and Croatia
. They are divided up into geographical divisions based on the level at which they are competing: junior
, and senior
; and the number of students per team, three or five. These divisions (for the 2003-2004 school year
) are as follows:
Intermediate 3: CR
Intermediate 5: CR
Senior 3: CR
Senior 3: CA
Intermediate 3: NJ
Intermediate 5: NJ
Senior 3: NJ
Intermediate 3: IL
Intermediate 5: IL
Senior 3: IL
Senior 5: IL
Intermediate 3: CT
Some of these states are represented by only one school
, while others have several. This year, there are over 200 schools competing in total.
Sources: acsl.org; personal experience.