UCC Programming Competition
You are wasting your time; most people will think the competition is stupid (and people that don't will not bother entering anyway).
Previous Programming Competitions
2000 - Simulate a traffic system. The "first" UCC programming competition apparently.
2002 - Alphonsas the Super Seagull, XML parsing, and other things.
- There was also one in 2008 and probably some others at some points, but no details are available.
2010 - A variant of the "Prisoner's Dilema" game, winner Hipikat, runner up tpg, organiser [DJA]
2012 - The board game "Stratego", winner Peter N Lewis, runner up sulix, organiser [SZM]
2013 - "Quantum Chess" (cancelled due to lack of interest), organiser [SZM]
Choosing a Theme
The 2000 competition was a "make the most interesting simulation" thing, and 2002 had several Codejam style problems. From 2010 onwards the themes involved some sort of "battle" system, and possibly game theory. This hasn't proven very popular so far.
Make sure you choose a theme that doesn't require entrants to write more than a few hundred lines of code at the most, or no one will be bothered to enter. However, the theme should be complex enough to give people freedom to try a range of strategies.
Also, even if the theme sounds remotely complicated (eg: "Quantum Chess") it doesn't matter how little code people actually have to write, they'll be too scared to investigate further.
Designing the Judging System
For battle systems, you will need a manager program to interface the different entries. You will also need a program to judge the competition (this may be the same program, depending on the complexity of your theme).
To make things easy for competitors, entries should just write to standard out and read from standard in, and not have to worry about inter-process communication. Whoever writes the manager program (hint: Its you) will have to worry about that. Look at the previous competitions for source code that might be useful.
Gitosis
The competition should be put under git as soon as possible.
- To add a repository to gitosis, you need to git commit to the gitosis config file. But to be authorised to commit to the gitosis config file, you have to be in the gitosis config file as authorised to commit to the gitosis config file
Much confusion (about the chicken and the egg) can be avoided if you just su to the user "git" (who is authorised to commit to the gitosis config file).
Competition VM
Don't run random people's code on servers or club room machines!
Except in 2012, where [SZM] destroyed the VM and [DJA] let him use sigma
Past progcomp servers
- 2010 - Murjan - meesau:/somewhere (???)
2012 - Mufasa - motsugo:/home/other/vm/mufasa (libvirt and qemu) Replaced by sigma
2013 - progcomp - runs on motsugo under libvirt. Might be migrated to medico at some point Replaced by curious which is actually sigma with a new name.
[SZM] suggests using curious for all future competitions, so that they are all in the same place. Contact [SZM] for more info.
General Stuff about the server
- Don't run the competition as root; add unprivelaged user "judge" with disabled login
- ssh access is useful
- Don't bother setting up LDAP for logins, but add wheel member's root keys for ssh
On debian, altering motd is stupid interesting.
- Competitions should be stored under /home/judge/progcompXXXX where XXXX is the year of the competition. Please don't remove existing competitions.
Webpage
The webpage should appear at http://progcomp.ucc.asn.au
Install apache on the server, edit DNS so that "progcomp" points to the server, and unblock http in ucc-fw.
- Make a webpage; put it under progcompXXXX/web (you should probably include it under git)
- Add the competition to the list of competitions in /home/judge/web/index.html and link to its webpage
Advertising
Send an email to the Progcomp Mailing List
- If its been a while since the last competition, also advertise on the ucc list / ucc-announce
- In 2010 there were posters in Cameron Hall
- In 2013 there was a poster. We used it to cover up the "toilets this way" sign at the GigaLAN to stop people from going that way.
- Facebook Event?
Support
- You should write some sample programs to get people started. Having said that, no one will actually read them.
Write the sample programs sooner rather than later. If you find writing a sample program excessively hard, you may want to consider altering the rules to make things easier, or even giving up changing the theme altogether. Which certainly didn't happen in 2012. Or 2013.
- Create an irc channel, with an informative topic, such as "The UCC Programming Competition"
- The topic should probably contain a link to the webpage.
Misc.
- Yeah, don't bother