
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