Teaching Philosophy

At The Open University, we are committed to making higher education accessible to all. My teaching focuses on helping students develop practical software engineering skills while understanding the theoretical foundations that underpin modern computing.

I am particularly interested in teaching the art of computer programming at a distance, including developing innovative approaches using deep neural networks to generate educational dialogues and make programming education more accessible to students with visual impairments.

Teaching Areas

Computer Programming

Fundamentals of programming and software development, with emphasis on practical skills and problem-solving.

Software Engineering

Software development methodologies, design patterns, and best practices for building reliable software systems.

Requirements Engineering

Techniques for eliciting, analyzing, and managing software requirements throughout the development lifecycle.

Software Maintenance

Strategies for maintaining, evolving, and refactoring existing software systems.

Distance Learning Innovation

As part of The Open University's mission, I contribute to innovative distance learning approaches:

Supervision

PhD Supervision

I welcome applications from prospective PhD students interested in:

Current PhD Students

Completed PhD Students

Project Supervision

I supervise undergraduate and postgraduate projects related to software engineering, program analysis, and machine learning for code.

Public Engagement

I regularly contribute to public understanding of computing and technology through: