ACM Programming Contest Results
An anonymous submitter writes: "Shanghai Jiao Tong University has won the 2002 ACM International Collegiate Programming Contest with six of nine problems solved. Also solving six problems were MIT (2nd), University of Waterloo (3rd), Tsinghua University (4th), and Stanford University (5th). You can view the problems online, as well as the final standings. Congratulations to all!"
About knowing your exam schedule a semester in advance, that is ridiculous. I've been at UBC for the past 5 years and we are always told when our exams are about 2 months before, not a semester. And that is only the exam schedule draft. The final schedule comes out about a month before.
I agree that Fortran 90 could have been allowed, but I'm not surprised.
Students simply don't know Fortran, it isn't taugth anymore. I seriously doubt it would be such a great advantage in these problems, but if it were it would put most students at a dissadvantage just because they don't know it anymore than they know COBOL. Sort of like allowing Perl for a string-manipulation competition if only 1/25 students had ever seen a line of Perl.
I don't think you have to know Fortran if you're a problem solver either. It's really not that great, and it doesn't seem so different to me as to give completely different approaches to the same problem. So I see no good reason why it should be taught more frequently either.
Sure, Fortran 90, is quite a decent language, and it's worth checking it out; far from the horror stories I had been told about Fortran, or the old Fortran code I had to read through a couple of times.
But there are many good languages out there, and since there are resource constraints, there's really no good reason to include Fortran if it doesn't bring something drastic to the table.
Four C-like languages are already plenty to handle. They were chosen obviously because they're the C-like languages used to teach in 99% of CS/CE courses.
I wonder, though, at the restriction of using only C-like languages. Being a collegiate contest, I don't think assuming some exposure to functional languages would be taking too much of a change, and that can definitely make a difference. Allowing SML/CLISP/Haskell would be rather interesting, if they make good problems.
Freedom is the freedom to say 2+2=4, everything else follows...
I remember years past when I was on the team competing for my university. Locals, not International. One year we had several of our guys graduate (IIRC), and were short on filling in with CS students. Well, we ended up with a Chemical Engineer who could program, and I tell you it was a blessing. He brought a whole different viewpoint to the table on how to solve things, because of having different techniques needed for his discipline.
Iterative estimation of math problems to get the needed significant digits instead of actually trying to solve it, that sort of thing. Helped all of us open our eyes for "non-CS" ways to solve stuff.
=Blue(23)
LITTLE GIRL: But which cookie will you eat FIRST? C. MONSTER: Me think you have misconception of cookie-eating process.
As for the buzzword compliance, remember that TopCoder is a business and recruiters are its customers. TopCoder is only providing what they are asking for.
If you're up there, there are companies looking to hire you. They seem like good companies too, really interesting work. Unfortunately, most of them want to hire immediately instead of waiting until June when he has his Master's.
Every contest has it flaws, but I think TopCoder is pretty good at keeping my Java skills up. I tend to do all of my personal programming in C/C++, so I forget my Java-isms. It also teaches me some practical Java stuff that you don't learn in books. I was suprised as hell that Java lets you add and subract from character literals, for instance.
Most of the harder problems require dynamic programming to keep you from exhausting the JVM's memory or exeeding the 8 second time limit imposed to prevent infinate loops.
Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
Yes, I agree. Not just functional, either; lots of their problems would be exquisitely tackled by a logic programming language like prolog or twelf. It saddens me that ACM is not progressive enough to encorporate even "known good languages" into their allowed set (yet would easily fall to Yet Another Procedural Language with corporate backing like Java).
;)
There are lots of things that suck about the ACM contest, anyway. Personally, I think that the ICFP contest is much better, because:
- You can use any language, number of teammates, resources, etc.
- You get several days
- The problems are more interesting (sometimes unsolved)
- Work at home