Slashdot Mirror


29th ACM Intl. Programming Contest Results

mathinator writes "The 29th ACM International Collegiate Programming Contest World Finals, hosted by China's Shanghai Jiao Tong University, are now over and the results are in. Congratulations to the top 4 teams who will be walking away with gold medals. They are Shanghai Jiao Tong University, Moscow State University, St. Petersburg Institute of Optics and Mechanics, and Canada's University of Waterloo (coming in at 1, 2, 3, 4 respectively. The top 4 get gold medals). Regional champions are: University of Waterloo, Canada (North America); Moscow State University, Russia (Europe); University of Cape Town, South Africa, (Africa and the Middle East); Instituto Tecnologico de Aeronautica, Brazil (Latin America); Shanghai Jiaotong University, China (Asia); and University of New South Wales, Australia (South Pacific)."

26 of 436 comments (clear)

  1. Not a single U.S. school by Anonymous Coward · · Score: 0, Interesting

    ...a sad commentary on the state of programming departments in the States

    1. Re:Not a single U.S. school by 0kComputer · · Score: 3, Interesting

      Why? Because it didn't place a team in a coding competition? I wouldn't judge a countries technical ability based on something as abstract as this.

      I havent read the article due to slashdotting but something like a programming competition seems very odd. I'm not sure how you could objectively measure something like this, and even if you could; as a programmer I can say that the most important quality to have is imagination or innovation, not the ability to sling the technically best code.

      --
      Top 10 Reasons To Procrastinate
      10.
    2. Re:Not a single U.S. school by Anonymous Coward · · Score: 1, Interesting

      This is based upon when I participated 20-25 years ago: Time wasn't the determining factor.

      Number of problems judged correct are.

      Time is used as a tie-breaker for teams who have solved the same number of problems (judged correctly). Time is added for every attempted compile and test run. [Time] penalties for errors during compiles and inaccurate judged runs were added as well.

      I don't know what language(s) they used, but we but we were only permitted to use FORTRAN. No subroutines or functions. Just top-down FORTRAN. There were places where code reuse would have made life easier and recursion would have made problems passe. One year regionals were held at a place which only used punch cards. That was fun for those who had never seen or used punch cards (I learned FORTRAN using punch cards in a college class between my junior|senior years of high school)

  2. Wow, no US teams placed! by HeelToe · · Score: 4, Interesting

    Not sure if it's surprising or not.

    Is it the lack of quality programs these days or lack of interest on the part of highly talented students to participate?

    1. Re:Wow, no US teams placed! by rbarreira · · Score: 4, Interesting

      I mostly agree with what you say, but I think those contests are partly a good indicator of how good a programmer is. There are 2/3 components which are necessary to win a competition like this:

      - Knowing how to program fast and flawlessly
      - Knowing a lot of data structures, and knowning how to choose the right one for a problem (mainly trees, tries, hash tables, vectors, linked lists, graphs and ocasionally special data structures for geometrical data)
      - Knowing how to solve some classical problems, mainly in dynamic programming and graphs, where a lot of problems are used again and again in those contests (though with variations or presented in an obsfucated way).

      I'd say that the first two are indicators of knowing how to program well. The third one is more discussible, since there are a lot of schools which prepare their contestants to know those algorithms by heart... I'm not saying they don't understand them, but that component alone doesn't show much ability to me :)

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
    2. Re:Wow, no US teams placed! by joshdick · · Score: 2, Interesting

      "Knowing how to program fast and flawlessly"

      Fast maybe, but flawlessly definitely not. The speed restraint of the competition causes participants to hack their way through their problems any way they can. Good programming practices go out the window immediately.

      "Knowing a lot of data structures"

      I'll give you that one.

      "Knowing how to solve some classical problems"

      Why memorize the answers to solved problems? Most students in the competitions I've been to don't worry about memorizing answers. We all just bring our Data Structures and Algorithms books with us instead.

      Oh, and if you think those three things are all there is to being a good programmer, well, I just don't know how to respond to that.

    3. Re:Wow, no US teams placed! by Anonymous Coward · · Score: 1, Interesting

      Both and neither.

      Many American programs are little more than technical school-quality classes on churning out code, without detail into the whys and hows of that code. We hired a part-time worker here who was a college student basically majoring in ASP. At the time we hired him we thought he might be flexible enough to work in, say, PHP, but warning flags went up when on his first day on the job, he asked me what a "parse error" was. We fired him after a week when he started asking how he should implement the various things we asked him to do (I spent half an hour explaining how to make a many-to-many association in a database).

      He'd definately have been blown away by being asked to take a network inputted in node-node-weight connection pairs and output all paths within the network that cost less than N.

      Meanwhile, demand for programmers in the US has dropped off sharply. Y2K is over, nobody's making $100,000 to save the world, projects that don't require thought are being shipped out of the country and soon things that do require thought will be as well. Fewer students are entering the programming discipline to program.

      Finally, practically speaking, ACM competitions don't reflect modern programming well. These days programming shops that don't suck have a development cycle in place that is counter to the "leap in and code fast" design of contests.

    4. Re:Wow, no US teams placed! by drgonzo59 · · Score: 5, Interesting
      It's like with any test. If you pass, the first thing it shows is that you can do _that_ particular test well. Of course the reason for the test is to show that you are knowledgeble in the whole domain that the test was compiled from, but that is a speculation. You are right, I can spend the whole year, doing nothing but learning all the algorithms that might show up on the exam, and practice to solve a common set of problem fast, sothen I migth do well on that contest, but I might still not do well in general in college or workplace.

      That said, I also happen to be from Russia, and I can say that in general education system there is more thorough and more focused on the science than here in US (I went to schools in US too). Here all schools seem to be doing is try to make students comfortable, they have a hundreds of clubs and activities for after school. Everyone and their little brother wants to play sports or play in the band first then study. Schools try to be fun, instead of trying to make student learn something usefull. I remember coming to this country and doing my sophomore grade in fairly good high school, but I had to take calculus with the graduating seniors and I remember tutoring them in math even though I was an average student at home in that subject.

    5. Re:Wow, no US teams placed! by j0nb0y · · Score: 2, Interesting

      Interesting. You're right about books not being too useful. I think I could've definitely gotten everything I needed in 25 pages with a bit of preparation. I had wanted to bring a "solved problems" binder, but just didn't have time to prepare it.

      We did miserable at the contest. We just weren't prepared for the difficulty of the problems. The difference between regional level problems and worlds level problems is huge. Afterwards we found out that our professor had been feeding us only the easier problems in practice, because he was afraid of us taking too much time to prepare. The tough part was balancing the college course load and trying to prepare. Looking back, I know I didn't put nearly enough time in to do well.

      Ah well, I was on the only team from Messiah College to ever make it to World Finals (before or since), so I'm happy we made it as far as we did. And I can hardly complain about the free trip to Hawaii that resulted =]

      --
      If you had super powers, would you use them for good, or for awesome?
  3. Re:Attitude by Anonymous Coward · · Score: 2, Interesting
    Spoken like a person who has never travelled outside his home state. That's right, Americans work (and lose) with the doctrins of freedom and capitalism whereas "the others" win because they will be skinned alive if they don't come back with the gold.

    It is also a well known fact - and, actually, one that should make you ashamed of your country - that the vast majority of graduate students in science are not Americans. Much like in economy, the world supports your first place.

  4. Re:Funny stuff about this contest... by ari_j · · Score: 4, Interesting

    It's not anywhere near fair. Our ACM chapter competed a few years ago. We didn't make it past the first round on account of getting one problem "wrong." By "wrong," of course, I mean that we produced a better solution than the judges had, and some other teams produced the same, non-optimal solution that they had, so we were wrong. I later sent in a detailed proof of our answer's correctness as the unique optimal solution, but we never heard back.

    For what it's worth, that problem was "Given a list of latitude and longitude points on the surface of Mars, which has radius R, what is the minimum total length of cable needed to connect those points to form a network, if the cable is 1m above the planet's surface? Assume that Mars is spherical."

    To this day, I have no idea what the "correct" answer was that took several hundred more meters of cable than our solution did.

  5. Interesting tidbit by Anonymous Coward · · Score: 3, Interesting

    One of the Michigan Tech. team members was none other than Joe Nievelt one of the RIAA's "best friends"

  6. Do the problems relate to real life? by CastrTroy · · Score: 2, Interesting

    These competitions seem to be very academic. Do they relate to programming in the real world? Although I applaud the people who won, I don't think that these are the right kind of competitions to be training people for. They should have a real open source design competition, where contestants are graded on the outcome of a large project. Extra points could be given for showing good use of testing, as well as good documentation and coding. You could also look at the use of special algorithms developed, but don't base all the points on this. There's more to programming these days than fancy algorithms.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  7. Look pretty realistic to me by CaymanIslandCarpedie · · Score: 5, Interesting

    To begin, no I didn't attend any of the places mentioned in this article so I'm not biased.

    Now the host placing first may seem a bit suspicious, but the other universities in the top four certainly lend some credibility to it.

    I've worked with a number of russion developers which have come from those universities and they were quite brilliant. It seems they actually teach math and physics there, what a concept! ;-)

    I personally rate the University of Waterloo (in Canada) the top computer science university in North America. Yes high profile places like MIT have some brilliant people, but I've found the University of Waterloo has the most consistant quality of graduates. If you look at the accomplishments of Waterloo grads it pretty impressive. Research In Motion (Blackberries) are probably the most well known company founded by UofW grads, but there are lots of others which are also very impressive. Thier policy on requiring LOTS of real world experience for the degree and work/research opportunities in there technology park also gives lots of great experiance.

    I've found UofW grads aren't those "fresh out of college" types who have some book knowledge, but not much practical experience. They tend to walk out after graduating ready to REALLY contribute instead of needing a lot of "mentoring" which most fresh grads need (I know I did).

    --
    "reality has a well-known liberal bias" - Steven Colbert
    1. Re:Look pretty realistic to me by zx75 · · Score: 2, Interesting

      Thank you :) I'm a UWaterloo CS student who is graduating at the end of the month.

      To address your very last point about not being 'fresh out of college' types, I believe this is mostly due to our co-op program. The vast majority of CS graduates went through the co-op program which over 5 years includes 6 terms (2 full years) of work experience. Luckily most positions, especially for upper year students, are industry development positions. First year students usually end up doing tech support or some such work, but the variety of companies that come to Waterloo looking for co-op students is amazing.

      --
      This is not a sig.
  8. discrepancy in placements? by xa0s · · Score: 2, Interesting

    According to the official scoreboard the top 3 are Moscow, St. Petersburg and Waterloo (all ranked with same amount of solved questions). Shanghai placed 4th, but they're the champions?

  9. Re:Individual Efforts by corvair2k1 · · Score: 4, Interesting

    This is very much an effort based on the teams themselves. The cream of the crop is picked from the school's department, and they train/practice for months. If you were to lift any other student and send them off to competition, the lack of preparation would make them noncompetitors. These competitions exercise one very specific programming skill: Dash off a program that can do this impressive thing (with not much real-world applicability) as fast as possible, as a team. Real-world situations never call for this sort of programming, so these people are truly drilling for this type of event.

  10. Re:Funny stuff about this contest... by 0xABADC0DA · · Score: 5, Interesting

    Maybe they put one point at 0,0 and you got a divide by zero error? ACM put in all kinds of test data like that which is to any sane person completely impossible for the given question. When I was in the regionals a LONG time ago the ACM actually rescored one of the problems after the contest was over, adding extra test data so another team's problem would pass but ours would not (there was a conflict with the rules and apparently they thought it was easier to just cheat). We were hosting that one which is the only reason we found out.

    Overall I don't put much stock in the results because it's really more of a contest about robotic perfectionism. Unlike what people might expect there is extremely little creativity or problem-solving involved; each team has huge books of problems that they laboriously solve over and over again and there are never any fundamentally new problems in the competitions. I mean not like they could come up with an entirely new type of problem for each questions, but they always follow the same pattern: each problem has 1 fundamental approach you have to use (dynamic programming, graph-coloring, pattern-matching, monte-carlo) and then it's solved. Combine that with not telling any clues about why the program failed and it's really geared towards more robotic programmers. I got out of it precisely because there was virtually no creativity or thinking involved at all, at the professional level.

    Also it's virtually impossible to detect cheating... if you watch these people, they basically start coding right from the start anyway so if you already knew the problem and solution there would be little difference to see, it would just look like that team was really good. Or maybe you see test data, or somebody elbows you and says 'be sure to check for 0,0 on the mars problem'.

    A much better approach was done on topcode.com... there you get to see the test data and why your program failed. Then afterwards other contestants get to look at your code for a while and purposely try to break it with their own (valid) test cases. And you get bonus points for breaking other people's programs.

  11. Re:Funny stuff about this contest... by halber_mensch · · Score: 2, Interesting
    Because the USA has pretty piss poor programming education compared to some other countries in the world?
    Education is not at its best here, however there is more to it than just that. ACM membership and renewal is dropping: ahref=http://www.acm.org/sigs/sgb/fy03annrpt/sgb03 .htmlhttp://www.acm.org/sigs/sgb/fy03annrpt/sgb03. html>

    . In my own experience, at Oklahoma State University the ACM is virtually non-existant. I served as PR Officer in my last semester, and I think we had 4 meetings. Besides the officers, only a handful of people attended the regular meetings, and the only reason anyone signed up to be a member was because we stopped charging a local chapter membership fee. I don't think any local chapter members got a national membership. Our faculty and staff were not at all envolved in the ACM. There are also fewer and fewer students getting into programming these days - if anyone touches a computer field they go after business comm or MIS, because of the lure of better cash without having to learn so much math and science. So I point the finger at envolvement. In my experience, there was not enough envolvement by the students or faculty to get a team of competitive, motivated programmers to represent our school. I'm curious as to whether other schools in the US have the same problems.
    --
    perl -e "eval pack(q{H*},join q{},qw{70 72696e74207061636b28717b482a7d2c717b343 637323635363534323533343430617d293b})"
  12. Some religions are hostile to technology. by Baldrson · · Score: 2, Interesting
    I find Iran's position here interesting due to the fact that Islam has a reputation for being hostile to technology -- and you must admit that, regardless of the source of that reputation, it does have such a reputation at least among the US if not among all Western countries.

    And I'm not hostile to Islam -- I once shouted "Allahu akbar!" during rush hour at the intersection of Lawrence and Homestead. (I admit, mainly because I thought it was a subversive act.)

  13. Re:Bottom Line ... by foobsr · · Score: 2, Interesting

    Something is fishy about those results. Think about it.

    Even if so, it is a good "recruitment activity" for the sponsor (IBM).

    Americans tend not to be well traveled (at least outside the country)...

    The times they are a changing; when I was younger than today, the "American in Paris" (my age) was also to be seen in the rest of Europe in crowds, at least it seemed so. The bias then was that US-Americans are "well travelled".

    CC.

    --
    TaijiQuan (Huang, 5 loosenings)
  14. Missing link by kingj02 · · Score: 2, Interesting

    The ACM problem sets. I don't know when the current problems get added, but all the old ones, plus more, are on this site. You can write the program, then submit it to their online judge to see if it's correct.

    Brute force usually doesn't work, so you need to know the right algorithm. It's tough, but it's fun!

    --
    Ardente veritate incendite tenebras mundi
  15. Re:I competed once... by kaszeta · · Score: 2, Interesting
    I participated in the southern regional ACM programming contest. GaTech won with Florida coming in second. The questions are extremely hard. We solved one problem. They give you 5 lines of test data but when the judges test it they will use hundreds of lines of test data. Not only must your program be correct it must also be fast (less than 3 minutes)

    That's what I liked about the programming contest (I was on Michigan State University's team in '92 and '94, going on to the Finals in '94). Virtually every problem they gave us in either regional or at Finals I could code up a solution for in under 10 minutes---if I was going to brute-force it. For most of the problems, the difficulty was to code it in an efficient (speed, memory, or both) manner, and that's what they were really testing.

    For example: given a random set of N pairs of integers (coordinate pairs), give the largest number of points that are colinear. Incredibly trivial to write as a brute force (N^2 algorithm, compare each point to every other point), but takes some understanding to do it more efficiently (N log N). Of course, the judges gave you a huge point set and a strict execution time limit that showed that you found the efficient algorithm.

    (This was Problem A from the 1994 East Central Regional)

    Rarely, they were tricky in another manner (the example I can think of was coordinate determination by triangularization, and the test set made sure you could watch for divide-by-zero problems in your math and change the coordinate system to accomodate).

  16. That contest is crap. I've been there. by Spy+der+Mann · · Score: 1, Interesting

    I went to one. When we (our team) got to the question-asking session, we wondered why the people were asking about the number of spaces and completely trivial and/or ridiculous stuff. Turns out that they test the results by COMPARING FILES.

    Not to mention that the problems they ask are much prefabricated problems - if you know their solution, you're in. It's like "have you been to this contest before? Yes, watch out for the subway one. It's a recursive tree" - or - "if you don't know algorithm X for analysing Y sequences numbers, you're gonna lose."

    It's no *programming* contest at all. It's much more like an algorithm-solving+text formatting race. They don't test your REAL programming skills - your ability to create your own programming libraries, the organization of your source code, the maintainability, etc.

    I was completely disappointed by that contest. It's much more like a sponsorship promoting ACM products and courses disguised as a programming contest.

    Want to win a contest? Enter a FOSS project and fix the more bugs / implement the more features CLEANLY.

    Now THAT's a contest.

    1. Re:That contest is crap. I've been there. by Anonymous Coward · · Score: 1, Interesting

      Most of these competitions don't really test skill, it's whether or not you can solve a pre-fabbed problem.

      It requires great skill, knowledge and experience to solve this "pre-fabbed problem" within the confines of the contest environment. That being said, whether it is worth the effort is questionable at least to some people.

      Then the entries would be judged by creativity, source code maintainability, quality of the devilerables and how well the end product works in the "real world".

      This contest is called "the world world" ;-p If you have a product that works so well, why bother submitting it as a competition entry while you could sell it for big bucks?

      What you describe is really a "software engineering competition" instead of a computer science competition. For purposes of research into difficult areas of theoretical computer science, these contests are actually relevant.

      The difference is similar to the difference in problem domain between how to build a space shuttle and whether black holes exists. The latter may not have a direct impact on our daily lives, but it is essential for the continuation of research in relevant fields.

  17. Re:Pride and Hard work. by gvc · · Score: 2, Interesting

    "Or maybe I should just go to canada when I finally decide to go back to grad school :)"

    Please do. Grad school in Canada is a bit different from the U.S. We speak the same language, and we publish in the same journals and, for the most part, attend the same conferences. But we're a bit different. I hesitate to say "better" because I don't buy into the linear-ranking principle. Everybody wants to excel, but I think there's a bit more diversity in opinion here as to the meaning of "the best."