Teaching

During the last fifteen years, I have been teaching internationally both at the undergraduate and graduate levels. I hold a Postgraduate Certificate in Academic Practice (PGCAP) from the University of York and I am a fellow of Advance HE.

University of Málaga (2021- )

Since 2021, I have taught several undergraduate and graduate-level CS modules at the Department of Computer Science, with a focus on Software Engineering-related modules. Some of these include Introduction to Software Engineering (2nd year CS/SE degrees), and Development of Applications for the Cloud (MSc CS). You can read about part of our experience teaching introductory classes to software engineering in this IEEE Software article.

University of York (2018-2021)

During the academic year 2020-2021, I co-instructed with Dimitris Kolovos and Nicholas Matragkas the Engineering 1 module (ENG1) at the Department of Computer Science, University of York. This module introduces key software engineering topics, and encourages teams of students to incorporate them into the collaborative development of a software project that runs during the Autumn and Spring terms. Moreover, I co-instructed with Dimitrios Tsarapatsanis the Legal Practice, Technology and Computer Science module, in which CS and Law students work collaboratively in teams to develop a technology-based solution to a real-life legal practice process problem.

During the academic years 2018-2019 and 2019-2020, I co-instructed with Richard Paige, Dimitris Kolovos and Nicholas Matragkas the Software Engineering Project module (SEPR) at the Department of Computer Science, University of York. This module introduces key software engineering topics, and encourages teams of students to incorporate them into the collaborative development of a software project that runs during the Autumn and Spring terms.

Carnegie Mellon University (2013-2017)

During the academic years 2013-2017, I have co-instructed with David Garlan Models of Software Systems (17-651) at Carnegie Mellon University's Master of Software Engineering (MSE). This course exposes students to abstract models and logics that over time have proven important in the study of software systems and includes topics like state machines, process algebras, concurrency, and temporal logics, among others. You can read about part of our experience teaching this class in this IEEE Software article.

University of Málaga (2008-2009)

During my Ph.D., I co-taught several undergraduate-level CS modules at the Department of Computer Science, University of Málaga.