Computer Laboratory

Course pages 2011–12

Programming for Mobiles

Principal lecturer: Dr Andrew Rice
Taken by: MPhil ACS, Part III
Code: P36
Hours: 16 (7 × one-hour lectures + 7 × one-hour practical classes + 1 x two-hour presentation session)
Prerequisites: Programming in Java; and undergraduate course in digital communication


Developing applications for modern smart phones requires different considerations to writing for a conventional PC environment. This course will cover the relevant background knowledge required to effectively develop for modern smart phones, discuss the differences between current popular platforms and highlight some of the ongoing research questions. Practical experience will be provided implementing concepts from lectures in practical classes using the Android operating system.


The course will consist of six lectures interspersed with five practical classes. The practical classes will be used to enable students to demonstrate taught concepts from the lectures.

  • Lecture 1: Introduction to mobile programming and an overview of the major platforms. A discussion about particular considerations required by mobile developers. The anatomy of a mobile phone application.
  • Practical 1: Getting started with Android, students will work through a walkthrough guide building a simple location-based messaging application.
  • Lecture 2: A survey of wireless networking technologies. Working with varying network interfaces and dealing with changing connectivity.
  • Practical 2: Implementation of a disconnection tolerant streaming music player.
  • Lecture 3: Mobile computing meets cloud computing.
  • Practical 3: Cloud offload
  • Lecture 4: Sensors and sensing.
  • Practical 4: Implementation of a "Tricorder" which displays the measurements from the handset's sensors
  • Lecture 5: User interface considerations and programming for touch screens.
  • Practical 5: Building a gesture based application.
  • Lecture 6: Other devices and other platforms
  • Practical 6: Free choice short project
  • Lecture 7: Controlling power consumption and understanding battery technologies. Off-loading computation.
  • Student presentations and demonstrations of free choice project.


On completion of this module, students should:

  • be familiar with the capabilities of a number of different smart phone platforms;
  • have a general understanding of the various technologies integrated into phone handsets;
  • have practical experience building applications.


  • Students will demonstrate their completed applications to the course leader to receive a tick for each exercise.
  • Students will submit a portfolio at the end of the course summarising Lectures 1, 2, 3, 4, 5 and 7 and application walkthroughs for each of the six practicals. Each lecture summary should be between one and two pages in length. Application walkthroughs should be between one and two pages in length and contain descriptive text and screenshots describing the constructed application.
  • Each lecture summary will contribute 8% of the final mark.
  • Each tick combined with a satisfactory application summary will contribute 8% of the final mark.
  • The presentation given at the end of the course describing the chosen free-choice project will contribute 4% of the final mark.
  • The final module mark will be expressed as a percentage.

Recommended reading

Eckel, B. (2006). Thinking in Java. Prentice Hall (4th ed.).
Android Developer Guide
Android Tutorials