<!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>Tampere,
Finland
$ martin.h.goodfellow@strath.ac.uk (M. Goodfellow); alasdair.lambert@strath.ac.uk (A. Lambert);
andrew.fagan@strath.ac.uk (A. Fagan); robbie@tech.scot.ac.uk (R. Booth)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.1145/2810041</article-id>
      <title-group>
        <article-title>AI-Assisted Generation of SQL Comprehension Questions⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martin Goodfellow</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alasdair Lambert</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrew Fagan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Robbie Booth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Strathclyde, Glasgow</institution>
          ,
          <addr-line>Scotland</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2026</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>Students often struggle to fully comprehend the SQL queries they write. These gaps in understanding may remain hidden until later in their studies. At that stage, misconceptions about relational concepts, query semantics, formulation, or execution behaviour are dificult to remediate, particularly when students encounter increasingly complex queries. The increasing use of GenAI tools (e.g., GitHub Copilot) for query construction can further mask conceptual weaknesses. A common instructional strategy for addressing this issue is the use of SQL comprehension questions that require students to predict query results, explain query logic, or identify semantic errors. Such questions help surface misconceptions and may also support academic integrity by requiring students to demonstrate conceptual understanding beyond producing a working query. However, creating scalable sets of high-quality questions is labour-intensive. This tool demonstration presents an openly available extension of a prior GenAI-based system that automatically generates Java code comprehension questions, adapted to the domain of SQL. The tool automatically derives multiple-choice SQL comprehension questions directly from queries and integrates with the CodeRunner automated assessment platform to support rapid generation and deployment of scalable, personalised assessments. It is designed to support timely feedback, reduce instructor workload, and support conceptual understanding of SQL.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;SQL</kwd>
        <kwd>comprehension</kwd>
        <kwd>database</kwd>
        <kwd>data systems</kwd>
        <kwd>GPT</kwd>
        <kwd>GPT-4o mini</kwd>
        <kwd>generative artificial intelligence</kwd>
        <kwd>GenAI</kwd>
        <kwd>automated marking</kwd>
        <kwd>CodeRunner</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Students in introductory database and data management courses frequently produce SQL queries that
return the expected output, yet may not fully understand how those queries operate [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This pattern
aligns with findings from introductory programming contexts, where students can write code that
appears correct despite holding incomplete or inaccurate mental models of program behaviour [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Recent work in SQL education similarly reports that novices often struggle with core relational concepts
and query semantics, leading to persistent misconceptions about how SQL evaluates queries [
        <xref ref-type="bibr" rid="ref1 ref3 ref4">1, 3, 4</xref>
        ].
SQL’s declarative nature can make these misconceptions dificult to detect, as intermediate results are
not visible and incorrect reasoning can produce apparently correct outputs on simple tasks.
      </p>
      <p>
        Comprehension-oriented tasks have been shown to provide insight into how students interpret and
reason about program behaviour [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. When applied to SQL, comprehension questions ofer instructors
a way to probe students’ understanding of query intent and expected behaviour, helping to surface
conceptual gaps that may not be evident from the final output alone. However, generating tailored
comprehension questions for each student submission is time-consuming and dificult to scale for large
cohorts. Pre-prepared question banks may be perceived as less relevant to students’ own work and are
susceptible to reuse across cohorts [
        <xref ref-type="bibr" rid="ref6 ref7 ref9">6, 7</xref>
        ]. Automated feedback tools, including those used for large-scale
practice and assessment, have shown promise for supporting scalable formative feedback [
        <xref ref-type="bibr" rid="ref10 ref11 ref8">8, 9, 10</xref>
        ],
suggesting potential for similar approaches in SQL.
      </p>
      <p>
        To support personalised and scalable feedback in database courses, we present a tool that automatically
generates multiple-choice SQL comprehension questions aligned with a student’s submitted query.
This tool extends prior GenAI-based question generation work [
        <xref ref-type="bibr" rid="ref12 ref13">11, 12</xref>
        ] by incorporating SQL-specific
analysis. The goal of the system is to assist instructors in identifying misconceptions, provide timely
formative feedback, and support the development of relational reasoning skills in large or frequently
assessed cohorts.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        A substantial body of research shows that students frequently produce SQL queries that return the
expected output while still holding incomplete or inaccurate understanding of relational concepts and
query semantics. In a qualitative think-aloud study, Miedema et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] identified a range of novice
misconceptions, including misapplied prior knowledge, unstable mental models of relational operations,
and misunderstandings of joins and grouping behaviour. These misconceptions often remain hidden
during task completion, as students tend to judge their understanding based on whether a query executes
successfully rather than on the soundness of the underlying reasoning.
      </p>
      <p>
        Complementing these findings, a large-scale analysis of more than 8,000 student SQL queries showed
that learners frequently overuse parentheses, introduce redundant joins, or construct unnecessarily
complex solutions even when the final output is correct [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Such behaviour indicates that correctness
alone is an unreliable indicator of comprehension. A Delphi study by Miedema et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] further reports
expert consensus that SQL query formulation poses persistent conceptual challenges for novices, who
often make semantic and structural errors despite producing syntactically valid or executing queries.
Additional evidence comes from SQLRepair [
        <xref ref-type="bibr" rid="ref14">13</xref>
        ], which demonstrates that student-written queries
routinely contain logical or semantic issues that execution-based grading alone cannot detect.
      </p>
      <p>
        More broadly, studies of SQL learning reveal consistent patterns of conceptual dificulty. Taipalus
et al. [
        <xref ref-type="bibr" rid="ref15">14</xref>
        ] identify widespread semantic and logical errors in student-authored queries; Migler and
Dekhtyar [
        <xref ref-type="bibr" rid="ref16">15</xref>
        ] trace student learning trajectories and document points of conceptual breakdown not
immediately visible from correctness alone; and Shin [
        <xref ref-type="bibr" rid="ref17">16</xref>
        ] provides empirical evidence that the
conceptualto-SQL mapping involves substantial “semantic distance”, helping to explain why students may generate
syntactically correct statements without fully internalising relational semantics. Collectively, these
ifndings underscore the need for assessments that probe students’ reasoning rather than solely their
ability to produce working queries.
      </p>
      <p>
        Comprehension-oriented tasks, such as predicting a query’s output or explaining its behaviour can
reveal students’ underlying reasoning and misconceptions [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. However, such tasks are traditionally
authored manually and do not scale to provide personalised feedback for individual submissions.
Moreover, correctness-focused assessment tools often fail to expose deeper conceptual issues, as
students’ semantic and logical challenges are not reliably identifiable from final output alone [
        <xref ref-type="bibr" rid="ref14 ref15 ref16">14, 15, 13</xref>
        ].
Unlike corrective feedback, comprehension questions explicitly require students to articulate or select
reasoning, making misconceptions observable rather than merely correctable.
      </p>
      <p>
        Recent advances in GenAI have enabled the automatic generation of code-based comprehension
questions. AutoMCQ [
        <xref ref-type="bibr" rid="ref12 ref13">11, 12</xref>
        ] demonstrates that multiple-choice comprehension questions can be
generated directly from student-written code, providing scalable assessment of conceptual understanding
beyond correctness. Complementary GenAI-based approaches have been explored in programming
education, but in diferent assessment forms, including the use of Large Language Models (LLMs) to
automatically assess Explain-in-Plain-English (EiPE) responses by generating executable code from
students’ explanations [
        <xref ref-type="bibr" rid="ref18">17</xref>
        ], and to generate personalised Parsons problems with customised contexts
and concepts [
        <xref ref-type="bibr" rid="ref19">18</xref>
        ]. However, these approaches target general-purpose programming languages and do
not address the unique demands of declarative query languages such as SQL.
      </p>
      <p>
        Prior research on automatic SQL generation - whether for exercise creation [
        <xref ref-type="bibr" rid="ref20 ref21">19, 20</xref>
        ] or for content
development with LLMs [
        <xref ref-type="bibr" rid="ref22">21</xref>
        ] - focuses on producing syntactically valid queries rather than probing
relational reasoning. Similarly, automated SQL assessment tools [
        <xref ref-type="bibr" rid="ref23 ref24">22, 23</xref>
        ] compare student queries to
model solutions or generate structural hints, but do not generate comprehension questions aimed at
revealing misconceptions.
      </p>
      <p>Together, these strands of research indicate that while foundations exist for SQL generation,
autograding, and automatic question generation, no prior work generates SQL-specific comprehension questions
tailored to an individual student’s own query. This gap motivates our contribution: an extension of the
AutoMCQ approach to SQL, capable of producing multiple-choice questions aligned with a student’s
submitted query and designed to surface SQL-specific misconceptions.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Approach</title>
      <p>
        We previously developed a web application, AutoMCQ [
        <xref ref-type="bibr" rid="ref12 ref13">11, 12</xref>
        ], which uses GPT-4o mini via the OpenAI
API to generate personalised multiple-choice code comprehension questions, based on a student’s
submitted code. The code for this tool is available on GitHub 1. We integrated calls to this application
within CodeRunner [
        <xref ref-type="bibr" rid="ref25">24</xref>
        ] quiz questions hosted on our Virtual Learning Environment (VLE), which is
built on top of Moodle 2. CodeRunner 3 is a Moodle plugin which allows users to submit code to be
run against predefined test cases and can support multiple programming languages. The high level
architecture of our approach can be seen in Figure 1. CodeRunner is not required to generate the code
comprehension questions, however, it is used in our approach to allow easy integration within our VLE
and our existing automated marking approach, which uses CodeRunner.
      </p>
      <p>
        The students are presented with a traditional CodeRunner question (see [
        <xref ref-type="bibr" rid="ref11">10</xref>
        ] for more detail - similar
questions can be developed for SQL 4). When they then progress to the code comprehension questions
their code plus other parameters are passed to our web application. This paper focusses on our extension
of AutoMCQ to be applicable to SQL comprehension.
      </p>
      <p>The prompt sent to the OpenAI API consists of the system prompt “You are an educational assistant
specializing in computer science. Your task is to analyse students’ SQL code for the beginner database
class and generate thoughtful multiple-choice questions that can help them understand and improve
their SQL skills. You should try and make good distractor options to really test students’ understanding” 5.
In addition to the system prompt, the model receives parameters specifying: (i) the number of questions
to generate, (ii) the CodeRunner question text, (iii) target SQL topics, (iv) the database schema (expressed
in SQL), and (v) the student’s submitted query. This then returns multiple-choice SQL comprehension
questions and displays them within a CodeRunner question. The students can then answer these
questions and have them automatically marked. Unfortunately, we can’t rely on GenAI generating
correct or sensible questions every time. Therefore, to handle this there is a note above the generated
questions: “These questions were generated by AI. Therefore, questions generated may be incorrect. If
you think they are incorrect please select ‘This question doesn’t seem right’. Also, select this option
if the question doesn’t relate to SQL.” This option can be used to trigger a manual check by the class
lecturer. Until GenAI models improve our SQL comprehension questions will only be used for formative
assessment.</p>
      <sec id="sec-3-1">
        <title>1https://github.com/RobbieBooth/AI-Question-Generator</title>
        <p>2https://moodle.org/
3https://coderunner.org.nz/
4https://coderunner.org.nz/mod/page/view.php?id=551
5Multiple prompts were experimented with during development and this prompt was found to provide the most consistently
usable questions.</p>
        <p>
          Costing was considered to determine whether or not this is financially viable for large class sizes.
Cost per query varies depending on the length of the submitted query and the number of questions
generated, however, at the time of writing, questions tended to cost approximately $0.0002, making the
approach financially viable even for large cohorts.
3.1. Examples
To evaluate the efectiveness of our SQL comprehension tool, we selected representative examples
derived from the SQL tasks used by Miedema et al. [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], specifically those listed in Table 3 of their
study. Although these tasks span several SQL concepts, the authors’ qualitative analysis indicates
that joins and aggregation with GROUP BY are the concepts most consistently associated with novice
misconceptions in the think-aloud data, whereas simpler SELECT queries and ORDER BY tend to
involve fewer conceptual dificulties. As the original study does not report quantitative frequencies,
this distinction reflects qualitative prominence rather than a strict ranking. We therefore focused our
evaluation on these two concepts, as they present the greatest opportunity to assess whether the tool
can surface, explain, and support reasoning about non-trivial misunderstandings, which is central to its
intended pedagogical use. The specific questions adapted from Miedema et al [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] that were used in our
evaluation are listed in Table 1 and use the same schema, which is detailed in Table 2.
        </p>
        <p>Each question was implemented in CodeRunner using the SQLite database engine. For each question,
the CodeRunner tests executed the submitted queries against tables populated with varying data values
and compared the resulting outputs with the expected answers, ensuring that correctness was evaluated
across multiple data instances rather than a single fixed dataset. This prevents students from gaming
the system through hard-coded or printed outputs instead of correct query semantics.</p>
        <p>For example, for Q1, one of the unit tests evaluated the query results when the customer table
contained the data shown in Table 3. For the correct query (as shown in Query 1(a) in Table 4), the
following result will be returned:</p>
        <p>The submitted SQL is then sent to the web application along with number of questions 2, the question,
the topic “Self-join”, the schema expressed as SQL queries, and the student’s SQL query. For each
question, the topic is set as the concept covered for the question in Table 1.</p>
        <sec id="sec-3-1-1">
          <title>3.1.1. SQL Code Comprehension Questions</title>
          <p>
            Examples of the generated SQL comprehension questions are shown in Table 4. For each question
in Table 1, comprehension questions were generated from a correct reference query (denoted (a))
together with examples of incorrect queries (denoted (b) and (c)) taken directly from Miedema et
al. [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. For each query, we generated 20 questions in total, which were then reviewed by the authors to
evaluate their quality. The authors focused on basic appropriateness, including clarity, relevance, and
correctness. Overall, the review indicated that most questions satisfied these criteria. The remainder of
this subsection discusses how the example comprehension questions probe students’ understanding of
SQL.
          </p>
          <p>Attributes
cID, cName, street, city
sID, sName, street, city
pID, pName, sufix
cID, pID, quantity, date
tID, cID, sID, pID, date, quantity, price
sID, pID, date, quantity, unit-price
Q: Why is a.city &lt;&gt; b.city included in the
self-join condition?
(a) To include only customers from the same city.
(b) To ensure that the paired customers are from
diferent cities.
(c) To return customers regardless of their city.
(d) To filter out customers who live on the same
street.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Q: Which SQL clause is incorrectly formatted in the</title>
        <p>provided code?
(a) The WHERE clause should not use aliases.
(b) The AND condition needs to be replaced with
OR.
(c) The SELECT clause should specify the
columns to select, not the table name.
(d) All of the above clauses are correctly formatted.
Q: What is the correct syntax for referencing the
same column in a self-join condition?
(a) Use table aliases to distinguish between the
two instances of the column.
(b) Use a single table reference without aliases.
(c) Use diferent column names for each instance.
(d) Reference the column using only its name
without specifying the table.
2 (a) SELECT cID, date, quantity</p>
        <p>FROM purchase
NATURAL JOIN product</p>
        <p>WHERE pName = ’Apples’;
2
(b)</p>
        <p>SELECT transaction.cID, transaction.date,
transaction.quantity
FROM transaction
JOIN transaction.pID = product.pName</p>
        <p>WHERE pnamed = "Apples";
2 (c) SELECT s.cID, s.date, s.quantity
FROM shoppinglist s, product p</p>
        <p>WHERE p.pName = "Apples";
3 (a) SELECT city, COUNT(*) AS num_stores
FROM store</p>
        <p>GROUP BY city;
3
(b)</p>
        <p>SELECT city, COUNT(city)
FROM store</p>
        <p>GROUP BY city;
3 (c) SELECT city, COUNT(city)</p>
        <p>FROM store
GROUP BY city;
Q: What is the purpose of using NATURAL JOIN in
the student’s SQL query?
(a) To restrict the results to only matching records
in both tables.
(b) To create a subquery that rearranges the results
based on product names.
(c) To join all columns from both tables regardless
of matching names.
(d) To automatically join tables based on
columns with the same name.</p>
        <p>Q: In the student’s SQL code, what is the error in
the JOIN clause?
(a) The JOIN should be a natural join instead of an
inner join.
(b) The JOIN should not include the pID at all.
(c) The correct syntax should use ON instead of
= in the JOIN clause.
(d) The JOIN clause is correct and does not need any
changes.</p>
        <p>Q: What is the main issue with the query when
trying to retrieve transactions containing products
named Apples?
(a) The query does not include a join condition
to link the ‘shoppinglist’ and ‘product’ tables.
(b) The query uses the wrong delimiter for string
values.
(c) The query selects the wrong columns.
(d) The query does not filter out products that are
not in stock.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Q: What will be the output of the COUNT(*) function</title>
        <p>in the context of the given SQL code?
(a) The total number of stores for each city.
(b) The average number of stores across all cities.
(c) The number of unique cities in the store table.
(d) The total inventory of all items in the store.</p>
      </sec>
      <sec id="sec-3-4">
        <title>Q: What is the purpose of using GROUP BY in SQL?</title>
        <p>(a) To filter rows based on a condition.
(b) To aggregate data across specified columns.
(c) To join multiple tables together.
(d) To create a new table from the results.
Q: In the query, what will happen if there are entries
in the store table without a city specified?
(a) Those entries will be included with a null city.
(b) The query will fail due to invalid data.
(c) Those entries will be excluded from the
results.
(d) The city will be counted as a blank entry.</p>
        <sec id="sec-3-4-1">
          <title>Q1 - Self-join</title>
          <p>
            Q1(a) shows an example of a generated SQL comprehension question based on a correct solution to Q1. Despite
the query being correct, students may arrive at such solutions by relying on example-driven or trial-and-error
approaches, modifying previously seen queries until they work rather than reasoning about SQL semantics,
thereby reflecting the generalisation-based misconceptions described by Miedema et al. [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. As a result, this
question focuses on the student’s understanding of a.city &lt;&gt; b.city, specifically whether they recognise
that &lt;&gt; denotes inequality. Such operators can be a source of confusion for novices, as students often transfer
expectations from general-purpose programming languages - where != is more common - to SQL, a pattern
consistent with the language-based and prior-knowledge misconceptions identified by Miedema et al. [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ].
          </p>
          <p>Q1(b) presents an incorrect query that misuses the SELECT clause by specifying table aliases rather than
columns. This question assesses whether students understand the role of the SELECT clause and can distinguish
between table references and the attributes to be returned, reflecting common generalisation-based
misconceptions.</p>
          <p>Q1(c) relates to understanding of aliasing in self-joins. The query incorrectly compares columns without
distinguishing between table instances, and the question assesses whether students recognise the need for aliases
to disambiguate column references, aligning with previously identified language-based misconceptions.</p>
        </sec>
        <sec id="sec-3-4-2">
          <title>Q2 - Natural join</title>
          <p>Q2(a) focuses on the student’s understanding of the semantics of NATURAL JOIN, specifically whether they
recognise that it automatically joins tables based on columns with identical names. This question probes whether
students understand how join conditions are inferred implicitly in SQL, rather than assuming that NATURAL JOIN
behaves like a generic inner join. Such misunderstandings can arise when students generalise join behaviour
from previously seen examples without reasoning about the role of column names.</p>
          <p>Q2(b) focuses on the student’s understanding of the correct syntax for explicit joins in SQL. The query
incorrectly specifies a join condition using assignment syntax rather than an ON clause, and the question assesses
whether students can distinguish between join structure and conditional expressions. Errors of this kind may
occur when students transfer expectations from other programming contexts or rely on surface-level patterns
rather than clause semantics.</p>
          <p>Although the conceptual focus of this question should be on natural joins, the generated questions typically first
target syntactic errors before addressing semantic or conceptual issues. When multiple questions are generated,
these also include items that probe students’ understanding of the definition of natural joins and their ability to
rewrite the query using NATURAL JOIN.</p>
          <p>Q2(c) focuses on the student’s understanding of how tables must be linked when querying across multiple
relations. The query references multiple tables but omits a join condition, resulting in an unintended Cartesian
product. This question assesses whether students recognise the necessity of explicitly relating tables in SQL,
a dificulty that can arise when students reason about queries procedurally rather than in terms of relational
semantics.</p>
        </sec>
        <sec id="sec-3-4-3">
          <title>Q3 - Group By</title>
          <p>Q3(a) focuses on the student’s understanding of aggregation in SQL, specifically the behaviour of the COUNT()
function when used in conjunction with GROUP BY. This question assesses whether students recognise that
COUNT() returns the number of rows within each group - in this case, the total number of stores per city, rather
than a global count or an aggregate across all groups. Misunderstandings here often arise when students fail to
reason about how aggregation operates over grouped data.</p>
          <p>Q3(b) focuses on the student’s understanding of the role of the GROUP BY clause in SQL. The question probes
whether students recognise that GROUP BY is used to group rows based on specified attributes, enabling functions
such as COUNT to be applied per group rather than across the entire table. Confusion around GROUP BY is
common when students conflate aggregation with filtering or joining operations.</p>
          <p>Q3(c) is based on the same query as Q3(b) and focuses on the student’s understanding of how aggregate
functions interact with NULL values. By using COUNT(city) rather than COUNT(*), the query excludes rows
where the city attribute is NULL. This question assesses whether students recognise that COUNT(column) only
counts non-NULL values, a subtle but important aspect of SQL aggregation semantics that is often misunderstood
by novices.</p>
          <p>Together, these questions illustrate how the generated SQL comprehension questions assess students’
understanding beyond surface-level syntactic correctness.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusions and Future Work</title>
      <p>We present an automated system for generating SQL comprehension questions within the CodeRunner ecosystem.
We have demonstrated that our tool can generate coherent, query specific multiple-choice questions based on
student submitted SQL at low cost, making it feasible for use as a scalable formative assessment tool. While this
represents a promising first step, several limitations and opportunities for further work remain.</p>
      <p>Future work should include an empirical evaluation of the quality and educational efectiveness of the generated
questions. Although this work demonstrates that the system can produce coherent SQL comprehension questions,
a more in-depth evaluation is required to further assess question quality, and it remains to be studied whether
students find these questions helpful for developing conceptual understanding. This may also involve further
refinement of the prompt. Such an evaluation could also help determine the optimal number of comprehension
questions to generate per query, as SQL queries are information dense and may present diminishing returns
beyond a certain point.</p>
      <p>Another limitation concerns the reliability of generative models. While our current mitigation strategy
allowing students to flag questions that appear incorrect or irrelevant - provides a pragmatic safeguard, it is
not ideal. Improvements in model reliability, alongside additional validation or filtering mechanisms, represent
important directions for future work.</p>
      <p>While some limitations remain, we believe that our tool has the potential to fill an existing gap in the literature.
We do not believe that this tool can replace the support that teaching staf can provide, however, it can be used to
identify areas of weak understanding and provide a useful study tool in a scalable and cost-efective manner,
reducing the manual efort required for instructors to author and deploy SQL comprehension questions.</p>
    </sec>
    <sec id="sec-5">
      <title>Declaration on Generative AI</title>
      <sec id="sec-5-1">
        <title>The author(s) have not employed any Generative AI tools 6.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Miedema</surname>
          </string-name>
          , E. Aivaloglou, G. Fletcher,
          <article-title>Identifying sql misconceptions of novices: Findings from a think-aloud study</article-title>
          ,
          <source>in: Proceedings of the 17th ACM Conference on International Computing Education Research</source>
          , ICER 2021,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2021</year>
          , p.
          <fpage>355</fpage>
          -
          <lpage>367</lpage>
          . URL: https://doi.org/10.1145/3446871.3469759. doi:
          <volume>10</volume>
          .1145/3446871.3469759.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Lehtinen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lukkarinen</surname>
          </string-name>
          , L. Haaranen,
          <article-title>Students struggle to explain their own program code</article-title>
          ,
          <source>in: Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1</source>
          ,
          <issue>ITiCSE</issue>
          '21,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2021</year>
          , p.
          <fpage>206</fpage>
          -
          <lpage>212</lpage>
          . URL: https://doi.org/10.1145/3430665.3456322. doi:
          <volume>10</volume>
          .1145/3430665.3456322.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Miedema</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Fletcher</surname>
          </string-name>
          , E. Aivaloglou,
          <article-title>So many brackets! an analysis of how sql learners (mis)manage complexity during query formulation</article-title>
          ,
          <source>in: Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension</source>
          , ICPC '22,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2022</year>
          , p.
          <fpage>122</fpage>
          -
          <lpage>132</lpage>
          . URL: https://doi.org/10.1145/3524610.3529158. doi:
          <volume>10</volume>
          .1145/3524610.3529158.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Miedema</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Fletcher</surname>
          </string-name>
          , E. Aivaloglou,
          <article-title>Expert perspectives on student errors in sql</article-title>
          ,
          <source>ACM Trans. Comput. Educ</source>
          .
          <volume>23</volume>
          (
          <year>2022</year>
          ). URL: https://doi.org/10.1145/3551392. doi:
          <volume>10</volume>
          .1145/3551392.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Schulte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Clear</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Taherkhani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Busjahn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Paterson</surname>
          </string-name>
          ,
          <article-title>An introduction to program comprehension for computer science educators</article-title>
          ,
          <source>in: Proceedings of the ITiCSE-WGR</source>
          '
          <fpage>10</fpage>
          - 2010 Working Group Reports on Innovation and Technology in Computer Science Education, Association for Computing Machinery, New York, NY, USA,
          <year>2010</year>
          , pp.
          <fpage>65</fpage>
          -
          <lpage>86</lpage>
          . URL: https://dl.acm.org/doi/pdf/10.1145/1971681.1971687. doi:
          <volume>10</volume>
          .1145/ 1971681.1971687, copyright
          <year>2010</year>
          ACM.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sheard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Markham</surname>
          </string-name>
          , I. Macdonald,
          <string-name>
            <given-names>M.</given-names>
            <surname>Walsh</surname>
          </string-name>
          ,
          <article-title>Cheating and plagiarism: perceptions and practices of first year it students</article-title>
          ,
          <source>SIGCSE Bull</source>
          .
          <volume>34</volume>
          (
          <year>2002</year>
          )
          <fpage>183</fpage>
          -
          <lpage>187</lpage>
          . URL: https://doi.org/10.1145/637610.544468. doi:
          <volume>10</volume>
          .1145/637610.544468.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Simon</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Sheard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Morgan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Petersen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Settle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Sinclair</surname>
            , G. Cross,
            <given-names>C.</given-names>
          </string-name>
          <article-title>Riedesel, Negotiating the maze of academic integrity in computing education</article-title>
          ,
          <source>in: Proceedings of the 2016</source>
          ITiCSE Working Group Reports, ITiCSE '16,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2016</year>
          , p.
          <fpage>57</fpage>
          -
          <lpage>80</lpage>
          . URL: https://doi.org/10.1145/3024906.3024910. doi:
          <volume>10</volume>
          .1145/3024906.3024910.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Luxton-Reilly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Tempero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendrickx</surname>
          </string-name>
          ,
          <article-title>Codewrite: supporting student-driven practice of java</article-title>
          ,
          <source>in: Proceedings of the 42nd ACM Technical Symposium on Computer Science Education, SIGCSE '11</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2011</year>
          , p.
          <fpage>471</fpage>
          -
          <lpage>476</lpage>
          . URL: https://doi.org/10.1145/ 1953163.1953299. doi:
          <volume>10</volume>
          .1145/1953163.1953299.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>6The only exception is the use of the OpenAI API to generate the SQL comprehension questions</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Luxton-Reilly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Tempero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Arachchilage</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fowler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Giacaman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kontorovich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lottridge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Manoharan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sindhwani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Speidel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Stephen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Terragni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whalley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Wuensche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Ye</surname>
          </string-name>
          , Automated assessment:
          <article-title>Experiences from the trenches</article-title>
          ,
          <source>in: Proceedings of the 25th Australasian Computing Education Conference</source>
          , ACE '23,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2023</year>
          , p.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          . URL: https://doi.org/10.1145/3576123.3576124. doi:
          <volume>10</volume>
          .1145/3576123.3576124.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Goodfellow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Abel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Liaskos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Levine</surname>
          </string-name>
          ,
          <article-title>Automated marking in undergraduate programming classes</article-title>
          ,
          <source>in: Proceedings of the 8th Conference on Computing Education Practice</source>
          , CEP '24,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2024</year>
          , p.
          <fpage>13</fpage>
          -
          <lpage>16</lpage>
          . URL: https://doi.org/10.1145/3633053.3633060. doi:
          <volume>10</volume>
          .1145/ 3633053.3633060.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Goodfellow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Booth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fagan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lambert</surname>
          </string-name>
          ,
          <article-title>Automcq - automatically generate code comprehension questions using genai</article-title>
          ,
          <source>in: Proceedings of the 30th ACM Conference on Innovation and Technology in Computer Science Education V. 2</source>
          ,
          <issue>ITiCSE</issue>
          2025,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2025</year>
          , p.
          <fpage>737</fpage>
          -
          <lpage>738</lpage>
          . URL: https://doi.org/10.1145/3724389.3731266. doi:
          <volume>10</volume>
          .1145/3724389.3731266.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Goodfellow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Booth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fagan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lambert</surname>
          </string-name>
          ,
          <article-title>Testing code comprehension using genai</article-title>
          ,
          <source>in: Proceedings of the 2025 Conference on UK and Ireland Computing Education Research</source>
          , UKICER '25,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2025</year>
          . URL: https://doi.org/10.1145/3754508.3754532. doi:
          <volume>10</volume>
          . 1145/3754508.3754532.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>K.</given-names>
            <surname>Presler-Marshall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Heckman</surname>
          </string-name>
          , K. T. Stolee,
          <article-title>Sqlrepair: identifying and repairing mistakes in studentauthored sql queries</article-title>
          ,
          <source>in: Proceedings of the 43rd International Conference on Software Engineering: Joint Track on Software Engineering Education and Training</source>
          , ICSE-JSEET '
          <fpage>21</fpage>
          , IEEE Press,
          <year>2021</year>
          , p.
          <fpage>199</fpage>
          -
          <lpage>210</lpage>
          . URL: https://doi.org/10.1109/ICSE-SEET52601.
          <year>2021</year>
          .
          <volume>00030</volume>
          . doi:
          <volume>10</volume>
          .1109/ICSE-SEET52601.
          <year>2021</year>
          .
          <volume>00030</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Taipalus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Siponen</surname>
          </string-name>
          , T. Vartiainen,
          <article-title>Errors and complications in sql query formulation</article-title>
          ,
          <source>ACM Trans. Comput. Educ</source>
          .
          <volume>18</volume>
          (
          <year>2018</year>
          ). URL: https://doi.org/10.1145/3231712. doi:
          <volume>10</volume>
          .1145/3231712.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Migler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dekhtyar</surname>
          </string-name>
          ,
          <article-title>Mapping the sql learning process in introductory database courses</article-title>
          ,
          <source>in: Proceedings of the 51st ACM Technical Symposium on Computer Science Education, SIGCSE '20</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2020</year>
          , p.
          <fpage>619</fpage>
          -
          <lpage>625</lpage>
          . URL: https://doi.org/10.1145/3328778.3366869. doi:
          <volume>10</volume>
          .1145/3328778.3366869.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shin</surname>
          </string-name>
          ,
          <article-title>Efect of semantic distance on learning structured query language: An empirical study</article-title>
          ,
          <source>Frontiers in Psychology</source>
          <volume>13</volume>
          (
          <year>2022</year>
          )
          <article-title>996363</article-title>
          . URL: https://doi.org/10.3389/fpsyg.
          <year>2022</year>
          .
          <volume>996363</volume>
          . doi:
          <volume>10</volume>
          .3389/fpsyg.
          <year>2022</year>
          .
          <volume>996363</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. H.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Prather</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. A.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Leinonen,</surname>
          </string-name>
          <article-title>Explaining code with a purpose: An integrated approach for developing code comprehension and prompting skills</article-title>
          ,
          <source>in: Proceedings of the 2024 on Innovation and Technology in Computer Science Education V. 1</source>
          ,
          <issue>ITiCSE</issue>
          2024,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2024</year>
          , p.
          <fpage>283</fpage>
          -
          <lpage>289</lpage>
          . URL: https://doi.org/10.1145/3649217.3653587. doi:
          <volume>10</volume>
          .1145/3649217.3653587.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [18]
          <string-name>
            <surname>A. del Carpio</surname>
            <given-names>Gutierrez</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Luxton-Reilly</surname>
          </string-name>
          ,
          <article-title>Automating personalized parsons problems with customized contexts and concepts</article-title>
          ,
          <source>in: Proceedings of the 2024 on Innovation and Technology in Computer Science Education V. 1</source>
          ,
          <issue>ITiCSE</issue>
          2024,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2024</year>
          , p.
          <fpage>688</fpage>
          -
          <lpage>694</lpage>
          . URL: https://doi.org/10.1145/3649217.3653568. doi:
          <volume>10</volume>
          .1145/3649217.3653568.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Quan</surname>
          </string-name>
          <string-name>
            <given-names>Do</given-names>
            ,
            <surname>Rajeev K. Agrawal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. N.</given-names>
            <surname>Gudivada</surname>
          </string-name>
          ,
          <article-title>Automatic generation of sql queries</article-title>
          ,
          <source>in: 2014 ASEE Annual Conference &amp; Exposition</source>
          ,
          <volume>10</volume>
          .18260/1-2-20112,
          <string-name>
            <given-names>ASEE</given-names>
            <surname>Conferences</surname>
          </string-name>
          , Indianapolis, Indiana,
          <year>2014</year>
          . Https://peer.asee.org/20112.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Abdul Khalek</surname>
          </string-name>
          , S. Khurshid,
          <article-title>Automated sql query generation for systematic testing of database engines</article-title>
          ,
          <source>in: Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering</source>
          , ASE '10,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2010</year>
          , p.
          <fpage>329</fpage>
          -
          <lpage>332</lpage>
          . URL: https://doi.org/10. 1145/1858996.1859063. doi:
          <volume>10</volume>
          .1145/1858996.1859063.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>W.</given-names>
            <surname>Aerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Fletcher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Miedema</surname>
          </string-name>
          ,
          <article-title>A feasibility study on automated sql exercise generation with chatgpt-3.5</article-title>
          , in:
          <source>Proceedings of the 3rd International Workshop on Data Systems Education: Bridging Education Practice with Education Research</source>
          , DataEd '24,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2024</year>
          , p.
          <fpage>13</fpage>
          -
          <lpage>19</lpage>
          . URL: https://doi.org/10.1145/3663649.3664368. doi:
          <volume>10</volume>
          .1145/3663649.3664368.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nayak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Agarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Khatri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mohammadian</surname>
          </string-name>
          ,
          <article-title>Student outcome assessment on structured query language using rubrics and automated feedback generation</article-title>
          ,
          <source>International Journal of Advanced Computer Science and Applications</source>
          (
          <year>2024</year>
          ). URL: https://api.semanticscholar.org/CorpusID:268859376.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>C.</given-names>
            <surname>Kleiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Heine</surname>
          </string-name>
          ,
          <article-title>Enhancing feedback generation for autograded sql statements to improve student learning</article-title>
          ,
          <source>in: Proceedings of the 2024 on Innovation and Technology in Computer Science Education V. 1</source>
          ,
          <issue>ITiCSE</issue>
          2024,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2024</year>
          , p.
          <fpage>248</fpage>
          -
          <lpage>254</lpage>
          . URL: https://doi.org/10.1145/3649217.3653579. doi:
          <volume>10</volume>
          .1145/3649217.3653579.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>R.</given-names>
            <surname>Lobb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Harlow</surname>
          </string-name>
          ,
          <article-title>Coderunner: A tool for assessing computer programming skills</article-title>
          ,
          <source>ACM Inroads 7</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>