paced and systematic manner. In a mobile device
software development course, the material that must
be covered is so broad that new approaches to
delivering course content must be developed and
employed.
This paper describes the method by which we
teach a mobile device software development course.
In Section 2, we explain in detail the challenges
facing the instructor in this app development course
and explain the approach we take in addressing these
challenges. In Section 3, we talk about the structure
of the course itself. In Section 4, we elaborate on the
Creative Inquiry Program at our university and how
it supports this course and helps generate ideas for
app projects. In Section 5, we describe some of the
apps that have emerged as the result of this effort. In
Section 6, we summarize the results of student
evaluations. In Section 7, we discuss future plans..
2 CHALLENGES / APPROACH
We find four major challenges facing an instructor
of a mobile device app development course.
The first challenge arises due to the fact that the
content is very new and also constantly changing.
The Apple iOS
TM
and Google Android
TM
operating
systems (OS), for example, are updated at least
annually; keeping up with the major changes in the
OS and the associated SDKs is difficult. Textbook
authors, unfortunately, cannot possibly keep up; on
the day that a textbook is published, the OS and the
SDK it references are already one version behind the
latest stable version. And so the first challenge is
finding resources that can help the student learn
about the latest version of the OS and SDK in a
timely manner.
The second challenge is that the material that has
to be covered is very broad. In iOS, this includes
learning the syntax of a language, Objective-C,
whose syntax is unlike any of the other more
commonly taught languages such as Java, C++, C#
or Python. A student wanting to take this app
development course is unlikely to be familiar with
Objective-C. (On the Android platform, this
challenge is not as great since the language used for
Android apps is Java which is known to many
students.) On both platforms, however, new course
material also includes touch input artefacts such as
buttons, sliders, segmented controls, and date
pickers as well as input finger movements such as
gestures, swipes, and multi-finger touches. The
material includes a variety of views such as web
views, table views, and views that present video and
animation, from and to which students will have to
learn how to program transitions.
The course material must also include a variety
of components and features of smartphones that are
available for software control, components such as
the still and video camera, the global positioning
system (GPS), the accelerometer, a gyroscope,
maps, and a compass. The material also includes
new sources of streaming data such as RSS feeds
and Twitter feeds. The instructor may also want to
cover sending and receiving short message service
(commonly called SMS or text) messages, or
sending and receiving email. Yet another content
topic that the instructor may want to include is
graphics for animation, using OpenGL for example.
The third challenge is how to have a discussion
of good database design and implementation. An
app may require a local database that resides in
persistent memory on the mobile device, or may
communicate with an external database that resides
on a server in the cloud and accessed via web
services. In many instances, both an internal and an
external database are required. Unfortunately, in
many computer science programs, a database design
course is an elective and not required. If such is the
case at your university as it is at ours, then a
minimum of one to two weeks of lecture will be
required to introduce very basic database design
concepts to allow for an internal and external
database implementation in the app.
The fourth and possibly the most difficult
challenge is how to make the course relevant, i.e.,
how to make the course as close to professional app
development as possible. Our goal was to avoid
having the students develop toy apps that have no
purpose other than as an exercise in programming.
How do we give our students an experience that is
close to real world app development? How do we
provide students with app ideas that have real-life
application? The challenge was to find projects that
would give our students this type of experience. We
found our answer in Creative Inquiry, a university-
wide program designed to give undergraduate
students experience in designing and developing
solutions to research problems posed by faculty
members, researchers and staff.
These four challenges require us to rethink the
manner by which we teach this course. The approach
we have chosen (which we detail in Section 3) is a
variation of the “flipped” or the “inverted”
classroom (Walvoord and Anderson, 1998;
DesLauriers, Schelew, and Wiemanm, 2011). This
variation consists of a combination of (a) minimized
lecture on the part of the instructor, (b) open
CSEDU2014-6thInternationalConferenceonComputerSupportedEducation
72