School of Computing

Simon Thompson

Professor of Logic and Computation/ Director of Innovation

Photo of SJ Thompson, if available
  • Room SW109
    School of Computing
    University of Kent,
    CT2 7NF
Wrangler Haskell craft 3e Erlang Master classes
Wrangler: a refactoring tool for Erlang, which also supports clone detection, and is extensible and scritable by users. Third edition of Haskell: the Craft of Functional Programming Master classes in Erlang by Joe Armstrong, Francesco Cesarini and Simon, part of a Beacon Project to build an Erlang MOOC running in 2015-16.

My main research interests are in functional programming, most recently in designing tools to help people to write and test programs more effectively. In particular, together with Huiqing Li I have been working on building refactoring tools for functional programs in Erlang and Haskell, supported by EU and EPSRC funding; I am also looking at refactoring other languages with my PhD students, as well as at Erlang and web services testing.

PROWESS project TTFP book cover RELEASE project
Building on the success of ProTest, PROWESS extends property-based testing to rapidly-evolving systems such as web services and internet applications. My firsr book, on Type Theory and Functional Programming gives an introduction to constructive type theory according to Martin-Löf, and is freely available as a PDF. Porting Erlang to massively-multicore systems. Here we developed refactorings to support multicore programs in SD-Erlang, as well as building tools for offline and online monitoring, and a general extension API and scripting DSL for Wrangler.

Publications: A list of all my publications; Google Scholar profile; Research Gate profile; Reviews for Computing Reviews

Social: blogging at; twitter: @thompson_si; facebook: thompsonsimonjohn.

I am also interested in working with industry, and have had two Knowledge Transfer Partnerships with Erlang Solutions: the first (now completed) on refactoring and components for Erlang, the second on using e-learning technologies in high-quality online training.

Some recent presentations and talks

Some recent talks, papers and presentations, in a variety of formats.


I have written four books on functional programming.

Postgrad research students

I am very keen to recruit research students to work with me on these topics, and particularly in

  • refactoring functional and other languages, and
  • program transformation in general;
  • property-based testing and model extraction;
  • functional software engineering in general, including tooling support.

The School's website has lots of stuff about becoming a postgrad student and some suggested projects in my and related areas of interest. Current students are working on refactoring Haskell and dependently-typed languages, implementing Erlang and property-based testing and modelling.

Functional Programming in Education

I work to promote the use of functional programming in education. I was chair of the conference on Functional and Declarative Programming in Education in 2005 (Tallin), 2002 (Pittsburgh) and 1999 (Paris). I have written texts on introductory functional programming in Haskell and Miranda as well as a problem solving approach for beginning functional programmers.

Journal of Functional Programming

I am book reviews editor for the Journal of Functional Programming. If you are interested in becoming a reviewer, please see books currently seeking reviewers and book review guidelines. At the University of Kent I play an active role in the Functional Programming Group.

Teaching innovation

I am an enthusiastic user of the ProfCast software for recording lectures in sync with their slide presentations. You can see examples at CO524, an introductory course on programming language technology. If you are trying these out, it's best to ignore the first; I was just getting used to the microphone on my PowerBook.

A student from the course says "I'm finding during revision that the recordings are immensely useful, if I come across a topic that isn't well explained in the slides or my notes it's great to be able to listen back to your explanations with the slides on screen and write new notes for revision purposes."

Other research

Other research that I have been involved with recently includes work in refactoring, reasoning with diagrams, computer algebra, verification and constructive type theory:

Real life

What do I do when I am not working? I enjoy cooking, cycling and jogging (I used to call it running). Most of all I enjoy walking, and recently have walked the Stevenson trail and in the Harz mountains.

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 26/07/2016