16 Collegiate Programmers Left in TopCoder Contest
Allen Reitz writes: "Sixteen of the top collegiate programmers in the country are left to compete in the 2002 Sun Microsystems and TopCoder Collegiate Challenge. The semi-final and final rounds will take place at MIT on April 19-20, 2002 where all 16 contestants vie for the $100,000 prize. Four regional finalists and 12 'wild cards' make up the final 16 out of 512 that were selected to compete. The four regional finalists include:
Ben Wilhelm, Oberlin College;
Trayton Otto Georgia Institute of Technology;
Tom Sirgedas, University of Michigan-Ann Arbor; Dan Adkins, University of California-Berkeley.
Other schools that are sending contestants include: Cal. Tech, Stanford, Univ. of Minn., Virginia Tech, MIT, Michigan Tech, Purdue and the University of Central Florida.
If you live in the Boston area and are interested in viewing a programming competition, feel free to stop by the University Park Hotel at MIT on April 19th or view the finals on April 20."
You've got 75 minutes to do 3 problems and you lose points (from the maximum possible) continuously while working on a problem. So it's very heavily speed weighted. Then, if any test case a competitor or judge comes up with causes your program to give a wrong answer or takes too long to answer (one wrong case = fail system test), you lose all points for that problem.
Well, I spend some time reading over the site. I saw a few things that I didn't really like (that turned me off from trying it)
1) You have to code in this one window that seems to have the problem pinned to the top of it. In a Java applet. With a half assed vi. I'd want to be able to code the thing in vim (or editor of choice), in multiple windows. I know as a programmer I am attached to the way I code (and really attached to regex searches and s/xxx/yyy in vi) and wouldn't want to code on a time limit in an awkward environment.
2) It says if you use C++, you are restricted to using C++ strings (null terminated char * I guess?) which is cool, but vectors must be STL Vectors. Why not let you do what ever you want (i.e. vectors are just arrays)
3) It seems like it gives you the classes/methods you should use. I see this makes judging it simpler, but it seems sort of like CS 101 projects on a time limit. I don't like coding into someone elses architecture, or worrying about using classes well when I am doing a quick and dirty solution and just want to hack out some procedural stuff.
Overall, I see what they are trying to accomplish, and I guess it would work. Like putting rules on any arbitratry activity, it allows for good competition, but limits people. I personally like the idea of the programming competitions we had way back in High School better - a team of 4 picks a language from 3 or 4, designates one person as a coder, gets 10 or so problems or reasonable difficulty with nothing more than a description and requirements, and has 4 or 6 hours to code solutions to as many as possible correctly. There you aptitude with the chosen language, understanding the limitations and advantages of your language, your collective skill at architecting innovative solutions, and the make up of your team all made a big difference. Being able to code correctly and quickly was just a benefit - but finding solutions to difficult problems that were elegant and efficient was most important. And in my experience, while coding quickly and aptly make a big difference, someone with a mastery of all the constructs of a language isn't worth their salt if they can't envision a solution. This contest seems to concentrate more on the coding than the problem solving. (Hence the name TopCoder I guess). An interesting competition, but not something I would spend my precious non-work coding hours on.
If someone who has participated could provide insight to any of this, please do - I am interested to know if I am misunderstanding any/all of this.
_sig_ is away