Undergraduate Security Engineering

1st and 2nd year Undergraduate course, University of Warwick, WMG, 2024

I teach across undergraduate Security Engineering modules at the University of Warwick, with a focus on helping students connect core computing concepts to practical cyber security problems through programming, software engineering, and secure systems thinking.

Current teaching

WM187-15 Programming for Cyber Security

This module develops foundational programming knowledge and secure coding practice for cyber security students. It introduces core programming concepts, algorithms, data structures, software development methods, and testing strategies from a cyber security perspective, using practical development activities and group work.

WM245-18 Programming Languages for Cyber Security

This module examines how programming language choice and programming paradigm influence software quality and security. It covers object-oriented, functional, and event-driven programming, together with type systems, program representation, language translation and execution, and the security implications of programming language design.

WM240-24 The Cyber Context of Software Engineering

This module explores software engineering across the lifecycle through a cyber security lens. It covers software processes, project management, requirements engineering, software design, construction, verification and validation, software evolution, reliability, and secure software development, with emphasis on applying cyber security good practice throughout engineering workflows.

Teaching approach

My teaching prioritises real-world engineering workflows and operational security thinking. Across these modules, I emphasise:

  • secure-by-design thinking in software development
  • practical programming and engineering workflows
  • linking programming language concepts to software vulnerabilities and mitigations
  • applying cyber security principles across the software engineering lifecycle
  • hands-on learning through guided exercises, development tasks, and project-based activity

Coverage includes:

  • Secure Software Development Lifecycle (SDLC)
  • DevSecOps practices
  • Linux-based systems
  • CI/CD pipelines
  • Platform security fundamentals
  • Hands-on labs and assessments