Modules & Approaches
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.
- CSC3131 — Development and Operations of Systems 2021, 2025+
- CSC2033 — Software Engineering Team Project 2021+
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
- CSC3131 — Development and Operations of Systems Project-Led 2021, 2025+
- CSC2033 — Software Engineering Team Project Project-Led 2021+
- CSC8428 — Software Design Lifecycle Flipped 2023
- SCC.331 — Software Design Studio Project III Studio-Based 2014, 2019
- SCC.230 — Software Design Studio Project I (Core Studio) Studio-Based 2013–19
- SCC.330 — Software Design Studio Project II Studio-Based 2014
- CSc.242 — Software Engineering Lectures + Labs 2013
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