views:

116

answers:

4

Hi there:

I might be doing a coding competition soon, I was wondering if anyone made one and what where the guidelines/ process. I'd like to make the competition appealing to all devs, and I m trying to come up with ideas as to how.
the scenario is: There is an event running and we(of the coding competition) will have a room that we can use (either to code or for questions, etc), however, ideally the task for the competition should be assignet and they should eb able to go and do other things, if they are so inclined. what i wonder is what kind of challenges to give, and most importantly, what is the criteria to "win" teaching and learning good coding standards takes a looong time, and I d like to think that if you ve been coding for longer you ll do things right and quick... but in a competition, you would be cutting corners... I would really appreciate your input on this

+1  A: 

A competition that's appealing to all devs? That sounds... difficult. But if you want to make the competition about problem solving and algorithms, then I am a big fan of the Sphere Online Judge. Basically this is a repository of programming puzzles but you can also become a problem setter and create problems or contests on the site.

It supports a huge number of programming languages, from the "popular" ones to more obscure ones. Programs will typically read from standard in, and write to standard out. The standard judge program will simply diff a program's output with the expected output, but more elaborate judges are possible. You also set a time limit for the execution of submissions, which usually requires programmers to be more clever than brute force.

Winner is whoever solved the most problems. Ties are broken by time of correct submissions, with some time penalty for wrong submissions.

miorel
A: 

It's gonna be hard to designed a coding competition suitable for a wide array of languages, since languages typically serve different purposes. I'd suggest that what you're looking for doesn't exist.

DeadMG
Google did a pretty good job of it with their tron competition
phsr
I dont mean to be rude, but why answer if you cant add anything ?
Miau
Suggesting that the OP is looking for something that doesn't exist isn't adding nothing. However, I hadn't read about Google's CodeJam before this. You could check that out.
DeadMG
+1  A: 

Guidelines

Limit the languages which can be submitted. If you don't, you may get proprietary languages which require a special purchased compiler or some other inconvenience.

Correctness

This is easy. Provide an easy-to-read unit test in all languages you will accept. This will allow simple, automatic testing of submissions, and will guide the interface of the solution.

Challenges

Create a theme. Make it focused, but not too specific as to require certain paradigms or language features. Then develop challenges based around that theme.

Assign points to each challenge. Give more points to more difficult problems. Be sure to review each challenge carefully and have a team attempt them before giving points so you can make a more accurate decision.

As @miorel mentioned in his answer, time limits and memory limits are wonderful. Set a time limit per test per challenge, or at least monitor them and have these metrics contribute to the points given for solving the problem.

strager
+1  A: 

You should look at the ACM competition. Each year they have collegiate programming competitions. These are language agnostic. The archive is located here.

http://www.ntnu.edu.tw/acm/

j0rd4n