Teaching

Advanced Software Engineering

Postgraduate module, University of Leeds, 2023

Postgraduate module taught since 2023, providing a review of software engineering principles, and expanding on those to include a more thorough understanding of what constitutes good design. It also covers the application of design patterns and refactoring, and a comparative analysis of different architectural styles used in modern software.

Networks & Communications Security: Threats, Attacks & Countermeasures

Postgraduate module, University of York, 2022

Module taught in 2022, providing a broad understanding and knowledge of network security, addressing threats over a range of sophistication levels and detailing various protocols and other mechanisms that have been developed to counter them.

Information & Network Security

Undergraduate module, University of York, 2022

Module taught in 2022, covering the basic concepts of cyber security, how these are modelled, threat models, and the mechanisms to enforce security policies.

Embedded Systems Design and Implementation

Undergraduate module, University of York, 2022

Module taught from 2010-2022, introducing embedded computer systems, and the engineering process to design, implement and validate them. Particular emphasis on models of time and concurrency, modelling and simulation languages. More details in the Embedded Out There blog.

Operating Systems and Networks

Undergraduate module, University of York, 2020

Second year undergraduate module taught from 2017-2020, introducing the fundamentals of operating systems and networking protocols.

Systems & Networking

Postgraduate module, University of York, 2016

Postgraduate module taught from 2011-2016, covering selected topics on operating systems and networking.

Cloud Computing

Postgraduate module, University of York, 2016

Postgraduate module covering selected topics on cloud computing.

Multiprocessors and Models of Computation

Visiting professorship, Federal University of Rio Grande do Sul - UFRGS, 2014

Postgraduate module, offered as part of a visiting professorship funded by Capes “PVE - International Visiting Professor” programme, hosted by Ricardo Reis.

Multiprocessors and Models of Computation

Graduate seminar, Universidad Politecnica de Madrid, 2013

Postgraduate seminar funded by CEI-UPM International Seminar series, hosted by Eduardo de la Torre and Teresa Riesgo.

Multiprocessor Embedded Systems

Graduate seminar, Universitaet Bremen, 2012

Postgraduate seminar funded by Universitaet Bremen’s “Internationalisation at Home” programme, hosted by Alberto Garcia Ortiz.

Theory of Computation

Undergraduate module, University of York, 2008

Second year undergraduate module taught in 2008, introducing formal languages and automata theory, time and space complexity, computability and decidability.

Multiprocessor Systems-on-Chip Design Automation

Undergraduate module, Technische Universitaet Darmstadt, 2008

Undergraduate module taught from 2007-2008, providing an overview of the architectural principles, design automation methods and tools for Multiprocessor Systems-on-Chip.

Systems-on-Chip Design

Graduate seminar, Technische Universitaet Darmstadt, 2007

Graduate seminar taught from 2002-2008, covering selected topics on System-on-Chip design.

Actor-oriented design

Graduate seminar, University of Montpellier II, 2005

Postgraduate seminar hosted by Gilles Sassatelli and Lionel Torres.