Cross-Platform Mobile App Software Development in the Curriculum

Introduction Since its introduction in 2007, the Apple iPhone has changed our perception of how mobile phones should look and how consumers use them. At the same time the iPhone has helped to make Apple the most valuable company in America. However, even with its runaway commercial success, the Apple iPhone is not the current smartphone market share leader. Heavy competition from Google Android, Microsoft Windows Phone, and Research in Motion Blackberry, along with fickle consumers, keep the smartphone market from being dominated by a single platform. Recent statistics from market intelligence company comScore listed the U.S. Smartphone platform market share for January 2012 as 48.6% for Google Android, 29.% for Apple iOS, 15.2% RIM Blackberry, and 4.4% Microsoft Windows Phone ("comScore Reveals," 2012). As an indicator of how quickly market share can change, the low market share for Windows Phone is predicted to increase to 20.9% by 2015 ("IDC: Android", 2012). No clear platform leader does present a conundrum for professional software developers as each mobile device platform maker provides software development tools for their platform. Because the vendor's tools have little in common, an app that runs on multiple smartphone platforms must be written for each of those platforms. Choosing a mobile platform and toolset is especially difficult for educators who have little free time to become skilled on any one platform, let alone several. The Department of Computer and Information Technology at Purdue University in West Lafayette, Indiana has offered courses in app development for mobile devices since Fall 2002. Each semester all students have been required to write code using the native app developer tools provided by the platform vendor. During the Fall 2011 semester I am trying a new approach of using cross-platform mobile app development tools which should allow students to develop apps for the platform of their choosing. In this paper, I discuss my experiences teaching with these tools including an overview of how apps can be built using these cross-platform technologies, our course pedagogy, the learning topics we covered, problems we encountered, and our recommendations for others considering the same approach. Background By design, the curriculum in the Department of Computer and Information Technology (CIT) at Purdue University in West Lafayette, Indiana is focused on the application of Information Technology (IT) rather than on theoretical computing. To this end, CIT's course learning objectives are designed so students learn through hands-on, practical experience. This characteristic differentiates our courses from those of the Computer Science (CS) or Electrical and Computer Engineering (ECE) departments, which are more theoretical based. The typical student progression through our curriculum includes a minimum background of three programming courses, including an introductory course using C#, a web application development course using HTML and C#, and an intermediate object-oriented programming course using Java (Harriger, Lutes, & Purdum, 2007). I have been teaching mobile app development courses for CIT beginning in the Fall 2002 semester. These courses, CIT 355 Software Development for Mobile Devices 1 and CIT 425 Software Development for Mobile Devices 2 (Lutes, 2004), have proven to be popular and have been offered nearly every semester since. The typical student is a junior or senior majoring in CIT. Occasionally undergraduate and graduate students from other related disciplines such as CS, ECE, and Computer Graphics also take the courses. Typical enrollment figures are between 12 and 20 students per semester. The enrollment numbers are limited by the number of workstations and mobile devices in our department's mobile computing laboratory. My original goal for developing these courses was simply to motivate more students to choose careers in software development. …