<!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>
      <journal-title-group>
        <journal-title>September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Automation of checking student assignments in IT-related subjects based on AI systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oleksandr A. Sharyhin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oksana V. Klochko</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dragomanov Ukrainian State University</institution>
          ,
          <addr-line>9 Pyrohova Str., Kyiv, 01601</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Miratech</institution>
          ,
          <addr-line>6z Vatslav Havel Blvd., Kyiv, 03124</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Vinnytsia Mykhailo Kotsiubynskyi State Pedagogical University</institution>
          ,
          <addr-line>32 Ostrozhskoho Str., Vinnytsia, 21100</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2024</year>
      </pub-date>
      <volume>23</volume>
      <issue>2024</issue>
      <fpage>88</fpage>
      <lpage>97</lpage>
      <abstract>
        <p>Automation of students' program code verification is an important task, as it provides an opportunity to provide prompt and efective feedback to the student, significantly reducing resource costs for checking solutions. In connection with the rapid development of AI systems, new opportunities and approaches to automation appear. We consider a fundamentally new approach for the estimation of the time complexity of an algorithm. AI-based approaches compared to traditional systems that use simulations. The process of determining the complexity of the algorithm using AI-based approaches takes much less time. The study used AI systems to estimate the complexity of the algorithm based on code fragments. According to the results obtained, a decision is made regarding the suitability of these systems for automating the evaluation of students' program codes. We also ofer for consideration the methods of implementing such approaches to the automation of checking student assignments in IT-related subjects based on AI systems. To assess the time complexity of code fragments, we used ChatGPT, Bard, TimeComplexity.ai, Chatsonic. All AI systems which participated in the experiment accurately determined the algorithmic complexity for each of the code fragments written in Python. The results indicate that ChatGPT and Google Bard demonstrated satisfactory accuracy in assessing the time complexity of code fragments written in Java. We developed an API that allows to partial automate teacher's work during checks of students' assignments. Further research will relate to integration of developed API into existing educational platforms and frameworks. Another area of future research is the issues of automated code quality determination and plagiarism checking.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;automation of tasks checking</kwd>
        <kwd>AI systems</kwd>
        <kwd>time complexity</kwd>
        <kwd>time complexity estimation</kwd>
        <kwd>ChatGPT</kwd>
        <kwd>IT-related subjects</kwd>
        <kwd>students' work</kwd>
        <kwd>AI in education</kwd>
        <kwd>automation in education</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        In the dynamic realm of Information Technology (IT), the demand for skilled professionals continues to
surge. While the influx of learners in IT-related disciplines is one aspect, the growing complexity and
rapid evolution of the IT landscape present an equally formidable challenge for teachers [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1, 2, 3</xref>
        ]. This
article advocates for a pivotal solution that could alleviate some of these challenges – the automation of
student work checks in disciplines closely tied to IT.
      </p>
      <p>
        As the IT domain evolves at an unprecedented pace, educators find themselves not only responsible for
imparting foundational knowledge but also for staying abreast of the latest technological advancements.
In this context, the automation of routine aspects of student work evaluation can ofer a transformative
opportunity [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. By leveraging technology to handle the repetitive and time-consuming task of grading,
educators specializing in IT-related disciplines can reclaim precious time. This reclaimed time, in
turn, can be redirected towards more strategic and impactful activities, such as keeping pace with the
swiftly evolving IT landscape, exploring innovative teaching methodologies, or engaging in research to
contribute to the forefront of IT knowledge.
      </p>
      <p>
        In the study [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] the experience of automation and the use of artificial intelligence in the development
of educational technologies in Sweden is considered. There are two main points about the automation
of parts of a teacher’s work – is the human factor problematic or desirable? So, from one point of
view, human judgment can be fully or partially replaced by automation, creating a more legally secure,
impartial, and fair judgment by removing emotions and uncertainties. The other argument is that
core parts of teachers’ work cannot be automated but also that some automation can free them from
mundane routine tasks and make more time for them to do their most important work. Conversely,
when people-centered skills (empathy, creativity or care) are important, then automation of these skills
becomes the problem [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Gallagher and Breines [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] review automation in higher education and draw on a combination of
events conducted with students, faculty, and staf across the three colleges at the University of Edinburgh
to explore automation as a component of the teacher function assemblage.
      </p>
      <p>
        Czibula et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] note that the complexity of the algorithm, which depends on the eficiency of its
work, is important for the productivity of the software system during its life cycle. Therefore, for the
timely detection of system performance problems, the authors developed and automated a method for
determining the complexity of the algorithm according to its execution time.
      </p>
      <p>
        Vimalaraj et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] proposed automating the marking of software code modules, analyzing it and
checking it for plagiarism. Code analysis is implemented using the analysis tree.
      </p>
      <p>
        A toolkit for checking student code written in assembly language is proposed by Liu et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The
interface of the code testing and debugging system is implemented using a browser, and an individual
set of regression tests is stored for each student, before each student’s code is checked using KLEE, KLC3.
The system is launched when a student uploads code to a Git repository, the tutorials are implemented
as LC-3, a RISC-like architecture.
      </p>
      <p>
        The problem of students’ compliance with the requirements for writing high-quality functional
code remains relevant and, accordingly, the problem of its evaluation from the point of view of the
implementation of a task or project is also relevant. As noted Hart et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], the quality of the code
itself and the quality of the style should be correlated in evaluating students’ codes. To this end, they
developed the Eastwood-Tidy automated listing tool for evaluating code style.
      </p>
      <p>
        Milovancevic and Kuncak [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] developed an automated approach to verify functional programming
code. The main principles of this author’s approach are reliability (functional induction is used) and
scalability (clustering based on the transitivity of equivalence of reference solutions).
      </p>
      <p>
        Another approach to automated validation of student code writing tasks is to understand how readable
students’ code is, and whether they choose functional alternatives. These questions were investigated
by Nurollahian et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] using an anti-pattern in CS2 and an automatic detector.
      </p>
      <p>
        A slightly diferent practice is to automatically evaluate the Arduino based on the function execution
log in the virtual runtime environment for console-based languages [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Such a task difers in that the
verification of hardware configuration (Fritzing) and source code is automated [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        Automated code grading systems are being developed by academics to provide rapid feedback
on student work. However, the problem remains that such systems do not have advanced features,
including integration with Git [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In this study the authors developed a web-based system for
automatic evaluation of C code and used GitHub and GitHub Classroom for the same purpose for
comparison [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        In addition to the program code, the comments for the code should also be of high quality [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
This problem of software engineering is no less important than the development of quality software
code. However, according to the research of the authors of this study, there are no single criteria for
determining the quality of code comments, their evaluation methods are based on easily measurable
attributes, binding to of a certain programming language, and specific areas, according to the research of
many scientists, the evaluation of code comments is mostly implemented manually, and not automated
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        An automated toolkit for detecting plagiarism in the source code was proposed by Rizvee et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
in order to reduce the loss of resources during manual checking. Their approach to measuring the
similarity between two source programs, namely string matching, uses a weighted similarity scoring
mechanism. The idea of this approach is to fix various types of plagiarism, in particular, reordering
functions and changing the name of variables.
      </p>
      <p>
        According to Klinik et al. [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], an important issue in the evaluation of students’ software code is
prompt feedback by students in order to improve their software solutions based on feedback. For
automatic feedback generation, they developed the Personal Prof system, which implements verification
based on an abstract syntactic tree of decisions and access to the semantic database of Java
metainformation.
      </p>
      <p>
        From the point of view of developing and studying the properties of test sets for automated evaluation
of programs developed by students, which difer by certain criteria, for example, quality, coverage,
research was conducted by Clegg et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. For this purpose, the researchers created artificial test
sets of programs that simulated students’ mistakes when creating software code. They proved that
“diferent properties of test suites can influence the grades that they produce, with coverage typically
making the greatest efect, and mutation score and the potentially redundant repeated coverage of lines
also having a significant impact” [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        Another direction in the automated evaluation of student-programmed problem solutions is presented
by Rubio [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. He proposed a model based on a controlled machine learning algorithm, which is used to
study the sequence of partial solutions to the problem, reflecting “the programming trajectory followed
by the student” [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>Scientists have made a significant contribution to solving the problem of automated verification of
students’ program codes, but this problem remains relevant in the future. Modern conditions require
new approaches to solving this problem. That’s why we tried to solve it using artificial intelligence.</p>
      <p>The purpose of the study is to investigate the suitability of artificial intelligence systems, which allow
estimating the complexity of the algorithm based on code fragments, for automating the evaluation of
students’ tasks.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Research methods</title>
      <p>
        Automation (partial or complete) of checking tasks completed by students in algorithmic and
programming-related specialties has its own peculiarities. Algorithmic and programming courses
often require students to demonstrate proficiency not only in coding syntax but, more critically, in
designing eficient algorithms, addressing complex problem-solving scenarios, and adhering to best
coding practices [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The multifaceted nature of these disciplines necessitates a nuanced approach to
automated evaluation – one that goes beyond mere syntax checking.
      </p>
      <p>Static code analyzers are special tools that perform automated and systematic checks of source
code without the need for its execution. These analyzers play a major role in enhancing code quality,
identifying potential issues, and enforcing coding standards. By analyzing the code structure and syntax
statically, before runtime, these tools empower developers and educators alike to catch errors, ensure
adherence to best practices, and improve overall code maintainability.</p>
      <p>
        A well-known example of such a tool is SonarQube [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. It supports more than 30 programming
languages, detects vulnerabilities in code and checks if code follows best practices [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>But more important (especially for courses related to algorithms and data structures) is to be able to
automatically calculate code complexity.</p>
      <p>
        Until recently, the main approach to estimating the complexity of an algorithm was based on running
the code with a diferent set of input parameters. This approach is described in the study [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It is based
on simulation and run-time measurements. This method demonstrates digestible accuracy, however
even authors describe some situations when it fails.
      </p>
      <p>The need for simulation, i.e. multiple runs of executable code, leads to the following disadvantages:
1. For large values, this process can take a significant amount of time, especially in the case of
non-optimal algorithms or algorithms of high complexity.
2. In the case where the complexity of the algorithm is a function of two or more variables, there is a
need for a larger number of simulations, which in turn also afects the time required for launches.
Thus, it can be noted that determining the complexity of an algorithm in simulation-based systems
can be time-consuming.</p>
      <p>In recent times, due to the rapid advancement of artificial intelligence systems, a fundamentally new
approach to algorithm time complexity assessment has emerged, no longer relying on simulation. This
approach is based on code analysis and consists of the following stages:</p>
      <sec id="sec-2-1">
        <title>1. Identification of loops.</title>
        <p>2. Analysis of operators inside loops.
3. Expression of operators as a function of “n”.
4. Dominant term determination.
5. Assigning time complexity.</p>
        <p>
          In this study, we will explore popular artificial intelligence systems that enable the assessment of
algorithm complexity based on code fragments. These AI systems are the following:
1. ChatGPT [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
2. Bard [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ].
3. TimeComplexity.ai [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ].
4. Chatsonic [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
        <p>Building upon the obtained results, we will make decisions regarding the suitability of these systems
for automating the assessment of student assignments and discuss methods for implementing this
automation.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Results and discussion</title>
      <p>As previously stated, we are investigating the process of automated assessment of tasks in disciplines
related to algorithm design. A segment of the assessment process, pertaining to determining the
complexity of the program code implementing the algorithm, is automatically conducted as a preliminary
stage preceding manual evaluation by the instructor. In such a case, the flowchart representing this
process would take form which is shown in figure 1.</p>
      <p>Let us examine the AI systems that we intend to consider as suitable for assessing the time complexity
of code fragments:
1. ChatGPT – one of the most well-known AI systems. It can calculate time complexity of algorithms
by code fragment. In this study, we checked the two most actual versions – gpt-3.5-turbo and
gpt-4. At the time of writing this work, version gpt-3.5-turbo was free, and version 4 required a
monthly payment.
2. Bard – a large language system developed by Google. It can generate programming code as well
as assess its time complexity.
3. TimeComplexity.ai uses the GPT-3.5 Turbo AI adapted for time complexity evaluation. It has a
free and paid version.
4. Chatsonic is GPT-3 (by OpenAI) based system.</p>
      <p>In this investigation, we examined the specified tools to assess the time complexity of code snippets
written in Java and Python.</p>
      <p>
        As Java examples, we used the solutions published by Nick Li for the problems presented on the
LeetCode platform [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Below is an example of a test piece of Java code that we used to test AI systems
[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]:
public List&lt;List&lt;Integer&gt;&gt; permute(int[] nums) {
      </p>
      <p>List&lt;List&lt;Integer&gt;&gt; result = new ArrayList&lt;&gt;();
backtrack(result, new ArrayList&lt;&gt;(), nums);
return result;
}
private void backtrack(List&lt;List&lt;Integer&gt;&gt; result,
List&lt;Integer&gt; tempList, int[] nums) {
if (tempList.size() == nums.length) {</p>
      <p>result.add(new ArrayList&lt;&gt;(tempList));
} else {
for (int i = 0; i &lt; nums.length; i++) {
if (tempList.contains(nums[i])) continue; // element already exists,
// skip
tempList.add(nums[i]);
backtrack(result, tempList, nums);
tempList.remove(tempList.size() - 1); // remove last element for next
// iteration</p>
      <p>Results of executions are shown in table 1 and table 2. These tables also contain the correct value of
time complexity (done by humans).</p>
      <p>Our experiment involved the assessment of 32 code snippets written in the Python programming
language, all AI systems which participated in the experiment accurately determined the algorithmic
complexity for each of the code fragments. Code fragments in the Python programming language were
taken for testing the capabilities of AI systems from student works, as well as specially developed by us
as test tasks. Also each of the AI systems provided correct explanations of resulting values.</p>
      <p>Table 1 and table 2 exclusively display instances where at least one of the systems produces an
inaccurate result. In these tables, incorrect results are marked in red, and cases where the calculated value
difers slightly from the correct one are marked in orange, that is, when the chain of conclusions is correct,
but there are inaccuracies in the interpretation. As it follows from these tables, the Chatsonic/Writesonic
system produced the highest count of inaccuracies (for “3Sum Closest”, “4Sum”, “Generate Parentheses”
problems – incorrect result, for “Permutations” and “Contains Duplicate” problems – misinterpretation)
in its results. This can be explained by the fact that it uses an outdated version of the GPT OpenAI API
(GPT-3) as its foundational model. The use of this older API version may have impacted the AI system’s
ability to accurately interpret and generate responses, leading to a higher occurrence of incorrect
outputs compared to other systems under consideration.</p>
      <p>TimeComplexity.ai exhibited inaccuracies in cases (“Generate Parentheses”, and “Convert Sorted
List to Binary Search Tree” problems) where the conventional GPT-3.5 Turbo produced correct results.
While this tool generally performs accurately and can be used for partial automation of verification, its
limited integration capabilities, restricted to a Web UI, should be considered in practical applications.</p>
      <p>According to the data presented, the Bard AI system demonstrated promising results, with only one
instance of error detected (“Generate Parentheses” problem). This marks it as a good candidate for
integration into our research context. However, it is important to note that the API for Google Bard is
currently in beta testing and is available to a limited number of users.</p>
      <p>Gpt-3.5-turbo and gpt-4 AI systems demonstrated similar results. The only diference was for the
“Contains Duplicate” problem where the gpt-4 version was able to determine the time complexity more
accurately, but this diference did not significantly afect the result. We have chosen the ChatGPT
AI system for our study due to its consistent and acceptable performance across various scenarios.
Additionally, the availability of a public API for ChatGPT allows an eficient automation process, aligning
with our research goals.</p>
      <p>We created an API (AutoCheck API) which allows to use OpenAI functionality for automatic
determination of algorithm complexity based on written code. The main method of API performs the following
actions:
• connects to OpenAI;
• creates client chat completion object with own developed content under the “system” role and
content of source file under “user” role;
• parses response of client chat completion.</p>
      <p>API supports both gpt-3.5-turbo and gpt-4 versions, it can be configured by request parameters.</p>
      <p>The simplest example which can use this API is a console application. We developed it (using Python)
and used in our experiments. It performs the following actions:
• reads the content of the input file;
• calls the main method of AutoCheck API;
• redirects response it to standard output.</p>
      <sec id="sec-3-1">
        <title>An example of its usage is shown in figure 2.</title>
        <p>Console application is just an example of how developed API can be used. It is possible to integrate it
with other systems which are used in the education process – for example, Moodle. Sequence diagram
of general API usage is shown in figure 3.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>In this study, the process of automated assessment of tasks in disciplines related to algorithm design is
addressed. It contains the step “time complexity determination” which we automate.</p>
      <p>Various AI systems were analyzed as tools for determining the time complexity of code fragments
written in the Java and Python programming languages. The results indicate that the selected systems,
particularly ChatGPT and Google Bard, demonstrated satisfactory performance in accurately assessing
the time complexity of code fragments written in Java and Python.</p>
      <p>AI-based approaches are devoid of the disadvantages inherent in systems that use simulations, which
leads to the fact that the process of determining the complexity of the algorithm takes much less time.</p>
      <p>We developed an API that uses OpenAI API which allows us to use gpt-3.5-turbo and gpt-4 AI
systems. Developed API allows to creation of applications that can be integrated with education
platforms. Consideration of educational platforms, as well as the integration of the developed API, is an
area for further research.</p>
      <p>These results ofer the opportunity for partial automation of tasks for teachers in IT-related disciplines.
The time saved through automation can be redirected toward enhancing educational programs and
developing creative assignments.</p>
      <p>These findings underscore the practical applicability of AI systems in code complexity analysis,
providing valuable insights for automated assessment tools in educational settings. Further research
will relate to integration of developed API into existing educational platforms and frameworks.</p>
      <p>The study examines in detail the automation of the process of determining the complexity of an
algorithm, but it should be noted that the issues of automated code quality determination and plagiarism
checking require further research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>O. Y.</given-names>
            <surname>Burov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. H.</given-names>
            <surname>Lytvynova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Semerikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. V.</given-names>
            <surname>Yechkalo</surname>
          </string-name>
          ,
          <article-title>ICT for disaster-resilient education and training - introduction to the workshop</article-title>
          , in: O.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Burov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. H.</given-names>
            <surname>Lytvynova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Semerikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. V.</given-names>
            <surname>Yechkalo</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the VII International Workshop on Professional Retraining</source>
          and
          <article-title>Life-Long Learning using ICT: Person-oriented Approach (3L-Person</article-title>
          <year>2022</year>
          ), Virtual Event, Kryvyi Rih, Ukraine, October
          <volume>25</volume>
          ,
          <year>2022</year>
          , volume
          <volume>3482</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3482</volume>
          /paper000.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V. V.</given-names>
            <surname>Osadchyi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. P.</given-names>
            <surname>Pinchuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Vakaliuk</surname>
          </string-name>
          ,
          <article-title>From the digital transformation strategy to the productive integration of technologies in education and training:</article-title>
          <source>Report</source>
          <year>2023</year>
          , in: T. A.
          <string-name>
            <surname>Vakaliuk</surname>
            ,
            <given-names>V. V.</given-names>
          </string-name>
          <string-name>
            <surname>Osadchyi</surname>
            ,
            <given-names>O. P.</given-names>
          </string-name>
          Pinchuk (Eds.),
          <source>Proceedings of the 2nd Workshop on Digital Transformation of Education (DigiTransfEd</source>
          <year>2023</year>
          )
          <article-title>co-located with 18th International Conference on ICT in Education, Research and Industrial Applications (ICTERI</article-title>
          <year>2023</year>
          ), Ivano-Frankivsk, Ukraine,
          <source>September 18- 22</source>
          ,
          <year>2023</year>
          , volume
          <volume>3553</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2023</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . URL: https: //ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3553</volume>
          /paper00.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>O. V.</given-names>
            <surname>Klochko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. M.</given-names>
            <surname>Fedorets</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. I.</given-names>
            <surname>Klochko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. A.</given-names>
            <surname>Klochko</surname>
          </string-name>
          ,
          <article-title>Anthropologically oriented strategies of interaction in the Human-Computer system</article-title>
          ,
          <source>Journal of Physics: Conference Series</source>
          <volume>2611</volume>
          (
          <year>2023</year>
          ). doi:
          <volume>10</volume>
          .1088/
          <fpage>1742</fpage>
          -6596/2611/1/012018.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <article-title>Shifting programming education assessment from exercise outputs toward deeper comprehension</article-title>
          , in: R. A. Peixoto de Queirós,
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Teixeira Pinto</surname>
          </string-name>
          (Eds.),
          <source>4th International Computer Programming Education Conference (ICPEC</source>
          <year>2023</year>
          ), volume
          <volume>112</volume>
          of Open Access Series in Informatics (OASIcs),
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          , Dagstuhl, Germany,
          <year>2023</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          . doi:
          <volume>10</volume>
          .4230/OASIcs.ICPEC.
          <year>2023</year>
          .
          <volume>1</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Rensfeldt</surname>
          </string-name>
          , L. Rahm,
          <source>Automating Teacher Work? A History of the Politics of Automation and Artificial Intelligence in Education, Postdigital Science and Education</source>
          <volume>5</volume>
          (
          <year>2023</year>
          )
          <fpage>25</fpage>
          -
          <lpage>43</lpage>
          . doi:
          <volume>10</volume>
          . 1007/s42438-022-00344-x.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gallagher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Breines</surname>
          </string-name>
          ,
          <article-title>Surfacing knowledge mobilities in higher education: reconfiguring the teacher function through automation</article-title>
          ,
          <source>Learning, Media and Technology</source>
          <volume>46</volume>
          (
          <year>2021</year>
          )
          <fpage>78</fpage>
          -
          <lpage>90</lpage>
          . doi:
          <volume>10</volume>
          .1080/17439884.
          <year>2021</year>
          .
          <volume>1823411</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>I. G.</given-names>
            <surname>Czibula</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Onet-Marian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Vida</surname>
          </string-name>
          ,
          <article-title>Automatic Algorithmic Complexity Determination Using Dynamic Program Analysis</article-title>
          , in: M. van
          <string-name>
            <surname>Sinderen</surname>
            ,
            <given-names>L. A.</given-names>
          </string-name>
          <string-name>
            <surname>Maciaszek</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the 14th International Conference on Software Technologies, ICSOFT</source>
          <year>2019</year>
          , Prague, Czech Republic,
          <source>July 26-28</source>
          ,
          <year>2019</year>
          , SciTePress,
          <year>2019</year>
          , pp.
          <fpage>186</fpage>
          -
          <lpage>193</lpage>
          . doi:
          <volume>10</volume>
          .5220/0007831801860193.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H.</given-names>
            <surname>Vimalaraj</surname>
          </string-name>
          ,
          <string-name>
            <surname>T. B. K. P. Thenuwara</surname>
            , V. U. Wijekoon,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Sathurjan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Reyal</surname>
            ,
            <given-names>T. A.</given-names>
          </string-name>
          <string-name>
            <surname>Kuruppu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Tharmaseelan</surname>
          </string-name>
          ,
          <source>Automated Programming Assignment Marking Tool</source>
          , in: 2022
          <source>IEEE 7th International conference for Convergence in Technology (I2CT)</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . doi:
          <volume>10</volume>
          .1109/I2CT54291.
          <year>2022</year>
          .
          <volume>9824339</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liu</surname>
          </string-name>
          , T. Liu,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Luo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. S.</given-names>
            <surname>Lumetta</surname>
          </string-name>
          ,
          <article-title>End-to-End Automation of Feedback on Student Assembly Programs</article-title>
          ,
          <source>in: 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>29</lpage>
          . doi:
          <volume>10</volume>
          .1109/ASE51524.
          <year>2021</year>
          .
          <volume>9678837</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R.</given-names>
            <surname>Hart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hays</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>McMillin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. K.</given-names>
            <surname>Rezig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Rodriguez-Rivera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Turkstra</surname>
          </string-name>
          , Eastwood-Tidy:
          <article-title>C Linting for Automated Code Style Assessment in Programming Courses</article-title>
          ,
          <source>in: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1</source>
          ,
          <string-name>
            <surname>SIGCSE</surname>
          </string-name>
          <year>2023</year>
          ,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2023</year>
          , p.
          <fpage>799</fpage>
          -
          <lpage>805</lpage>
          . doi:
          <volume>10</volume>
          .1145/3545945.3569817.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Milovancevic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Kuncak</surname>
          </string-name>
          ,
          <article-title>Proving and Disproving Equivalence of Functional Programming Assignments</article-title>
          ,
          <source>Proc. ACM Program. Lang</source>
          .
          <volume>7</volume>
          (
          <year>2023</year>
          )
          <fpage>928</fpage>
          -
          <lpage>951</lpage>
          . doi:
          <volume>10</volume>
          .1145/3591258.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nurollahian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hooper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Salazar</surname>
          </string-name>
          , E. Wiese,
          <article-title>Use of an Anti-Pattern in CS2: Sequential if Statements with Exclusive Conditions</article-title>
          , in: M.
          <string-name>
            <surname>Doyle</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Stephenson</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Dorn</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Soh</surname>
          </string-name>
          , L. Battestilli (Eds.),
          <source>Proceedings of the 54th ACM Technical Symposium on Computer Science Education</source>
          , Volume
          <volume>1</volume>
          ,
          <string-name>
            <surname>SIGCSE</surname>
          </string-name>
          <year>2023</year>
          , Toronto, ON, Canada, March
          <volume>15</volume>
          -18,
          <year>2023</year>
          , ACM,
          <year>2023</year>
          , pp.
          <fpage>542</fpage>
          -
          <lpage>548</lpage>
          . doi:
          <volume>10</volume>
          .1145/3545945.3569744.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>K.</given-names>
            <surname>Seo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. J.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <article-title>Arduino practice judgment system based on function execution log in virtual execution environment</article-title>
          ,
          <source>Comput. Appl. Eng. Educ</source>
          .
          <volume>32</volume>
          (
          <year>2024</year>
          ). doi:
          <volume>10</volume>
          .1002/CAE.22695.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>E. B.</given-names>
            <surname>Varga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kristóf</surname>
          </string-name>
          <string-name>
            <surname>Fekete</surname>
          </string-name>
          ,
          <article-title>Applications for Automatic C Code Assessment</article-title>
          ,
          <source>in: 2023 24th International Carpathian Control Conference (ICCC)</source>
          ,
          <year>2023</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>26</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICCC57093.
          <year>2023</year>
          .
          <volume>10178987</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>P.</given-names>
            <surname>Rani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Blasi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Stulova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Panichella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gorla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Nierstrasz</surname>
          </string-name>
          ,
          <article-title>A decade of code comment quality assessment: A systematic literature review</article-title>
          ,
          <source>J. Syst. Softw</source>
          .
          <volume>195</volume>
          (
          <year>2023</year>
          )
          <article-title>111515</article-title>
          . doi:
          <volume>10</volume>
          .1016/ J.JSS.
          <year>2022</year>
          .
          <volume>111515</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Rizvee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Fahim</given-names>
            <surname>Arefin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. B.</given-names>
            <surname>Abid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A Robust</given-names>
            <surname>Objective</surname>
          </string-name>
          <article-title>Focused Algorithm to Detect Source Code Plagiarism</article-title>
          ,
          <source>in: 2022 IEEE 13th Annual Ubiquitous Computing, Electronics &amp; Mobile Communication Conference (UEMCON)</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>0109</fpage>
          -
          <lpage>0115</lpage>
          . doi:
          <volume>10</volume>
          .1109/UEMCON54665.
          <year>2022</year>
          .
          <volume>9965688</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klinik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Koopman</surname>
          </string-name>
          , R. van der Wal, Personal Prof:
          <article-title>Automatic Code Review for Java Assignments</article-title>
          ,
          <source>in: Proceedings of the 10th Computer Science Education Research Conference</source>
          , CSERC '21,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2022</year>
          , p.
          <fpage>31</fpage>
          -
          <lpage>38</lpage>
          . doi:
          <volume>10</volume>
          .1145/3507923.3507930.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>B. S.</given-names>
            <surname>Clegg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>McMinn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Fraser</surname>
          </string-name>
          ,
          <source>The Influence of Test Suite Properties on Automated Grading of Programming Exercises</source>
          , in: M.
          <string-name>
            <surname>Daun</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Hochmüller</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Krusche</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Brügge</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          Tenbergen (Eds.),
          <source>32nd IEEE Conference on Software Engineering Education and Training</source>
          , CSEE&amp;T
          <year>2020</year>
          , Virtual Conference, Germany, November 9-
          <issue>12</issue>
          ,
          <year>2020</year>
          , IEEE,
          <year>2020</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          . doi:
          <volume>10</volume>
          .1109/CSEET49119.
          <year>2020</year>
          .
          <volume>9206231</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Rubio</surname>
          </string-name>
          ,
          <source>Automated Prediction of Novice Programmer Performance Using Programming Trajectories, in: I. I. Bittencourt</source>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cukurova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Muldner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Luckin</surname>
          </string-name>
          , E. Millán (Eds.),
          <source>Artificial Intelligence in Education</source>
          , Springer International Publishing, Cham,
          <year>2020</year>
          , pp.
          <fpage>268</fpage>
          -
          <lpage>272</lpage>
          . doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>030</fpage>
          -52240-7_
          <fpage>49</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>O.</given-names>
            <surname>Sharyhin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Fedorets</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Klochko</surname>
          </string-name>
          ,
          <article-title>Monitoring and analysis of students' performance during software development</article-title>
          ,
          <source>Information Technologies and Learning Tools</source>
          <volume>101</volume>
          (
          <year>2024</year>
          )
          <fpage>127</fpage>
          -
          <lpage>149</lpage>
          . doi:
          <volume>10</volume>
          . 33407/itlt.v101i3.
          <fpage>5586</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>SonarSource</surname>
            <given-names>SA</given-names>
          </string-name>
          , SonarQube
          <volume>10</volume>
          .6 Documentation,
          <year>2024</year>
          . URL: https://docs.sonarsource.com/ sonarqube/latest/.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22] OpenAI, ChatGPT,
          <year>2024</year>
          . URL: https://chatgpt.com/.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Google</surname>
          </string-name>
          , Bard,
          <year>2024</year>
          . URL: https://bard.google.com/chat.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Morgan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Brooks</surname>
          </string-name>
          , TimeComplexity.
          <source>ai Runtime Calculator</source>
          ,
          <year>2024</year>
          . URL: https://www. timecomplexity.ai/.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Writesonic</surname>
          </string-name>
          , Chatsonic by Writesonic,
          <year>2024</year>
          . URL: https://app.writesonic.com/.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>LeetCode</surname>
          </string-name>
          , Problems,
          <year>2024</year>
          . URL: https://leetcode.com/problemset/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>