Get Ready for For The 7th ICFP Programming Contest
nate writes "Convinced your favorite programming language provides unbeatable
productivity? Convinced you and your friends are world-class
programmers? If so, we're providing you the opportunity to prove it! We are
pleased to announce the 7th ICFP
Programming Contest to be held in conjunction with ICFP
2004. All programmers are invited to enter the contest, either
individually or in teams; we especially encourage students to enter.
You may use any programming language (or combination of languages) to
show your skill." Read on below for the details.
"On Friday, 4 June at 12:00 Noon (EDT), we will publish a challenge task on the Web site and by e-mail to the contest mailing list. Teams will have 72 hours until Monday, 7 June 12:00 Noon (EDT) to implement a program to perform this task and submit it to the contest judges. We have designed the contest for direct, head-to-head comparison of language technology and programming skill. We have a range of prizes including cash awards and, of course, unlimited bragging rights for the winners.
Previous contests included: 2003, 2002, 2001, 2000, 1999 and 1998."
That sounds good!
I'm in!
You're old school? I beta tested the motherf***ing abacus!
Now I can show everyone just what intercal is capable of!
Prevent email address forgery. Publish SPF records for y
This looks really cool, a good way to show off your skills. Unfortunately I'm moving that weekend :( Are there any other popular programming contests out there? I remember the 99 bottles of beer contest that got posted here a while back and then never happened. I busted my ass to write my submission in Forth. It was only about 70 bytes and most of that was unavoidable strings like "beer on the wall".
-73, de n1ywb
www.n1ywb.com
Whenever some relative gets all complimentary because I fixed their pc - or someone tells me I must be smart because I work with computers- I just check out past challenges. Oh yeah-- I can almost hear the ego hissing away as my head returns to normal size.
Too many liberal arts classes in college I guess
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
I am sure this is a fine contest, and the programmer(s) that win will be better than most of the other programmers that entered. However, I do not see contests like this as a true measure of "a good programmer".
The measure of a good programmer is in the robustness of the solution, in how maintainable it is, and how well its architecture will support future changes.
A better competition would be a multi-phase one, where the programmers are given several tasks that each build upon the previous solution. Alternately, they could change the problem half way through the competition. Thus, the program (and programmers) would have to be flexible enough to change to meet changing requirements.
That is what programming is about in the real world, not figuring out an algorithm to find the shortest path between two nodes.
Most writers regard truth as their most valuable possession, and therefore are most economical in its use - Mark Twain
I would love to see a contest where you judge the best "maintainer" of code. Because maintenance programming (taking someone else's code and improving/modifying it) is a totally different beast than orginal programming.
I think an interesting programming challenge would be a multi-phase contest, where each team works on a different team's program in each phase. For instance:
* Phase 1, everyone creates a program to accomplish Goal 1.
* Phase 2, everyone gets someone else's program and must modify it to accomplish goal 2.
* Phase 3, each team takes yet another Phase 1 program and modifies to accomplish goal 3.
* Phase 4, etc...
At the end of the contest, you could determine lots of things:
* Who's the best designer (based on how a phase 1 design did in the later phases)
* Who is the best maintainer (based on how well the team did on goals 2-4)
* If you allow different languages, you might even be able to measure whether one language is more maintainable than other languages...
I like it. Here's another, less reverent, variation.
If a contest like this would exist, to win, you would have to produce unmaintainable code on phase 1. I don't like that. I prefer the idea of the top parent: Create code to accomplish a goal, and then ask to morph that code to accomplish another goal, which is related, yet very different. Yet, another option would be to make exactly the same thing as you mentioned (Phase 1,2,3,4) but use different teams for each phase. Thus, you would have to chose which phase you want when you suscribe, and then, the prize is divided in 4 parts. This way, a phase 1 guy would have no interest in producing unmaintainable code, because he would not be involved in other phases at all.
perception is reality
well, you'd be right. It's a test of languages and speed. I don't think that the best programmers will win. This a speed test, pure and simple. And the ability to code quickly is a good skill when combined with the ability to write maintainable code and with initial comprehension of the problem.
I could probably code a problem given to me in C++, Java, VB, C#, LISP or *shivers* some basic scripting languages, but really there are two aspects to me doing the job properly and on time: initial comprehension of the problem and initial comprehension of the language I'd work in. If everyone is given the same problem, then it could be a test of progammer skill but probably wouldn't if there weren't any restrictions. Set limits on time (or maintenance or language) and then you get a reasonable measure of programmer proficiency in a specific area.
I think this contest is based on the assumptions that all languages are equal (but the ICFP 'secretly' thinks functional languages are better) AND that the fastest programmer in one language is roughly equal to the fastest programmer in another. Given those two assumptions, I'd be very interested to see who manages to get things done quicker and by how much.
click-clack, front and back. I'm not moving this car otherwise.
Wow, a contest that I can enter a Unlambda program in... :)
Well, although in theory someone could do this, I don't think it really gives them an advantage.
:)
1) The malicious team would lose all chance at "best design." My personal experience suggests that THAT prize will be most valuable.
2) The overall prize ("best programmer") should be a composite score, including the design score of the team's phase 1 entry plus their combined maintenance scores of the other phases. Thus, the malicious team almost certainly gives up all chance of winning the overall score.
4) If there are more teams than rounds, then corrupting their own entry won't actually affect everyone else - so their advantage will be fairly small.
3) The entry must actually PASS phase 1 - so it has to actually work. To have the best chance of winning, it needs to be able to do phase 1 well (cf. ICFP 2003 goal of getting the car around the tracks quickly.) Although it's possible to write intentionally unmaintainable code, it's reasonably tough to write unmaintainable effective code.
4) Finally, based on my experience in the real world, there is some incredibly crappy, unmaintainable code out there. So maybe it will just be more like the real world.
The results and strong entries for this competition are always an interesting read, so best of luck to everyone entering.
Just one niggle, though: last year, the first and second places were actually taken by entries using C++. I hope this year's proclamations won't suffer another unfortunate delay if the winner happens to be a non-functional language.
You can judge for yourself whether that pun was intended. :-)
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.