
Exploring Online Judge Systems and Competitive Programming
Discover the world of online judge systems used for evaluating algorithm source code and their applications, including the prestigious ACM Inter Collegiate Programming Contest (ICPC). Delve into the design considerations, security aspects, and the role of online compilers in competitive programming. Learn about the significance of reliable evaluation and the automated verification processes involved in these systems.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Online Judge System From the paper: A Survey on Online Judge Systems and Their Applications ACM Computing Surveys, Vol. 1, No. 1, Article 1. Publication date: January 2016.
Online Judge Designed for reliable evaluation of algorithm source code submitted by users and tested in a homogeneous environments. They are becoming popular
ACM Inter Collegiate Programming Contest (ICPC) In 1970, Texas A & M University organized the first ICPC It is now the largest and the most prestigious programming contest in the world. In 2015, over 40,000 students from almost 3,000 universities and 102 countries participated in a regional phase of of the contest It is a team competition. Participants solve 8 to 13 problems.
ACM Inter Collegiate Programming Contest (ICPC) The system automatically verifies the correctness of the solution. It also verifies that the solution does not exceed resource utilization limits (time and memory). Based on the conducted evaluation, the online ranking of all participants is computed and is presented real time during the contest.
Design of Online Judges Many important factors should be taken into considerations in the design. The key issue is the security. Running executable files are generally dangerous. Must make sure that the system is robust and can resist to a broad range of attacks. Measuring precision (in milliseconds) of execution times. Solution code should be evaluated in a coherent and reliable server infrastructure.
Design of Online Judges Many important factors should be taken into considerations in the design. The quality of prepared test cases. There are several instances where an incorrect algorithm has passed the evaluation stage. Description of the problem.
Online Compilers Class 0: Systems that do not support any compilers because they only assess the results obtained by algorithms executed by the user using her infrastructure. Class 1: Systems that support a single specific programming language Class 2: Systems that support several of the most popular languages such as C++, Java, Python, C# Class 3: Systems that support a broad range of compilers.
Competitive programming Uva: First online judge that gained high popularity worldwide. Provides an enormous archive of programming challenges originating from programming contests. National Tsing Hua University Online Judge: It is the most extensive online judge Designed for training purposes for the programming contest. It only supports C, C++ Codeforces: One of the most popular online judge. It organizes contest on a regular basis.
Competitive programming Three other large online platforms: Sphere Online Judge (SPOJ) E-Olymp Topcoder Competitive Programming Project Euler: Host mathematical challenges Challenges every week. Partial marks are possible
Education The application of online judge in education has a long history.
Recruitment There are several, mainly commercial, platforms that use online judge systems primarily to support the recruitment process.
Data-mining Services There are also various websites that uses online judge systems to evaluate data-mining algorithms
Developments Platforms Anyone who would like to host a programming competition or a course using his/her own infrastructure can apply one of the several available online judge development platforms. These systems can be downloaded and installed locally, providing full administrative privileges to the user.