<!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>Democratising Access to Logic Programming: A Web Application Design Tool for Querying Prolog Code</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Santiago Andrés Villarroel</string-name>
          <email>santiago.villarroel@fi.uncoma.edu.ar</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Nelson Gimenez</string-name>
          <email>christian.gimenez@fi.uncoma.edu.ar</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jorge Pablo Rodríguez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Laura Andrea Cecchi</string-name>
          <email>lcecchi@fi.uncoma.edu.ar</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Facultad de Informática, Universidad Nacional del Comahue Neuquén</institution>
          ,
          <country country="AR">Argentina</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Logic Programming (LP) is a powerful paradigm for gaining fundamental knowledge and skills in Computer Science. LP facilitates the development of Computational Thinking skills, which are relevant for problem-solving, and also strengthens Logical Thinking abilities. To teach LP efectively, specialised educational resources are necessary. While students develop their programs in Prolog, they often struggle to showcase their running applications to classmates, friends, and family. Providing educational resources that support the creation of Web applications with Prolog querying functionality will motivate students to learn. This work presents Prolog Web App Creator, an integrated development environment for students to design and create Web applications. Ease of use, collaboration, and publication of the result are also relevant aspects of the environment, allowing the students to share the design and the product with their social circles. The proposed solution implements an educational resource to consolidate LP teaching while fomenting collaboration, democratisation, and strengthening current initiatives. Prolog Web App Creator empowers creative individuals to develop solutions using LP and encourages their shift from the role of technology consumers to that of technology creators.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Logic Programming Education</kwd>
        <kwd>Prolog</kwd>
        <kwd>Web technology</kwd>
        <kwd>Web application</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction and Motivation</title>
      <p>
        Recently, there has been a great interest in the early incorporation of Computer Science (CS) into
mandatory education. The worldwide scientific community recognises learning CS to be an efective
means to develop Computational Thinking (CT) and Logical Thinking (LT) in children [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5">1, 2, 3, 4, 5</xref>
        ].
      </p>
      <p>
        In this direction, Logic Programming (LP) is a useful paradigm for acquiring fundamental knowledge
and skills in CS. Furthermore, LP facilitates the exploration and development of CT skills, including
abstraction, decomposition, pattern recognition, and generalisation, which are crucial for
problemsolving. Additionally, LP fosters LT abilities, aiding in the diferentiation of valid arguments from
fallacies and contradictions, and in forming connections between arguments via reasoning, among
other skills [
        <xref ref-type="bibr" rid="ref10 ref11 ref6 ref7 ref8 ref9">6, 7, 8, 9, 10, 11</xref>
        ].
      </p>
      <p>To facilitate the efective teaching of LP, appropriate educational resources are necessary. In this
regard, it is essential to not only visually make programs in Prolog, which avoids the need to teach and
handle the textual syntax of this language, but also to query these programs in a user-friendly manner.
However, this alone is not suficient.</p>
      <p>Students develop their programs in Prolog; nevertheless, they frequently lack the means to efectively
show their running applications to their classmates, friends, and family. A step forward would be to
allow any person to access and query the program. Providing educational resources that enable the
creation of Web applications with Prolog program querying functionality would motivate students to
learn.</p>
      <p>Computational devices like smartphones and personal computers have become integral to our daily
lives. They are not merely tools for communication; they are now extensively utilised across various
domains, including navigation, personal identification, gaming, and social networking. Their powerful
computing capabilities, compact size, internet connectivity, afordability, and wide range of user-friendly
apps make them highly usable.</p>
      <p>Children and young people are keen technology consumers, especially when it comes to mobile
technologies. The education sector is increasingly integrating these technologies, emphasising the
importance of understanding their mechanisms to foster the development of technology creators. In
this regard, it is crucial to make continuous eforts to develop new technological environments that
enable the consolidation of LP in primary and secondary schools, increasing and strengthening existing
initiatives.</p>
      <p>In this context, our proposed solution consists of a Web-based educational resource that allows the
creation of a user-customised Web application to query an already-built Prolog program. Prolog Web
App Creator is the name of this tool and it is designed for novice users and non-programmers.</p>
      <p>In the design and implementation of this resource, priority is given to ensuring that the user interface
is highly intuitive so that its use does not require prior knowledge.</p>
      <p>By using this tool, we aim to reach a wider range of students in LP education, providing an intuitive
design environment that allows any user, especially children, to build situated Web applications. In this
way, the goal is to democratise software development, empowering everyone, particularly school-aged
children and youth, and facilitating their transition from the role of technology consumers to that of
technology creators.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Works</title>
      <p>In this section, we outline the tools and software that are relevant to the proposed work.</p>
      <p>
        MIT App Inventor is a visual and intuitive programming environment that facilitates the development
of mobile applications for everyone. The user interface consists of a Designer to select the components
of the designed application and their properties, and a Blocks Editor to define the behaviour of the
application [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        The original design of Scratch was motivated by the needs and interests of young people. Scratch
is a visual programming environment that allows users to learn programming by creating personally
meaningful projects (i.e. motivated by the needs and interests of young people), such as games or
stories [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>Its main objective is to facilitate and promote self-directed learning through exploration, collaboration,
and sharing with peers.</p>
      <p>
        Snap! (formerly known as BYOB) is a visual, drag-and-drop programming language based on
blocks [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. It is an extended implementation of Scratch that allows managing more complex data
structures and has a more youthful design. This extended functionality makes the tool suitable for a
more in-depth introduction to computer science for secondary and university-level students.
      </p>
      <p>Ciao Playground [15] is a platform that allows access to a Prolog engine embedded in the Web browser,
without any need for prior software installation. Additionally, existing Prolog tutorials can be adapted
for the Playground, or new ones can be created, to achieve a higher level of interactivity by allowing
the user to test and manipulate code on the Web. Similarly, other Prolog implementations also have
Web tools that allow interaction with a Prolog engine, such as SWI-Prolog with the SWISH 1 platform
and Tau Prolog Sandbox2. However, unlike our proposal, these tools do not generate an application nor
include an educational visual component.
1https://swish.swi-prolog.org/ visited on August 17, 2024
2http://tau-prolog.org/sandbox/ visited on August 17, 2024</p>
      <p>Blockly Prolog3 is a Web-based visual educational resource that facilitates the creation of a Prolog
program using blocks. The tool allows inserting blocks corresponding to concepts such as facts,
constants, and variables, into a Canvas to construct a Prolog program. This functionality achieves a
higher level of accessibility by not requiring the handling of Prolog textual syntax. Although this tool
has a strong visual component, it is not focused on creating an application that interacts with a given
Prolog program, nor can it be shared with an audience unfamiliar with LP.</p>
      <p>MIT App Inventor, Scratch, and Snap! are powerful tools that enable non-programmers to build and
share their applications, which is the core functionality that Prolog Web App Creator aims to achieve.
These platforms, however, are rooted in the Imperative Programming Paradigm, which difers from
the LP approach that the proposed tool adopts. While the paradigms vary, the overarching objective
remains the same, that is, to further democratise access to programming, expanding the reach of this
discipline to a broader audience.</p>
      <p>In contrast, tools like Blockly Prolog, SWISH, Tau Prolog Sandbox and Ciao Playground also contribute
to the goal of increasing the accessibility of the knowledge area of programming, especially LP. However,
their focus difers from that of the previously mentioned tools, as they do not aim to design, build, and
share executable Web applications. Instead, these tools emphasise providing interactive environments
for learning and exploring LP concepts.</p>
    </sec>
    <sec id="sec-3">
      <title>3. How Prolog Web App Creator works</title>
      <p>Prolog Web App Creator is an integrated development environment (IDE) designed for beginners and
non-programmers to create Web applications with features like querying Prolog programs. These Web
applications, which we will refer to as the Resulting Artefact, can be used and shared by anyone in the
students’ social circles, such as family and friends.</p>
      <p>Children and teenagers can develop software using their own Prolog code or by remixing code from
their peers, thus embracing the role of creators rather than merely being technology consumers.</p>
      <p>Figure 1 illustrates the Resulting Artefact life cycle, which begins with a Prolog program. The
program, created by the student or another person, is used as input for the IDE. The students create
3http://www.programmierkurs-java.de/blocklyprolog/editor/index.html visited on August 17, 2024
their desired interface, populating the design with text, images, and dynamically generated elements
based on the input program. The design can also be shared with their classmates to create diferent
versions of the resulting application.</p>
      <p>When the design is finished, the application is saved, and a Resulting Artefact that becomes accessible
from the Internet is generated, allowing students to share it with other people.</p>
      <p>Figure 2 illustrates the typical flow, along with the Prolog Web App Creator interface structure. The
interface consists of two views: the design view and the resulting artefact view. The design view allows
the student to create the application by providing a Prolog program as input (1) and inserting buttons
(2) and images on a canvas (3). In this view, students produce their artefact and test the logic program
before generating the final application. The resulting artefact view (4) shows the designed interface and
executes the code by pressing the buttons placed by the student.</p>
      <p>Figure 3 illustrates a project in the design view, where the input Prolog program is displayed in the
right panel, representing a knowledge base about people and their respective hobbies. To create a Web
application, first, the code is uploaded to the interface (see code panel on the right side in Figure 3).
This action creates buttons automatically: one for each predicate in the uploaded logic program (see
Predicados in Figure 3). To facilitate the design and configuration of the queries to the Prolog program,
each button corresponding to a predicate not only includes its name but also indicates its arity. Note
that a small square appears for each argument in the predicate. For example, the relation persona is
unary and the relation hobby is binary. These buttons are associated with pre-defined elements called
Widgets.</p>
      <p>Then, the student can press these buttons associated with various types of Widgets, such as images,
text, or queries. This action will result in these elements being inserted into the canvas, creating their
personalised application. The Toolbox (see Figure 2; left panel in Figure 3) contains Query Widgets,
which were generated based on the predicates present in the input program. On the Canvas, a Title,
two Images, and two Query Widgets have been inserted. The Query Widgets consist of a title, an
optional tag, parameter type selectors, and the parameters themselves. Interacting with these Widgets
by pressing the Consultar (Query) button will display the results in the lower right panel. Once the
student is satisfied with their design, they generate the Resulting Artefact (see Exportar button in
Figure 3).</p>
      <p>The tool structure consists of three main components: Client, Prolog Engine, and Server. The Client
component will handle all the aspects related to the GUI (Graphical User Interface), and the interaction
with the Prolog Engine. In particular, the Client holds the primary responsibility for managing the
views explained before, and the design and editing process of the Resulting Artefact. In addition, it is
equipped to communicate user-generated queries via Widgets to the Prolog engine, ensuring seamless
interaction and retrieval of the results. The Server, on the other hand, handles the persistent storage of
user-generated projects. It is designed to save these projects consistently and can retrieve them upon
request from the Client. It is important to note that the Client component is equipped with a Prolog
Engine, specifically the WebAssembly implementation of the Ciao Prolog engine [ 15]. This means
that the Client does not rely on a network connection to the engine, thus achieving a higher level of
availability.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Prolog Web App Creator in Primary and Secondary School</title>
      <p>
        We aim to make LP accessible to students without a deep disciplinary background. Thus, we seek to
broaden the representation of CS in primary and secondary education. There is a significant disparity
and a lack of a clear definition of how CS is integrated into the curriculum at diferent educational levels.
Furthermore, CS is entirely absent from the curriculum at several of these educational levels [
        <xref ref-type="bibr" rid="ref3">3, 16</xref>
        ].
      </p>
      <p>The purpose of this work is to democratise access to computing and LP in primary and secondary
education, rather than limiting it to higher education. LP is not a common topic in schools despite
its relevance. Usually, teachers do not have the necessary training to teach LP without the aid of a
specialised tool. Therefore, textual codification should not be a starting requirement. Thus, Prolog Web
App Creator opens up paths to a first contact with LP not focused on textual programming.</p>
      <p>This is particularly relevant for teachers who need to develop content knowledge and pedagogical
content knowledge for efectively teaching LP. Teachers dealing with teaching LP need tools and
strategies specifically designed for this purpose.</p>
      <p>A constructionist approach, where individuals focus on building tangible and public artefacts, is
particularly efective in giving learners a sense of purpose when engaging with LP. This approach
encourages students to create meaningful projects, making abstract concepts in LP more concrete and
applicable. From a constructionist perspective, there is a strong emphasis on interaction, where the
student consciously participates in the construction of a public entity [17, 18]. Within the scope of this
work, a public entity refers to the Resulting Artefact, which is a computational artefact that performs
queries on a Prolog-based knowledge base.</p>
      <p>We identify two primary ways in which students can interact with this paradigm using the tool. The
ifrst option entails working with a Prolog program that is not of our authorship. In this scenario, the
student learns to read and interpret an existing knowledge base to build an application. The student
can then deepen their understanding by modifying and extending the existing program, allowing them
to apply their knowledge of LP and Prolog concepts in a hands-on manner [19].</p>
      <p>The second option involves the student building an application based on their own Prolog program.
This approach provides the learner with a meaningful resource that can be interacted with by others,
reinforcing the practical application of LP principles.</p>
      <p>Under this scenario, teachers and students select a problem on the curriculum, conduct research,
and define its scope. For example, environmental problems. In this direction, they could identify
environmental issues and determine pollutants and their efects on the environment and health. Teachers
and students could collaboratively work to create a text on the topic (an example in Spanish is available
at this link). They start by defining and coding facts about this topic and then create rules that describe
relationships between facts and a possible solution. Students in primary school could make the program
Design View</p>
      <p>Resulting Artefact</p>
      <p>Resulting Artefact
in Blockly Prolog (see block-based logic program) and students in secondary school could do it in textual
Prolog (see textual logic program). Once students have created their logic program, they upload the
code into Prolog Web App Creator, design the Web app, and export the Resulting Artefact (see Figure 4).</p>
      <p>Similarly, a primary school music teacher, Juan Matías Fernández, who teaches at Escuela Primaria
125 “Rosalía Núñez de Alcaraz” in Neuquén, Patagonia, Argentina, design a class for his students who
are 8 or 9 years old. He presents a classification for instruments: string, percussion and wind (the
block-based logic program can be accessed in this link and the textual logic program is available in this
link to Ciao Prolog Playground). Figure 5 shows the Design View and the Resulting Artefact created.</p>
      <p>Prolog Web App Creator was designed to easily create a personalised Web application using a Prolog
code as input, by inserting graphical pieces on a canvas. This allows children and young students to
quickly build prototypes for their ideas, test them, and make improvements. Furthermore, the created
public entity can be shared with their family and friends.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions and Future Work</title>
      <p>In this work, we propose Prolog Web App Creator, an integrated environment that enables users to
create their own Web applications for querying an input logic program using specified widgets and
related functionality. It allows the created Web application to be exported to a final view (referred to as
the Resulting Artefact), which can be shared via a link and access it with a Web browser. Prolog Web
App Creator facilitates the practice of basic LP and Prolog concepts while encouraging creativity that
results in a meaningful and personalised final product for the user.</p>
      <p>The alpha version of the Prolog Web App Creator is available at https://prologforkids.fi.uncoma.edu.
ar/.</p>
      <p>Overall, the proposed solution implements a visual and Web-based educational resource, to use as a
new technological environment to consolidate LP while increasing participation. The path taken by
environments, such as Scratch, provides consistent evidence that these types of tools play an important
role in empowering people, democratising CS and improving learning. Within this framework, it is
expected that Prolog Web App Creator has ample opportunities to contribute to expanding the presence
of LP in primary and secondary education.</p>
      <p>Based on this work, the following lines for further research and development are proposed:
• Expand aspects related to creativity and customisation in the design process of the Resulting</p>
      <p>Artefact.
• Translate the tool into other languages, increasing its target audience.
• Incorporate several examples of pre-designed Prolog applications, as supporting guides or as
starting points, to illustrate the various functionalities of the tool.
• Extend the tool to support block-based Prolog programs, in order to avoid contact with textual
syntax.
[15] G. García Pradales, Monaco playground for ciao prolog, 2022. URL: https://oa.upm.es/71073/,
trabajo Final de Grado.
[16] J. Rodríguez, M. M. Cortez, S. Boari, Exploration of the place of computer science knowledge areas
in the argentine secondary school: A systematic review, Electronic Journal of SADIO 21 (2022).
[17] I. E. Harel, S. E. Papert, Constructionism., Ablex Publishing, 1991.
[18] S. Papert, I. Harel, Situating constructionism, constructionism 36 (1991) 1–11.
[19] S. Sentance, J. Waite, M. Kallia, Teaching computer programming with primm: a sociocultural
perspective, Computer Science Education 29 (2019) 136–176.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Combéfis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Beresnevičius</surname>
          </string-name>
          ,
          <string-name>
            <surname>V.</surname>
          </string-name>
          <article-title>Dagien ė, Learning programming through games and contests: overview, characterisation and discussion</article-title>
          ,
          <source>Olympiads in Informatics</source>
          <volume>10</volume>
          (
          <year>2016</year>
          )
          <fpage>39</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Moreno-León</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Román-González</surname>
          </string-name>
          , G. Robles,
          <article-title>On computational thinking as a universal skill: A review of the latest research on this ability</article-title>
          ,
          <source>in: 2018 IEEE Global Engineering Education Conference (EDUCON)</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1684</fpage>
          -
          <lpage>1689</lpage>
          . doi:
          <volume>10</volume>
          .1109/EDUCON.
          <year>2018</year>
          .
          <volume>8363437</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bocconi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chioccariello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kampylis</surname>
          </string-name>
          , V. Dagienė,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wastiau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Engelhardt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Earp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Horvath</surname>
          </string-name>
          , E. Jasutė,
          <string-name>
            <given-names>C.</given-names>
            <surname>Malagoli</surname>
          </string-name>
          , et al.,
          <source>Reviewing Computational Thinking in Compulsory Education</source>
          ,
          <source>Technical Report, Joint Research Centre (Seville site)</source>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Society</surname>
          </string-name>
          , After the reboot:
          <article-title>Computing education in uk schools</article-title>
          ,
          <source>Policy Report</source>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kampylis</surname>
          </string-name>
          , V. Dagienė,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bocconi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chioccariello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Engelhardt</surname>
          </string-name>
          , G. Stupurienė,
          <string-name>
            <given-names>V.</given-names>
            <surname>Masiulionyte</surname>
          </string-name>
          ̇- Dagiene
          <string-name>
            <surname>̇</surname>
            , E. Jasutė,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Malagoli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Horvath</surname>
          </string-name>
          , et al.,
          <article-title>Integrating computational thinking into primary and lower secondary education</article-title>
          ,
          <source>Educational Technology &amp; Society</source>
          <volume>26</volume>
          (
          <year>2023</year>
          )
          <fpage>99</fpage>
          -
          <lpage>117</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Beux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Corradi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Delzanno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrando</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Frassetto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Guerrini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Oreggia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Pozzi</surname>
          </string-name>
          , et al.,
          <article-title>Computational thinking for beginners: A successful experience using prolog</article-title>
          ., in: CILC,
          <year>2015</year>
          , pp.
          <fpage>31</fpage>
          -
          <lpage>45</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Tabakova-Komsalova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Stoyanov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stoyanova-Doycheva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Doukovska</surname>
          </string-name>
          ,
          <article-title>Prolog education in selected high schools in bulgaria</article-title>
          , in: D. S. Warren,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hermenegildo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kowalski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rossi</surname>
          </string-name>
          (Eds.),
          <source>Prolog - The Next 50 Years, number 13900 in LNCS</source>
          , Springer,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bolduc</surname>
          </string-name>
          , W. G.
          <article-title>Murray, LP based integration of computing and science education in middle schools</article-title>
          ,
          <source>in: Proceedings of the ACM Conference on Global Computing Education</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T. T.</given-names>
            <surname>Yuen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Reyes</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Zhang,</surname>
          </string-name>
          <article-title>Introducing computer science to high school students through logic programming</article-title>
          ,
          <source>Theory and Practice of Logic Programming</source>
          <volume>19</volume>
          (
          <year>2019</year>
          )
          <fpage>204</fpage>
          -
          <lpage>228</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Cecchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Rodríguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dahl</surname>
          </string-name>
          ,
          <article-title>Logic programming at elementary school: Why, what and how should we teach logic programming to children?</article-title>
          , in: D. S. Warren,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hermenegildo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kowalski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rossi</surname>
          </string-name>
          (Eds.),
          <source>Prolog - The Next 50 Years, number 13900 in LNCS</source>
          , Springer,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Rodriguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Cecchi</surname>
          </string-name>
          ,
          <article-title>Logic programming in primary school: Facing computer science at an early age</article-title>
          ,
          <source>Proceedings of 50 Conferencia Latinoamericana de Informática (CLEI)</source>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S. C.</given-names>
            <surname>Pokress</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J. D.</given-names>
            <surname>Veiga</surname>
          </string-name>
          , Mit app inventor:
          <article-title>Enabling personal mobile computing</article-title>
          ,
          <source>arXiv preprint arXiv:1310.2830</source>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Maloney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Resnick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Rusk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Silverman</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Eastmond,</surname>
          </string-name>
          <article-title>The scratch programming language and environment</article-title>
          ,
          <source>ACM Transactions on Computing Education (TOCE) 10</source>
          (
          <year>2010</year>
          )
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>B. U.</surname>
          </string-name>
          of California, Snap!, https://snap.berkeley.edu/about, ???? Accessed: April 04,
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>