Next year, it will be much easier
to judge this, as we have examples to
show them from this year’s cohort.
Two-thirds of the way through
the course, we introduced more conventional Android development using Eclipse ( http://bit.ly/Noa1VQ)
and helped the students to map between the blocks’ representation in
App Inventor and the Java code they
were learning in their other courses.
The more experienced programmers
lapped up Eclipse, while the novices
despaired.
At the end of semester, after a showcase of student-nominated contestants for best app, we were faced with
94 portfolios to mark, including learning log entries. These logs can be quite
entertaining, and offered us useful
insight into the students’ experiences
with App Inventor.
Many of the students had become
quite frustrated by bugs with the App
Inventor environment; for example,
“it [App Inventor] was still in the
beta version and lots of bugs and er-
rors kept occurring, which caused
my app to fail or delete parts of code
randomly.” Or, “App Inventor is very
much a beta-stage product, missing
some vital stuff, and while using it to
complete my app, it corrupted a few of
my screens, resulting in me having to
redo work that had taken me a while
to create.”
There is a new version of App In-
ventor that we will use next academic
year, so I am hopeful these issues will
be resolved.
Students who were new to program-
ming certainly appreciated App Inven-
tor, commenting: “As App Inventor
works in modules, I found that I now
understand how the programming
process is structured better than I
would have if we had dived straight in
with Eclipse.”
“I remember at the start of the
course remarking that App Inventor
would be beneficial to me as a begin-
ner programmer, as it breaks down
the structure of conventional program-
ming and would let me understand the
big picture from the beginning. Now,
when I am at the end of this course, I
know that is exactly what it has allowed
me to do.”
“I really loved making my app, from
the design stage through to sorting
out that last piece of code. It has been
a nice learning curve and I can con-
fidently say that I am proud of what
came out of it.”
However, the more-experienced stu-
dents were exasperated by it. Some of
the more polite comments from this
group included:
“At the beginning of this course, I
was very excited to create my own app,
as I loved programming at school and
so could not wait to get started. In the
early stages, I found App Inventor very
easy to use and useful; however, as I
began to create more complex apps,
I found that App Inventor was very
restrictive…I personally found Eclipse
better to develop Android apps in, due
to more flexibility and freedom with
the software; even though this is chal-
lenging, the reward is much greater
when completing each task.”
It is gratifying that this student
was intrinsically motivated by prob-
lem- solving in a more challenging
environment.
Another student reflected on the
transition between environments as
follows: “although Eclipse seems to
be very difficult to get to grips with at
first, after a little time working in App
Inventor, it begins to become more of
a hindrance than a helping tool, and
the user begins to find the limits of
the program.”
One of his classmates had an alter-
native view: “While I thought App In-
ventor was too simple, and as a result
hindered the possibilities, I would now
go so far as to say that the ease of use of
App Inventor makes it a fantastic entry
point for future programmers, whereas
the Eclipse IDE has so many points that
can go wrong and, as a result, derail the
stability of the program.”
Would I recommend using App
Inventor to teach first-year computer
science students to program? The an-
swer is a qualified “yes.” If you have a
mixed-ability class, I suggest spending
perhaps six weeks on it before moving
the students on to a more fully fea-
tured development environment. If
you are going to do this, the students
will need a lot of support in managing
the transition (taking their training
wheels off!).
If you are teaching complete novic-
es, non-computer science students, or
younger students, or a course in which
the emphasis is on the product ideas
rather than implementation, App In-
ventor will be ideal, as it was developed
with these scenarios in mind.
One last thought: in my experience,
computer scientists love to complain
about the technology they are required
to use. It is part of a geek-macho culture
to blame development tools in order to
show one’s programming prowess. So
do not take student griping to heart too
much, as there may be no “Goldilocks
Zone” for instructors where everything
is “just right.”
Judy Robertson is a senior lecturer at Heriot-Watt
University.
© 2014 ACM 0001-0782/14/05 $15.00
Example code from a student’s game