skip to content

Department of Computer Science and Technology

  • PhD Student

I'm a second year PhD student at the Raspberry Pi Computing Education Research Centre, supervised by Dr. Sue Sentance. I'm interested in exploring how to teach programming to primary/secondary school students, with the hope of helping more pupils to enjoy, engage with, and achieve in computing.

I am always keen to help in any outreach initiative that aims to help more school students enjoy computing. Please email me if you would like to talk about any such programs.


  • Supervisor for Object-Oriented Programming.
  • I'm interested in supervising 2024/25 part II projects in the area of computing education. I have some suggestions below, but I'm happy to supervise any project with the general objective of helping people learn to program/computing. Just email if you'd like to get in touch about these.
    • Reconstructing students' changes when programming

      • The computing education community is keen to improve the teaching of programming in schools and universities through teaching methods grounded in research. One consideration that can be made is the current programming practices of students, which include novices’ inefficient and ineffective strategies that may limit both their aptitude and confidence in programming. A tool to “step through” the development of a students’ program would be of use in identifying current novice programming practices in much finer grain detail than human observations or post-interviews. This tool could pass through each keystroke or compile made by students, ideally accommodating for different programming languages and potentially allowing for tests, measures of correctness, and other features of use to researchers. This would help teaching methods for programming to be developed that tackle typical ineffective practices in novices.

    • AI generated Scratch code

      • One application of new LLMs is the generation of code upon a user’s request, causing computing educators to rethink their strategy for the teaching and learning of introductory programming. However, the generation of exportable block-based (BBPL) programs, such as Scratch or Snap!, is not possible with these models, despite these languages being used in primary and secondary schools worldwide. An adaptation of an LLM that generates blocks and programs for a BBPL such as Scratch could help primary school teachers, who are typically not experienced programmers, teach programming to their students.

    • “Restricted Programming Languages”, where the teacher decides what statements are valid

      • When learning to program, the huge expressiveness of the programming language can be daunting. Most of the statements available are not necessary for someone just starting to learn to program, providing scope for confusion and distraction.

      • The ability to “restrict” a programming language would be of benefit in the first stages of learning to program. That is, the ability to define a subset of a programming language’s grammar, with everything outside of the subset being syntactically invalid. For example, an educator may want their students to specifically practise while loops with some students who have had sufficient practice with other iteration statements, so they could restrict the programming language such that for/repeat loops are not in the language’s subset. Trying to implement a for loop in this subset would result in an error and prevent successful execution, forcing their students to use while loops.

      • This would give control of the language’s expressiveness to the teacher and help students to focus on programming constructs that are at the edge of their understanding, rather than those far beyond.

    • Gitting the gist of it - a tool for learning VCSs

      • Version control systems (VCSs) are often introduced towards the end of secondary education, or the start of university education. Use of them is often glossed over rather than systematically taught, meaning computer science students must “learn on the job” when taking part in their first group programming projects. Unfortunately, this presents the likely possibility of fatal errors caused by their lack of experience with git, rather than their programming aptitude.

      • The ability to practise the interaction with a VCS in a low-stakes environment would be of benefit to aspiring software developers. Mistakes could be made without consequence, and unknown commands could be experimented with more confidence. The tool could simulate changes made to a dummy collaborative repository day-by-day, which the user must keep up with and contribute to. Dummy collaborators could submit PRs that the user must review, create branches the user must checkout, and submit bug reports that the user must fix. The tool could be gamified, rewarding the user with badges for completing certain actions (similar to GitHub), or displaying motivating statistics such as lines of codes pulled.


  • Laurie Gale and Sue Sentance. 2023. Investigating the Attitudes and Emotions of K-12 Students Towards Debugging. In Proceedings of the 2023 Conference on United Kingdom & Ireland Computing Education Research (UKICER '23). Association for Computing Machinery, New York, NY, USA, Article 7, 1–7.
  • Laurie Gale. 2023. Improving the Teaching and Learning of Debugging in Secondary Schools. In Proceedings of the 2023 Conference on United Kingdom & Ireland Computing Education Research (UKICER '23). Association for Computing Machinery, New York, NY, USA, Article 31, 1.


Contact Details