Andrew Rice

I am a University Senior Lecturer in the University of Cambridge Computer Laboratory working in the Digital Technology Group. I am also the Hassabis Fellow in Computer Science and Director of Studies in Computer Science at Queens' College.

PhD studentship I have a funded studentship available for a PhD student to work on adaptive learning for online teaching. The project will involve working with language learning through the ALTA project and with physics teaching in schools through the Isaac Physics project. Applicants should have a strong background in Computer Science and will need to demonstrate good programming ability. Please follow the standard application process as described in the guidance from the department. You are welcome to contact me by email in advance.

Want to record how you use your Android phone? Install our free Device Analyzer project and contribute to research at the same time.


My research activity covers a range of different areas:

  • Programming languages and tools in the sciences (more detail)
  • Understanding the power consumption of smart phones, particularly Android devices (more detail)
  • Energy consumption and energy efficiency of computing infrastructure (more detail)
  • Energy use in the built environment
  • Academic software development processes

These theme are derived from my work with Andy Hopper on the Computing for the Future of the Planet project in which we sought to identify Computer Science research questions in the context of global issues such as climate change, over-population, famine and desertification. A high level summary of the research themes is given in our brochure: [a4 version], [folding version]. Please see the main project pages for more information.

I organise the DTG weekly seminar series. Upcoming talks are advertised on the DTG list at

More information: publications, talks & presentations and posters.

Recent programme committees/reviewing: ACM Computing Surveys, MASCOTS 2012, SIGMETRICS 2012, Buildsys 2011, AFRICOMM 2011, MASCOTS 2011 (PC Chair), Sustalnet 2011, PerCom 2011 (PhD programme)


I am Director of Studies in Computer Science at Queens'. We admit between 6 and 8 undergraduates a year. In addition to core teaching I organise a variety of other activities for Queens' Computer Scientists. You can find out more at the Queens' College Computer Science blog.

Lecturing: Currently I teach Programming in Java for Part 1A of the CS Tripos; and Further Java and Prolog for Part 1B of the CS Tripos

Previous lecturing: I taught Programming for Mobiles for the MPhil in Advanced Computer Science from 2010-2013.

Part II Projects and Part III/ACS projects: there are a variety of suggestions from my CamFort grant invilving program analysis, parsing and visualisation.


The Otter (Online Teaching Tools) website is used within the department for a variety of teaching needs. All the source code is on GitHub: dashboard, signups, questions, handins. The live site is available here: (requires a Cambridge Raven account).

Android applications resulting from undergraduate projects or our research activity.

PushOggDecoder is a Java library for extracting bit streams from an Ogg container.

Cantag is a machine vision framework written in C++ which provides various mechanisms for tracking two dimensional (2D) marker tags for barcode reading, 3D overlay or recovering position and pose.

Tinytag is a minimal 2D machine-vision barcode reader written in C without any floating point requirements and so is suitable for mobile phones and embedded platforms.

Full: [colour] [grey]

Postal Address:

William Gates Building, 15 JJ Thomson Avenue, Cambridge, CB3 0FD.