Stanford University first introduced the online judge system [
8] in 1961 to support the evaluate the students coded in ALGOL. The University of Valladolid, Spain Online Judge (UVA) [
9] is one of the most popular online judges. It has enormous, diverse kinds of programming questions, many of which are extremely difficult and famous. However, only UVA online judge administrators can create new contests and add new problems. Peking University, China Online Judge (POJ) [
10], designed their platform mainly for the training of their students to participate in the International Collegiate Programming Contest. The University of Dhaka developed lightoj [
11]. Users can host their contests there. However, lightoj does not support hosting private contests and customizing the grading system. Lightoj is no longer maintained. Accordingly, it does not support many modern programming languages, like C++11, C++14, python, etc. Codemarshal [
12], which was built by Muktosoft Ltd., was used by many universities in Bangladesh for programming lab assignments and hosting both online and onsite programming contests. However, unfortunately, codemarshal is no longer maintained. Toph [
13] is another Bangladeshi platform that is gaining popularity. It supports dynamic scoring systems. Kattis Online Judge [
14] is the current programming contest control system choice for ACM ICPC world finals. It was developed by KTH, Royal Institute of Technology, Sweden in 2005. It supports hosting private contests, but no new problems can be created; only problems that have been already added on the kattis platform can be used. HackerRank is a technology company that focuses on competitive programming challenges for both consumers and businesses [
15]. HackerRank supports a custom grading system, where each submission is scored on the accuracy of its output. HackerRank also has a platform for conducting programming labs online, named "HackerRank for Schools” [
16]. It supports auto-grading and evaluating the performance of the students. They also have a plagiarism detector that flags any submission >70%, similar to other students. However, this service is not free to use.
The above-mentioned online judges have a significant limitation. It is not possible to host a contest with an active internet connection. However, there exist several platforms for arranging programming contests online. PC2 (Programming Contest Control) is the most common among them [
17]. PC2 is the most popular and widely used programming contest control system. California State University developed PC2 in support of programming contest activities. PC2 was used to conduct ICPC until 2008. PC2 requires the IP of the server to be hard-coded into the configuration file of all the clients. Besides, each computer must have a java runtime environment installed. There is no way to provide a soft-copy of the problem sets, which could reduce the costs and ease the updating of any error in the description.
DOMjudge is an automated judging system to run programming contests [
18]. DOMjudge is mainly used in ACM ICPC like programming contests. It supports hosting both online and offline contests. However, it is not possible to customize the grading system. Sharif-Judge [
19] is a free and open-source programming judging platform. It has several features, including customized grading system, plagiarism detection in source codes, etc. It also provides sandboxing for C, C++, Java. However, it does not provide sandboxing for modern programming languages, such as python. As a result, there is very low-level security for python in Sharif-Judge. It also does not have the facility of dynamic scoring and partial marking. URI online judge is another online judging platform that is a project developed by the computer science department at Universidade Regional Integrada (URI), Brazil, and it was first introduced at WorldComp’12 [
20]. It has several features, including plagiarism detection, as well as the categorization of problems in different categories, so that students can focus on a specific topic. However, it can not provide partial grading, dynamic scoring & top of that, it cannot be hosted locally.