Dr Andrew Rice

Andrew Colin Rice, BA, PhD. Director of Studies in Computer Science, Hassabis Fellow in Computer Science. (on leave for 2017-18 academic year)

As Director of Studies for I am responsible for organising supervisions for the Computer Science students. I take on a variety of courses in order to make sure that I can see my students once every week. Currently I teach the 1B courses: Prolog, Software Engineering, C and C++, Computer Networking, Databases, Concepts in Programming Languages. Next year I'll also be teaching the 1A course of Foundations of Computer Science. My favorite thing about being a Director of Studies is that it gives me a chance to really get to know my students. We only admit 6-8 students a year for Computer Science at Queens' which means that its possible for me to treat everyone as an individual. This not only includes working with them in their studies but also extra-curricular computer science too - this ranges from working on public speaking skills to programming robotic (simulated) battle tanks. I have a nice big screen in my office and so during supervisions we will often be making use of the computer together to try things out. I like things to be hands on and interactive wherever possible: this ranges from getting students working on the whiteboard, or building networks with our laptops. I think students learn best when working as a group and so in the first two years we also schedule a weekly meeting of all the students in that year where we can discuss what's going on in the courses and think about how they link together. Everyone tells me this is a really useful way to get to know each other and work together on solving problems. 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: https://queenscompsci.wordpress.com/
I'm currently interested in the use of programming languages in the sciences. My work is looking at taking established ideas from programming language theory and applying them to computational models in science. In the Camfort project we are working with long-lived code written in Fortrain and trying to provide tools which can help improve the quality and maintainability of the code without interrupting established working practices. Previously I worked for some time on research around smart phones. One project from here which is still ongoing is Device Analyzer. This is an Android app which collects information about what you can do with your phone. The idea is to build a dataset about how people actually use their phones so that academia and industry can validate research results or identify new directions. We took special care with privacy and consent and so now are in a position where we are able to share the data (more than 18,000 people have contributed). The Device Analyzer data was also used as part of the new Information Age gallery in the Science Museum.
In the Faculty of Computer Science and Technology I teach mostly courses on programming languages: 1A Programming in Java, 1B Further Java, 1B Prolog. Since most of my teaching involves learning a practical skill I've experimented over the years with shifting away from lectures and introduced teaching using practical classes and video lectures. It was for initiatives including this that in 2014 I was awarded the Pilkington Prize for excellence in teaching, an annual University-wide award.
Personal interests
I originally learned to program in BASIC by typing in programs from magazines and library books. I found it really rewarding how programming let me turn my ideas in to concrete reality. My interest in computer science arose from there. One of the things I found most exciting about studying computer science was our understanding of the principles of computing. The practical aspects of our field change almost daily as new technology comes along but despite this we are still able to rely on theoretical ideas from 50 years ago.
01223 335514
01223 763621
  • Official Fellow
  • Hassabis Fellow in Computer Science