<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Development of the programming language learning skills using gamification elements</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Taras Basyuk</string-name>
          <email>Taras.M.Basyuk@lpnu.ua</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrii Vasyliuk</string-name>
          <email>Andrii.S.Vasyliuk@lpnu.ua</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lviv Polytechnic National University</institution>
          ,
          <addr-line>Bandera str.12, 79013, Lviv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2000</year>
      </pub-date>
      <volume>11</volume>
      <issue>2</issue>
      <fpage>7</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>The article analyzes existing methods and approaches used in the process of developing programming language learning skills using gamification elements. It is shown that the application of gamification elements increases motivation, engagement, and productivity in solving technical tasks. A system analysis of the research object was conducted, resulting in the creation of a goal tree, whose primary objective is to develop a system for acquiring skills in learning programming languages. The next stage involved determining the functional requirements for the system, which were divided into the following categories: user management, educational materials and resources, assessment and progress, interactive features and communication, administrative functions, and technical requirements. Functional roles and responsibilities of different parties involved in the process were defined for the designed system. The subsequent stage involved designing the software system using an object-oriented approach and representing the created diagrams using UML language. The article presents use case diagrams, class diagrams, and activity diagrams, which provided the necessary apparatus for its further construction. The database schema of the designed system was presented using the MySQL Workbench software tool. An application software system for learning programming languages with gamification elements has been developed, which currently operates as a prototype. Further research will focus on testing and improving the system, resolving conflicts, and expanding functionality in accordance with the defined requirements. programming language, learning, object-oriented design, gamification SCIA-2024: 3rd International Workshop on Social Communication and Information Activity in Digital Humanities, October 31, 2024, Lviv, Ukraine ∗ Corresponding author. † These authors contributed equally.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        In the context of rapid digital technology development and significant integration of
information systems into all areas of life [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], programming skills have become one of the most
important asset for a successful career and personal development [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The main reasons for the
relevance of this field are [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]: the growing demand for programmers (according to various
studies, programming is one of the most sought-after skills in the labor market [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], necessitating
effective training of new
      </p>
      <p>
        programmers and upskilling of existing professionals [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]),
technological progress (modern information technologies offer new tools and methods for
learning programming languages [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], making education more accessible and efficient [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]),
globalization and knowledge accessibility [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] (the internet and modern information
technologies provide access to educational materials and resources from all over the world [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
opening new opportunities for self-learning and professional development regardless of
location [10]), and continuous learning (programming is a constantly evolving field due to the
emergence of new languages, frameworks, and tools, requiring continuous learning throughout
one’s career [11], and modern information technologies enable ongoing self-improvement [12]).
      </p>
      <p>However, like with any form of education, knowledge gained through learning must be of a
high quality. A crucial step in this process is selecting a mentor who can find a suitable
educational approach for the learner and provide relevant materials. Since we live in the 21st
century, in the world where technology prevails, the most convenient way of learning is
through interactive systems, online manuals, video courses, and audiobooks. This entails
searching for information portals, preferably free of charge or with a trial period, and exploring
search engine’s result pages [13] to obtain relevant content. However, data reliability is not
always considered as well as its integrity, usefulness, and interactivity [14].</p>
      <p>Analyzing the segment of student youth, conclusion can be made that the most popular type
of interactivity today is the use of gamification elements [15]. This way, a platform can be
created that combines learning with gameplay and provides users with a sense of competition
[16]. This approach can improve the education level by encouraging students to complete
assigned tasks in higher education institutions, allowing them to express their creative ideas
and unconventional solutions [17]. Additionally, involving senior students can help implement
and organize a continuous learning process, ensuring communication and knowledge exchange
[18]. Given these trends, developing an information system for developing programming
language learning skills using gamification approaches is a relevant task.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related works</title>
      <p>The growing demand for programmers and the rapid development of information technologies
stimulate scientific research in the field of programming related education. The main areas of
focus include:
•
•
•
•</p>
      <p>Open online courses - according to a study conducted by Harvard University, MOOCs
[19] contribute to the democratization of education by making it accessible to a wide
audience. MOOC platforms such as Coursera, edX, and Udacity allow users worldwide
to learn from leading universities, providing access to high-quality educational
materials and programming courses [20].</p>
      <p>Interactive platforms - research [21] has shown that interactive platforms like
Codecademy and FreeCodeCamp significantly improve material retention and
motivation [22]. They allow users to complete practical tasks in real-time, receive
instant feedback, and track their progress, making learning more effective [23].
Application of gamification methods - article [24] note that the use of gamification (e.g.,
platforms like CodeCombat and HackerRank) enhances student engagement and
success [25]. Gamification, which includes game elements such as points, levels, and
rewards, boosts motivation and makes the learning process more engaging [26].
Use of simulations and virtual labs - a study [27] demonstrated that the use of
simulations and virtual labs (e.g., Cisco Packet Tracer) provides practical experience
•
•
without the need for physical equipment, allowing users to experiment with code and
configurations in a safe environment, leading to a deeper understanding of
programming concepts.</p>
      <p>Personalized learning and adaptive learning systems - according to research [28],
adaptive learning systems (e.g., Knewton and Smart Sparrow) offer a personalized
approach to programming education by tailoring materials and tasks to individual user
needs [29]. Personalized learning allows users to progress at their own pace, focusing
on their weaknesses, thereby enhancing learning efficiency.</p>
      <p>Intelligent tutoring systems - research [30] has shown that intelligent tutoring systems
(e.g., Python Tutor) can automatically provide recommendations and explanations that
help learners understand complex programming concepts. Additionally, the use of
intelligent tutoring systems enables individual support and feedback, improving
programming skills.</p>
      <p>Additionally, within the scope of the study, well-known software systems were analyzed,
including the Ukrainian portal “Algotester”[31], and platforms “Codewars”[32], “HackerRank”
[33], and “Exercism”[34]. The first three systems operate on the principle of a ready-made
platform – these are websites that allow users to write code for a given task directly in the
browser, compile the program, and check the result immediately. In contrast, the Exercism
platform operates somewhat differently: users need to follow specific steps from the task
instructions on the website to set up the environment locally on their computer. As a result, the
compilation and checking occur on the user’s side rather than the system’s side. This provides
expanded capabilities (tracking code execution, checking input and output data), offering more
flexibility in task execution compared to real-time solutions.</p>
      <p>To highlight the uniqueness of each system and identify issues such as imperfections and
the lack of desired functionality, let’s take a closer look at each one.</p>
      <p>“Algotester” system - also known as the “College of Algorithmic Programming,” it is
characterized by the following features: site statistics, user guide, personal account, a set of
various tasks, the ability to view the profile and statistics of another user, create a team,
participate in regularly held tournaments, and access to classroom sessions at the Ivan Franko
National University of Lviv. The main advantages are: multilingual support (English and
Ukrainian); user rating table; a significant list of tasks; extended navigation instructions; task
solution results table; ability to create your own tasks, and more. The disadvantages include the
lack of solutions visualizations and tournament competitions, and the ranking table data loads
as a single block rather than in parts, although it is visually presented as such.</p>
      <p>System “Codewars” - this online platform allows amateurs and professional developers to
participate in solving various programming tasks. These discrete coding exercises develop
various programming language skills and allow to consolidate them in an integrated online
development environment. Codewars was founded by Jake Hoffner and Nathan Doctor in
November 2012. The advantages include: a wide variety of competitions; rating system; detailed
instructions with examples; flexible selection of tasks according to skills and abilities;
connection to social networks; the ability to compete with real users. The disadvantages of
Codewars are: unstable mobile version of the site; long response time; if the task page was
reloaded both code and data may be lost.</p>
      <p>System “HackerRank” - this system is designed to create competitive tasks in the field of
programming for both regular users and businesses, where developers compete by trying to
program according to given specifications. The programming tasks from HackerRank can be
solved using various programming languages, including Java, C++, PHP, Python, SQL,
JavaScript, and cover different areas of information technology. The advantages of HackerRank
are: a sufficient selection of competitions; rating system; detailed instructions with examples;
connection to social networks; mobile version of the site; changes in the editor are saved even
after the page is reloaded; quick system response to user requests. The disadvantages of
HackerRank are: no “favorites” option if a task is liked; somewhat unstable mobile version of
the site; significantly fewer programming languages to choose from compared to Codewars.</p>
      <p>System “Exercism” - an open-source online programming platform that offers code practice
and mentorship in seventy different programming languages. The website differs from other
platforms by requiring users to download exercises via the command line client, solve the code
on their computers, and then submit the solutions for feedback. Exercism’s codebase is
opensourced, consisting of dozens of repositories containing code for tasks in various programming
languages. The advantages of Exercism are: wide selection of competitions; significant choice
of programming languages to learn; detailed instructions with examples; stable mobile version
of the site; quick system response to user requests. The disadvantages of Exercism are: no
“favorites” option if a task is liked; no sparring option with users; no competitors rating table;
integration with limited number of social networks.</p>
      <p>The conducted analysis of known bodies of research indicate significant success in the
programming language learning promotion. However, the lack of problem-oriented software
solutions makes further study a relevant task.</p>
      <sec id="sec-2-1">
        <title>2.1. Effectiveness of applying gamification methods</title>
        <p>Gamification in education is a powerful tool for increasing motivation, engagement, and
learning effectiveness, especially in the context of learning programming. The application of
game mechanics such as points, badges, rankings, and competitions contributes to making
learning more engaging and interesting for users, particularly young people who are
accustomed to interactive and dynamic content.</p>
        <p>During the development and testing of a system for teaching programming, similar software
methodologies and existing empirical studies on the effectiveness of these methods were
analyzed. One study involved 100 respondents who used the learning system for four weeks.
The main metrics for evaluating effectiveness were: user engagement level (frequency of system
logins, session duration), number of completed tasks, and students' self-assessment of learning
motivation [35].</p>
        <p>The study results showed that gamification significantly impacted user engagement. In
particular, the use of rankings and competitions between users contributed to a 30% increase in
the number of completed tasks compared to traditional teaching methods without gamification
elements. Points and badges awarded for achieving certain levels of competence stimulated
users to return to the system and continue performing tasks even after reaching initial goals.
Leaderboards and competitions had the greatest impact on motivation. Participants who took
part in competitions showed 40% higher productivity in solving tasks compared to those who
studied individually. The psychological factor of competition and the ability to compare one's
results with those of other users created an additional incentive to improve programming skills.
However, not all gamification elements proved equally effective for all users. For example, some
participants expressed concern about excessive pressure that arises when performing tasks
within time-limited competitions. This indicates the need for a careful balance between task
complexity and motivational elements to avoid demotivating users, especially beginners [36].</p>
        <p>Existing studies have also shown that the integration of gamification methods effectively
supports long-term learning. Badges and levels that reflect user progress help maintain
motivation throughout the learning period. Students who actively received these accolades
completed an average of 25% more tasks compared to those who ignored these elements.</p>
        <p>Thus, the results of existing studies confirmed that gamification has a significant positive
impact on the process of learning programming, increasing both user engagement and their
motivation to achieve learning goals.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Main research objectives and their significance</title>
        <p>The goal of this study is to develop a web client for an educational portal with gamification
elements, allowing users to try their hand at solving algorithmic problems. The conducted
research will provide the means to create software based on it, incorporating game elements
that enable users to grasp basic algorithms, approaches, and patterns taught in
programmingoriented courses. Additionally, the created portal will include task instructions, a personal
account to view progress, and tools for creating tournaments to evaluate users’ programming
skills level.</p>
        <p>To achieve this goal, the following tasks would need to be accomplished: analysis of the
existing approaches, research, and software tools used in developing programming skills;
identification of the main challenges that arise in this process; system design using an
objectoriented approach; prototype system implementation that enables programming skills
development with the use of gamification elements.</p>
        <p>The results of the study address a relevant scientific and practical problem of developing
programming skills using modern information technologies.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Results and discussion</title>
      <sec id="sec-3-1">
        <title>3.1. Application of the systems analysis methodology for studying the subject area</title>
        <p>At the beginning of the research, a decision was made to employ the system analysis
methodology for the subject area investigation. System analysis is a crucial approach for
understanding, modeling, and optimizing complex systems, and one of its significant
applications is the development of programming skills using modern information technologies.
System analysis for this subject area can be divided into several stages [37].</p>
        <p>Goal definition and requirements - establishing the final learning objectives, such as
mastering a specific programming language, creating specific types of programs, or achieving
a certain level of competence.</p>
        <p>Analysis and modeling of learning - creating models of the educational process that consider
various aspects such as teaching methods (online courses, interactive exercises, project-based
learning), use of educational materials (books, videos, manuals), and feedback (tests,
assignments, projects). An important step here involves using diagrams to model the
educational process and identify potential improvements.</p>
        <p>To implement the first stage, a goal tree was constructed to visualize and structure the tasks
and sub-goals necessary to achieve the main objective. The goal tree of the designed system is
presented in Figure 1.</p>
        <p>Overall Goal is to create a system for developing programming language learning skills. To
achieve this, several sub-goals need to be accomplished:</p>
        <sec id="sec-3-1-1">
          <title>Data collection and requirements definition</title>
          <p>•
•</p>
          <p>Analysis of research in the subject area - collecting and analyzing contemporary
research on programming education methodologies is a crucial stage in understanding
which methods are most effective. This subgoal involves studying scientific articles and
various research findings. It is also important to pay attention to recent trends and
innovations in programming education, such as the use of interactive platforms,
gamification of learning processes, virtual and augmented reality, and so on. Identifying
key aspects that impact the effectiveness of learning will help establish a foundation for
further system development.</p>
          <p>Analysis of similar systems - this subgoal includes identifying existing programming
education systems. Analyzing the strengths and weaknesses of these systems will help
understand which elements are most effective and which need improvement. It is also
important to study user feedback on these systems to determine their needs and
•
•
•
•
•
•
•
expectations. This will help avoid mistakes made by competitors and create a system
that meets users’ requirements to the maximum extent possible.</p>
          <p>Requirements definition for the designed system - based on the analysis of the subject
area and analog systems, it is necessary to define the functional requirements for the
designed system. This includes a list of functions that the system should perform, such
as interactive lessons, automated assessment, feedback mechanisms, and others. It is
also important to establish non-functional requirements such as security, performance,
scalability, and system reliability. Technical specifications are then formulated based on
these requirements, which will be used during the system development process.</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>System design and construction</title>
          <p>System design using object-oriented approach - involves developing a system based on
objects that represent real-world entities. It includes creating a set of diagrams that
relatively simply describe the characteristics required to build flexible and easily
scalable systems.</p>
          <p>Selection of the development tools - at this stage, it’s essential to choose the
development tools that will be used to create the system. This includes selecting
programming languages, frameworks, and database management systems. The choice
should be based on the system requirements, its functionality, and scalability
capabilities.</p>
          <p>System construction and testing - after selecting the development tools, the system
construction process begins. It involves writing code, configuring database management
systems, integrating different system components, and creating the user interface. Once
development is complete, the system undergoes testing to identify and rectify errors.
Additionally, it’s crucial to conduct testing to ensure the system meets security,
performance, and reliability requirements.</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Providing practical experience through project-based learning</title>
          <p>Development of tasks for practical assignments - to ensure practical experience, it is
necessary to develop tasks for practical assignments that encompass various aspects of
programming. These tasks will include coding exercises, algorithm development,
database work, and more. It is important that the tasks are diverse and cater to different
levels of complexity, enabling users to progressively enhance their skills.
Project creation and coordination of work - n addition to individual tasks, it is crucial to
facilitate project work that encompasses all stages of software development.
Coordinating project work helps in gaining skills to work in teams, utilize version
control systems, and integrate various software components.</p>
          <p>Defining practical development experience - at this stage, it’s important to determine
the specific skills and knowledge that users should gain while working on practical tasks
and projects. This may include programming, testing, database management, server
configuration, working with APIs, code optimization, and more.</p>
          <p>Developing and supporting a programmers’ community
•
•
•</p>
          <p>Creating interactive exercises and tests - to support active learning, it is important to
create interactive exercises and tests that help learners solidify their knowledge. These
will include automated tests that assess theoretical knowledge and practical tasks that
require coding. Interactive exercises should be diverse and engaging to maintain
motivation for learning.</p>
          <p>Creating and moderating online communities - establishing online communities will
facilitate knowledge sharing, asking questions, receiving assistance, and sharing
achievements. In the designed system, this will include forums and chats. Moderating
these communities will help maintain order, ensure safety, and encourage active
participation from all members.</p>
          <p>Organizing user competitions - hosting competitions/tournaments among users will
promote skill development, increase motivation, and foster friendly competition.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Defining functional requirements for the system</title>
        <p>In accordance with the defined sub-goals in the formulated goal tree (Figure 1), the next stage
of the research was to identify functional requirements. Functional requirements should
encompass various aspects of the system’s operation, ensuring effective learning and
development of programming skills among users [38] (Table 1).
5. Technical requirements
Support for various
programming languages
Data backup
Security</p>
        <p>The system should support educational materials and
exercises for popular programming languages (Python, Java,
C++, JavaScript, etc.).</p>
        <p>The system should perform regular data backups to prevent
data loss.</p>
        <p>The system should ensure a high level of security for user
data, including protection against unauthorized access and
breaches.</p>
        <p>Defined functional requirements aim to create a comprehensive and effective system for
developing programming skills using gamification elements. For the planned programming
skills development system, it is important to define the functional roles and responsibilities of
various stakeholders involved in the process. Below are the main roles and their responsibilities
(Table 2).</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. System design using object-oriented approach</title>
        <p>The next step was to design the system in accordance with the object-oriented approach using
the UML language [39]. The initial diagram in the design process was the use case diagram [40],
depicted in Figure 2.</p>
        <p>The main actors are: the user, the task administrator, the forum moderator and the solutions
service. This diagram reflects the main purpose of the system - to provide high-quality tasks for
practical training, to provide a full-fledged code editor, the ability to submit coded solution and
receive feedback.</p>
        <p>The following diagram is a class diagram used to visualize the structure of classes and their
relationships. An extended description of the class diagram application includes the following
aspects: requirements analysis (used to analyze system requirements, namely, understanding
the structure of data and components allows you to analyze which classes are needed to
implement the functionality of the system and how they are related to each other);
communication with project participants (allows developers, architects, managers and other
interested parties to understand the structure of the system and its components); identifying
potential problems (can help identify potential problems and flaws in the system design, such
as circular dependencies between classes, excessive complexity, or insufficient modularity);
documentation (serves as an important tool of documenting the project, namely providing clear
and specific information about the structure of the system for future developers and
maintenance personnel).</p>
        <p>In Figure 3. a class diagram of the system is presented.</p>
        <p>With the aim of illustrating the user authentication process within the system, an activity
diagram was employed. This diagram serves as a valuable tool for developers, analysts, and
other stakeholders to achieve the following objectives: visualization of the process (the diagram
provides a clear representation of the steps sequence that comprises user authentication,
helping with identification of the potential bottlenecks, delays, or inefficiencies in the flow),
improvement in team’s general project understanding (all project participants, including
developers, analysts, and clients, can better comprehend the process), identification and
resolution of issues (the diagram facilitates easy identification of potential issues or bottlenecks
in the process), verification and testing (testers can use the diagram to create test cases that
cover all aspects of the authentication process). The activity diagram for the user authentication
process in the system is depicted in Figure 4.</p>
        <p>The authentication process involves obtaining user-entered data and it’s subsequent
processing. At this stage, the system verifies the login and password, which are stored as hashed
values in the data repository. If the entered data does not match, the user is notified of the
incorrect input. Otherwise, an authentication token is generated and sent to the user to continue
communication in a secure mode.</p>
        <p>To implement a system for developing programming language skills, a data storage solution
needs to be implemented. As a result of conceptual and logical design of the repository, a data
model was developed using the software tool MySQL Workbench [41] (Figure 5).</p>
        <p>During the design of the gamified learning system, several challenges were encountered.
One of the primary issues was ensuring that the gamification elements—such as points, badges,
and leaderboards—were motivating without overwhelming or frustrating users. To address this,
we adopted an iterative approach, testing different game mechanics with small user groups to
balance difficulty levels. Another significant challenge was the integration of real-time feedback
within the code editor. This required the development of custom APIs that could handle
multiple languages, while maintaining low latency. We also faced scalability issues related to
the system’s performance when handling simultaneous users, which was mitigated by
optimizing server-side processing and database queries. Finally, ensuring user engagement over
time proved difficult, and this was addressed by introducing periodic competitions and
collaborative challenges to sustain interest.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. Construction of a system with gamification elements</title>
        <p>Based on specified requirements and functional dependencies, a prototype of programming
languages learning skills development system that uses gamification elements was implemented
[42]. In the context of system development, gamification elements play a crucial role in
enhancing learning efficiency and user’s engagement. The main application methods for this
system include:
•
•
•
•</p>
        <p>Utilization of levels and scores - allows users to track their progress and compare it with
others, thereby stimulating task completion.</p>
        <p>Leaderboards - encourages competition and the desire to excel, thereby maintaining
interest in continuous improvement.</p>
        <p>Competitions - regular challenges and competitions can be organized to foster
competitiveness and test gained knowledge.</p>
        <p>Progressive stories and scenarios - educational materials are structured as progressive
scenarios where the user acts as the main character, progressing through different
stages and challenges.</p>
        <p>To start using the system, users need to pass through the authentication stage, which can be
done in two ways: through traditional access (username and password) and via social networks
(Figure 6).</p>
        <p>User profile displays their editable data and a table of group invitations. Here, the user can
accept or decline incoming invitations and optionally connect other social networks, even if
they have registered via email (Figure 7).</p>
        <p>Task components presented as gamified scenarios (Figure 8).</p>
        <p>After selecting the scenario, the corresponding code editor is launched, providing tools for
coding according to the given task [43]. Users can choose a programming language from the
available options [44] and also change the editor theme: light, dark, or high contrast [45].</p>
        <p>A separate feature of the prototype is the ability to view the list of groups that a user belongs
to or has created. Each item includes information such as the name, creator, game type, join
period, and whether the group is private or public. In the case of private groups, the creator
must manually add users since private groups are not visible by default (Figure 9).</p>
        <p>In the constructed system, a section of solutions has been developed where users can manage
their learning elements such as tasks, tests, and other educational materials. This section
includes the following functional capabilities, such as deleting and launching tests (Figure 10):
•
•</p>
        <p>Deleting tasks - users can select a task from the list and click the ‘Delete’ button to
remove it from the system.</p>
        <p>Launching tests - users can click the ‘Start testing’ button to initiate testing of the
selected task.</p>
        <p>The developed system for learning programming languages is flexible and versatile—it can
be used for personal training as well as for learner’s skills improvement. Additionally, the
system provides unique tasks with processes visualization (games). When creating a game, the
administrator has the discretion to choose from the available programming languages within
the system that can be used to solve the task.</p>
        <p>Currently, the system supports various programming languages, including Python, Java,
C++, and JavaScript. However, the integration of gamification elements is planned to be adapted
to the specific characteristics of each language in the future. In particular, for Python, gamified
tasks are planned to be developed in a way that focuses on rapid problem-solving and iterations,
as the simplicity of the language allows for faster code development and execution. Conversely,
in C++-related gamification tasks, it is planned to add challenges related to memory
management, pointer usage, and code efficiency optimization, which are key issues in mastering
the language.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>The relevance of developing programming language skills using gamification elements is driven
by increasing demand for programmers, technological progress, global access to knowledge,
innovative teaching methods, and the necessity for continuous learning. Modern information
technologies significantly simplify the learning process, making it more effective and accessible
to a wide range of people. Through research, existing methods and approaches used in
programming language learning were analyzed. A systematic analysis of the research object
was conducted, followed by the project requirements identification and analysis. Functional
roles and responsibilities were defined and documented. The next stage involved designing the
software system using an object-oriented approach and reflecting the created diagrams
according to UML standards. A prototype of the application software system that implements
the programming language learning process was developed. Currently, the software solution
operates as a prototype.</p>
      <p>Future research will focus on testing and refining the system, resolving conflicts, and
expanding functionality in accordance with the defined requirements. Moreover, there are plans
to focus on studying the long-term effects of gamification and their impact on the retention of
programming skills and cognitive load. It is anticipated that an analysis will be conducted on
how the motivational benefits of gamification translate into deeper learning and skill retention
over time. A separate direction could be tracking users' progress over six months to one year,
comparing their skill levels. If the results are satisfactory, it is planned to use the system in
various educational contexts.
[26] M. Arnold, B. North, H. Fischer, J. Mueller, M. Diab, Game-Based Learning in Vet Schools:
A Learning Architecture for Educators in Vocational Education. INTED2021 Proceedings,
1 April 2021, pp. 3297–3303.
[27] I. Veza, A. Sule, N. Putra, M. Idris, I. Ghazali, P. Irianto, M. Ulka, A. Gipin, Virtual
Laboratory for Engineering Education: Review of Virtual Laboratory for Students Learning.</p>
      <p>Engineering Science Letter. 2022, Vol. 1, pp. 41-46.
[28] P. Saraiva, R. Carmo, J. Gomes, V. João, V. Windson, Adaptive learning in computer science
education: A scoping review. Education and Information Technologies. 2023, Vol. 29,
pp.150.
[29] A. Vasyliuk, T. Basyuk, V. Lytvyn, Design and Implementation of a Ukrainian-Language
Educational Platform for Learning Programming Languages// CEUR Workshop
Proceedings. - 2023. - Vol. 3426: Modern Machine Learning Technologies and Data Science
Workshop (MoMLeT&amp;DS 2023): Proceedings of the Modern Machine Learning
Technologies and Data Science Workshop, Lviv, Ukraine, June 3, 2023. pp. 406-420.
[30] T. Crow, A. Luxton-Reilly, B. Wünsche, Intelligent tutoring systems for programming
education: a systematic review. The 20th Australasian Computing Education Conference,
2018, pp. 53-62. http://dx.doi.org/10.1145/3160489.3160492.
[31] Platform Algotester, 2024. URL: https://algotester.com/uk
[32] Codewars - Achieve mastery through coding practice and developers, 2023. URL:
https://www.codewars.com/
[33] HackerRank - Online Coding Tests and Technical Interviews, 2024. URL:
https://www.hackerrank.com/
[34] Platform Exercism, get really good at programming, 2024. URL: https://exercism.org/
[35] R. Huang, A. D. Ritzhaupt, Sommer, J. Zhu, A. Stephen, N. Valle, J. Li. The impact of
gamification in educational settings on student learning outcomes: A meta-analysis.
Educational Technology Research and Development, 68(4), 2020. pp.1875-1901.
https://doi.org/10.1007/s11423-020-09807-z
[36] A. P. Markopoulos, A. Fragkou, P.D. Kasidiaris, &amp; J.P. Davim. Gamification in engineering
education and professional training. International Journal of Mechanical Engineering
Education, 50(2), 2022. pp. 197-219. https://doi.org/10.1177/0306419015591324
[37] A. Dennis, B. Wixom, D. Tegarden, Systems Analysis and Design: An Object-Oriented</p>
      <p>Approach with UML, Wiley, 2020.
[38] J. Valacich, J. George, J. Hoffer, Modern Systems Analysis and Design, Pearson, 2020. P.521.
[39] A. Rababah, Assessing the Effectiveness of UML Models in Software System Development.</p>
      <p>International Journal of Applied Science and Research. 2024. pp.13-24.
https:/doi.org/10.56293/IJASR.2024.5703
[40] B. Shamile, Software Development with UML Diagrams, Independently published. 2022.</p>
      <p>P.81.
[41] J. Murach, Murach's MySQL (3rd Edition), Mike Murach &amp; Associates; 3rd edition, 2019.</p>
      <p>P.650.
[42] A. Behl, N. Jayawardena, V. Pereira, N. Islam, M. Giudice, J. Choudrie, Gamification and
elearning for young learners: A systematic literature review, bibliometric analysis, and
future research agenda. Technological Forecasting and Social Change, 2022, vol. 176.
http://dx.doi.org/10.1016/j.techfore.2021.121445
[43] B. Forouzan, R. Gilberg, C++ Programming: An Object-Oriented Approach. McGraw Hill;
1st edition, 2019. P. 960.
[44] C. Horstmann, Java: Advanced Features, Volume 2 (Oracle Press Java, Addison Wesley;
12th edition. 2022. P.1040.
[45] E. Norex, Mastering Dynamic Programming in Python. Independent Creating Platform.
2024. P.219.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Han</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J</given-names>
            .
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>The development of computer communication technology and its application in electronic information engineering</article-title>
          .
          <source>In 2021 10th International Conference on Internet Computing for Science and Engineering (ICICSE</source>
          <year>2021</year>
          ).
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2021</year>
          , pp.
          <fpage>56</fpage>
          -
          <lpage>59</lpage>
          . https://doi.org/10.1145/3485314.3485333.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Dyro</surname>
          </string-name>
          ,
          <source>Adaptive Learning In Education: The Next Gen Of Educational eContent</source>
          ,
          <year>2021</year>
          . URL: https://elearningindustry.com
          <article-title>/adaptive-learning-in-education-next-gen-econtent</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>N.</given-names>
            <surname>Dabbagh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Marra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Howland</surname>
          </string-name>
          ,
          <article-title>Meaningful online learning: Integrating strategies, activities, and learning technologies for effective designs</article-title>
          .
          <source>Routledge.. TechTrends 64</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>931</fpage>
          -
          <lpage>933</lpage>
          . https://doi.org/10.1007/s11528-020-00547-8.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>С.</given-names>
            <surname>Simone</surname>
          </string-name>
          , L. Howles,
          <source>Designing the Online Learning Experience: Evidence-Based Principles and Strategies</source>
          , Stylus Publishing,
          <year>2021</year>
          . P.
          <volume>212</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Petzold</surname>
          </string-name>
          ,
          <article-title>Code: The Hidden Language of Computer Hardware</article-title>
          and Software, Microsoft Press,
          <year>2022</year>
          . P.
          <volume>480</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>N.</given-names>
            <surname>Dabbagh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Marra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Howland</surname>
          </string-name>
          ,
          <source>Meaningful Online Learning. 1st ed. Taylor and Francis</source>
          ,
          <year>2019</year>
          . P.
          <volume>224</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Basyuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vasyliuk</surname>
          </string-name>
          ,
          <article-title>Peculiarities of an Information System Development for Studying Ukrainian Language and Carrying out an Emotional and</article-title>
          Content Analysis // CEUR Workshop Proceedings. -
          <year>2023</year>
          . - Vol.
          <volume>3396</volume>
          :
          <string-name>
            <surname>Computational</surname>
            <given-names>Linguistics</given-names>
          </string-name>
          <source>and Intelligent Systems 2023: Proceedings of the 7th International Conference on Computational Linguistics and Intelligent Systems</source>
          . Volume II: Computational Linguistics Workshop, Kharkiv, Ukraine,
          <source>April 20-21</source>
          ,
          <year>2023</year>
          .pp.
          <fpage>279</fpage>
          -
          <lpage>294</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <article-title>Towards intelligent E-learning systems</article-title>
          .
          <source>Educ Inf Technol</source>
          <volume>28</volume>
          ,
          <year>2023</year>
          , pp.
          <fpage>7845</fpage>
          -
          <lpage>7876</lpage>
          . https://doi.org/10.1007/s10639-022-11479-6
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Green</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Donovan</surname>
          </string-name>
          ,
          <article-title>Learning anytime, anywhere through technology</article-title>
          .
          <source>In The Wiley Handbook of Teaching and Learning</source>
          ; Wiley: Hoboken,
          <string-name>
            <surname>NJ</surname>
          </string-name>
          , USA,
          <year>2018</year>
          , pp.
          <fpage>225</fpage>
          -
          <lpage>256</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>