Computer Laboratory

Course pages 2012–13

Programming for Mobiles

Principal lecturer: Dr Andrew Rice
Taken by: MPhil ACS, Part III
Code: P36
Hours: 16 (6 × one-hour lectures + 5 × two-hour practical classes)
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 eight lectures interspersed, six practical classes and two catch up 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: Sensors and sensing.
  • Practical 3: Implementation of a "Tricorder" which displays the measurements from the handset's sensors. Extensions using the Android Accessory Kit.
  • Lecture 4: User interface considerations and programming for touch screens.
  • Practical 4: Building a gesture based application.
  • Lecture 5: Controlling power consumption and understanding battery technologies. Off-loading computation.
  • Practical 5: Testing mobile applications
  • Lecture 6: Security and Privacy for mobile devices
  • Practical 6: Catch up session
  • Lecture 7: Programming for Windows Phone
  • Practical 7: Building a simple Windows Phone application
  • Lecture 8: Programming for iPhone
  • Practical 8: Catch up session


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.


  • Practical exercises 2, 3, 4, 5, 7 will be assessed and each will contribute up to 10% of the final mark.
    Students will be given a specification of four general levels of achievement each corresponding to one quarter of the marking scale.

  • Students will submit a portfolio at the end of the course consisting of one- to two-page essays summarising Lectures 2,3,4,6 and 7+8
    (combined). Each essay will contribute up to 10% of the final mark.

  • Students are expected to submit a draft version of each essay and will receive feedback comments for how to improve it.

  • 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


Class size limit: Maximum 30 students