Summer 2011 Internships

With Andrew Rice and Alastair Beresford.

We are looking for approximately 7 students to undertake summer research internships with us for 10 weeks, starting on Monday 11th July and finishing on Friday 16th September 2011. Successful applicants will need to arrange their own accomodation for the period, but we pay you a stipend to cover these costs. Usually the student's own college is able to offer accommodation. Interns will work with us in the Computer Laboratory, William Gates Building.

All students will be responsible for delivering a clearly-defined project (or sub-project where relevant) and all the students work together in the Intel Teaching room over the summer. In previous years, there has been a great team atmosphere amongst the students, and we're confident the same will also be true this year. Alastair and Andrew will be around to offer support, help and advice. You can see a list of the previous projects we've run here and many of them are available to try on the Android Marketplace.

If you would like to apply please send an email to Andrew Rice and Alastair Beresford. Make sure you:

  • let us know which projects you are interested in working on;
  • and include a copy of your CV.

We will contact you to arrange a time for a 15-minute chat. This helps us to match students to projects. The projects we expect to explore this year are shown below.


Project: PrivDroid

Prerequisites: Java programming to a standard of completing Workbook 7 of the Programming in Java course; No prior experience with Google Android or mobile phones is required.

Open platforms such as Android offer the opportunity to enhance the security and privacy of the system and its applications. We are looking for three summer students to explore aspects surrounding the construction of a modified version of the standard Android system.

Possible starting points for the three students are:

  1. Encrypted SMS messaging This application allows users to generate and distributed symmetric and public keys between handsets using QR codes. The generated keys can then be used to encrypt and decrypt SMS messages between applications. It should be possible to build this application so it works on a standard Android handset.
  2. Protect personal data in the case of theft Extend Android to support full-disk encyption, or perhaps SQLite DB encryption, to prevent a thief from extracting personal data from the phone. Optional support for an encrypted SD Card might also be considered. Offering a service which allows the user to remotely track the location of their phone on a website or another phone handset might be a desirable feature in order to increase the chance of recovery.
  3. Privacy-aware location sharing Share location data with friends, but not third-party companies. A similar approach to key management might be adopted as discussed in the encrypted SMS messaging application above. In addition, the user should be able to control who data is shared with, when it is shared and the quality of the location data (consider the difference between saying "I'm in Cambridge" and "I'm in the Computer Laboratory").
  4. Secure unlock token for Android Most mobile phones support a software PIN-based screen lock to prevent a misplaced phone from being used by anyone other than the owner. Unfortunately PINs are often short (four digits) and someone can easily "shoulder-surf" the password as it is being entered. Many corporations improve security of laptops by issuing a physical token which the user must have in their possession when unlocking the laptop, or connecting to a corporate Intranet. This project involves building a small piece of hardware which is normally kept on the user's keyring and which plugs into the headset socket of the phone when the screen requires unlocking. The piece of hardware should support a simple challenge-response protocol, using the audio channel as a communication channel, to unlock the handset. The project student will also need to implement some supporting software for the Android system to integrate the hardware token.

This work will be based on the MockDroid, a project from the summer programme last year completed by Nick Skehin. This work was written up into an academic paper and presented by Alastair and Nick at the HotMobile 2011 conference in Arizona.


Project: Building a personal energy meter on an Android mobile phone

Prerequisites: Java programming to a standard of completing Workbook 7 of the Programming in Java course; No prior experience with Google Android or mobile phones is required.

Every day each of us consumes a significant amount of energy either directly through transportation, heating or use of appliances or indirectly from our needs for production of food, manufacture of goods or provision of services. A Personal Energy Meter (PEM) is an (as yet hypothetical) device which can record and apportion an individual's energy usage in order to provide baseline information and incentives for reducing the environmental impact of our lives. This project will explore the construction of a prototype PEM for the web or Android mobile phone.

Last year David Piggot worked on a Personal Energy Metering application for Android. This year's project is to extend the application to the point where it can be deployed on the marketplace for others to use. This will involve integrating some algorithms for inferring mode of transport from sensor data and accounting for the energy use of travel.


Project: Device Analyzer

Prerequisites: Java programming to a standard of completing Workbook 7 of the Programming in Java course; No prior experience with Google Android or mobile phones is required.

We've been building an application for collecting device usage information of Android devices. We are aiming to distribute this application via the Android Marketplace in order to build a large research corpus of usage data. There is also a personal benefit to running the application in providing personal analytics—information and statistics about your day to day life. We're looking to recruit a number of students to extend both the Android application and the accompanying web-service with more detailed visualisations and other means for individuals to benefit from their data collection.