SWERC'2007 Computer Environment:

Judging System

SWERC'2007 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:

  • four servers dedicated to processing the contestants' submissions,
  • one server dedicated to the documentation,
  • one server dedicated to the judges,
  • one server dedicated to the public view,
  • one server dedicated to the public online contest,
  • one server dedicated to the judges on the public online contest,
  • one server dedicated to the administrator,
  • one server dedicated to the synchronization of the various servers.
The machines that run the Mooshak system share the same specifications: Pentium 4 3.06 GHz with 1 GB RAM. The only exception is the machine that runs the public online contest: a Core 2 Duo 2.0Ghz with 2GB RAM.

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. Contestants 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 6 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: Firefox, Konqueror 3.5.6-1.
    • IDEs: Eclipse 3.2.2-5 with the C++ plugins, Netbeans 5.5.1, JEdit 4.2, Anjuta 2.0.2-11.
    • Text editors: GEdit 2.15.9-1, Vim 7.0.235-1, XEmacs 21.5.27-8, Kate 2.5.6, Joe 3.4-3.
    • Compilers: the same compilers as used in the automatic evaluation system server.
    • Debuggers: gdb 6.5-15.
    • Other: all the standard keyboard layouts and locales.
    Internet access is restricted only to the required servers.
    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 4.1.1-51 gcc -ansi -pedantic -Wall -Wno-unused -lm
mygcc .c
C++ g++ 4.1.1-51 g++ -ansi -pedantic -Wall -Wno-unused -lm
myg++ .cpp
Java jdk 1.6.0_02 javac
myjava .java
The filename you use for your programs is irrelevant for the system. However, file extensions are crucial. The system won't recognize other extensions and won't try to guess the programming language you are using. It assumes that the file extension you give correctly identifies the programming language. All teams are given a login and password to open their working environment.

Using the Mooshak system

All teams are given a login and password to access the contestants view of the system. Teams must, first:
  1. access to the internal front page of the contest (the URL will be provided later);
  2. follow the Contestants link;
  3. go through the authentication process, in principle, just once;
  4. select the problem the team is going to solve (A, B, C,..., I);
  5. 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 penalized for it, and thus undoing whatever went wrong first.

Please note: any attempt in sending too many ad hoc submissions near the end of the contest will be interpreted as misconduct by the judges.


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 ...).

Last modified: sábado, 4 agosto 2012, 6:16