Competitive versioning: VCS application to programming contests

Revision as of 02:47, 22 June 2014 by Booth (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Competitive versioning: VCS application to programming contests

Alexander S. Klenin.jpg

Alexander S. Klenin

Version control systems (VCS) are important tools of every programmer.

While they are of little use for the programming contest participant, there are interesting applications from the contest management system's point of view. In particular, an advent of distributed version control systems gives rich opportunities to contest management system developer.

In this presentation we will review how version control may be applied to three areas:

  • storage and sharing of programming problems;
  • storage and checking of contestant's solutions;
  • publication, verification and reproduction of contest histories.

In all these areas we exploit such properties of distributed VCS as ease of branching and merging and cryptographic consistency checking.

We discuss benefits of VCS usage, for example: better control of the problem lifetime, including problem variants; exact reproduction and semi-formal verification of contest results; preserving history even after real-time problem clarification, modification and re-judging.

Finally, we present and discuss an outline of possible distributed contest management system architecture based on the features above.

-- Alexander S. Klenin