486 Special Topics: Mobile Programming
Professor David Wolber, University of San Francisco

Description: This course provides an introduction to mobile software development for those with Java programming experience. Students will learn to build mobile apps for phones and tablets through the study and use of a complex software development kit (the Android Java SDK). Students will explore the emerging mobile ecosystem, location-aware software, and advanced programming topics including inheritance, polymorphism, threads, sensors, APIs and databases.

Prerequisite: CS 245 or CS 212 or permission of instructor
Office Hours: Tuesdays, Wednesdays, and Thursdays, 2:30-3:30, and by appointment

Mobile Programming at three levels:

  • Prototyping with App Inventor
  • Using the high-level library, Java Bridge
  • Using just the Android SDK

What you'll get out of the course:

  • The ability to create Android apps of many types
  • Experience working with a large code library and system
  • In-depth, applied study of inheritance, polymorphism, interfaces, and software patterns
  • Exploration of mobile computing and its impact on society
  • Experience formulating ideas and turning them into useful software
Resources
Learning Android
, Marko Gargentausf safari link  amazon
Programming Android
, Ziguard Medneiks, et.al., usf safari link amazon
App Inventor: Build your own Android Apps
, David Wolber, et.al., usf safari link  amazo

Course Structure
The course is a mixture of lecture, small and big group discussion, in-class programming assignments, and work on group projects. You'll explore mobile apps in various areas, including games, SMS, Location-aware, data-intensive, and web-enabled. You'll build quick versions of apps using the App Inventor visual language, then rebuild using Java, the Android SDK, and a high-level library. As the course progresses, you'll write lower-level code and workmore directly with the complexities of the Android base system.

Attendance
Because of the nature of the course, attendance is mandatory. Typically, there will be a required submission at the end of each session. Please bring a Medical note for all absences. If you miss more than two sessions I'll ask you to drop the course.

Grading     

 Midterms(2)   45% 
 Portfolio  35% includes all projects except for final project, and all other assignments
 Final Project  20%  this includes multiple versions and deliverables.