16 Collegiate Programmers Left in TopCoder Contest 19
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."
thanks (Score:1, Redundant)
WTF? (Score:2)
Dave
Re:WTF? (Score:1, Informative)
Re:WTF? (Score:1)
April 19th? Great day. (Score:2)
Mount Carmel burned to the ground
The battle on Lexington Green
And now, a programming competition. Celebrate!
Bob-
Competing for code (Score:3, Funny)
"Yeah, Bob, he's really doing well now... look at the way he takes advantage of the extended keyboard and 5 button mouse to really create excellent code"
"Wait... wait... I think he's found a... Oh! Look at that! That's not what he expected to get..."
"He's in trouble now... He's attempting to track the bug... We have his LiveScreenCam up now.."
"There it is! Right there in the middle of that algorithm!"
"How could he have made such a stupid logic error?"
Go AMBROSE!!!!! (Score:1)
Re:Go AMBROSE!!!!! (Score:1)
Re:Go AMBROSE!!!!! (Score:1)
Hrm... don't like it (Score:3, Informative)
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.
Re:Hrm... don't like it (Score:1)
Actually, I imagine they mean the string class, and not char*, which is a C (as opposed to C++) string.
Re:Hrm... don't like it (Score:3, Informative)
I used to deal with some of the ACM contests, and I can explain a bit about #1. If you do a contest across colleges you'll find a wide range of available hardware, from PC's to Sun's to SGI's to mainframes, to all sorts of other wierd things. Some places only have dumb terminals into central servers, some people only have PC's. There has to be a way to make it fair, and one of the things they did was to always require that you only get one window on a unix-like system with vi as the text editor. One way or another most everyone could make that happen.
Re:Hrm... don't like it (Score:1)
I participate in TopCoder contests (and do rather poorly these days, but oh well). You don't have to use the java applet if you don't want to. I always write the code in an IDE and then paste the results into the applet, so I can program in the environment that I'm accustomed to.
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)
If you don't want to use STL containers in your code, you don't have to, except for the arguments they pass in. The containers (such as std::string, not character arrays, and std::vectors) make the interface for the class much simpler, so you don't have any extra parameters like the length of the array, etc. I prefer it this way, since STL containers aren't as error-prone as their C equivalents.
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.
They don't force you to do much. They tell you to write a class that has a single member function that does X. The class isn't really necessary at all (I think it's because Java requires classes, so they just make the C++ programmers write one as well for constistency). The approach can be procedural, and most often is. The only classes that you are required to use are the ones that are passed in as arguments (if any), which are standard library classes.
This contest seems to concentrate more on the coding than the problem solving. (Hence the name TopCoder I guess).
Not really. The problems generally require some thought, and the harder ones usually require knowledge of algorithms. They really force you to think when they pose a problem that has a very large "N", since the execution time must be under six seconds on their server.
It's pretty fun. It takes a couple of hours, they hold competitions biweekly (usually), and you get money if you win. I highly recommend participating, as long as you don't end up competing against me
Fun but maybe detrimental (Score:2, Insightful)
It's fun and challenging to code under tight time restrictions, but I wonder if this creates the wrong focus. Sure, someone might be able to code a solution in the given time, but does it encourage careful thinking? The most obvious solution will most likely be chosen to solve the problem, but what about more elegant solutions that would be easier and faster to code, but aren't obvious with 10 minutes of thought?
I've done that before and required major refactoring. Speed is rarely a luxury in the work environment, so I guess the contest some what simulates real world environments. I don't have a solution to a better contest, but then again I don't think contests do much good in programming. In sports, competition has driven athletes to faster/greater heights, but it has also created drug abuse (riods).
Part of me thinks a culture of impatience is partly responsible for poor/insecure software. Though one could argue, stress and pressure can also create diamonds. I don't think it's bad, since some starving student will get a nice prize to pay for college. In the end, it depends on participants.
Re:Fun but maybe detrimental (Score:2)
A good chunk of programming is being familiar with common idioms for algorithms, patterns, and data structures. Combining these common idioms is mostly what we do when we design and code a program. The more adept we are at choosing appropriate structures, patterns, and algorithms, the better we are as programmers.
Yes, sometimes we really do have to invent entirely new algorithms. But 99.9% of the time a good programmer is simply identifying well-known algorithms and patterns and applying them. Someone who is always reinventing the wheel is not a contender.
So I'm not worried that the competition encourages speed.