Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Abstract—App Inventor (AI) for Android is a block- building mobile applications that can make the students more
based programming environment that enables nonprogrammers motivated about programming [7].
to create fully functional mobile applications for Android phones
by dragging and dropping code blocks. Since the launch of AI, In our workshop, which targeted high and middle school
many improvements were applied to it, which aimed to increase female students, we taught mobile programming using the
its effectiveness in promoting programming education for improved version of AI (AI2). Thus, in this paper, we will
beginners. In our workshop, which targeted high school female describe our experience in using AI2 in our workshop, how it
students, we taught mobile programming using the improved helped in our teaching method and discuss the improvements
version of AI2 (a free cloud-based tool). Thus, in this paper, we and limitations we observed of AI2 over its previous version.
will describe our experience in using AI2 in our workshop, how it We will also show the activities provided to the students and
helped in our teaching method and discuss the improvements and the ideas of mobile apps created using AI2. The final mobile
limitations we observed over the previous version of the tool. We apps as well as the survey results showed how effective was
will also show the activities provided to the students and the the workshop and how the improved version of AI has
mobile apps that were created using AI2. The final apps as well enhanced the teaching process.
as the survey results showed how effective was the workshop and
how the improved version of AI has enhanced the teaching Our contribution in this paper is in two-folds: (1) reporting
process. our experience in conducting a mobile applications
development workshop for young female students, and (2)
Keywords—App Inventor 2; Programming; Mobile App; providing insights into AI2 and its improvements and
summer workshop; Learning Improvement limitations over its previous version.
I. INTRODUCTION The rest of the paper is organized as follows: Section 2
Many of recent research have shown that teaching summarizes some previous work in using AI for programming
programming in simple methods and providing concepts in education. Section 3 presents our workshop logistics, design
progressive procedure motivate students to both programming and AI2 improvements. Section 4 discusses our evaluation and
and computer science fields. Using block-based programming lessons learned from using AI2 and the students' final projects
environments such as App Inventor (AI) for beginners, as well as the results of the pre and post workshop survey.
simplify the understanding of many programming concepts. Finally, section 5 concludes the paper with our future outlook.
Since AI relies on clicks, and drag and drop, it does not require II. RELATED WORK
writing code, which may cause students frustration with simple
errors such as forgetting a comma (,). In this section we will focus on previous workshops that
utilized AI as a medium for teaching programming. The reason
Lately, block-based programming was the approach for behind this approach is to understand the different ways such
many summer workshops e.g. [1] [2] as well as schools e.g. [3] workshops used AI in teaching. While searching popular
and universities e.g. [4]. All of these workshops and courses databases such as ACM, IEEE and Sciencedirect, we found
taught programming using AI. Such workshops were not only around 21 papers that are using AI for teaching programming.
limited to students, but were extended to include also teachers Table 1 summarizes these previous experiences which will help
either in the field of computer science or others e.g. [5]. us in shaping our workshop objectives.
In 2013, MIT released App Inventor 2 (AI2) and since then From table 1 we can observe diversity in previous
many changes and improvements happened to this version. experiences in terms of learning period lengths or in terms of
They made it attractive to a wide range of audiences like teaching methodologies. Learning periods ranged from two
educators, designers, researchers and hobbyists [6]. In semesters such as [9], up to 3 weeks e.g. [10] to one week or
comparison with other block-based environments like Scratch, several days e.g. [1] [11], or even one day e.g. [12]. This
App Inventor looks more powerful for beginners through diversity in workshop length affected the content of the
delivered curriculum. We found exploratory courses that
Target
Ref Context Period Workshop Content
Audience
- Event handlers.
- Functions
- Video and sound using high-level components.
Taught AI in One
[4] College student - Abstract thinking, logic and traditional programming skills, e.g., variables, list, etc.
college course semester
- Persistent data
- Accessing APIs,
- Multi-user apps.
Five video tutorials provided to introduce 10 programming Concepts, which are:
- Sequence
- Event-driven programming
- Boolean values
Summer camp - Random number
High school
[1] workshop One week - if-then-else
students
- Boolean conditions
- Variables
- Initialization and increment of variables
- Datatype conversion
- Procedures/methods
App inventor was one of many different tools used in this course. It was introduced as one of
High school 14 to 16-year-
[9] One year 12 topics and used to develop the following computational thinking concepts: sequence,
course old students
event, event handler, conditional, parallelism and loop.
The 3rd week of the camp taught the students how to develop an Android app and focused
on concepts such as:
- Objects
- Programming environments (Block Language and Java)
3 Weeks
- Events
Summer camp (3rd week High school
[10] - Decision statements
workshop focused on students
- Loops
AI)
- Methods
- Understand how to read documentation
- Create GUI and code its component
- Use phone sensor components and services (camera, text messaging)
The workshop was provided through a group discussion and questions emerging from three
introductory AI collaborative programming exercises (android apps) which introduce
Exploratory Middle school
[12] One day students to simple programming concepts such as: counter, variables, conditional statements
workshop students
and if-then checks, image clicked using the phone camera as well as the use of the
TextToSpeech command.
eighteen to join our workshop. The workshop aimed to Each day started with an activity that leads students to
introduce some of the main programming concepts in an understand the concepts presented at that day. Then, the
interactive way using AI2. The programming concepts that concepts were briefly described to them by providing their
were presented are: Variables and methods, Lists, If statement, definition, types -if any - , and when to use them. After that, in
Loops and Databases. The concept of Database was presented each day there were a mobile application with an idea related to
in this year’s workshop as an improvement over our previous the concept, each student should implement it using AI2. Table
workshop [8] also most of the previously surveyed workshops 2 shows the discussed mobile applications' ideas.
have taught this concept e.g. [1][3][10], which encouraged us TABLE 2. MOBILE APPS BUILT FOR EACH PROGRAMMING CONCEPT
to offer it.
Concept Mobile Application
Next, we will discuss our workshop rationale and Variables and methods Screen Background Color.
objectives, its presented topics and activities and the new Lists Purchases List.
improvements of AI2. If statement Traffic Light.
Loops Odd Numbers.
A. Rationale Databases Value Guessing Game.
Three objectives drove our workshop design, namely:
1) Market demand for mobile applications' developers: In a nutshell the main activities and mobile apps covered in
according to 2015 statistics [13] the use of smart phones each day were as follows:
will be 32.63% higher than it was in 2014. Also, the First Day: we spent it describing AI2 interface.
usage of smartphones will become even higher in the
next few years. Second Day: we explained variables and methods by applying
active learning techniques. We used boxes and accessories as
2) Easiness of Block based programming environment: In an activity, each box accepts specific type of accessory where
order to make programming concepts easier to the boxes are “variables” and accessories are “values”, then the
understand, we decided to use block based programming final result should be to create a bunch after filling the boxes.
environments that helped attract students who might not After introducing the students to how to use AI2 to apply
otherwise be interested in a pure computing workshop. variables and methods in programming, each student developed
3) Apply active Learning: In our workshop, we wanted a a “Screen Background Color” app that contains a button when
comfortable workshop environment where students are clicked it changes the background of the screen.
free to move, talk to each other, and make some activity Third Day: we initially introduced the “lists” concept by
together, as cooperative learning. We also wanted to applying "Searching for The Treasure" activity. This activity
make the time, material, and tools suitable for students started with an initial hint that leads to another hint until the
from a variety of backgrounds and interests by including treasure was found. The mobile app that the students developed
events and activities to understand concepts rather than was “Purchases List app”, where a user enters his purchases list
theoretically explaining them. item by item, then displays the purchases as a list by clicking a
B. Topics and Activities display button. We also presented canvas and graphics topics
by the end of the day.
The workshop was a mixture of technical, informational
and social activities meant to deliver programming concepts in Fourth Day: we presented two concepts, (1) “IF statements”
an enjoyable way. At the beginning of the workshop, the and (2) “Loops”. The IF statement concept started with
students were divided into four groups; each contains four “Feather Colors” activity, where we gave each group three oil
students with different ages. The workshop started with some colors with written instructions to follow while color mixing.
ice-breaking activities, and then sessions commenced. Our The instructions were written using if statements to specify
sessions throughout the 6-days program followed this strategy: what color they will get if they mix two specific colors. Then
students built the “Traffic Light” mobile app, which change the
78%
Post 19%
3%
44%
(3) (4)
Pre 56%
FIGURE 1. STUDENTS' PROJECTS: (1) GUESSING GAME, (2) LEARNING ARABIC
69%
LETTERS, (3) INFORMATION ABOUT MOBILE & ROBOTICS PROGRAMMING AND
(4) MEDICINE REMINDER.
40%
B. Post survey results
Post 53%
Two surveys were distributed at the beginning and at the 100%
end of the workshop. Each survey has two types of questions,
the first type measures the students' knowledge about some
0% 20% 40% 60% 80% 100%
concepts related to programming, the second type measures
their motivation and tendency towards the programming field. Mobile Programming is hard
As for measuring the knowledge gained by the students Programming Concepts Complicated
before and after the workshop, the pre and post survey I am interested in programming field
consisted of six questions that covered the programming
concepts taught in our workshop. Each concept was tested with
FIGURE 3. STUDENT’S KNOWLEDGE AND TENDENCY TOWARD PROGRAMMING
one question that could be answered by one of three possible
answers: (correct, wrong and I don’t know). The results in
V. LESSONS LEARNED
Figure 2 show an increase in students understanding of the
presented programming concepts. The figure also shows the Despite the new improvements of AI2, yet there were some
aggregated correct versus wrong and I don’t know answers for limitations that students and instructors faced while using it,
all questions. The results show that most students were having among these limitations are:
wrong information at the beginning of the workshop, however,
x MIT App inventor did not work on some students’
after the workshop, their knowledge has increased, this is
devices, and
shown in the decrease of wrong and I don’t know answers.
x In programming blocks, variables initializations
sometimes does not work with 0, they must be
initialized to an empty text (“ ”), and there is no known
reason for that.