Andrew Colin Rice, BA, PhD. Director of Studies in Computer Science, Hassabis Fellow in Computer Science. (on leave for 2017-18 academic year)
I have now returned to Queens having spent a year (2017) away from college working as a Visiting Faculty member at Google in California. I worked on the Java compiler team developing new static analysis checks (among other things). These checks run when a developer submits their code to the repository and help to detect bugs before the tests are even run. My principal goal from working at Google was to work in a professional software engineering team. I wanted to understand more about what skills we should be teaching our undergraduates to prepare them for this environment. I not only got to do this but I also came back a much better programmer! I supervise a variety of courses. In the recent past I have covered: Prolog, Software Engineering, C and C++, Computer Networking, Databases, Concepts in Programming Languages, Foundations of Computer Science. My favourite thing about Computer Science at Queens is that we are able to provide lots of extra-curricular computer science too. Its very important to me that I get to know my students and that everyone gets to know each other too. You would be surprised how much wisdom you can learn from the people in the year ahead of you. Check out our blog at http://queenscompsci.wordpress.com to see what we've been up to.
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.
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.
- Official Fellow
- Hassabis Fellow in Computer Science