Every year the ACM International Collegiate Programming Contest gives college students the opportunity to compete in teams to solve software design problems. This year I competed in the Mid-Central USA Regional round at Tennessee Technological University that consisted of 24 teams from 10 universities. My team placed first, solving 5 brain-teasers in under 5 hours. With the last minute pressure stepping up our game, we submitted our 5th problem minutes before the buzzer and completed a 6th problem minutes after the competition had ended.
Each team was assigned a single workstation in a classroom with 5-7 other teams. The workstation was not connected to the internet and the use of other electronic devices was not allowed. The competition stipulates that solutions may only be submitted in Java, C, or C++. Fortunately, Eclipse with code assist and Javadoc was available, making the precious minutes we actually got to program very enjoyable. When the packet of problems was handed out we quickly scanned through them to determine which could be solved quickly and which would require a longer time commitment. We did this by assigning certain problems to each member of our 3 person team so we could each screen for difficulty, and code-up a solution for any really easy ones we found. We used modular arithmetic to divide the problems. I was assigned those that the problem number mod 3 equaled 1 (1, 4 and 7). Since we had to share a single terminal, most of our time was spent writing out code (pseudo-code really) on paper and stacking it up to be programmed when the PC became available.
Each program could be run locally against a set of test inputs to determine if the output was correct and once the problem was submitted to the judges, the program was tested against a much larger set of inputs to verify correct functionality. A response was usually received by the judges within about 30 seconds stating whether or not the submitted solution was correct. I submitted the Gnome problem (#1) within the first 15 minutes (after waiting my turn for the computer) and worked the remainder of the time predominantly on the Cell problem (#4) which involved calculating the signal strength of cellular towers at precise intervals located along an arbitrary route.
After the competition we devoured lots of free pizza and sodas before heading to the auditorium to hear the results. Each member of each team was presented with a certificate and the top 3 teams were awarded prizes. For first place, my team received IBM water powered clocks.
Check out the article published by the Vanderbilt School of Engineering:
