<!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>Large Language Model Performance in Automatic Assessment on an Introductory Programming Course</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Juuso Rytilahti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erkki Kaila</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Valtteri Ingman</string-name>
          <email>valtteri.b.ingman@utu.fi</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Turku</institution>
          ,
          <addr-line>Turku</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2026</year>
      </pub-date>
      <abstract>
        <p>Large language models (LLMs) are a potential solution for solving the significant assessment load in big courses with numerous assignments. However, the quality of the automated assessment may not match the evaluation by teachers or other experts. In this paper, we examine the automated assessment of programming-related tasks in a large-scale introductory programming course. The study is structured into two parts: first, we examine how reliably LLMs can assess the tasks compared to course teachers when provided the same rubric. Second, we try to find out if a simple autonomous agent pipeline, mimicking a review board, can improve the assessment outcome. The study was conducted on a university-level introductory Python course with more than 500 students. We chose a total of four programming-related assignments from the four final weeks of the course. First, we provided the selected LLM models with the student answers accompanied by an evaluation rubric and a simple prompt and recorded the resulting scores and feedback comments. Second, we built a pipeline of autonomous agents with diferent roles of a review board and used the student submissions as input for the pipeline, again recording the scores and comments. In the article, we discuss the feasibility and the performance of the given approaches. We also provide a detailed analysis of the comparison between the results of the two approaches and the teacher-assessed results, and discuss the diferences in the results and the likely reasons for them. Finally, we outline the potential for future work.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;introductory programming</kwd>
        <kwd>automatic assessment</kwd>
        <kwd>artificial intelligence</kwd>
        <kwd>large language models</kwd>
        <kwd>autonomous agents</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The performance of large language models (LLMs) has increased significantly in a short time. In addition
to this, the use of autonomous agents [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] as a way to increase the LLM’s performance and abilities
across various tasks has become more popular. This performant technology ofers possibilities of easing
teachers’ workload on courses with a massive amount of participants, hopefully allowing teachers to
allocate their time more eficiently to other important pedagogical tasks.
      </p>
      <p>
        The need for automating assessment [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] to reduce teacher’s workload on courses consisting of
hundreds, or even thousands of students is high. Of course, fully automated assessment of any tasks is
a challenge, and improbable to be achieved with the current tools soon. Still, automating even some
parts of the assessment process would significantly reduce teachers’ workload and free their time for
more constructive teaching tasks.
      </p>
      <p>This paper reports a research setup where LLM in diferent settings was used for automatically
assessing introductory programming course assignment submissions. The purpose is to find out what
kind of diferences there are in the review results of diferent LLM reviewers and human reviewers. As
a bigger goal, we are trying to find out whether it is possible to automate the review process, and if not,
what are the biggest obstacles preventing us from doing so.</p>
      <p>This paper is structured as follows: First, we present the background and some related work about
using AI in evaluating student work. In the third section, we present the context, including the course
and the assignments evaluated. in the fourth section, the research setup is presented, including the cost
analysis of utilizing LLM tools and the preparation of data for analysis. The results are presented in</p>
      <p>Section 5 and discussed in the sixth Section, where we also present the limitations of the current work.
Finally, a conclusion and ideas for future work are presented.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Background and Related Work</title>
      <p>
        Automatic assessment in programming education has great potential benefits. As Paiva et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
states, automatically assessing the tasks enables students to receive immediate feedback from all their
submissions and hence improve the learning outcome by trial-and-error approach. While there are
successful examples of using large language models in programming education, for example in exercise
generation [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], code generation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], or as a programming assistant [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the full potential of models in
evaluating programming assignments is not yet fulfilled.
      </p>
      <p>
        Estévez-Ayrez et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] studied the usage of LLM tools in generating automatic feedback on students’
programming submissions, but concluded that at this point, the quality is not good enough. Bengtson
et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] tested how reliably LLM can detect injected errors in submissions and concluded that the
generated feedback seems consistent but LLM is not reliable in recognizing errors. Unit testing and
automated testing frameworks are a more traditional method of automatically assessing student answers
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Gabbay et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] found out, that while LLM is not yet capable of replacing such frameworks in
courses, it can complement the functionality.
      </p>
      <p>
        One of the biggest limitations of using LLMs is a phenomenon called "hallucination. Xu et al.
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] defined hallucination as a situation " where the models generate plausible but factually incorrect or
nonsensical information". Additionally, they pointed out that hallucination is an innate limitation of the
LLMs. While hallucinations are typically addressed to LLMs’ balance between creativity and factuality,
and as such, could be fixed with access to external knowledge, this is not true in all cases [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Hence, it
seems that hallucination remains an unsolved problem as of now.
      </p>
      <p>
        Jiang et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] noticed that irrelevant context can significantly hinder even state-of-the-art LLM
performance (e.g. o1-preview, GPT-4o). They also tested carefully problems requiring more logical
thinking and noted that LLM logic capabilities seem superficial, often afected by e.g. changing premises
or entities present in classical problems. Furthermore, minor alteration of choices, for example, changing
their order or the way they are written afects how well the diferent LLMs do in the benchmarks, which
are often cited as the best way for guiding the model selection [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        There are some general ways of trying to improve LLM performance [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. An LLM can either be
ifne-tuned with a small data set, or the input can be in a zero-shot or a few-shot setting. In fine-tuning,
a model is trained further with a more specific data set related to the given problem. In a zero-shot
setting, an LLM is given an input without any examples. In a few-shot setting, the input includes a few
examples of the task the model is asked to perform. Lee et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] underline the importance of elaborate
prompting and "advanced prompt engineering techniques", but warn that using advanced prompting
directly may result to suboptimal results.
      </p>
      <p>
        It should be noted that the temperature setting of the LLM has a great efect on the produced output,
as it changes the probability distribution (randomness) of the next token. Quite often it is argued that the
lowest temperature is the best, as it gives the most consistent result. However, one could argue that this
might not always lead to the best possible results. For example, in coding generation utilizing adaptive
temperature seems to improve results when high temperature is used for challenging tokens and low
temperature for confident tokens [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. On the other hand, some studies indicate that temperature has
little or no efect on the problem-solving results, see for example [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        The usage of autonomous agents as part of the review process or automatic assessment has been
explored in diferent settings. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] explored the usage of autonomous agents as a way to provide students
with interactive feedback on argumentative essays. They used the temperature setting of 0.2 and aligned
two used personas so that one was inclined to more positive feedback, whereas the other was aligned
to produce more negative feedback. Chan et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] created ChatEval, a tool where LLM-based agents
debate on the given question, and found that the multi-agent approach performed better than single
prompt approaches. They propose three diferent abstract approaches, "One-By-One", where the agents
are in a direct pipeline with full previous chat history given as context, "Simultaneous-Talk", where
agents talk are addressed asynchronously, and "Simultaneous-Talk-with-Summarizer" where at the end
of each iteration the debater agents receive a summary of the previous iteration. Our approach in this
paper is similar to One-By-One.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Course Overview</title>
      <p>
        The course under review is called Fundamentals of Programming and is quite a typical 7-week
introductory programming course (often referred to as CS1 course). The programming language used is Python,
and the course contains the fundamental concepts of the imperative programming paradigm, such as
variables and expressions, conditional and repetitive statements, functions, I/O, and data structures.
Some additional Python features, such as the use of the Pygame [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] library are included in the final
weeks to keep the course motivating.
      </p>
      <p>
        The course consists of lectures, tutorial exercises, demonstration assignments, and a final exam.
The tutorial exercises are fully automatically assessed by an education tool called ViLLE [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. The
demonstration assignments, however, are assessed by course instructors. As so, these are the assignments
discussed in this paper. There were a total of eight demonstration assignments, delivered in four final
weeks of the course (two assignments per each week). The topics of the assignments were:
• Week 1: In the first week, the tasks were quite straightforward, as the students were also subject
to learn the use of the GIT version control system and the VSCode editor [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. In the first task,
the students needed to complete a simple calculator program. In the second task, they were given
a program consisting of several string manipulation functions with missing implementation and
were asked to complete the program.
• Week 2: In the second week, the tasks were about finding and correcting errors in the program
code. The first program was a number-guessing game and the second one a library application.
      </p>
      <p>
        Both programs contained syntax errors as well as several logical errors.
• Week 3: The third week was about planning and commenting programs. In the first task, the
students were required to plan a program for keeping track of expenses. The plan should include
function signatures and docstrings [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] that comment on their functionality. In the second
task, the students were asked to familiarize themselves with the existing program modeling a
warehouse and extend the program with a new feature while following the coding conventions.
• Week 4: The fourth week introduced an external library called Pygame [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] which is meant for
creating multimedia applications and 2d games. In the first task, the students were asked to write
a program that displays a snowman that can be controlled via keyboard. In the second one, there
were images of three diferent-sized snowflakes given and the task was to write a program that
creates a randomized snowfall on screen.
      </p>
      <p>The first two weeks of assignments were presumably easier to assess as the answers could be mostly
verified programmatically. The tasks in the third week were more open-ended with several acceptable
solutions. The fourth week was also assumed to be more dificult to assess, as the solutions were at
least partly visually verified.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Research Setup</title>
      <p>
        The pipeline for research was constructed with Python programming language, utilizing LangChain
[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. The rubrics, exercise description, and student submission were provided in Finnish. However, we
decided to provide the system prompts in English instead of Finnish to reduce the token costs. The
three distinct roles assigned to the LLM to assess the exercises were the following:
1. Reviewer: The model was instructed as being a teacher and was asked to provide the score and
detailed feedback on the submission. The model was then provided with the exercise description,
rubric, and student submission in a separate message. If necessary, additional material was
included (such as the example program to be fixed in some tasks).
2. Commenter: The model was instructed as being part of a reviewer board. The model was provided
the chat history from the Reviewer role. The model was then asked to provide commentary and
update the score if needed.
3. Chairperson: The model was instructed as being a chairperson of a reviewer board. Earlier
review and comments made by the model were provided and the model was asked to provide the
ifnal score and comments.
      </p>
      <p>For the Commenter and Chairperson roles, a full chat history of the previous steps was provided as
initial input. The prompts are displayed in the Appendix A. All submissions were submitted through all
three diferent reviewer roles. The temperature of all of the autonomous agents was 0.2, and the used
model was GPT-4o (gpt-4o-2024-08-06). In addition, we also submitted a small subset (N=100) of the
ifrst-week exercises to the GPT o1-preview model (o1-preview-2024-09-12) to gain a reference and see
the performance diference in state-of-the-art reasoning and a more traditional, foundational LLM that
is generally used. With o1, only the Reviewer role was used.</p>
      <p>The rubric used for each week was the same as the rubric used to instruct the human reviewers.
This led to some unforeseen dificulties: for example, in weeks 1, 2, and 3, an abbreviation was used to
denote the maximum score. In some cases, the model got the score scaling wrong. Hence, we needed to
exclude some of the reviews from the final analysis due to incomparable grading.</p>
      <sec id="sec-4-1">
        <title>4.1. Cost-Analysis</title>
        <p>
          With the main analysis, a total of 22,8 million input tokens and 3,5 million output tokens were used
with GPT-4o. At the time of the analysis, this led to a combined cost of ≈ 60€ (or $61.50). The subset
of the first-week tasks submitted to the o1 model cost 0.3 million input tokens and 1 million output
tokens, which led to a total cost of ≈ 126.5€ ($130). A more detailed breakdown of the token costs can
be seen in Table 1. The costs for pricing were calculated utilizing OpenAI’s pricing page [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
        <p>It should be noted that the cost can greatly vary depending on the selected model. Additionally,
the tokenizers used can and will greatly afect the cost-efectiveness as well. Furthermore, although
submissions were code files, most of them, including rubrics and exercise tokens, were written in Finnish.
This increases the counted token amount significantly as the tokenizer OpenAI uses is optimized mainly
for English instead of Finnish.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Data Preparation</title>
        <p>Before the analysis started, we removed all submissions from students who had not explicitly given a
research permit. After this, the remaining data was pseudonymized by replacing the usernames with
randomly generated numbers throughout the data. These code numbers allowed us to connect the
reviews from diferent reviewer roles without dealing with personal information.</p>
        <p>Before the analysis, we also needed to remove some inconsistent data. As a general rule, for each
submission, this meant the data rows where the analysis was incomplete were erased from the data.
160
140
120
tn100
u
oC 80
60
40
20
0
140
120
100
tn 80
u
o
C 60
40
20
0</p>
        <p>Original
Reviewer
Commenter
Chairperson
Original
Reviewer
Commenter
Chairperson</p>
        <p>Typically, these cases arose because the submission had not been reviewed by a human, either due to
late submission or suspicions of academic dishonesty. Some submissions were not reviewed by any
of the models or the results were in unusable form (see Section 4). The N between diferent tasks
(assignments) variates also because the students did not complete as many tasks at the end of the course
as they did in the beginning.</p>
        <p>The total number of submissions reviewed for each week is displayed in Table 2. In addition to
running all submissions through GPT-4o via diferent roles in the pipeline, we picked a hundred first
submissions from week 1 and ran them through the newest (at the time of writing) Chat GTP model, o1.
This was done to see if there are noticeable diferences between the models, providing guidelines for
the future. Due to drastically higher costs, using the newest model for all submissions was not seen as a
generally usable option at the time of writing the article.</p>
        <p>Since the human instructors provided a combined score for each week (a single integer between 0 and
20 for both tasks), the comparison must be done week-by-week instead of comparing individual tasks.
Still, the two tasks each week were quite similar which means that the comparison can still provide
valid results.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Results</title>
      <p>gap in amounts. Partly the point diference between roles Reviewer and Commenter can be explained
by the pre-processing of the answers, because of a need to add some additional curly brackets in the
submissions before review (see the Appendix A for reference), which sometimes lead the model to
reduce points even when ignoring this edge case was included in the prompt of the model. However,
this only explains a small amount of the detected deviation in the point distribution.</p>
      <p>Finally, one hundred submissions to week 1 exercises were ran through the newest Chat GPT model,
o1. The comparison to human reviewer and LLM roles using the older model, GPT 4o, are displayed in
Table 7.</p>
      <p>Based on the data, it seems that the newest model outperforms the old model in similarity to human
reviewers in most categories. However, it should be noted that only 100 submissions from one week
were used for comparison.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Discussion</title>
      <p>The results show, that while in some conditions the LLM reviewers can get close to human reviewers,
there is still a considerable gap between them. The average scores were quite close, but the U-test
revealed statistically significant diferences between the human reviewer scores and the LLM scores.
Within a one-point threshold, the best-performing LLM roles could get quite close to human reviewers,
and with a four-point threshold even closer. Still, in some tasks, roughly ten percent of tasks were
graded diferently even when considering the 4 point threshold. This indicates, that replacing human
reviewers with LLM counterparts requires more work.</p>
      <p>Even though the rubrics for the assignment were quite detailed, there is always a human factor
involved in the review process. It should be noted that part of the diference in LLM vs. human review
may be caused by the fact that, in the vast majority of cases, each submission was assessd by only one
teacher. However, this efect may be in this particular case a little diluted, since there were a total of
15 reviewers. Still, we can say that this likely leads to a more spread in the grades given by a human
reviewer.</p>
      <p>Diferent methods to improve the automatic assessment utilizing LLMs should be considered as well.
For example, instead of asking LLM to give a total score by decreasing points from the full score based
on errors, we could try asking LLM to provide a checklist of errors. This could improve the performance
of the LLM. It is also noteworthy that our experiment was conducted without providing the model
with any examples of already graded exercises (zero-shot). As mentioned in Section 4, the model was
given the exercise description, rubric and the submission to be evaluated. Providing previously-graded
submissions and/or reference answers could potentially increase the quality of the grading.</p>
      <p>
        One could argue that flexibility is the greatest asset that LLMs can ofer in automated assessment
in introductory programming education. Unit tests provide a way to measure the student’s progress,
but they also limit the possible exercise types and scope. If an LLM can reliably assess the work of a
student, it could broaden the variety of possible exercise types even on massive online courses. This
would also enable scoring of partially completed answers that may not even compile — traditional unit
testing is typically unable to score such cases. Moreover, concepts such as program design, code quality,
and commenting are usually dificult or impossible to assess with unit testing frameworks. Novice
students often struggle with programming language syntax [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], which also means that providing them
feedback automatically can be dificult with traditional methods.
      </p>
      <p>The usage of the Open AI’s newest model, o1, seemed promising. With the subset of the first-week
task, the model seemed to achieve results that were closer to human reviewers than the older, generally
used model. However, there is a big diference in cost-efectiveness as well, and as such, using the
newest model would probably not be possible in most of the courses at the moment due to higher costs.
Still, this seems to indicate that while the models get better, it should be possible to assign more and
more review duties to them.</p>
      <p>When the individual submission reviews were inspected, we found that in some cases LLM noticed
an error in the submission that a human reviewer had missed. On the other hand, in some cases, LLM
reviewers assessed the exercises wrong.</p>
      <p>When delving deeper into the exercises for a more detailed analysis, we noticed that a common
example of LLM falsely reducting points was when the students utilized Python’s flexible nature. For
example, LLM claimed that a string input of "+2" cast into an integer would cause an error, and the
correct way to do it would be to parse the number without the plus sign. In reality, the parsing works
without an issue. This kind of problem could probably be solved by giving the LLM access to a code
compiler. In the string manipulation functions, LLM noticed that some of the exercises did not refer
to a correct parameter variable given to a function, but instead directly modified the original global
variable. In some cases, this was missed by the course personnel evaluating the submission.</p>
      <p>In the third week, there are cases where the human reviewer has given full marks even though the
specifications on the rubric are not fully fulfilled: for example, in the task requiring function signature
only, some students had started implementing a given program as well. If partial implementation was
done, human reviewers did overlook some missing specification present in the provided rubric, but
the LLM reviewers considered it a mistake. Other challenges on the third-week assignments were the
problems in defining the return types - for example, LLM reviewers considered defining None as a
return type an error, as rubric mentioned defining None as a return type was not necessary to gain full
marks, while human reviewers followed the rubric.</p>
      <p>In the Pygame exercises, the visual elements provided some problems. For example, the appearance
of the snowman was not explicitly stated in the rubric, and the LLM deducted points for example if
the snowman was missing eyes (which were not explicitly stated to be included in the instructions).
Furthermore, in the snowflake assignment, LLM made some incorrect point reductions due to a
misunderstanding that the requirement of difering size images would mean scaling them programmatically,
while instead, the goal was to utilize the images of diferent size snowflakes provided with assignment.</p>
      <p>Many of the problems listed above could have been avoided by providing more detailed descriptions
in the rubric. It should also be noted that there were cases where the review provided by LLM was more
accurate than the human counterpart. As seen in the results, LLM can achieve quite high performance,
with some common mistakes made by LLM only revealed after inspecting many diferent submission
reviews. For this reason for any future endeavors, we recommend first running a large subset of the
exercises through the pipeline, then inspecting more closely the reviews where the human review difers,
paying close attention to the rubric, and trying to ensure the consistent quality of human reviews.</p>
      <sec id="sec-6-1">
        <title>6.1. Limitations</title>
        <p>Due to reviewers giving a combined score for each week instead of scoring the individual exercises, we
were not able to compare the scores exercise by exercise. It is likely, that if inspected separately, the
diference in the marks given by LLM roles and the human reviewers would probably appear smaller.
Still, even more rigorous testing is needed, as the achieved performance is quite reliant on the used
model. Additionally, as the used language was Finnish, this will likely have had a negative impact on
the performance, as the vast majority of the training data of the used model is written in English instead
of Finnish.</p>
        <p>
          Each submission was run through the evaluation pipeline only once using a low temperature (0.2) to
provide more consistent results. Utilizing diferent settings could and likely would afect the performance
of the used models. Furthermore, it should be noted that the submissions were given into the pipeline
in a zero-shot setting. In many diferent tasks giving the model examples, as well as reference answers
would likely improve the performance of the method. Giving examples in input often improves the
performance of the models across various tasks [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>7. Conclusion and Future Work</title>
      <p>Even though the model did not have access to code execution or visual output of programs, the LLM
did quite well in the automatic assessment. The results and faced challenges highlight the need for
rigorous testing before a larger data set is run through a pipeline that utilizes LLMs. Still, there are
potential benefits in automating the assessment, for example, the possibility to ofer students immediate
feedback on their submission and the possibility to fix the mistakes before moving on to the next tasks.
The largest challenges in giving students direct access to a similar system are the related costs, as well
as the LLM’s inability to reliably identify a full mark answer.</p>
      <p>Future work should include approaches to minimizing costs. In the case of code submissions, it
could be beneficial to first translate the submissions and all related material into English. Naturally, the
performance in such cases would then be also dependent on the translation process. Another option
would be to train and/or use models that are already optimized for the given language. The better
results of the limited testing of the newest Open AI model also seem promising, but the larger-scale
testing and general usage would require lower costs.</p>
      <p>Exploring more diverse strategies in how agents communicate, as well as experimenting with various
temperature settings should be examined in future work. Additionally, expanding the roles of the
agents to incorporate other roles could be beneficial. Similarly, producing justifications using higher
temperature settings and then the final score using lower temperatures could work as well. Finally,
expanding the current work by providing the LLM access to code execution, as well as visual outputs of
the executed programs could be an interesting approach.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgments</title>
      <p>This work has been supported by FAST, the Finnish Software Engineering Doctoral Research Network,
funded by the Ministry of Education and Culture, Finland.</p>
    </sec>
    <sec id="sec-9">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the author(s) used OpenAI’s diferent models, e.g. GPT-o1 as a
helpful tool for creating the pipeline. After using these tool(s)/service(s), the author(s) reviewed and
edited the content as needed and take(s) full responsibility for the publication’s content.</p>
    </sec>
    <sec id="sec-10">
      <title>A. Prompts</title>
      <sec id="sec-10-1">
        <title>The prompts used in the autonomous agent pipeline.</title>
        <sec id="sec-10-1-1">
          <title>A.1. Reviewer</title>
          <p>System</p>
          <p>You are a computer science university teacher teaching a fundamentals of programming course.
Below is an exercise description, a rubric, and a student submission. Your task:</p>
        </sec>
      </sec>
      <sec id="sec-10-2">
        <title>1. Provide detailed feedback on the submission using the rubric.</title>
        <p>2. Give final marks at the end.</p>
        <p>Output the final marks inside &lt;FINAL_MARKS&gt; tags. Please remember that all of the curly braces have
been replaced with double curly braces by your instruction and students should not receive any penalty
from double curly braces in their submission.</p>
        <p>Human</p>
        <p>You are a computer science university teacher teaching a fundamentals of programming course.
Below is an exercise description, a rubric, and a student submission. Your task:</p>
      </sec>
      <sec id="sec-10-3">
        <title>1. Provide detailed feedback on the submission using the rubric.</title>
        <p>2. Give final marks at the end.</p>
        <sec id="sec-10-3-1">
          <title>A.2. Commenter</title>
          <p>System</p>
          <p>You are a computer science university teacher teaching a fundamentals of programming course. You
are part of a grade review board. Your task is to evaluate the validity and correctness of the previous
teacher’s grading based on the exercise, rubric, and the teacher’s review. Then, provide your own final
marks. Finally, output the final marks inside &lt;FINAL_MARKS&gt; tags. Please remember that all of the
curly braces have been replaced with double curly braces by your instruction and students should not
receive any penalty from double curly braces in their submission.</p>
          <p>Human</p>
          <p>Above are the original exercise description, rubric, and student submission (for your reference), plus
the prior grading. Please provide your commentary and updated marks if needed.</p>
        </sec>
        <sec id="sec-10-3-2">
          <title>A.3. Chairperson</title>
          <p>System</p>
          <p>You are the chairperson of the grade review board in a fundamentals of programming course. Your
task:</p>
        </sec>
      </sec>
      <sec id="sec-10-4">
        <title>1. Briefly justify the final decision. 2. Output the final marks inside &lt;FINAL_MARKS&gt; tags. Please remember that all of the curly braces have been replaced with double curly braces by your instruction and students should not receive any penalty from double curly braces in their submission.</title>
        <p>Please provide the final marks as Chairperson. Remember to place them in &lt;FINAL_MARKS&gt; tags.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>L.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lin</surname>
          </string-name>
          , et al.,
          <article-title>A survey on large language model based autonomous agents</article-title>
          ,
          <source>Frontiers of Computer Science</source>
          <volume>18</volume>
          (
          <year>2024</year>
          )
          <fpage>186345</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Paiva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Leal</surname>
          </string-name>
          , Á. Figueira,
          <article-title>Automated assessment in computer science education: A state-of-the-art review</article-title>
          ,
          <source>ACM Transactions on Computing Education (TOCE) 22</source>
          (
          <year>2022</year>
          )
          <fpage>1</fpage>
          -
          <lpage>40</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sarsa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hellas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Leinonen</surname>
          </string-name>
          ,
          <article-title>Automatic generation of programming exercises and code explanations using large language models</article-title>
          ,
          <source>in: Proceedings of the 2022 ACM Conference on International Computing Education Research-Volume</source>
          <volume>1</volume>
          ,
          <year>2022</year>
          , pp.
          <fpage>27</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B. A.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Finnie-Ansley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Luxton-Reilly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Prather</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <article-title>Programming is hard-or at least it used to be: Educational opportunities and challenges of ai code generation</article-title>
          ,
          <source>in: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1</source>
          ,
          <issue>2023</issue>
          , pp.
          <fpage>500</fpage>
          -
          <lpage>506</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Tian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. O.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Tang</surname>
          </string-name>
          , S.-C. Cheung,
          <string-name>
            <given-names>J.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. F.</given-names>
            <surname>Bissyandé</surname>
          </string-name>
          ,
          <article-title>Is chatgpt the ultimate programming assistant-how far is it?</article-title>
          ,
          <source>arXiv preprint arXiv:2304.11938</source>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>I.</given-names>
            <surname>Estévez-Ayres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Callejo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Á</surname>
          </string-name>
          .
          <string-name>
            <surname>Hombrados-Herrera</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Alario-Hoyos</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <article-title>Delgado Kloos, Evaluation of llm tools for feedback generation in a course on concurrent programming</article-title>
          ,
          <source>International Journal of Artificial Intelligence in Education</source>
          (
          <year>2024</year>
          )
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Bengtsson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kalif</surname>
          </string-name>
          ,
          <article-title>Assessment accuracy of a large language model on programming assignments</article-title>
          ,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Messer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. C.</given-names>
            <surname>Brown</surname>
          </string-name>
          , M. Kölling,
          <string-name>
            <given-names>M.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <article-title>Automated grading and feedback tools for programming education: A systematic review</article-title>
          ,
          <source>ACM Transactions on Computing Education</source>
          <volume>24</volume>
          (
          <year>2024</year>
          )
          <fpage>1</fpage>
          -
          <lpage>43</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Gabbay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <article-title>Combining llm-generated and test-based feedback in a mooc for programming</article-title>
          ,
          <source>in: Proceedings of the Eleventh ACM Conference on Learning@ Scale</source>
          ,
          <year>2024</year>
          , pp.
          <fpage>177</fpage>
          -
          <lpage>187</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kankanhalli</surname>
          </string-name>
          ,
          <article-title>Hallucination is inevitable: An innate limitation of large language models</article-title>
          ,
          <source>arXiv preprint arXiv:2401.11817</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Consul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Farooqui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ye</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Manohar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Echols</surname>
          </string-name>
          , et al.,
          <article-title>Banishing llm hallucinations requires rethinking generalization</article-title>
          ,
          <source>arXiv preprint arXiv:2406.17642</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>B.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mallick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. J.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J.</given-names>
            <surname>Taylor</surname>
          </string-name>
          , D. Roth,
          <article-title>A peek into token bias: Large language models are not yet genuine reasoners</article-title>
          ,
          <source>arXiv preprint arXiv:2406.11050</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Alzahrani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Alyahya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Alnumay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Alrashed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Alsubaie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Almushaykeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mirza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Alotaibi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Altwairesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Alowisheq</surname>
          </string-name>
          , et al.,
          <article-title>When benchmarks are targets: Revealing the sensitivity of large language model leaderboards</article-title>
          ,
          <source>arXiv preprint arXiv:2402.01781</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Brown</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Mann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ryder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Subbiah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Kaplan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dhariwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Neelakantan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Shyam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Sastry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Askell</surname>
          </string-name>
          , et al.,
          <article-title>Language models are few-shot learners</article-title>
          ,
          <source>Advances in neural information processing systems</source>
          <volume>33</volume>
          (
          <year>2020</year>
          )
          <fpage>1877</fpage>
          -
          <lpage>1901</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>U.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Park</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. J.</given-names>
            <surname>Yoo</surname>
          </string-name>
          ,
          <article-title>Can we use gpt-4 as a mathematics evaluator in education?: Exploring the eficacy and limitation of llm-based automatic assessment system for open-ended mathematics question</article-title>
          ,
          <source>International Journal of Artificial Intelligence in Education</source>
          (
          <year>2024</year>
          )
          <fpage>1</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Mei</surname>
          </string-name>
          ,
          <article-title>Hot or cold? adaptive temperature sampling for code generation with large language models</article-title>
          ,
          <source>Proceedings of the AAAI Conference on Artificial Intelligence</source>
          <volume>38</volume>
          (
          <year>2024</year>
          )
          <fpage>437</fpage>
          -
          <lpage>445</lpage>
          . URL: https://ojs.aaai.org/index.php/AAAI/article/view/27798. doi:
          <volume>10</volume>
          .1609/aaai.v38i1.
          <fpage>27798</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Renze</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Guven,</surname>
          </string-name>
          <article-title>The efect of sampling temperature on problem solving in large language models</article-title>
          ,
          <source>arXiv preprint arXiv:2402.05201</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Du</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <article-title>" my grade is wrong!": A contestable ai framework for interactive feedback in evaluating student essays</article-title>
          ,
          <source>arXiv preprint arXiv:2409.07453</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>C.-M. Chan</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Su</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Xue</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Fu</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Liu</surname>
          </string-name>
          , Chateval:
          <article-title>Towards better llm-based evaluators through multi-agent debate</article-title>
          ,
          <source>arXiv preprint arXiv:2308.07201</source>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>W.</given-names>
            <surname>McGugan</surname>
          </string-name>
          ,
          <article-title>Beginning game development with Python and Pygame: from novice to professional</article-title>
          , Apress,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>M.-J. Laakso</surname>
          </string-name>
          , E. Kaila, T. Rajala,
          <article-title>Ville-collaborative education tool: Designing and utilizing an exercise-based learning environment</article-title>
          ,
          <source>Education and Information Technologies</source>
          <volume>23</volume>
          (
          <year>2018</year>
          )
          <fpage>1655</fpage>
          -
          <lpage>1676</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>B.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , Visual Studio Code:
          <article-title>End-to-End Editing and Debugging Tools for Web Developers</article-title>
          , John Wiley &amp; Sons,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>D.</given-names>
            <surname>Goodger</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. van Rossum</surname>
          </string-name>
          ,
          <article-title>Docstring conventions</article-title>
          , URL http://www. python. org/dev/peps/pep0257 (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>O.</given-names>
            <surname>Topsakal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. C.</given-names>
            <surname>Akinci</surname>
          </string-name>
          ,
          <article-title>Creating large language model applications utilizing langchain: A primer on developing llm apps fast</article-title>
          ,
          <source>in: International Conference on Applied Engineering and Natural Sciences</source>
          , volume
          <volume>1</volume>
          ,
          <year>2023</year>
          , pp.
          <fpage>1050</fpage>
          -
          <lpage>1056</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>OpenAI</surname>
          </string-name>
          , Pricing,
          <year>2025</year>
          . URL: https://openai.com/api/pricing/.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>B.</given-names>
            <surname>Jefries</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Koprinska,</surname>
          </string-name>
          <article-title>115 ways not to say hello, world! syntax errors observed in a largescale online cs0 python course</article-title>
          ,
          <source>in: Proceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science</source>
          Education Vol.
          <volume>1</volume>
          ,
          <issue>ITiCSE</issue>
          '22,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2022</year>
          , p.
          <fpage>337</fpage>
          -
          <lpage>343</lpage>
          . URL: https://doi.org/10.1145/3502718.3524809. doi:
          <volume>10</volume>
          .1145/3502718.3524809.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>P.</given-names>
            <surname>Organisciak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Acar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Berthiaume</surname>
          </string-name>
          ,
          <article-title>Beyond semantic distance: Automated scoring of divergent thinking greatly improves with large language models</article-title>
          ,
          <source>Thinking Skills and Creativity</source>
          <volume>49</volume>
          (
          <year>2023</year>
          )
          <fpage>101356</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>