The use of online coding platforms as additional distance tools in programming education

This study analyzes various publications of scientists on the training of future IT specialists and the features of training programming using online simulators. The authors of the article made a comparative description of different online platforms for teaching programming according to certain criteria, selected interesting tasks from the online platform hackerrank.com, which have already been used to teach students. Online programming simulators have significant potential in organizing an effective distance learning system in Ukrainian universities. It is important to use online simulators in the learning process as an additional tool for the formation of professional competencies, which provides more intensive involvement of students in the process of writing code and practical (situational) application of existing knowledge. Gamification of the process of training future IT specialists helps to increase cognitive activity, and hence – the quality of the educational process and distance learning in particular. The authors recommend the use of online programming simulators as an additional tool for teaching computer science disciplines, taking into account their functionality, as well as the level of preparation of students and the expected learning outcomes.


Introduction
The modern world, as events in early 2020 have shown, was not ready for extreme challenges of various kinds. For example, the situation with the spread of COVID-19 showed that most countries around the world were unprepared for such events. The economic recession and social turbulence have affected all spheres of human activity [26]. Ukraine's higher education system was no exception, as it was neither morally nor technically ready for an emergency transition to distance learning. It is clear that higher education institutions (abbreviated -HEI) in our country are quite diversified, so some, mostly private and leading national universities, were able to mobilize faster and within a few weeks to transfer their students to distance learning platforms such as Moodle, Google Classroom, iSpring Online, etc. [11] A number of free educational institutions, not having sufficient resources and time, approached the problem of organizing distance education by using a variety of cloud services that provide support for conferencing such as Zoom, Google Meet, MS Teams, Skype, as well as streaming lectures and teaching educational video content on YouTube. In other cases, HEI or a separate category of scientific and pedagogical staff was limited to the use of various managers (Viber, Telegram), social networks, as well as e-mail. We are not currently evaluating the effectiveness of the use of certain ways, we can talk about this later, including the results of higher education students in the summer session, but it should also be noted that the choice of one or another approach in the organization of distance education largely depends on specialties, educational and professional programs, the profile of the Free Economic Zone, the expected learning outcomes.
Specialty 122 "Computer Science" focuses on the acquisition of in-depth theoretical and practical knowledge, skills, computer science, information technology, general principles of professional methodology, other competencies sufficient for the effective implementation of professional tasks in the design of information systems and their components. At the Kyiv National Economic University named after V. Hetman anonymous survey among students of the first (bachelor's) level of higher education (March 2020) showed that 2/3 of the students as a key motive for choosing a specialty identified knowledge of programming languages of different levels, which, in principle, is logical. On the other hand, as the practice has shown, the absence of a teacher (mentor, curator) in mastering the components of the educational and professional program related to the study of programming languages, including independent, practical and laboratory tasks in students constantly causes difficulties. According to the results of the survey, it was found that 73% of respondents have problems with distance learning and independent performance of practical tasks, of which 58% -full-time students. These data show that for students of full-time form of education a sharp transition to distance learning is a certain "stress", which likely can affect the final learning outcomes. The most common problems of students, identified during an anonymous survey of students, are presented in figure 1. Specialty 122 "Computer Science" focuses on the acquisition of in-depth theoretical and practical knowledge, skills, computer science, information technology, general principles of professional methodology, other competencies sufficient for the effective implementation of professional tasks in the design of information systems and their components. At the Kyiv National Economic University named after V. Hetman anonymous survey among students of the first (bachelor's) level of higher education (March 2020) showed that 2/3 of the students as a key motive for choosing a specialty identified knowledge of programming languages of different levels, which, in principle, is logical. On the other hand, as the practice has shown, the absence of a teacher (mentor, curator) in mastering the components of the educational and professional program related to the study of programming languages, including independent, practical and laboratory tasks in students constantly causes difficulties. According to the results of the survey, it was found that 73% of respondents have problems with distance learning and independent performance of practical tasks, of which 58% -full-time students. These data show that for students of full-time form of education a sharp transition to distance learning is a certain "stress", which likely can affect the final learning outcomes. The most common problems of students, identified during an anonymous survey of students, are presented in figure 1.
These data made us think about how much higher education students are ready to work independently in mastering specialized disciplines and distance learning, as well as initiated the search for effective ways to improve the quality of the educational process and the effectiveness of faculty in professional computer disciplines. Effectively, in our subjective opinion, and taking into account the feedback of students, online coding platforms (abbreviated -OCP) have proven themselves to master and consolidate programming skills.
The purpose of the article is to explore the experience of using OCP, to compare the characteristics of different online platforms, which should be used for distance learning programming of future computer scientists and programmers.

Literature survey
The issue of finding modern and popular tools to improve the quality of the educational process, mastering programming languages and developing technical skills is quite relevant, both for Ukraine ( [13], [22], [23], [25], [27], [37]) and for the world as a whole. Referring to foreign practice, scientists emphasize the expediency of diversifying the ways and methods of teaching programming, among which are the relevant interactive online simulators and coding platforms. In particular, in [2], the experience of using an interactive learning platform for the development of parallel programming skills -Parapple is described. The authors emphasize that the use of the game form of learning implemented in the platform significantly increases the efficiency of students' learning of programming languages.

Figure 1.
Problems that prevent students from mastering computer disciplines in distance learning.
In [5] and [36] it is emphasized the need to involve students studying computer science in competitions (contests, competitions), for which there are a number of web platforms, in particular: Coderbyte, CodeFights, Codeforces, E-Olymp, Facebook Hacker Cup, Google Code Jam, etc. The high efficiency of using special interactive programming simulators, in particular, the CodeWrite web resource, at the stage of acquaintance with the basic rules and syntax of the Java program code is emphasized in [4]. In [1] it is noted that the use of online simulators to master and consolidate programming skills greatly simplifies the procedure for teachers to check the code written by students, identify errors, and help to detect in the early stages of lag in mastering the code by individual students.
Despite the popularity of online platforms for learning programming, there is still a lack of thorough research to analyze what skills are acquired through the use of different platforms. The article [6] analyzed clickstream data from 3,355 participants who studied in several seminars on computational thinking using the online platform Kodetu. Participants used Kodetu coding blocks to solve problems with increasing complexity. The results after evaluation of data on the characteristics of participants (age, gender, previous knowledge), the similarity with previously made decisions, and the degree of inconsistency with the optimal solution are presented.
Nowadays, various companies have increased their requirements for IT professionals. Despite this, many jobs remain unfilled. In addition, we need workers with programming skills, even if they do not have official professional diplomas. Also, there is no secret that gender disparities in technology-related industries are a serious problem. Even if companies want to hire women in digital technology, the number of women involved in programming is extremely low. In secondary schools, most adolescents acquire only low-level programming skills. Therefore, many teens exclude programming as a career path. This study presents two promising concepts for overcoming these problems. In 2018, the University of Graz introduced a voluntary lecture "Create your own application" for students of all degree programs. A total of 202 students took part. We have applied a Gaming Learning Approach (GDBL) with the Pocket Code visual coding tool, a mobile application developed at the Graz University of Technology. Students had to create simple games directly on smartphones. The course received positive marks. In January 2019, we began developing a MOOC (Massive Open Online Course) called "Get a FIT in Computer Science." MOOC will be launched in August 2019 on the platform iMooX.at and will provide a general introduction to the CS field. For exercises and the final presentation, students need to apply game design strategies using Pocket Code. The MOOC has several target groups: 1) can be used to encourage young women who have almost prior programming knowledge; 2) it should help all adolescents to get a more realistic picture of programming and basic concepts; 3) teachers can use teaching materials for classes in secondary schools (Open educational resources). The MOOC can be accessed by anyone interested in programming, so students of other specialties can acquire such skills [32].
The publication [28] states that more and more high school teachers are using existing mass open online courses (MOOCs) on the basics of programming. Most MOOCs cover programming languages and general concepts or patterns. MOOC platforms typically provide their own code writing environment and thus have complete control over the capabilities and appearance available to students. However, MOOC uses only a subset of the tools available to professional software engineers. Although reduced capabilities are useful to facilitate navigation for beginners, in the final stage of the learning process, students benefit from more advanced features. To help pupils and students minimize errors, it is suggested to perform programming in pairs. Also, professional tools and methods have been integrated into MOOCs.
The cloud-based online platform is discussed in the article [19], which has its own environment that allows students to practice programming online without any specific configurations. This platform provides online coding services and can bring faculty and students together in a unique social experience, tracking and transmitting updates in the real-time programming process. In particular, the recently proposed platform makes it easy to uncover interesting and unexpected input values during students' internships and help them understand what their codes actually do. As a result, students can effectively study courses related to coding and write high-quality programs.
In article [20], as part of a study on the design and use of cloud environment in student learning, based on expert assessment, it was determined that the most important for the learning of programming are web-oriented and cloud-oriented compilers: Codepad.org, ideone.com, AWS Cloud 9, and automated systems E-Olymp, Algotester, TopCoder, NetOI Olympiad are effective for checking programming tasks.
The E-Olymp Internet portal was created by Ukrainian specialists to optimize and automate the process of testing programming tasks. The E-Olymp portal helps the teacher in teaching students programming, in preparation for tests, exams, modular work, etc. Students have the opportunity to solve problems and prepare for classes, as well as test their solutions without the help of a teacher, compare the level of their skills with the level of other users of the site, which, in turn, stimulates knowledge in this area and promotes development. self-esteem. Provides control and independent work, limited in time, while the teacher does not waste time checking the work, students can get the result immediately (and students see the results of other classmates registered in the system and participated in the competition), and if there are several tasks, the teacher is offered a total score obtained by the student. The main advantages of this Internet portal for programming training: currently contains more than 7,000 tasks; the possibility of creating competitions from the list of available tasks with the ability to choose the type of competition according to the rules of the Olympiad: the best solution, the last solution; availability of a general rating of registered participants; the automated system for checking solutions implemented in programming languages Pascal, C#, C++, Java, PHP, Python, Ruby, Haskell; the existence of a queue of solutions, where you can see which task is credited and which is not, and, accordingly, by what percentage; availability of classification of programming tasks by known sections; availability of information about all attempts to solve problems; the existence of a methodical and an assistance section; the possibility of creating groups [20].
The study [3] shows many problems in teaching programming to schoolchildren and students: great diversity in abilities and skills; a large number of different tools (online platforms); time-consuming nature of programming; difficulties in motivating schoolchildren and students. There are various platforms that offer to learn coding and programming, in particular gaming platforms, which are becoming increasingly popular. Gamification of the programming process is aimed at increasing the motivation and involvement of more schoolchildren and students. Researchers have considered the main types of online platforms for learning programming and illustrated the review with specific examples of platforms.
The study [35] is devoted to the use of game simulators in the formation of professional competencies of future software engineers. Various scientific researches are described, in particular, the following list of game simulators is allocated: "Ameise" -management of the project of development of software (with an emphasis on quality); "ANUKARNA" -a game-simulator for training students in the best practice of expert evaluation of code; "Problems and Programmers", "SimjavaSP", "SimSE" -software development processes; "SimVBSE" -value-based software development; "PRODEC" -software project management, etc.
In the context of this study, it is not about finding a full-fledged resource for distance education, but about enriching teaching tools and diversifying the teaching process through the use of user-friendly web resources that develop students' programming skills. Therefore, in the course of the study, the authors deliberately singled out online programming simulators (or OCP) as a separate group, as there are many different resources on the Internet for distance learning of programming languages. For clarity, we highlight the key groups:  distance learning courses on different educational platforms and from different free educational institutions (for example, Coursera, edX, Codecademy, Udacity, Khan Academy, HTML Academy, etc.). These resources teach full-fledged ready-made training courses, which contain both theoretical and practical components of training a future programmer;  online programming judge system -web resources used, primarily, for competitions, hackathons, group competitions, tournaments, etc. The web resources of this group include UVa Online Judge, Sphere Online Judge, Google Code Jam, E-Olymp, CDOJ, etc.;  online simulators (or OCP) for mastering and consolidating programming skills -web resources aimed at developing students' professional competence in programming languages. These resources contain sets of exercises and tasks of different content and nature to hone practical skills in working with program code, as programming requires constant practice. These simulators are not an independent tool for mastering the programming language, because still, the student must have basic theoretical concepts, understanding of algorithmization, syntax, and semantics of a programming language, operators and more. To work with program code and to hone programming skills, the student must master the syntax and design, understand the principles and methods of problem-solving, their context, while performing only laboratory or practical work, it is not always sufficient. And in the case of distance learning, teachers for productive work with students of computer specialties need, on the one hand, to take measures to increase the cognitive activity of higher education, on the other -not to overload students. The ideal tool, according to the authors, is to diversify the learning process through the use of online programming simulators (or OCP).

Current work
In English literature, the term "online coding platform" is used to denote the concept of online simulators for mastering and consolidating programming skills. There is no fixed phrase in Ukrainian-language practice, so we use the concept of online programming simulators (abbreviated -simulators, or "online coding platform" as in English), which will denote a web resource that gives the user free or paid access to various types of tasks (group and doubles tournaments, games, static situations, search for errors, testing, etc.), which allow getting acquainted with the basic concepts of writing program code and deepen existing knowledge. The peculiarity of these OCP is:  they are publicly available, their use does not require the installation of any additional software, the availability of powerful computer equipment, installed operating system, the need to use proprietary software products. These web resources can be accessed from anywhere in the world;  for use, students must have access to the Internet (sufficient at the level of services provided by the mobile operator) and a convenient device. Note that a laptop or computer is not necessary, a smartphone with a more or less user-friendly screen is enough to work with OCP;  tasks are visualized, students do not have to spend a lot of time studying instructions and teaching materials to perform a specific task, just get acquainted with the problem statement, input constraints (e.g., RAM, program execution time, etc.) and go to write code that corresponds initial conditions. Visualization of tasks in simulators is various, it all depends on the creativity of developers, the orientation of a web resource and its popularity, etc. For example, in modern simulators tasks can be presented in the form of animations, graphs, game scenes, the actual code and visual representation of results, crossword puzzles, tests, quizzes;  performance of tasks on OCP is not trivial. A student can write a code to solve a problem that satisfies the input conditions by copying it, for example, from a textbook or finding it on a forum. If the simulators are aimed at developing existing programming skills, then in addition to the formal implementation of the task, the evaluation algorithms embedded in them analyze the originality of the proposed code, for which you can get additional points in the ranking. This develops in students a tendency to creativity, self-realization and critical thinking;  tasks are performed in an interactive mode "task-writing code-evaluation of results", which promotes greater involvement of students in the programming environment, causes some excitement and develops motivation, as each registered user is assigned a certain rating and with increasing student success and knowledge in programming this rating is rising;  the counseling support available to students when working with program code is very important.
The functionality of most simulators expands the teacher's ability to provide such support, in addition to the student's direct contact with his teacher, he has access to reference materials and books on the programming language being studied; it is possible to seek advice from the community that also works with this simulator;  tasks are differentiated both by programming languages and by the initial level of students' knowledge. At the same time, if a student sees that he cannot cope with a specific task, it is always possible to go back and fill the gaps in knowledge;  most OCP check students' performance of tasks automatically, so teachers have time to focus on the content of their own distance learning courses, to explain the difficult points and help solve problems that are unclear to students while studying on such simulators;  most OCP provide employment services free of charge or for a fee. That is employers, following the TOP-ratings of participants, analyzing their logic and software solutions can offer work in their companies to future programmers and IT professionals. In addition, some web resources have the option of sending a resume. In table 1, the authors of this article made a comparative description of several online programming simulators. The criteria for choosing these resources were the following circumstances: first, the subjective experience of the authors in the use of these resources based on their own experience; secondly, the requirements of the educational-professional program "Computer Science" (2018) to the program results and the acquisition of professional competencies of applicants for the higher education of the first (bachelor's) level at the Kyiv National Economic University named after Vadym Hetman (in particular, knowledge of programming languages Java, JavaScript, PHP, C#, C++) [17]; third, the popularity of web resources on the Internet by the number of unique visitors and traffic statistics rated by Alexa (https://www.alexa.com/), a company that is part of Amazon.com. A similar approach to the selection of web resources for online learning is used in [16]; fourth, the free basic set of features for training. Table 1. Comparative characteristics of online programming simulators ("+" is yes, "-" is no or very bad, "  " is partial or exact information not found). -

Results
The obtained results testify to the difference between OCP. In particular, the fundamental difference is in the most important, in terms of teaching and organizing quality distance education, as a set of skills covered by the exercises, the ability to support group (joint, including with a teacher or classmates) work on tasks, a variety of available to learn programming languages.
The fact that these OCP support a different set of programming skills does not indicate their ineffectiveness for educational purposes, but the need for students to have basic knowledge of the basics of programming, syntax, semantics. It follows that students of 1-2 courses of free economic education, who are just mastering programming (for example, learning their first language -C ++), it is advisable to offer to work with simulators such as Exercism.io and Repl.it. They have an intuitive interface, the tasks are offered to solve, mainly as challenges and support the support of a mentor or teacher. Exercism.io gives the student the opportunity to share the results with the teacher so that he can check the written code and give recommendations for possible improvement. For its part, Repl.it, in its free license, supports collective cooperation with a restriction of two people, and subject to payment of a group license, it is possible for teachers to organize an individual room for joint and individual work with their students (Repl.it Classroom).
For students who master the knowledge of Java and JavaScript within the educational-professional program, it is mainly students of 2-3 courses, we recommend to turn to OCP built on a game basis -SheckIO (the result of Ukrainian developers) and Codewars. The ideology of both simulators involves immersion in the programming environment through a game scenario of exercises. And if for SheckIO it is a game like RPG, where a student performing various tasks masters the map of the islands, complicating the task as he develops programming skills. The idea of Codewars is for a student to create their own karate clan or join an existing clan to work together on applied problems. The simulator also supports changes in the form of sparring between karate players, for example, when the code is alternately refactored or bugs are fixed. As for the possibilities of collective work of teachers and students, it is somewhat limited in these simulators. For example, ScheckIO supports the creation of an individual teacher's office only for mastering the Python language. Codewars has the ability to create teaching Code Classrooms but on a fee basis.
Students of 3-4 courses can be recommended to develop programming skills in HackerRank simulators. This web resource contains tasks of medium and advanced complexity, there are fewer tips and tricks for completing tasks, which encourages students to develop imagination and creativity in writing code. In addition to basic programming languages, it allows us to deepen knowledge of the basics of algorithmization, databases, and SQL, functional programming, mathematics, etc. This simulator contains good recruitment support, which means an opportunity for students to demonstrate their skills to potential employers.

An example own experience of using online coding platforms
One of the authors of this publication has been using one of these platforms for over 5 years in order to improve their programming skills and to select assignments for students in which he teaches programming.
This platform is hackerrank.com, which positions itself as follows "HackerRank is technology hiring platform that is the standard for assessing developer skills for over 2,000+ companies around the world. By enabling tech recruiters and hiring managers to objectively evaluate talent at every stage of the recruiting process, HackerRank helps companies hire skilled developers and innovate faster" [8].
It should be noted that, indeed, as a result of some competitions, the author received letters with proposals for cooperation from various companies.
In addition to a significant number of different tasks and competitions, it is worth noting the excellent visualization of various aspects of the results [10]. In figures 2-5 show variants of such visualization.

Examples of problems from hackerrank.com
Here are some examples of simple interesting tasks from hackerrank.com, which were also offered to students and received positive feedback from them.

Summing the N series [30]
The algorithm for solving this problem (the condition of which is shown in Figure 7), at first glance, does not require anything special: just read the number of tests T, for each i-th test read n, and then by formulas from the condition find S n for each test, perform the operation S n mod(10 9 +7) and display the result. However, in this case, we will not invest in limiting memory and time. Therefore, it is necessary to look for another, more optimal, approach. Indeed, if you look at the presented formulas, you can see that: Then, to find the sum of S n you need to find two sums of arithmetic progressions from 1 to n, and then subtract from the result n: Then, applying the property of the mod operation to the product, we obtain a concise solution to this problem (code in C++, figure 8).

Rectangular Game [29]
The algorithm for solving this problem (the condition as shown in figure 9), at first glance, also seems simple: you just need to model this game, perform all its operations, determine the maximum value in the matrix and find the number of such maximum values. However, in this case, we will not invest in limiting memory and time. And, therefore, it is necessary to look for another, more optimal, approach. Indeed, based on the rules of the game, the maximum value of the matrix will be in the lower-left cell. And the number of these values is the product min( ) min( ) a b  . Thus, we get the desired result actually during the input of the initial data of the problem (code in C++, figure 10).

Conclusion
In connection with the all-Ukrainian quarantine related to the spread of COVID-19 and the transfer of the educational process in HEI completely into a remote format, the authors organized an anonymous survey of students of the first (bachelor's) level of higher education (March 2020) specialty 122 "Computer Science". According to the results of the survey, it was found that 73% of respondents had problems with distance learning and independent performance of practical tasks, of which 58% -fulltime students. Thus, for students of full-time form of education, the abrupt transition to a complete 14 distance form of education is a certain "stress", which is likely to negatively affect the final learning outcomes.
Various researches of scientists on the preparation of future IT-specialists and features of training of programming on the application of online-simulators are analyzed.
The authors of the article made a comparative description of different online platforms for teaching programming according to certain criteria, namely: the subjective experience of the authors in using these resources to teach students; requirements of the educational-professional program "Computer Science" (2018) for bachelors (in particular, knowledge of programming languages Java, JavaScript, PHP, C#, C++); the popularity of web resources on the Internet by the number of unique visitors and traffic statistics by Alexa rating (https://www.alexa.com/); free basic set of functions for training. Presented selection of interesting tasks from the online platform hackerrank.com, which have already been used to teach students.
We also note that online programming simulators (or OCP) have significant potential in organizing an effective distance learning system in Ukrainian free educational institutions, where students master computer disciplines. The use of these simulators in the educational process as an additional tool for the formation of professional competencies provides more intensive involvement of students in the process of writing code and practical (situational) application of existing knowledge in a more informal and more convenient environment for higher education. Playful and interactive forms of learning contribute to the increase of cognitive activity, and hence -the quality of the educational process and distance learning in particular. Of course, in most cases, applicants for higher education are required to know a foreign language, including English. From the point of view of teaching, it is also inconvenient that the teacher does not have access to all student work in a single room, except for simulators such as CheckIO, Repl.it Classroom (paid), Exercism. We recommend using online programming simulators as an additional tool for teaching computer science, taking into account their functionality, as well as the level of preparation of students and the expected learning outcomes.
The examples of the use of studied online coding platforms that are mentioned in the research of individual disciplines of programming will be disclosed by the authors in subsequent publications.