Mooshak: Concepts
What is Mooshak?
Mooshak is a client-server application to fully manage and run
programming contests. It is web-based and therefore all of its
functionalities are accessible through interfaces deployed on a
web-browser, irrespective of the operating system were the browser is
running. These interfaces use the HTML 4.0 frame set and no processing
is made on the browser, except for some data input validations that
are implemented with ECMAScript. Java and plugins were avoided on
purpose to simplify the use of the interface by any machine on the
Internet.
Main Features
Mooshak provides a number of features, namely:
- General:
- accommodates different users with rather different access
permissions to the system: contest directors, judges, contestants and
general public.
- supports single site as well as multi-site contests; it is also
prepared to allow simultaneous local and online contests.
- conforms with ACM-ICPC rules to classify contestants
submissions.
- can import data files produced by ACM-ICPC central registration
database.
- provides means to produce pariticipation certificates based on
the contest classification.
- supports a number of programming languages, namely C, C++,
Pascal, and Java.
- System security and data protection:
- access to the system is controlled by user authentication, except
in the case of the public view that is open to everyone.
- supports data replication to allow rapid system recovery in case
of failure.
- provides a safe execution environment to run the programs. This
environment limits resources available to contestant programs, hence
preventing them from interfering with the system.
- Users and interfaces:
- provides different interface views according to the type of user
accessing the system. The interface only shows the functionalities
accessible to that user.
- Administration view allows contest directors to setup a new
contest and to add all data necessary to make it operational; problem
descriptions; solutions, test inputs and outputs for the problems;
teams and contestants data; programming languages; date for the contest,
starting and finishing times, etc.
- Jury view allows a person jury to validate the judging
made by the automatic judging system, to re-evaluate submissions if
necessary, and to answer questions posed by contestants and to track
the handling of printouts to contestants.
- Contestants view allows contestants to submit solution programs,
to ask questions, to print their programs, to access the submissions
list, to access current classification, and to visualize problem
descriptions.
- Public view allows any user on the Internet to follow online
the progress of the contest; they can access the submissions list,
current classifications and other statistics listings regarding the
contest.
Mooshak Evaluation Messages
Solutions to problems submitted for judging are called runs. Each run
is judged as accepted or rejected, and the team is automatically
notified of the result. The meaning of the judgements is as follows:
- Accepted: your program passed all tests and is accepted as correct;
- Presentation error: the output seems to be correct but it is
not presented in the required format. Since it is not always easy to
distinguish this message from the wrong answer message, it is only
sent in obvious cases;
- Wrong answer: your program runs through one or more test
cases withouth a run-time error but the output did not match the
expected output;
- Time-limit exceeded: your program did not finish within the
allocated amount of time;
- Run-time error: your program ``crashed'', i.e. it exited
prematurely due to a run-time error;
- Compile time error: the system was not able to successfully
compile your program. The compiler return an error or warning;
- Invalid submission: your submission does not comply with
expected extensions, or attempt to submit without following the
interface;
- Output too long: your program generates an output too long
for this problem; the limits are dependent on the test cases, but are
usually low (default limit is around 100KB);
- Program too long: your program is too long and will not be
considered (default limit is around 100KB);
- Requires re-evaluation: for some reason your program has to be re-evaluated;
- Contest rule violation: your program violates a contest rule
like calling non-standard libraries.
Ranking Contestants/Teams
Mooshak uses the rules defined by the ACM-ICPC committee to rank
contestants at contests.
- The contestant that solved most problems is ranked first.
- Contestants who solve the same number of problems are ranked by
the least total time.
- The total time is the sum of the time consumed for each problem
solved. The time consumed for a solved problem is the time elapsed
from the beginning of the contest to the submittal of the accepted run
plus 20 minutes for each rejected run. There is no time consumed for a
problem that is not solved.