Prof Graham Kirby

Prof Graham Kirby


Researcher profile

+44 (0)1334 46 3240



I've worked in Computer Science at St Andrews since 1991, initially as a research assistant, and then lecturing since 1999. Within the School I've been Adviser of Studies, Admissions Officer and Director of Teaching. At Faculty level I held the roles of Pro Dean Advising and then Associate Dean Students from 2016-22, and jointly the role of Acting Dean of Science for six months in 2019.


In 2023-24 I'm teaching on CS1002 and CS5033.

For current students: here are some project proposals for MSc dissertation projects in summer 2024.

Here are some Honours projects that I’ve supervised previously:

And Masters dissertations:

  • visualisation of uncertain genealogical structures, jointly supervised with Miguel Nacenta (James Williamson, 2017)
  • an email client supporting causality analysis and disclosure control (Raghubir Singh, 2016)
  • athletics performance analytics tool (Yiming Ren, 2016)
  • a database using plain text files (Iswariya Raghu, 2016)
  • module delivery system (Sunaiyana Thakuria, 2014)
  • second-hand business-to-business e-market solutions (Antoine Casanova, 2013)
  • a web-only content management system (Georgios Chrysafidis, 2013)

Research areas

I'm involved in the ESRC-funded Digitising Scotland project, which aims to construct a linked genealogy of Scottish historical records, with Chris DibbenLee Williamson and Zhiqiang Feng at Edinburgh, and Alan Dearle and Özgür Akgün in Computer Science at St Andrews. This work also includes Eilidh Garrett and Alice Reid at Cambridge, and Peter Christen at ANU.

I previously led a work package on linkage methodology within the ESRC-funded Administrative Data Research Centre - Scotland, with Alan DearleÖzgür AkgünPeter Christen and Alasdair Gray at Heriot-Watt.

I'm also interested in distributed systems and programming languages in general.

Previous PhD Students

Second Supervisor

Previous Projects

  • H2O: autonomic resource-harvesting database
  • ASA: secure location-independent autonomic storage architectures
  • RAFDA: reflective architecture for distributed applications
  • DIAS: evolving sensornet design through co-design
  • ACT: automatic configuration testing
  • Archware: architecting evolvable software
  • GLOSS: global smart spaces
  • XBase: generic storage architecture
  • orthogonal persistence, hyper-programming and linguistic reflection

Selected publications


See more publications