I'm currently on a sabbatical. While away, I am not accepting new PhD students.

Typically, PhD students already have a Masters degree, but in exceptional cases, students can move straight from a Bachelor into a PhD programme. I don't care what your undergraduate degree is in, as long as you can do technical work, see below. I'd be delighted to receive applications from mature students, and students that have industrial experience.

I'm happy to supervise project in most areas of computer science as long as they are technical / formal, and can be connected somehow to my research areas (formal methods, parallel computing, security / cryptography, meta-programming, algorithms and data structures, logic, verification, programming languages, compilers, types, machine learning / AI etc etc). I don't care about the specific nature of your undergraduate degrees, or if you don't have a degree at all as long as you have the right kind of background knowledge: if you want to do a PhD with me, you'll need one of the following:

If you are good at maths, but don't know programming, that's fine, you can do a purely theoretical project, or I'll teach you programming (programming is easy: programming and doing maths are rather similar). If you are good at programming, but not at maths, that's fine too, you can do research that requires programming only. (Or you can brush up on your maths -- but that's not required.)

I do not supervise projects that involve neither programming nor maths.

If you wonder whether you qualify as good as programming or good at maths, here are some heuristics that I apply when evaluating applicants.

In case of doubt, just ask! I'm happy to talk.