Software
Over the years I have been involved in a number of software projects.
AI Solvers
Minion is a constraint solver written in C++. I’ve been working on Minion, on and off, for over 20 years now. Minion has not kept up with all of the latest research ideas — in particular, the solver does not support “learning” during search. However, for many problems Minion is still very competitive. Minion is also extremely well tested — using both custom tests and a general “fuzzer” which generates random inputs.
I am a contributor to the Conjure and Savile Row constraint modelling toolchain, which compiles high-level problem specifications in Essence down to solver input.
GAP
I contribute to GAP, the system for computational discrete algebra. I work on the GAP kernel (C code) and maintain several packages for permutation group algorithms.
Games
I have a growing interest in puzzle and game development — both as research tools and for fun.
Teaching Tools
- stacscheck, also known as the St Andrews Computer Science CHECKer, is a tool designed to make it easy to set, and automatically mark, coursework. It is designed for programs which accept, and output, text, but other than that has very few restrictions.