Content uploaded by Zilu Liang
Author content
All content in this area was uploaded by Zilu Liang on May 01, 2018
Content may be subject to copyright.
Beyond Writing Code: A New Pedagogical Model for Teaching App
Development
Zilu Liang, Kumiko Morimura, Yolanda Alberto Hernandez
Graduate School of Engineering, The University of Tokyo, 7-3-1 Hongo, Bunkyo-ku, Tokyo 113-8656,
{z-liang, morimura, y-hernandez}@t-adm.t.u-tokyo.ac.jp
Abstract
The importance of app development education is increasingly gaining attention. However, teaching app
development has a relatively undeveloped pedagogy. Educators tend to borrow the pedagogy of
programming education, ignoring the fact that programming is only one phase in a full app development
cycle. In this paper we propose a new pedagogical model for teaching app development. Our proposed
model addresses three key components in teaching app development: technology (cognitive), project
management (associative) and social context (situative). This model gracefully accommodates the full app
development cycle from conceptualization and planning, to implementation, to usability test, and to release
and maintenance. Based on the proposed model and existing evidence-based teaching practices, we designed
an app development course for college students. The design, implementation, and outcomes of the course are
presented in detail as a case study. The case study provides rich implications to both practitioners and
researchers of app development education.
Keywords: App Development Education, Pedagogy, Programming Education, Quantified Self, Scaffolding,
Project Based Learning.
1. Introduction
The prevalence of mobile devices and inter-connected portable devices gave rise to the burgeoning app economy
globally [1-2]. Regardless of the consensus that app development courses should be implemented in the education
system, teaching app development has a relatively undeveloped pedagogy. Instructors of app development tend to
borrow pedagogical models for teaching programming due to the close relationship between the two disciplines.
Nevertheless, programming is solely one phase in a full app development cycle. Since pedagogical models for teaching
programming cannot accommodate other phases in app development cycle [18], pedagogical practices based on these
model unavoidably lead students to develop broken mental models of app development [3]. Therefore, the top priority
of app development education is to help students construct correct mental models through appropriate course design.
Figure 1. Students’ mental model of app development v.s. a full app development cycle. Students tend to equate app
development with coding and debugging, which is in fact only one phase of a full app development cycle.
Developing good apps requires skills and ability along multiple dimensions, from basic programming knowledge
and skills and project management skill to the ability to come up with innovative ideas that address real social problems.
Teaching app development is thus extremely challenging as it involves learning activities related not only to
technologies (cognitive activities) but also to project management (associative activities) and more importantly to the
creation of a social context for the things being developed (situative activities). The interdisciplinary nature of app
Project Management
Technology
Social Context
Social Context
Technology
Many students think app development is all about programming,
though programming is just one phase in an app development cycle
development education distinguishes it from traditional programming education.
This paper presents a new pedagogical model for teaching app development to college students. This model puts
emphasis on helping students construct correct mental models of app development by incorporating project
management, social context and different genres of technologies into course design. As shown in Figure 1, a full app
development cycle comprises several stages, starting from conceptualizing and planning, followed by prototyping,
front-end and back-end implementation, usability test, and eventually publishing and maintenance [4]. Agile
development further involves multiple iterations over this cycle. However, misconception of app development is
pervasive. Many students perceive app development as a set of programming tasks, ignoring the aspects of project
management and social context. Therefore, helping students construct correct mental models of app development is the
top priority of the course design. The proposed model can gracefully accommodate the full cycle of app development.
We present our course design based on the proposed pedagogical model, which involves tutorials that scaffolding the
technical knowledge and a capstone project that requires students to develop a functional web app. A wide spectrum of
hands-on tasks were designed to help students develop programming skills, project management skills and more
importantly the ability to come up and implement novel ideas to address real social problems. We present the result of a
case study and discuss some open questions regarding teaching app development.
2. Proposed Pedagogical Model: SPT Model
As shown in Figure 2 (c), the proposed pedagogical model for teaching app development comprises three learning
components: technology (cognitive), project management (associative) and social context (situative). The technology
component is the pillar of the pedagogical model, which embraces a set of technical tools needed for the development,
testing, and analysis of apps. A typical technical toolkit usually includes hosting service (either on-premises server or
cloud hosting), source control software, integrated development environment (code editor, debugger, code profiler,
database server explorer, etc.), programming and markup language (C#, python, ruby, javascript, html, etc.). This
component represents most people’s image of app development. The second component is project management that
covers the initiating, executing, controlling and closing the work of the development cycle to generate functional
products. Being able to navigate through the full app development cycle from design phase to implementation and to
analysis is one of the features that differentiate app developer from programmer. Therefore, honing project management
skill is an important goal of app development education. As a special type of software development, app development
naturally inherits the methodology from software development. Since agile development has been proven to be more
effective than waterfall development [5], app development education should familiarize students with the practice of
agile development. On top of the technology component and the project management component, the social context
component is a highlight of the proposed pedagogy model that distinguishes itself from existing pedagogical models
including project based learning. All apps are developed within a social context because all apps serve to achieve some
purposes, may it be used for finding good restaurants or for managing chronic health conditions. Great apps start from
great ideas. A crucial step in the planning phase of app development is to clarify the social context of the app to be
developed: What problems can the app solve in real world? What functions should it achieve? Answering these
questions require developers to look into real world problems and to identify the needs of the target users. Although this
component is critical in app development, it has been habitually ignored in app development education.
(a) (b) (c)
Figure 2. Comparison of pedagogical models. (a) Traditional programming education model focuses only on teaching
technical knowledge, i.e. programming languages and algorithms. (b) Project-based programming education model
focuses also on honing students’ project management skills. (c) The proposed SPT model incorporates learning
activities not only related to a wide spectrum of technical knowledge and project management, but also related to
situating the apps being developed in concert social context.
Figure 2 highlights a comparison between the proposed SPT model for teaching app development and the existing
ones for teaching programming. Model (a) is the most widely used model for teaching programming where the focus is
simply the technical knowledge, or more specifically, the programming language being taught. Instructors usually start
the lecture with basic programming concept and then assign small tasks to students. In most cases the tasks are
independent of each other and thus no project management is required. As an improvement of Model (a), the project
based learning model depicted in Figure 2 (b) incorporates project management into the learning process. This model
Technology
Technology
Project Management
Technology
Project
Management
Social Context
encourages instructors to assign larger-scale programming tasks to students which can be decomposed into multiple
interdependent small tasks. Since completing these interdependent small tasks requires careful planning, implementing,
monitoring, and evaluation, students’ project management skills can be development in flux. Previous studies have
shown that project-based programming education generates better learning outcomes; however, it cannot accommodate
the special needs of app development education as it still exclusively focuses on programming alone. The upstream
(conceptualizing, planning, prototyping) and downstream phases (usability test, documentation, maintaining) in a full
app development cycle thus cannot be addressed by the project based programming education model. These phases
cannot be taught in an empty shell; a concrete social context is indispensable for students to understand the importance
and execution of these phases. It is the social context that creates relevance between the technologies and project
management and students. In light of this, our proposed model for teaching app development thus added the social
context component on top of the project-based model. The social context can either be predefined by the instructors and
the educational institutes or by students.
3. Course Design based on Proposed SPT Model
Our previous experience suggests that there are two pitfalls in teaching app development. First, many courses do
not cover the full cycle of app development and in the end is downgraded into a programming course. The whole course
focuses exclusively on the implementation of a given idea, while the phases of conceptualizing, planning, and usability
testing are neglected. This “programming as app development” approach will drive students to develop a broken mental
model of app development. Second, many courses do not generate functional apps as outcome. App development
requires months of intensive work (on average 480 hours), but the lecture time is extremely limited (<30 hours). As a
result, most projects halted at the debugging phase. Students would not even be able to implement their apps
successfully, let alone conducting the usability test and iterating over the development cycle. Of course, instructors may
argue that developing a product is not the goal of an app development course. However, having a functional app that
students can actually use by themselves or by others will undoubtedly boost their confidence and augment the sense of
achievement.
When we designed our course based on the proposed SPT model, we tried to avoid the above two pitfalls. On the
one hand, we planned lectures to cover the full cycle of app development and aligned each phase of the cycle with the
project management approach. On the other hand, we started the lecture with a sample app that had been already
implemented and tested. Students can work on top of the sample app [13] rather than starting from scratch. In this way,
they can spend their limited time focusing on implementing the new features that are specific to their designed app;
while reuse the common features that the new app and the sample app share. The implemented course is depicted in
Figure 3.
Figure 3. Course design based on the proposal SPT model for teaching app development.
(1) Technology component: the technical knowledge covered in this course were decided based on the knowledge
needed to understand and extend the sample app. Key learning content included version control on visual
studio team foundation service, Microsoft Azure Cloud service, ASP.NET MVC framework, Fitbit API, data
visualization, SQL database, programming languages (C#, javascript, razor), markup languages (html, css),
usability test basics, and data visualization. These are some of the pillar technologies for app development
nowadays.
(2) Project management component: for project management we selected the SCRUM framework [6-7]. SCRUM
is a very effective and efficient agile framework for managing work in software development. It defines a
flexible and holistic product development strategy that iterates over multiple short sprints as contrast to the
traditional sequential waterfall approach. It has been increasingly used in the domain of learning to foster
self-regulated and cooperative learning [8-9].
(3) Social context component: we selected the “Quantified Self” movement as the social context of the whole
course, as it is relevant to all students regardless of their background and it can stimulate a wide spectrum of
Technology
Project Management
Social Context
new ideas. The Quantified Self is a social movement that incorporates technology into data acquisition on
aspects of people’s daily life. Originated in California in 2007, this movement encourages people to gain
“self-knowledge through self-tracking with technology”. As more and more people start tracking their health,
sleep and daily activities, developing and researching on self-tracking apps has been increasingly gaining
popularity.
Table 1. Syllabus of Designed Course
Lecture
Tutorial
Hands-on Task
Assignment
Understanding
Sample App
#1
Introduction
- Subscribe to Microsoft
Imagine
Complete the subscription
#2
Version Control
- Install Visual Studio
- Set up repository in Visual
Studio Team Service
Foundation
Configure version control in
visual studio
#3
ASP.NET MVC
Framework
- Download source code of
sample app
- Deploy sample app to
Microsoft Azure cloud
Complete the deployment of
sample app
#4
Fitbit API &
FITBIT.NET
library
- Configure Fitbit API
credentials
Obtain Fitbit API credential
for the app
#5
Database
- Set up database on Microsoft
Azure
- Enable database migration
Add and delete one column in
a database table
#6
UI Design
- Customize UI
Customize the theme of UI
#7
Data Visualization
- Try out different types of
visualization
Implement another type of
data visualization
Mid-Term
Report
Capstone Project Summary
Capstone
Project
#8
App Development
Cycle & SCRUM
- Revise app summary
- Plan for two sprints
Create the backlog
#9
Sprint-1
- Work on Sprint-1
Deliver product version 1.0
#10
Sprint Review
- Review Sprint-1
- Revise the plan of Sprint-2
Revise the backlog
#11
Sprint-2
- Work on Sprint-2
Deliver product version 2.0
#12
Usability Testing
- Conduct cross-team usability
test
Conduct usability test with at
least 3 users
#13
Polish-Up
- Create a revise plan
Polish up the app
#14
Final Presentation
- Course summary
- Give final presentation
Final Report
App Documentation
The corresponding syllabus is shown in Table 1. The first half of the course consists of hands-on practices of
deploying the sample app to Microsoft Azure Cloud, as well as tutorials that scaffold the essential technical knowledge
related to the implementation of the sample app. The second half of the course involves students working on a capstone
project in pair. They will learn how to manage the development of their apps using SCRUM. The design of the syllabus
is in line with evidence-based teaching practices such as scaffolding [14-15], project-based learning [16], and
cooperative learning (e.g. pair programming). Students will not only have rich hands-on experience of app development,
but also develop soft skills including team communications and project management.
4. Case Study
4.1 Students Enrolled
We delivered an app development course targeting at university students last semester. In total 10 students had
showed up in class, and 8 out of them regularly attended the lectures (3 female students, 4 postgraduate students). Half
amount of the students had no experience in app development and two students had no experience in programming at all.
As for the purpose of taking the course, all students aimed to gain app development experience. Five out of the eight
students hoped to learn more about the Quantified Self movement. Four students wanted to learn about Fitbit API. One
student also wanted to more experience with development in cloud environment. The students were grouped into four
teams during the capstone projects.
4.2 Learning Outcomes
Three teams successfully implemented and revised their apps based on usability test, while one team did not
complete the implementation of the key features. Figure 4-6 demonstrate the screenshots of the successfully developed
apps NokoriMe, RunningBit and PeacefulSleep. It is worth mentioning the NokiriMe was also extended into a short
paper and was presented in the 2018 General Conference of the Institute of Electronics, Information and
Communication Engineers.
Figure 4. Screenshots of stress tracking app NokoriMe. (Left) Front page. (Right) Visualization of stress patterns and
factors that correlate to stress.
Figure 5. Screenshots of running tracking app RunningBit. (Left) Front page. (Right) Visualization of running heart rate
versus running speed.
Figure 6. Screenshots of snoring tracking app PeacefulSleep. (Left) Front page. (Right) Visualization of snoring count
and time.
5. Discussions and Conclusions
We have proposed a pedagogical model for teaching web application development. We presented course design
based on the proposed SPT model and a case study of an app development course delivered last semester. Our case
study showed that three out of the four teams successfully completed their app development projects and delivered
functional app as final outcomes. One team further presented their app in a domestic academic conference. The social
context (i.e. the Quantified Self) that we set out in the course helped to connect the technical knowledge to students’
own life and thus triggered great learning interest. Using SCRUM, students learnt how to manage app development
project and how to iterate over short sprints to deliver functional products in an efficient way. However, we encountered
several difficulties during teaching. On the technical aspect, the subscription to Microsoft Imagine consumed much
longer time than expected and slowed down the progress. The technical knowledge being taught had been undergone
constant changes. Instructors needed to devote extra hours of work to ensure that what they are teaching is up-to-date.
On the pedagogy aspect, students make progress at different speed and it was challenging to design the tasks that do not
overwhelm beginners and do not make experienced ones feel bored.
This study also has several limitations. First, the number of students was small in the case study. Therefore the
observations in this lecture may not be generalized to a large population. Second, the course design involved
preselection of the technologies being taught. Students had limited freedom to choose the technologies that they could
use to develop the apps. Third, the educational benefit of the proposed SPT model was not evaluated in comparing to
existing models. Validating the proposed pedagogy model requires future research with a larger sample of students.
References
1. H Mendelson, K Moon. Modelling success and engagement for the app economy. Proceedings of the 2018
World Wide Web Conference, 569-578, 2018.
2. M Mandel, M Di Ionno. Japan’s App Economy. Progressive Policy Institute, 2016.
3. MB Rosson, JM Carroll, H Sinha. 2011. Orientation of undergraduates toward careers in the computer and
information sciences: gender, self-efficacy and social support. ACM Transactions on Computing Education
11(3), Article 14.
4. IBM. Application development life cycle: an overview.
https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zappldev/zappldev_11.htm. Accessed
on April 25, 2018.
5. R Vallon, L Wenzel, ME Bruggemann, T Grechenig. An agile and lean process model for mobile app
development: case study into Austrian industry. Journal of Software 10 (11):1245-1264, 2015.
6. J Sutherland, K Schwaber. "Scrum Guides". ScrumGuides.org. Retrieved April 27, 2018.
7. K Schwaber. SCRUM Development Process. In: Sutherland J., Casanave C., Miller J., Patel P., Hollowell G.
(eds) Business Object Design and Implementation. Springer, London, 1997.
8. T Linden. SCRUM-based learning environment: fostering self-regulated learning. Journal of Information
System Education. (In press)
9. AJ Magana, YY Seah, and P Thomas. Fostering cooperative learning with Scrum in a semi-capstone systems
analysis and design course. Journal of Information System Education. (In press)
10. Z Liang, MA Chap-Martell. Framing self-quantification for individual-level preventive health care.
Proceedings of HEALTHINF, 336-343, 2015.
11. PB Shull, W Jirattigalachote, MA Hunt, et al. Quantified self and human movement: a review on the clinical
impact of wearable sensing and feedback for gait analysis and intervention. Gait & Posture 40(1):11-19, 2014.
12. V. Rivera-Pelayo, V. Zacharias, L. Muller, S. Braun. Applying quantified self approaches to support reflective
learning. Proceedings of the 2nd International Conference on Learning Analytics and Knowledge, 111-114,
2012.
13. Z Liang, B Ploderer, W Liu, Y Nagata, J kulik, Y Li. SleepExplorer: a visualization tool to make sense of
correlations between personal sleep data and contextual factors. Personal and Ubiquitous Computing 20 (6),
985-1000, 2016.
14. A Vihavainen, T Vikberg, M Luukkainen, M Partel. Scaffolding students’ learning using test my code.
Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education,
117-122, 2013.
15. D Wood, JS Burner, G Ross. The role of tutoring in problem solving. J Child Psychol Psychiat 17:89-100,
1976.
16. E Nuutila, S Törmä, P Kinnunen, L Malmi. Learning Programming with the PBL Method — Experiences on
PBL Cases and Tutoring. In: Bennedsen J., Caspersen M.E., Kölling M. (eds) Reflections on the Teaching of
Programming. Lecture Notes in Computer Science, vol 4821. Springer, Berlin, Heidelberg, 2008.
17. DE Murray, TJ McGill, D Toohey, N Thompson. Can learners become teachers? Evaluating the merits of
student generated content and peer assessment. Issues in Information Science and Information Technology
14:21-33, 2017.
18. NM Noor, J Harun, B Aris. Application of the pedagogical and andragogical model in web-based learning
instruction among non-major computer science students’ learning programming. In Proceedings of the
International Conference on Teaching and Learning in Computing and Engineering (LaTiCE), 2014.