This page foregrounds the delivery approaches I have used across modules, then provides a complete archive of every module, session, and role I have taught or contributed to. For the underlying teaching philosophy, see the Teaching overview.

Teaching Approaches in Practice

Project-Led Modules

My current modules are built around authentic, end-to-end software practice. The Development and Operations of Systems module, co-developed with Laura Heels, treats DevOps as a first-class learning objective, giving students hands-on experience with the principles and practices that connect software development and operations. The Software Engineering Team Project module likewise foregrounds collaboration, design judgement, and adapting to real-world constraints. It also introduces students to software engineering automation, an emphasis I have strengthened and that provides a natural bridge into Development and Operations of Systems. Both modules are also where my research on generative AI in computing education feeds directly back into practice.

Studio-Based Modules

During my time at Lancaster I taught across the studio-based Software Engineering programme, drawing on the architecture-studio tradition: coaching rather than lecturing, peer learning, reflective practice, and project work in multi-disciplinary teams. This work informed my published research and was recognised with a Best Paper award at CSEE&T 2014.

  • SCC.331 — Software Design Studio Project III 2014, 2019
  • SCC.230 — Software Design Studio Project I (Core Studio) 2013–19
  • SCC.330 — Software Design Studio Project II 2014

Flipped Teaching

The Software Design Lifecycle module ran as a fully flipped module: students engaged with conceptual material before class, freeing contact time for discussion, applied exercises, and problem-solving. I also incorporate flipped elements into my other modules, including the project-led ones, where pre-class preparation frees in-session time for coaching and team work.

All Teaching

A complete archive of modules, invited sessions, and teaching support roles.

Modules Taught

Invited Topic Sessions

One-off contributions to other colleagues’ modules.

  • “Responsible Software Engineering and Practical Implications in Health” (SCC.204: Software Design) Dec 2019
  • “Digital Health Innovation Projects and Ethical Aspects” (MSCI528: Digital Innovation) Dec 2019
  • “Masterclass: DevOps and Continuous Integration” (SCC.330) 2020
  • “Introduction to Android Development” (SCC.230) 2014–17

Lab Demonstrator Roles

  • SCC.110 — Introduction to Programming 2010–14, 2016
  • SCC.204 — Software Design 2011–13
  • CSc.241 — Concurrent Programming and Operating Systems 2010
  • CSc.150 — Web Technologies 2010

Volunteer Teaching

  • Code First: Girls — Introduction to Web Development (evening classes) 2018