<!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>Teaching Software Engineering Principles in Programming and Non-Programming Activities at Schools</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Claus Pahl</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ilenia Fronza</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Computer Science, Free University of Bozen-Bolzano</institution>
          ,
          <addr-line>Bozen-Bolzano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <fpage>68</fpage>
      <lpage>69</lpage>
      <abstract>
        <p>-Software engineering principles are relevant to students at school, irrespective of whether they will become professional developers. We discuss two types of situations for teaching software engineering principles that we covered in a number of publications. Firstly, we discuss app development and robotics examples as more traditional settings for software development. Secondly, we show how the creation of infographics and videos represents an opportunity to promote agile approaches. In schools, computer science subjects are often taught in the context of other subjects, which we address through the second situation above. We focus on a range of activities that aim at fostering software engineering principles, while also considering the achievement of the existing curricular learning objectives. Index Terms-Software Engineering; Software Engineering Training and Education; End-User Software Engineering.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Bollin et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] looked at the need for teaching Software
Engineering (SE) principles in schools. Their feasibility
analysis revealed that this is effective in training skills needed today
beyond the actual software development. These skills include
for instance group dynamics, psychology and communication
skills as well as general soft skills, but also logic, planning,
modelling, and computational thinking as a problem solving
ability. End-User Software Engineering (EUSE) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] refers to
non-professional, untrained developers – thus a definition that
applies to students at school from primary to high school
levels. The challenge of EUSE in schools is often understanding
how to leverage existing curricular activities (that do not have
software development as their main objective) to foster
Software Engineering principles if focussed programming courses
are not part of the curriculum.
      </p>
      <p>Central in this effort for schools are the acquisition of
software quality notions from a product perspective, but also
SE principles from a process perspective. This aim creates
a number of challenges. Often, direct SE lectures should be
avoided as school pupils often do not realise the usefulness of
learning SE principles. Furthermore, when computing topics
are taught as part of other subjects, meeting their core
curricular learning objectives becomes difficult.</p>
      <p>The work presented here has been supported by the COCONATS project
(https://coconats.inf.unibz.it/), Free University of Bozen-Bolzano.</p>
      <p>We consider teaching formats that aim at achieving
computer science objectives and specifically foster SE principles,
while also guaranteeing the achievement of the existing
curricular learning objectives. Here, EUSE can aid the student’s
goals, without aiming to transform them into professional
software engineers with targeted direct courses.</p>
      <p>
        The EUSE field has largely focused on adult, mainly
professional contexts, only a few contributions are dedicated
to schools. Most of these studies target the teaching of agile
methods, which turn out to be suitable for schools. For
example, we propose a framework in which a series of agile
methods can be adapted for middle schools. We have published
on the two settings outlined [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]–[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and will describe the main
approach and insights here. We will cover programming and
non-programming activities.
      </p>
      <p>
        II. SOFTWARE ENGINEERING PRINCIPLES IN SCHOOLS
In order to bring the benefits of a Software Engineering
(SE) approach to end-users, Burnett and Myers recommend
to consider and respect the student’s (i.e., end-users in EUSE
terminology) goals and working style [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The latter can often
be opportunistic and incremental, collaborative, and organised
into trial-and-error phases. Agile methods are consequently a
good candidate in this endeavor, simply because they
inherently favor a flexible, iterative approach. Their focus is also
more on the product than on the production of documentation.
The latter would negatively impact on students’ motivation.
      </p>
      <p>The existing attempts to introduce agile principles to schools
have been compared with a long waterfall development
approach. Though here the focus was more in the final product,
rather than the process through which students developed the
product. Adopting agile, as we propose, fills this gap. This is
also more transferable, e.g., to non-STEM subjects, since the
agile focus is less in technical product quality. As a
consequence, software engineering principles also become relevant
for non-technology oriented students. Software engineers do
not just write programs; they think in terms of satisfying
needs and solving problems. Moreover, following a (software)
engineering process teaches how to manage all the steps from
initial customer inception to the release of the finished product.</p>
      <p>The selection of infographics and videos for our sample
courses had the following reasons. 1) They are transversal
to many disciplines, and can be adapted to different types
of schools, e.g., creating videos and infographics takes into
account the need for visual communication skills. 2) They also
engage them to learn subjects they are not particularly gifted
at. Videos and infographics are good candidates, as the current
generation of students has grown up with digital media.</p>
    </sec>
    <sec id="sec-2">
      <title>III. APPROACH</title>
      <p>In this work, we focus on middle and high schools, covering
an age range of 10 to 17 years, with the additional goal
of connecting to students before they choose their future
career. However, apart from enticing students into computer
science studies, we realise that not all will become professional
developers, but will nonetheless need to be equipped with
capabilities suitable for a digitalised world.</p>
      <p>
        We discuss here two different types of activities:
apps and robots as computing topics, with a clear link to
programming and development [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
information and media, as concerns of the wider digital
world, without any concrete software connection [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <sec id="sec-2-1">
        <title>A. Robotics, Apps and Blogs</title>
        <p>The goal of one proposed teaching module is completing a
robotics project. This is accompanied by documenting these
development activities in a blog, which is often also of
curricular value in school. Writing a blog can link to the
students’ interests and social communication habits, and thus
engage them better in the technical work. Here, using smart
phones or other mobile devices to document project activities
also helps towards a more competent and responsible use of
these devices. The blogs are anyway a good opportunity for
an integration in a traditional curricula.</p>
        <p>A module focusses on combining robotics with digital
media, consisting of four main parts:</p>
        <p>Introduction and team creation (4 hours);
Blogs: introduction and first posts (6 hours);
Unplugged introduction to robotics (4 hours);
Robotics project (6 hours).</p>
        <p>Here, from a software engineering perspective, a software
process is clearly applicable. This could be in the form of agile
methods with a focus on early implementation and testing,
with intensive interaction with the ‘customer’, which is the
instructor in this case. The challenge is here the assessment.
Generally software quality aspects could be applied, more
research is here needed to develop assessment methods that
will work in a school’s curriculum.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Digital Media</title>
        <p>We applied a set of agile (eXtreme Programming XP)
practices in these courses: a) Incremental development, through
small releases, frequent testing, and user stories; b) Customer
involvement, by having the instructor playing this role; and c)
Change, through regular system releases, test-first, refactoring,
and continuous integration.</p>
        <p>The infographics and video course is organised as follows:
Introduction (2h): tips on infographics/videos but no SE/Agile
Paper-based prototype (6h): small releases (20-min cycles), user
stories (storyboards), on-site customer (10-min with teacher)
Creation of infographic (4h): small releases (20-min cycles),
testing, on-site customer (10-min revision) + peer evaluation
Presentation (2h): conformance with the initial requirements and
paper-based prototype user stories and testing</p>
        <p>Based on frequent small releases, it provides an opportunity
for formative assessment. Focusing on the process side (rather
than on the product), we have selected a set of XP practices,
which are recommended to be adopted together. The table
below shows the XP practices that can be implemented.</p>
        <p>Practice Description
On-site The customer (i.e., teacher) is always present to
customer provide continuous and direct feedback.
Testing Acceptance testing (to allow continuous feedback),
and test-first (to test as soon as possible thus
minimizing long-term testing costs).</p>
        <p>User stories Informal prototypes (e.g., storyboards) that
describe requirements.</p>
        <p>Small Decomposition of activities in short iterations in
releases order to obtain timely and continuous feedback.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. RESULTS AND CONCLUSIONS</title>
      <p>We introduced two separate contexts in order to foster
software engineering skills and principles in schools: a
computingoriented robotics/apps module and a digital media-oriented
creation of infographics and videos. In both cases, this was
an opportunity to promote process-oriented principles (here
agile) in middle and high schools.</p>
      <p>Our assessment included both product and process aspects.
We observed a quality improvement of the product throughout
the iterations. The results also show that students started
adopting a software engineering approach, and managed to
organize their activities in order to be able to present a
prototype at the end of each iteration.</p>
      <p>Our future work includes the further verification of
how fostering SE practices through programming and
nonprogramming activities can be beneficial to students when they
start programming. More experiments would be beneficial to
further clarify the effectiveness.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>I</given-names>
            <surname>Fronza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N El</given-names>
            <surname>Ioini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Pahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L</given-names>
            <surname>Corral</surname>
          </string-name>
          .
          <article-title>Bringing the Benefits of Agile Techniques Inside the Classroom: A Practical Guide</article-title>
          .
          <article-title>Agile and Lean Concepts for Teaching and Learning</article-title>
          ,
          <fpage>133</fpage>
          -
          <lpage>152</lpage>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A</given-names>
            <surname>Colombi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I</given-names>
            <surname>Fronza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Pahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D</given-names>
            <surname>Basso</surname>
          </string-name>
          . COCONATS:
          <article-title>Combining Computational Thinking Didactics and Software Engineering in</article-title>
          K-
          <volume>12</volume>
          .
          <source>19th SIG Conference on Information Technology Education</source>
          .
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>I</given-names>
            <surname>Fronza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Pahl</surname>
          </string-name>
          .
          <article-title>End-User Software Engineering in K-12 by Leveraging Existing Curricular Activities</article-title>
          . ICSOFT,
          <fpage>283</fpage>
          -
          <lpage>289</lpage>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>I</given-names>
            <surname>Fronza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Pahl</surname>
          </string-name>
          .
          <article-title>Teaching Software Engineering Principles in NonVocational Schools</article-title>
          . CSEDU.
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>I</given-names>
            <surname>Fronza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L</given-names>
            <surname>Corral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C</given-names>
            <surname>Pahl</surname>
          </string-name>
          .
          <article-title>Combining Block-Based Programming and Hardware Prototyping to Foster Computational Thinking</article-title>
          .
          <source>SIG Conference on Information Technology Education (SIGITE '19)</source>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bollin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Pasterk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Antonitsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Sabitzer</surname>
          </string-name>
          .
          <article-title>Software engineering in primary and secondary schools-informatics education is more than programming</article-title>
          .
          <source>Intl Conf on SE Education and Training</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Chimalakonda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. V.</given-names>
            <surname>Nori</surname>
          </string-name>
          .
          <article-title>What makes it hard to teach software engineering to end users? some directions from adaptive and personalized learning</article-title>
          .
          <source>IEEE Conf on SE Education and Training</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>M. M. Burnett</surname>
            ,
            <given-names>B. A.</given-names>
          </string-name>
          <string-name>
            <surname>Myers</surname>
            ,
            <given-names>B. A.</given-names>
          </string-name>
          <article-title>Future of end-user software engineering: beyond the silos</article-title>
          .
          <source>In Future of Software Engineering</source>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>