The PC² System
PC² (the Programming Contest Control system, pronounced "P-C-squared" or sometimes just "P-C-Two" for short) is a software system designed to support programming contest operations in a variety of computing environments. PC² allows contestants (teams) to submit programs over a network to contest judges. The judges can optionally recompile the submitted program, execute it, view the source code and/or execution results, and send a response back to the team.
The system automatically timestamps and archives submitted runs, maintains and displays current contest standings in a variety of ways, and allows the judges to retrieve and reexecute archived runs. It also provides a mechanism for contestants to submit clarification requests and queries to the judges, and for the judges to reply to queries and to issue broadcast bulletins to teams. In addition, PC2 supports contests being held simultaneously at multiple sites by automatically transmitting contest standing information between sites and generating a single contest-wide standings scoreboard at each remote site.
A wide variety of configurable options allow the contest administrator to tailor the system to specific contest operations. For example, the number of teams, problems, and languages in the contest; the scoring method being applied; which problems are handled by which judges; whether teams are automatically notified of the result of a submission; and the frequency of automatic scoreboard updates are all configurable. There are also mechanisms provided for editing the internal scoring database, and for recovering from various types of soft and hard errors. The system is designed to allow teams to use any language development tool which can be invoked from a command line and generates an executable file.