<!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>Reflections on Teaching App Inventor: Challenges and opportunities</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paolo Musmarra</string-name>
          <email>pmusmarra@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science. University of Salerno</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>App Inventor is a visual programming language developed by Google in 2010 and currently hosted and maintained by the MIT Center for Mobile Learning. It has been successfully used to teach introductory computer because is an intuitive, visual programming environment that allows everyone - even children - to build fully functional apps for smartphones and tablets science concepts (CS0) and introduction to programming (CS1) skills for students in CS and Non-CS majors. And what's more, App Inventor is blocks-based tool facilitates the creation of complex, high-impact apps in significantly less time than traditional programming environments. The rapidly advancing mobile computing technologies along with abundant mobile software applications (“mobile apps” hereafter) make ubiquitous mobile learning possible. This study helped reveal the educational value of mobile app design activities and the challenges and opportunity of teaching/learning mobile app design. The findings can also encourage teachers to explore and experiment on the potential of incorporating these design learning activities in their respective settings, and to build mobile apps for their diverse needs in teaching. This paper presents some Challenges and Opportunities observed while teaching courses on Mobile Application Development with App Inventor. In particular this paper shows the following topics that instructors should take into consideration when designing their courses with App Inventor: designing User Interfaces, discussing Data communications, Planning and Designing Apps, Visual vs. Textual Programming to name a few.</p>
      </abstract>
      <kwd-group>
        <kwd>App Inventor</kwd>
        <kwd>mobile learning</kwd>
        <kwd>mobile apps</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        App Inventor is a visual programming language developed by Google in 2010 and
currently maintained by the MIT Center for Mobile Learning. App Inventor has been
successfully used to teach programming concepts to beginners in both secondary and
higher education courses[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ][
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. MIT App Inventor is an intuitive, visual
programming environment that allows everyone to build fully functional apps for
smartphones and tablets. Furthermore, our blocks-based tool facilitates the creation of
complex, high-impact apps in significantly less time than traditional programming
environments. App Inventor can be utilized to teach computing and other computing
concepts for student that already have some programming skills. In fact, Gestwicki
and Ahmad[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] suggest that Studio-Based Learning approach and App Inventor can be
used not only to “introduce non CS-majors to concept of Computer Science-not just
programming, but also ideas tend not to be covered in conventional CS1 courses such
as human-computer interaction, incremental and iterative design processes,
collaboration, evaluation and quality assurance” (p. 55). Challenges and opportunities
that teachers should be aware of when preparing a course of mobile applications
development together an introductory programming course as prerequisite are
presented by Soares [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Moreover, Pocket Code was presented as a useful tools to
build app on your own smartphones or tablets [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Pocket Code is a Scratch-like
programming environment for Mobile Devices that allows you to build your own apps,
especially own games, animations, interactive music videos, and many kind of other apps,
directly on your phone or tablet. Blocks-based programming has become the lingua
franca for introductory coding and programming. Studies have found that experience
with blocks-based programming can help beginners learn more traditional text-based
languages. Bau et al.,[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] have been explored how blocks environments improve
learnability for beginners by 1) favoring recognition over recall, 2) reducing cognitive
load, and 3) preventing errors. We have observed that a greater participation in
computer science has led to an escalation of interest in block-based programming. A
lot of students receive their first approach to programming in courses and activities
like Code.org's Hour of Code. Simple blocks allow beginners to compose programs
without struggling with the frustrations of syntax.
2. APP INVENTOR DEMOCRATIZES THE CREATION OF
MOBILE APPS
A project/app made with App Inventor consists of a set of graphic components and a
set of program blocks that provide functionality to these components. Components
include items visible on the phone screen (e.g. buttons, layout, images, label, text
boxes) as well as nonvisible components (e.g. TinyDB, Notifie r, Sensors). App
Inventor has reached a broad international audience for use both in and out of
classrooms and formal learning environments. As of May 2016, 4.7 million people
from 195 countries have created over 14.9 million apps [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. App Inventor is taught to
a broad audience, ranging from grade school to college students. Industry
professionals also use App Inventor, often as end-user developers who write programs
to support their primary work or hobbies [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Another aspect that we highlighted is
that App Inventor is often used outside of formal or academics learning environments.
Decreases in usage during school holidays also support the fact that a significant
portion of people use App Inventor outside of formal learning environments. During
the course the primary learning resources are step by step tutorials. Each tutorial
typically presents on either introducing a new component, visible or not visible (such
as a Tiny DB or List or Canvas) or additional features for a previously introduced
component. The App Inventor resources page on the App Inventor website contains
26 tutorials ranging from beginner level to advanced difficulty [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. For these reasons
many of App Inventor’s users can be categorized as end-user programmers. An
important definitions of end-user programming is "programming to achieve the result
of a program primarily for personal, rather than public use" (Ko 2011,[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]).
      </p>
      <sec id="sec-1-1">
        <title>2.1 THE COURSE</title>
        <p>The course, Mobile Development for Android, was offered during spring semester in
2016 and 2017, and had an introductory programming course as a prerequisite. A total
of 124 students enrolled in the course completed the survey, 72 in spring 2016 and 52
in spring 2017. Students were asked which specific courses should be prerequisites
for the Mobile Development Android course. A database course was also declared by
about 48 percent of students as a recommended prerequisite.</p>
      </sec>
      <sec id="sec-1-2">
        <title>2.2 MOBILE APP DESIGN ACTIVITY</title>
        <p>
          In the first part of course, each students developed some simple apps following
following the tutorials in the textbook authored by Wolber et al.,[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and incorporated
treatment of two main components of App Inventor called Designer to project User
Interface and Blocks to design logical behavior of your own app. The students then
developed their own app design proposals individually or in groups, using the
templates provided by the teacher. The proposal included three main sections:
• Component map, where the students described the Designer components and
how users would interact with their apps;
• A planning table that involved user analysis and future upgrade with this app
in a time scale;
•
        </p>
        <p>App behavior flowchart, where the students presented the logic of app
behavior in terms of blocks and logical programming</p>
      </sec>
      <sec id="sec-1-3">
        <title>DESIGNING THE COMPONENTS</title>
        <p>
          App Inventor has been successfully used to teach introductory programming concepts
to beginners in both secondary and higher education courses [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. We summarized the
subject and our proposal to the students use the principles of security in critical and
aware way using the method of learning by doing; the steps of the project and the
features of this app will be described.
        </p>
        <p>We show the main steps to build an app with a subject about “security” proposed in
the second part of the course. We create a first screen; it has a password TextBox in
which we write a password and a button to verify password, as shown in Figure 1.
Now, the main steps to create own mobile app with App Inventor are described:
•
•
•</p>
        <p>First you choose what you want your app to do, chose the needed components ,
and set the properties for each component using Component Designer.
Second, try to work with the Blocks Editor, using blocks of codes as a visual
code and connected like puzzle pieces, to make the components work just
dragand-drop it into the Blocks Editor.</p>
        <p>Third, test the app with smartphone or or an emulator. We prefer to use the cell
phones, because it’s more fun and it’s easier to test phone-specific functionality.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Adding Behaviors to the Components. Screen 1</title>
      <p>We will start the programming the behavior when the button LOGIN is clicked and
Password TextBox is triggered. Only if the password is equal to the value saved
before, open another screen. Finally, it is possible add and connect blocks as shown in
Figure 2
.</p>
    </sec>
    <sec id="sec-3">
      <title>VARIATIONS</title>
      <p>Even if the students close the App, turn off the cell phone, they can retrieve the stored
data on the cell phone. For this reason, this app is more secure than the apps we can
find in the play store because the data are on the smartphone or tablet. We can modify
the login screen with two or more passwords to enter in the App; we can create many
security systems because we know them. There is not more secure system than that
we can create.</p>
    </sec>
    <sec id="sec-4">
      <title>CONCLUSIONS</title>
      <p>In this paper we have presented a summary of security and the actual issues in High
School’s context. This paper discussed challenges and opportunities that teachers
should take into consideration when designing their courses with App Inventor: In
particular we introduce Pre-Requisite for the course and the need of planning and
designing app.</p>
      <p>App Inventor has the potential to be included in the curriculum of other courses where
students could take a basic course on App Mobile Development early in their
curriculum. For instance, in a Software Engineering course, students could use the
tool to help with requirements and utilize Designer to realize a mockup.
A high level framework for the teaching aspects of security has been proposed,
together with elements of mobile programming with App Inventor, a visual
programming tools that enables students to see and test your own app. In our
experience, we want build an app to make secure and protect personal information.
We will continue to discuss with teachers and obtain opportunities to integrate
important security topics into other non-security courses. We hope our experiences
can be helpful for other teachers to improve the security integration approach in other
courses.
5.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abelson</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>From computational thinking to computational values</article-title>
          .
          <source>Paper presented at the Proceedings of the 43rd ACM technical symposium on Computer Science Education</source>
          , Raleigh, North Carolina, USA..
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Haungs</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clements</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Janzen</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Improving first-year success and retention through interest-based CS0 courses</article-title>
          .
          <source>Paper presented at the Proceedings of the 43rd ACM technical symposium on Computer Science Education</source>
          , Raleigh, North Carolina, USA.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Robertson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>Rethinking how to teach programming to newcomers</article-title>
          .
          <source>Communication of the ACM</source>
          ,
          <volume>57</volume>
          (
          <issue>5</issue>
          ),
          <fpage>18</fpage>
          -
          <lpage>19</lpage>
          . doi:
          <volume>10</volume>
          .1145/2591203
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Gestwicki</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Ahmad</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>App inventor for Android with studio-based learning</article-title>
          .
          <source>Journal of Computer Science in Colleges</source>
          ,
          <volume>27</volume>
          (
          <issue>1</issue>
          ),
          <fpage>55</fpage>
          -
          <lpage>63</lpage>
          :.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Soares</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>Reflections on Teaching App Inventor for Non-Beginner Programmers: Issues, Challenges and Opportunities</article-title>
          .
          <source>Information Systems Education Journal</source>
          ,
          <volume>12</volume>
          (
          <issue>4</issue>
          ),
          <fpage>56</fpage>
          -
          <lpage>65</lpage>
          .
          <article-title>(A preliminary version</article-title>
          appears in
          <source>The Proceedings of ISECON</source>
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bau</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kelleher</surname>
            <given-names>C. Sheldon J.</given-names>
          </string-name>
          , Turbak F.
          <article-title>Learnable programming: Blocks and</article-title>
          <string-name>
            <surname>Beyond.</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>MIT</given-names>
            <surname>App</surname>
          </string-name>
          <article-title>Inventor "</article-title>
          http://appinventor.mit.edu/explore/". Accessed June 18,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Andrew J. Ko</surname>
            , Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret Burnett, Martin Erwig, Chris Scaffidi, Joseph Lawrance, Henry Lieberman, Brad Myers, Mary Beth Rosson, Gregg Rothermel, Mary Shaw, and
            <given-names>Susan</given-names>
          </string-name>
          <string-name>
            <surname>Wiedenbeck</surname>
          </string-name>
          .
          <article-title>The state of the art in end-user software engineering</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <year>2011</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Wolber</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abelson</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spurtus</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Looney</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>App Inventor: Create your own Android apps</article-title>
          . Sabastopol, CA:
          <string-name>
            <given-names>O</given-names>
            <surname>'Reilly Media</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Andrey</given-names>
            <surname>Soares</surname>
          </string-name>
          and Nancy L Martin.
          <year>2014</year>
          .
          <article-title>Teaching Non-Beginner Programmers with App Inventor: Survey Results and Implications</article-title>
          .
          <source>In Proceedings of the Information Systems Educators Conference ISSN</source>
          , Vol.
          <volume>2167</volume>
          .
          <string-name>
            <surname>Citeseer</surname>
          </string-name>
          ,
          <volume>1435</volume>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Musmarra</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <article-title>The safety on your own app with App Inventor</article-title>
          ,
          <string-name>
            <surname>CISIS</surname>
          </string-name>
          <year>2017</year>
          , Torino
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. W.
          <source>Slany Proceedings of the companion publications of the</source>
          <year>2014</year>
          …
          <article-title>-2014 dl</article-title>
          .acm.org
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>