Handheld systems, such as smartphones and tablets are now the most common way for people to access and interact with computing services. The demand for application development skills is therefore growing at a breathtaking pace. These skills, however, are multi-‐ faceted, requiring students to master computer science and engineering principles, to learn the details of specific mobile application platforms, and to design artistic and engaging user interfaces that respond to how, where and why handheld applications are used. This course will cover the fundamental programming principles, software architecture and user experience considerations underlying handheld software applications and their development environments. To bring these concepts alive, the course will involve in-‐depth, hands-‐on examples, implemented in the Android Platform, the fastest growing segment of the handheld system user base. Students will apply these teachings, also using the Android Platform, in laboratory projects and in a large-‐scale semester project. Note: This course is part of a cross-institution course sequence. This course and another, led by Drs. Douglas Schmidt and Jules White of Vanderbilt University, have been designed to complement each other. Therefore, some of the programming assignments and the course project for both courses will be coordinated. This course focuses on handheld systems and the design of user-facing applications, and will be taught first. The Vanderbilt University course, Pattern-Oriented Software Architectures for Concurrent and Networked Mobile Devices, will focus on systems programming topics, such as operating system and background processing, networking, and computing cloud integration, The Vanderbilt University course is currently scheduled to be taught in late Spring 2014. Nevertheless, each of these courses stands alone. Students are not required to take both. Those who do, however, will gain a much more detailed, end-to-end understanding of handheld systems and their applications.