Download programming contest control system




















The CCS must not lose more than 1 minute of contest data on a failure of any part of the contest system. The CCS must support the ability of clients to access the system through different account types. The type of account which a client uses to access the system constrains the functions which the client may perform, as described below.

The CCS must support a secure authentication mechanism, allowing each registered user being either a team , an admin , or a judge to gain access to the contest, and must ensure that:. The CCS must support a mechanism for each user to disconnect from the contest, with the effect that no other user of the computer system not possessing that team's authentication credentials will be able to invoke CCS functions as if they did possess those credentials.

All communication between CCS modules which takes place over the contest network must be encrypted. The CCS must be able to run at the World Finals site without contact to anything outside the contest network. A timestamp and an integer sequence, called an ID, are assigned to submissions and clarification requests at the time they enter the system.

The following constraints must be enforced by the CCS:. The CCS must support at least 15 problems. Specifically any UI, scoreboards or other reports should be fully useable with that number of problems. The CCS must support at least test data files per problem, a maximum size of 8GB per test data file and a combined size for all test data files in a problem of 20GB.

In order for a CCS to be selected for use at the World Finals the following constraints must be satisfied:. At least one person from the submitting entity with intimate knowledge about the inner workings of the CCS must be willing and able to attend at the World Finals where it is used.

Normally this will consist of one machine per team, several auto-judging machines that are identical to the team machines, and one or more servers. Note that this does not alter any requirements which state that the CCS must allow certain configuration changes to be able to be made after the contest starts; it means that the contest administration staff must not be required to make any changes once the contest starts.

The configuration URL contains all contest configuration data, including the contest configuration file contest. The CCS must be able to read teams. It must use the data in this file to automatically create whatever internal representation is necessary to allow each team and only the teams specified in the registration list to participate in the World Finals contest.

The CCS must be able to read groups. The CCS must be able to configure predefined answers to clarification requests e. One of the predefined answers must be the "default" answer. The CCS must be able to configure "categories" to which clarification requests can be assigned from the contest configuration file.

A request belongs to exactly one category. Examples of categories are "General", "SysOps", "Operations". In addition, the CCS must construct one category per problem, i.

The CCS must provide the ability to compile and execute or interpret, as appropriate for the language submitted source code files for each of the languages specified by the Environment of the World Finals. For each supported language compiler or interpreter it must be possible to configure the CCS to invoke it with any of the options specified in the compiler or interpreter's documentation. Problems including judge data, validators, execution time limit, etc are specified and configured using the Problem format.

The CCS must support this format with the following exceptions:. The CCS must report an error when importing problems that use any unsupported features. The CCS may report an error when unsupported keys are used, even if they are given the default value. The problem name is as defined in the problemname macro in the problem specification.

Optionally, the plainproblemname , if present, may be used instead. If problemname is used then escaped parts of it must be handled properly. If plainproblemname is used it must be used verbatim. The CCS must have a mechanism to disable any account either an account for a human user or for another system , without the need for starting or stopping the contest.

For example, this includes team accounts and judge accounts. The CCS must allow user authentication credential information to be changed dynamically by contest administration staff while the contest is running. The contest must automatically start when the configured start time is reached. It must also be possible to start the contest at the current time. It must be possible to, potentially retroactively, specify time intervals that will be disregarded for the purpose of scoring.

The time during all such intervals will not be counted towards a team's penalty time for solved problems. Beginning and end of time intervals are given in wall-clock time. Note that removing a time interval changes the wall-clock time when the contest ends, as the duration of the contest in contest.

The removal of a time interval must be reversible. This means that if a time interval is removed, the CCS must support the capability of subsequently restoring the contest to the state it had prior to the removal of the time interval.

Note that time interval removal does not affect the order in which submissions arrived to the CCS. If submission S i arrived before submission S j during a removed interval, S i must still be considered by the CCS to have arrived strictly before S j. It must be possible to specify, for each team, an integer, potentially negative, amount of penalty time to be added into that team's total penalty time. It must be possible to remove, ignore or somehow mark a submission so that it in no way affects the scoring of the contest.

The CCS must provide some way to temporarily pause judging on a per problem basis. While judging is paused teams should still be able to make submissions and these submission should be shown on the scoreboard as usual. Each submission in the set of selected submissions is executed and judged in the same manner as for a newly arrived submission. There must be a way to preview the judgements which result from rejudging the set of selected submissions without committing the resulting judgements.

The CCS must provide the ability to specify a filter defining the set of submissions to be rejudged. The CCS must support any combination of filters of the following types:.

The CCS must support the ability to assign, to a single submission, an updated judgment chosen from among any of the allowed submission judgments as defined in Judge Responses. The CCS must require a separate authentication every time a judgment is changed manually and all such changes must be logged. The CCS must provide a mechanism for judges to view the current scoreboard.

The scoreboard must be updated in such a way that it's never more than 30 seconds out of date. During times when the scoreboard is frozen, administrators must be able to view the current updated scoreboard as well as the frozen scoreboard. The scoreboard must automatically freeze when the configured scoreboard freeze time is reached. It must also be possible to manually freeze the scoreboard at the current time. All submissions received after the freeze time must be treated as pending on a frozen scoreboard.

It must be possible to re-enable scoreboard display updating at any time after it has been disabled, again without stopping the contest or affecting contest operations in any way. Finalizing is the procedure to authorize the final results at the end of a contest. The results. When the contest is over, but not finalized, all scoreboards must show a warning that the results are not final.

The CCS must provide a way for admins to finalize the contest. It must not be possible to finalize a contest if one or more of the following applies:. For purposes of this document, solutions to problems submitted for judging are called submissions. A submission consists of a set of source code files sent as a single unit at one time to the judging system by a team. The CCS must allow teams to specify at least 10 files in a given submission and must allow teams to make submissions for any defined contest problem, written in any defined contest programming language.

The CCS must provide each team with a capability for reviewing the status of each submission the team has made, including: the contest time of the submission, the language and problem specified in the submission; and the most recent judgment if any for the submission.

The CCS must ensure that no team can learn anything about the submissions of any other team other than what can be deduced from the scoreboard. A clarification request is a message sent from a team to the judges asking for clarification regarding a contest problem or possibly the contest in general.

The CCS must provide each team with the ability to submit a clarification request to the judges over the network. The CCS must provide each team with a capability for reviewing the status of each clarification request the team has submitted, including: the contest time of the clarification request; the problem identified in the clarification request if identification of a specific problem was required by the CCS; and the response from the judges to the clarification request if any response has occurred yet.

The CCS must ensure that no team can see the clarification requests of any other team, except as provided in the section Judge Interface. The CCS must provide each team with a capability for viewing any broadcast messages sent by the judges see Issuing Broadcast Messages under Judging. The CCS must notify teams when a judgement, clarification or broadcast message has been received. This notification may not steal focus.

The CCS must provide a mechanism for teams to view the current scoreboard. It must be possible for multiple human judges, working on different computers, to simultaneously perform the operations specified in this subsection on different submissions. In addition, any additional analytical capabilities allowing the judges to track differences between submissions are appreciated. The CCS must provide the ability for a human judge to compose a message and broadcast that message to all teams in the contest.

It must be possible to do this even when the contest is not running. During times when the scoreboard is frozen, judges must be able to view the current updated scoreboard as well as the frozen scoreboard. The CCS must be able to automatically judge incoming submissions. Git stats 3, commits. Failed to load latest commit information.

View code. CATS: Programming contest control system Overview CATS is a software for managing programming problems, organizing competitions, and supporting continuous learning process of programming-related subjects. Installation on Linux To install CATS you need to have git and sudo installed: apt-get install git sudo Make sure current user is in sudoers sudo group. About Programming contest control system imcs. Releases No releases published. Packages 0 No packages published.

Contributors You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window.



0コメント

  • 1000 / 1000