Greg is Emeritus Professor of Computer Science at Heriot-Watt University, with a longstanding interest in how people understand programs, and in pedagogic bases for teaching programming. He has published two textbooks on functional programming, and papers on human understanding of type errors, automated assessment of programming and good programming style, formal approaches to teaching programming, and critiques of classic Computational Thinking and the Logo/Microworld and Objects First approaches. He is a regular contributor to ‘Hello World!’, the magazine of Computing at School and the Raspberry Pi Foundation.
Greg was a member of the Curriculum for Excellence Qualifications Development Team for Computer Science, and co-developer of the ‘Haggis’ Reference Language, used to set programming language neutral questions for all SQA summative assessments. He was the first SICSA Director of Education, and also served on the RSE Computing Exemplification project advisory group and the Scottish evidence group for the RS report into Computing teaching.