Slashdot Mirror


ACM World Final Standings Posted

Nyerp writes "The final results for the ACM International Collegiate Programming Contest are up. Cheers for St. Petersberg State U, followed by my own school, the Univerity of Waterloo!" Congratulations, guys! I wonder if any of the world finalists used Pascal, since it's allowed.

22 of 184 comments (clear)

  1. Moscow State University, maybehaps? by Christopher+B.+Brown · · Score: 2
    See their Mathematics Division information on the Faculty of Mechanics and Mathematics.

    The Faculty of Mathematics and Natural Sciences at Universiteit Leiden has a somewhat similar organization, but I'd consider MSU a much better candidate.

    Note that St. Petersburg State University has a similar organization of having a Mathematics and Mechanics Faculty. It probably used to be called Leningrad State University back before "glasnost."

    I could go with either MSU or St. Petersburg as being "the ones." St. Petersburg has been doing very well in the ACM contests, which suggests that they are likely rather good.

    Whether that's from student selection ("nature") or quality of teaching ("nurture"), or some combination of both, is another question...

    --
    If you're not part of the solution, you're part of the precipitate.
  2. Re:I looked at the problems... by Logan · · Score: 2
    Too bad they couldn't all be that simple. The problem is that you could be allowed to travel in any direction when you enter a node, so there could be multiple paths through the maze. The wording of the problem implied that only the shortest path would be accepted. Your algorithm (a depth first search, starting from the destination rather than the entrance) isn't guaranteed to do that. I think they were referring to it taking Knuth 30 minutes to actually walk through the maze. It's certainly a lot different when you can't actually see the entire maze at once. :P

    logan

  3. Programming Contests == HackFests? by SnatMandu · · Score: 2
    I did some programming contests a few years ago. In one we got killed at the first level, but the first year we got to go the North Eastern US and get killed by Harvard, MIT, and RIT (which was at the local competition, but placed at the regionsals). It was fun, but we didn't take it very seriously. Alot of it seems to come down to figuring out some trick, or just hacking something out.

    A professor of mine (Dr. Hans Koomen) had developed a contest more focused on planning, design, and doing it right.

    In 1996 (the only year it was run - if at all it was) it was a Chinese Checkers competition. Build a chinese checkers player, and duke it out. There was a hack contest in the morning too... I wanted to see it happen while I was there, but it never came about. Too bad, seemed like it would be fun.

  4. Re:Interesting Demographics..... by SoftwareJanitor · · Score: 2

    Your milage may vary. My educational background is not dissimilar to yours. I also attended a midwestern University, in my case for about 2.5 to 3 years before I ran out of money. One difference is that I worked for a department at the university as a C/C++ programmer/UNIX sysadmin during the time I was in school and for about 6 months after I dropped out. The pay was really bad, but I got a lot of valuable experience that I was able to use to get my 2nd job. My second job was a middle entry level job doing Informix 4GL programming, database and UNIX administration. It paid about double what my university job did and had actual benefits (which the university didn't pay for hourly people). After a couple of years doing that I was able to move up to a decent job doing C/C++ development at a small (30 person) company for a salary in the middle range for experienced developers at the time. And after 3-4 years I was able to move up to a different position at a larger company (100k+ employees) making towards the middle to upper end of the range for C/C++ developers. During my time there I've gotten several promotions and decent raises. I am just getting ready to start a new position after 3-4 years at the previously mentioned company. I've got more experience now doing web development in Java, Perl, etc. My new position will put me well into the upper range for developers in the area.

    You are right to a certain extent that someone without a degree or experience will have to 'pay their dues', but I am not at all sorry for having taken the path I chose. I wouldn't recommend it without hessitation to everyone though. It does require that you be stubborn, dedicated and willing to work hard to prove yourself.

  5. Re:Use of Pascal by SoftwareJanitor · · Score: 2

    Im curious if VB still suffers from the bad image BASIC has had in academia.

    Yes. It suffers pretty much the same bad image with a large share of the professional development community as well of course, even a pretty fair percentage of the Windows development community.

  6. Re:think... by Abigail-II · · Score: 2
    They must be getting job offers like crazy... And if they arent, they should.

    I doubt they will get job offers, and I doubt any company is foolish enough to offer them jobs based on such a contest. I've participated twice in the European finals (once missing a trip to the world finals because despite ending high enough to earn a ticket, all the teams in front of us were from the same country, and there was a 2 team/country limit), and I've organized regional finals. The exercises to be solved are merely puzzles. You have limited time, and limited resources. There's a decent amount of luck involved. If you instantly recognize a problem and map that to a fairly standard problem, to gain valuable time. Or to interpret the wording of the exercise the same way as the organizers intended, and not have to wait for your clearification request to be processed. (Or worse, having to redo part of the program because another team submitted a clearification request, and it turns out your interpretation wasn't correct.) Even losing 20 minutes can be the difference between solving 4 and 7 problems! The contest doesn't judge the quality of the program, or its efficiency, maintainability, or anything that's actually important for a program. All it needs to do is compile, and produce the correct output on some test inputs. Of course it helps if you are a good programmer, but other important skills are typing speed, and the skill to avoid typos.

    -- Abigail

  7. Re:Controversy over Problem F by Abigail-II · · Score: 2
    I agree that Problem F was poorly specified.

    What surprises me is the number of people here complaining about problem F, describing in detail how the dealt with it, but noone said they submitted a clearification request.

    -- Abigail

  8. Re:My comment by Abigail-II · · Score: 2
    I rather see the ACM contest use python and/or perl than Java.

    There was once a programming contest that allowed the use of Perl. I think it was in one of the contests to gain access to a regional final of the ACM contest, but I might be mistaken. There was a one-man team. Who solved all problems correctly within an hour. Using Perl. The team finishing second (not using Perl) solved half of the problems.

    Perl is no longer allowed in ACM programming contests.

    -- Abigail

  9. Re:Score Details by Abigail-II · · Score: 2
    Also, is the 20 minute penalty per wrong submission new? I don't remember seeing this before?

    Not new at all. That rule existed when I participated in the '80s, and when I organized a contest in 1992, we had that rule as well.

    -- Abigail

  10. Re:think... by Abigail-II · · Score: 2

    and offered all of us jobs. he says what his company does is rapid prototyping and on-site tweaking to said prototypes, and that it is not unlike contest coding.

    I don't know about you, but I rather not work for a company where I'd have deadlines measured in hours while I have to share my workstation with two other people. I'd run away from any company that says "oh, our working environment looks just like a programming contest".

    and you say "some test inputs" as if to imply that the programs are not well tested... try it some time, the judge data is usually very good,

    I've been there. On both sides of the fence; as a participant, and as a organizer/judge. It's not that the programs aren't very well tested, but the test input will confirm to very specific specifications. It doesn't have to survive the typing monkey test.

    -- Abigail

  11. Re:Cool. Another "place." by gorilla · · Score: 2

    Don't forget WATFOR the Fortran compiler that an entire generation used at school.

  12. Where's the BEEF? by Dark+Coder · · Score: 2

    Great Final Standings! But, how the heck are we going to know what the code is?

    I mean, where is the beef?

    Like any beauty contest, we gotta see the gams and curves in the codes.

    Forget the judges (they are fine anyway), I wanna see the beef!

    Where is the beef?

  13. Re:Cool. Another "place." by Dominic_Mazzoni · · Score: 2

    I'm not going to speak for the other top U.S. schools, but I was on the CMU team, and I can give you two reasons why we didn't finish in the top three.

    * It's not the school that wins the contest, it's three individual students. One excellent programmer from an average school is worth much more than a good programmer from a top school.

    * CMU does not practice for the contest. Some teams spend 10 hours a week preparing for the contest starting at the beginning of the year. CMU comes every year, cold, and almost always finishes in the top 25%, sometimes higher.

    There were other reasons we didn't do as well as we wanted to - see my post on the controversy, below.

    Dominic

  14. Re:Prizes irrelevant... by PeterDoe · · Score: 2
    Even if you don't place you'll receive job offers. While I was there I was heavily recruited by four companies. Their attitude was "show an interest and I'll hire you on the spot". The starting salaries were about $60k.

    IBM rented Universal Studios for the after-contest celebration. They spent a lot of money trying to attract the best and brightest.

    Peter Doege

  15. Pascal? by filbo · · Score: 2

    Isn't he dead already?

  16. Re:UWaterloo team member by donny · · Score: 2

    Well the next time you see me you should introduce yourself.

    Please stop stalking me... :)

    Donny

  17. Cool. Another "place." by Christopher+B.+Brown · · Score: 3
    It's interesting how:
    • Waterloo has been placing in the top six quite regularly, of late.
    • No US institutions have been placing in the top 4, or, this year, in the top ten.

      Not MIT. Not CMU. None of the UC schools. Not Stanford.

    The one non-apathetic thing I did in my time at UW was to help get teams heading back to the ACM Scholastic Programming Contest. That was quite a lot of work, and not terribly worthwhile at the time. It sure feels worthwhile now...
    --
    If you're not part of the solution, you're part of the precipitate.
  18. Prizes irrelevant... by Christopher+B.+Brown · · Score: 3
    If you're on a team that "places," you get a better prize than the possibility that IBM might give you a "free" laptop. You'll get:
    Job Offers From Interesting Organizations.
    --
    If you're not part of the solution, you're part of the precipitate.
  19. Re:Controversy over Problem F by Logan · · Score: 3
    I was also present at the contest and did problem F. I heard this rumor as well, so I feel very lucky. I implemented the problem in a way that paths with "infinite" distances simply weren't counted when I obtained the average.

    I've often wondered how these sorts of things should be resolved, and I don't really have any answer. I'd certainly be very angry if that were the case and I'd had to spend hours on the problem. I got lucky. (I just hope I do better next year).

    logan

  20. Re:Pascal by SoftwareJanitor · · Score: 3

    Delphi/Object Pascal is somewhat safer than C/C++ only because it is somewhat more limited in what or how you can use pointers. But that is a pretty marginal thing. You can certainly shoot yourself in the foot with pointers in either language. Whether it is faster or not is largely a matter of opinion, and which tool a given person is personally more comfortable with, and also which C/C++ tools are selected. To say 'a whole lot faster' is really not a fair generalization.

    Probably my biggest complaint against Object Pascal/Delphi is that it is still mostly a uniplatform tool (albiet FreePascal and a couple of other free alternatives are in development, none are really finished and completely compatible with the Borland products yet). C/C++ multiplatform compatibility isn't perfect, far from it -- especially when moving code between Windows and and Linux/*nix/*BSD platforms. But at this point nontrivial C/C++ code that is written with the intention of being portable is much more likely to be so than any current Pascal dialect. There are also more 3rd party (free and commercial) products designed to work with C/C++ to aid in cross platform work than there are specifically tailored to any Pascal dialect. Much as some people deride it, few languages are as close to multiplatform as Java is at this point (not to say that Java is without problems either).

    None of this may be that salient to the contest in question, but they certainly are things that often matter in the real world.

  21. Pascal by spiffy_guy · · Score: 3

    Delphi is allowed. Which is really just Object Pascal with a nice gui maker. Anyway all of the teams I know who placed well at Regionals used pascal. It is simply safer, and a whole lot faster to develop with. I like C/C++ as much as the next guy, but use the right tool for the job.

    --
    Anyone who cannot cope with mathematics is not fully human.
  22. Controversy over Problem F by Dominic_Mazzoni · · Score: 5

    I was on the CMU team. If you look at the statistics, you see that we solved 3 problems and were ranked 15th (in a tie). This is not what actually happened. We actually solved problem F correctly and did not get credit for it. At least a dozen other teams were also denied credit for a correct solution to this problem.

    The controversy is that the judges and ACM contest staff still claim that there was no error in the grading of the problem, and that their datasets were consistent with the problem statement. Here's why I don't believe them.

    Take a look at problem F. (Here are the contest problems in PDF if you're interested.) In a nutshell, you're given a complete directed graph, and you need to return the average length of all shortest paths between all pairs of nodes. The problem explicitly stated that you will only be given graphs in which there exists a path from every node to every other.

    This is not a hard problem to work out, but anyone who has had a formal course in computer science ought to recognize that the Floyd-Warshall all-pairs shortest path algorithm is designed to solve exactly this problem. Then all you have to do is add up all of the elements of the matrix and divide by n * (n-1).

    Except that the judges made a mistake, and tested our input using a graph that was not connected - in other words, there were nodes that could not reach other nodes via a directed path. This would not be a big deal, except that the problem explicitly stated that this would not occur. (Input validation is never a part of this contest.) Furthermore, without further explanation it is unclear how these nonexistent paths should affect the average. It turns out that the judges' solution was not counting these paths, and averaging only the paths that existed. Some teams did this by accident, and others (including Waterloo) figured it out only after submitting multiple runs and incurring large penalties. My team was one of the many that did not figure out the judges' mistake, so we did not get credit for the problem, even though our solution was certainly correct as the problem was worded. If we had received credit we would have had four problems correct, possibly putting us in the top ten. Of course, if we had received credit right away, we might not have wasted so much time figuring out what was wrong with our solution and we could have solved another problem in that time. Of course, many other teams were in a similar situation, so I have no idea what the final ranking would have been, but clearly it would have been different.

    Now for some disclaimers.

    First of all, I do not know firsthand that the judges had an incorrect data set, because their policy is not to release the data sets they use to test our programs. However, literally dozens of the 60 teams there encountered this error and many of them gained serious evidence that this was in fact the exact error. For example, one person showed me code he had written that would cause the program to seg fault if and only if the graph was not connected. He turned it in, and he got "runtime error" from the judges, indicating his program crashed. When he removed that line, he got "wrong answer". Even the team from Waterloo agreed that the data set was faulty.

    Also, I am not trying to imply that the teams that did win did not deserve it. All of the top teams did an excellent job and deserve to be congratulated. I'm mostly upset that the ACM contest staff will not either admit there was an error, or release the datasets to prove there wasn't one.

    Dominic