PC2 (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. PC2 allows contestants (teams) to submit programs over a network to contest judges. The judges can recompile the submitted program, execute it, view the source code and/or execution results, and send a response back to the team. The system also supports an "automated judging" mode where judging is performed by software rather than by human judges.
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.
PC2 was developed at California State University, Sacramento (CSUS), and is available on the World Wide Web at http://www.ecs.csus.edu/pc2.
The most recent version, V9, is written in Java (using Eclipse) and is intended to run on any Java 1.5 (or greater) platform, including Windows (98/ME/2000/XP/Vista/7), Mac OS X (10.4+) and a variety of Unix-based systems including Solaris, Linux, and FreeBSD.
Rev: Tue Jan 31 20:40:07 PST 2012