Research
My research interests lie mainly in algorithmics. As well as the discovery and development of new algorithms (mainly combinatorial) I am also interested in the mathematical theory for constructing correct algorithms & programs, using assorted calculi of program transformation.
Other interests include human-computer interaction, and pedagogy as it relates to computer science.
My publications include work on the following topics:
- Recent work with Clare Martin has involved the development of a calculus of multirelations. Like predicate transformers, multirelations are capable of modelling choices from two participants (who are commonly known as the angel and the demon), unlike relational algebra (which can only model one kind of choice) and functional programming (which does not model choice, as an output is simply a function of the input).
- Development of a theory of greedy algorithms.
- Discovery of algorithms solving combinatorial problems. Several of these algorithms are greedy algorithms, and many of them involve various fun objects to mathematically play with. For more details see
- My thesis included work unifying two dynamic programming strategies: the "top-down" and the "bottom-up" methods.
- The Graph Calculus is a helpful tool for trying to produce difficult proofs in the relational (and other) calculi. It does this by using formal pictures, which have meaning in the underlying calculus.
Research Groups
I currently/used to participate in these research groups
- Algebra of Programming, Oxford University Computing Laboratory.
- Applied Formal Methods, Department of Computing, Oxford Brookes University
- Applied Formal Methods, Department of Computing Science and Mathematics, University of Stirling
