Classes‎ > ‎

CMPS 121 Spring 2012 - Mobile Applications

  • Time and location: TuTh 12-1:45, Engineering 2, 192
  • Instructor: Luca de Alfaro (, please include "CMPS 121" in the email subject line)
  • Instructor office hours: Thu 2-3:30 (appointment link)
  • TA: Huascar Sanchez (, office hours: Tuesdays 10:30-11:30 in Baskin Engineering 312C/D.
  • Reader: Jon Gill (, office hours: Thursdays 2-3 in Baskin Engineering 312 C/D.
  • Class discussion group (you need to log in with your account)  Students should join this group for the duration of the class, as it is what will be used to send announcements.
  • Ecommons will be used for assignment submission.

Lectures, Homeworks, and Reading Assignments

Course Material

See here for important advice on the course material (you will need to be logged in using your Google Account to access this page). 

Textbook: Professional Android 2 Application Development, by Reto Meier.  You can download all the source code used in the book.
Phone/tablet: You will need an Android device on which you can install Android applications running Android 2.2 or later for the class.  See above site for details.
Laptop: Having a laptop is highly advisable.  Mac, Windows, Linux are ok.  You will need to be able to install Eclipse and the Android SDK on your laptop/PC. Students are encouraged to bring the laptop and phone to class, to try out the various techniques / topics that are presented.  If you don't have a laptop, you won't be able to show us what is not working in your applications.


The class consists in a hands-on introduction to Android application development.  Topics include:
  • Introduction to the class, and to creating mobile applications.
  • Android apps overall structure.
  • Applications and activities.
  • Creating user interfaces.
  • Activity activation via interests.
  • Using the internet.
  • Files, preferences, saving state.
  • Databases, content providers.
  • Working in the background.
  • Maps and location-based applications.
  • Audio, video, camera.
  • Sensors.
Possible additional topics if time permits:
  • Server-mobile communication: using mobile + cloud.
The class will not cover topics related to game development. We may however have one or two guest lectures on this topic.