Научная статья на тему 'PARALLEL DATA TESTING ON "ONLINE HAKAM" SYSTEMS FOR PROGRAMMING STUDENTS'

PARALLEL DATA TESTING ON "ONLINE HAKAM" SYSTEMS FOR PROGRAMMING STUDENTS Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
27
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
online referee / program / programming learning / online platforms / ACM ICPC

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — J. Yusupova, O. Choponov, Sh. Allayarov

Currently, many prize-winning programming competitions are organized by companies known for the production of programs in the world. In particular, world programming competitions under the names of ACM ICPC[1], Google codejam[2], Facebook hacker cup[3] and Yandex Algorithm are traditionally held every year. The main purpose of programming competitions is to select strong programmers and provide them with jobs. These competitions are a type of mental sport ("mind sport"), in which it is necessary to quickly and error-free program the given algorithmic problems in C, C++, Java, Python and other programming languages. The International Team Programming Competition, also known as the ICPC, is an annual multi-level programming competition held among universities around the world. The ICPC runs regional competitions spanning six continents, culminating in the global World Finals each year. More than 60,000 students from 3,514 universities in 115 countries of the world participated in this competition in 2021

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «PARALLEL DATA TESTING ON "ONLINE HAKAM" SYSTEMS FOR PROGRAMMING STUDENTS»

PARALLEL DATA TESTING ON "ONLINE HAKAM" SYSTEMS FOR PROGRAMMING STUDENTS

1Yusupova Janar, 2Choponov Otajon, 3Allayarov Shohzodbek

1Assistant of Urganch branch of TUIT named after Muhammad al-Khorazmi 2,3Students of Urganch branch of TUIT named after Muhammad al-Khorazmi https://doi.org/10.5281/zenodo.8102514

Abstract. Currently, many prize-winning programming competitions are organized by companies known for the production ofprograms in the world. In particular, world programming competitions under the names of ACM ICPC[1], Google codejam[2], Facebook hacker cup[3] and Yandex Algorithm are traditionally held every year. The main purpose of programming competitions is to select strong programmers and provide them with jobs. These competitions are a type of mental sport ("mind sport"), in which it is necessary to quickly and error-free program the given algorithmic problems in C, C++, Java, Python and other programming languages.

The International Team Programming Competition, also known as the ICPC, is an annual multi-level programming competition held among universities around the world. The ICPC runs regional competitions spanning six continents, culminating in the global World Finals each year. More than 60,000 students from 3,514 universities in 115 countries of the world participated in this competition in 2021.

Keywords: online referee, program, programming learning, online platforms, ACM ICPC.

Introduction. Algo-Ubtuit is an "Online checking system" developed by professors and students of the Urganch branch of the Tashkent University of Information Technologies named after Muhammad al-Khorazmi and currently being tested (www.algo.ubtuit.uz). . This system is now highly effective in teaching students about algorithms. Currently, there are more than 8,000 users registered in this online verification system [8].

1. Interface

The online referee system consists of two parts.

1. User Interface (UI)

2. Solution testing system (Checker)

Communication between the user and the system is provided by the user interface (Fig. 1). The user UI will be able to view and send data in the system. The system for testing submitted results is located in the background and is not visible to the system user. The user interface and the system for testing solutions are connected to each other through a database.

|jsej. View Shipping Writing to the

database

Figure 1. Communication between the user and the system

The network UML model of the system is given in Figure 2.

Figure 2. Network UML model of the system There are four roles for users in the system:

- Administrator (admin).

- Teacher.

- User (user).

- Writer (writer).

While testing the user's solution, the system tests the solution in different scenarios.

Table 1.

Status table

In queue It means that your solution is still in the queue, the checker will be testing the solutions before your solution.

Running Checker indicates that it accepts the solution and switches to testing mode.

Compilation error The system could not compile the solution. There may be some error in the solution. The error is recorded in the database.

Security violation The solution is considered dangerous by the system and the testing process is stopped.

Wrong answer During solution testing, the response from the solution does not match the system response. Briefly wrong answer status.

Time Limit exceeded If the system does not return a result during the time it waits for a response while testing the solution, the solution is considered timed out.

Memory Limit The system allocates memory for each solution based on the problem, if your solution exceeds the specified memory, the memory limit is exceeded.

Presentation error It occurs when the solution produces more or less results than the expected results, or there is an error in the types.

Runtime error after checking the solution, the code that produced the solution is checked if the solution has not exceeded the time limit or the memory limit. If the process is completed successfully, the number 0 is returned, otherwise, if an error was encountered during the program's use or a different number was returned for some reason, the solution is a runtime error, that is, an error occurred during the program's operation. is returned with .

Rejected Solution Denied

Accepted

If all conditions are passed successfully, this solution is considered correct and the accepted status can be seen.

2. Testing

System testing is performed according to the following algorithm:

- Submitting a solution from the user's side.

- Writing to the database.

- The process of obtaining solutions from the Checker side.

- Select the programming language of the sent solution and launch the corresponding command window.

- Choosing the name of the problem and using different algorithms depending on the type of problem.

- Verification of the security of the sent solution and verification of the compilation process.

- Testing process.

- Final status, announcing the result.

Submit - in this process, the user submits their solution using the UI. Selects the code of the program, the name of the problem and the programming language in the process of solving the problem. UI accepts this solution.

Write to the database - this process is performed by the UI, that is, it saves the solution from the user to the database using SQL queries and sends the solution to the queue.

Retrieval process - in this process, the checker receives the next solution from the database and changes the state of the solution from the queue state to the test state through the state change process. The solution moves from In Queue to Running and continues testing.

Language selection - in this process, the compilation process is performed according to the programming language in which the solution was submitted.

Programming languages

Currently, there are many programming languages, each language has its own advantages, so the demand for learning all programming languages is increasing [4]. The online referee system also has the possibility to solve problems in many programming languages:

- GNU C 4.9

- GNU G++ 17 7.3.0

- Python 3.7

- Scala

- JavaScript

- NodeJs

- Kotlin

- Free Pascal 2.6

- Java

Each programming language has a separate compilation process[5]. In the Python programming language, process management is performed using the psutil kutibonus. Psutil (python system and process utilities) is a cross-platform library that provides the ability to use running processes (processes) and the system (CPU, HDD, Network). This is convenient for system monitoring. It implements many of the functions provided by UNIX command tools, such

as ps, top, iotop, lsof, netstat, ifconfig, free, and others. Psutil currently supports the following platforms:

- Linux

- Windows

- Macos

- FreeBSD, OpenBSD , NetBSD

- Sun Solaris

- AIX

CONCLUSION

Programming and algorithmization through the developed "Online Judge" system is an auxiliary software tool for independent learners of sciences. Using the program, you can organize competitions according to the rules of ACM. This software tool will greatly contribute to the preparation of students for the World Olympiad in programming.

The "Online Judge" system allows you to simultaneously test the solutions of several problems in parallel and to identify equally powerful solutions. Depending on the capabilities of computing machines, i.e. processor cores, the time of the testing process is reduced and the system is prevented from freezing.

As a result of the work done on the system, the usability of the system has increased. Many new opportunities have been created for users, in addition, methods and algorithms for parallel testing of solutions have been analyzed, making full use of the server's capabilities. The optimal solution was compared with the sequential testing method, the graph of the resulting result can be seen in the figure below (Figure 3).

Testing

5000 -

4000 -

3000 -

2000 -

1000 -

0 26 25

Serial testing Parallel val

Figure 3. Parallel and serial testing graph

REFERENCES

1. https://icpc.global/

2. "Google Code Jam". google.com. Retrieved 2016-02-20.

3. "Facebook Hacker Cup". Facebook. Retrieved 2016-02-20.

4. Khera, Vivek; Astrachan, Owen; Kotz, David (1993). "The internet programming contest" (PDF). ACM SIGCSE Bulletin. 25 (1): 48-52.

5. Combéfis, Sébastien; Wautelet, Jérémy (2014). "Programming Trainings and Informatics Teaching Through Online Contests" (PDF). Olympiads in. Informatics.8. 21-34.

6. http://algo.ubtuit.uz/index.php

100

200

500

1000

2000

i Надоели баннеры? Вы всегда можете отключить рекламу.