SWERC'2006 Computer Environment:
Judging System
SWERC'2006 will use the Mooshak system developed at the Computer Science Department, University of Porto. This software is web-based and behaves as a full contest manager as well as an automatic judge for contests. It includes four main views:- contestants view: allows contestants to
- visualize the problems descriptions;
- load a source program and submit it as an intended solution for a given problem;
- ask questions to the judges;
- read a FAQ page with answers to common questions;
- access to the full list of questions and corresponding answers from the judges;
- access the list of submissions that have been made since the beginning of the contest;
- access the current classification.
- administration view: allows the administrators to
- setup a new contest, by defining the teams, the passwords for the teams, the set of problems, the test cases and time limits for each problem, the languages used and corresponding compilation commands and flags, duration for the contest, etc.
- judges view: allows the judges to
- assist in the judging process by validating the results of the automatic judge, thus making the evaluation final. Using this interface, judges can easily re-evaluate submissions if necessary;
- answer to questions posed by teams;
- public view: allows the general public to:
- follow the progress of a contest;
- access the list of submissions;
- access the current classification;
- access the contest statistics.
The Mooshak system will run on:
- one load balancing front server,
- a cluster of six servers dedicated to processing the contestants' submissions,
- one server dedicated to the judges,
- one server dedicated to the administrator,
- one server dedicated to the public view,
- one server dedicated to the public online contest,
- one server dedicated to synchronization of the various servers.
Access to the Mooshak system is through login/password authentication. The
system has builtin safety measures to prevent users from interfering
with the normal progress of the contests. Submissions sent by teams
are evaluated by having the corresponding programs compiled and run in
a safe-process environment. Programs are only allowed a certain
amount of resources in terms of main memory, disk space and execution
time. If a program exceeds any default limit, it is canceled and a
submission message error is produced.
The compilers and compilation commands will be the same on teams machines
and automatic judging servers.
A fair number of redundancy schemes will be available.
Working environment
At the contest, all teams have a rather similar working environment:- Hardware: Celeron based systems with 512 MB RAM running at 2.4 GHz. The monitors are TFT 17". The keyboards have the Portuguese layout. Contestans are NOT allowed to bring their own keyboards but they can change the keyboard configuration in the system and bring self-adhesive labels to adapt the keyboards to their needs (comparing the Portuguese layout with the US-qwerty layout, all the letters and digits are in the same place but most of the symbols are not.) The keyboards will be configured at the beginning of the Practice Session.
- Software: Linux Fedora Core 4 with usual
goodies. The default window manager is Gnome, but KDE is also
available. Here is a list of some of the available software:
- Browsers: Mozilla 1.7.8, Firefox 1.0.4, Konqueror 3.4.0.
- IDEs: Eclipse 3.1 with the C++ plugins, Netbeans 4.1, Anjuta 1.2.3.
- Text editors: GEdit 2.10.2, Vim 6.3.71, XEmacs 21.4.1, Kate 2.4, Joe 3.1.
- Compilers: the same compilers as used in the automatic evaluation system server.
- Debuggers: gdb 6.3.0.
- Other: all the standard keyboard layouts and locales.
An alias is provided for each language compiler with the flags already set as used in the judging server. Next, we list for each language the compilation command, corresponding alias and source file extension that should be used:
Language | Compiler | Command | Alias | Extensions |
---|---|---|---|---|
C | gcc 4.0.2-8 | gcc -ansi -Wall -Wno-unused -lm file.c | mygcc | .c |
C++ | g++ 4.0.2-8 | g++ -ansi -Wall -Wno-unused -lm file.cpp | myg++ | .cpp |
Java | jdk 1.5.0_04 | javac file.java | myjava | .java |
Using the Mooshak system
All teams are given a login and password to access the contestants view of the system. Teams must, first:- access to the internal front page of the contest (the URL will be provided later);
- follow the Contestants link;
- go through the authentication process, in principle, just once;
- select the problem the team is going to solve (A, B, C,..., I);
- load the source code of your program that solves the problem you selected, and then click on Submit.
Once you have made a submission, the result of the automatic judge should appear almost instantaneously. This result is initially marked as in pending state to indicate that it has to be confirmed by a judge person. Once confirmed, the submission result is marked final.
In about 99% of the cases the automatic judge makes a correct evaluation. We made a great effort to make everything consistent and robust, but problems may arise unexpectedly, such as a system resource failure, a mistake in a test case, etc. You shouldn't worry too much because the system is highly flexible in allowing the judges to re-evaluate submissions without a team being penalised for it, and thus undoing whatever went wrong first.
Please note: any attempt in sending too many adhoc submissions near the end of the contest will be interpreted as misconduct by the judges.
Manuals
The system includes the usual man-pages in Linux as well as the Gnu-Emacs info. To use info just type info on your shell, or type ``Ctrl-h i'' if you are using emacs. The STL and JDK documentation can be accessed through the internal front page of the contest.Please note: any attempt in loading documentation pages at an excessive rate will be interpreted as misconduct by the systems administrators and the judges.
Printing your programs
To print a copy of one of your programs, load it first and then press the button Print. Please do not leave your place to collect the printout from the printer, someone will bring it to you. You are only allowed to print your programs not the problem descriptions.Problem descriptions
Even though each team member receives a paper copy of the problem set, the judging system allows you to access the problem descriptions through your browser. Please select the problem and then press on the View button.Asking questions
In case you need to ask a question to the jury, please select the problem to which the question is related and then press Ask. Once you have submitted the question, every team will have access to it as well as the answer given by the judges. Some questions may not be answered directly, because they have been already answered or because the judges feel it cannot be answered without giving away relevant information.Please be considerate to other teams and avoid questions that simply can not be answered (e.g. what is the output of judge's solution for the following input ...).