Teaching

COMP-533 Model-Driven Software Engineering

Graduate course, School of Computer Science, McGill University, 2023

This is a graduate course that targets both advanced undergraduates and graduate students that want to explore the concepts of Abstraction, Modularity, Separation of Concerns and Reuse. I will cover standard Model-Driven Engineering (MDE) techniques and methodologies applied in industry, but also more advanced topics in MDE focussing on improving modularity, separation of concerns and reuse, such as aspect-orientation and concern-oriented reuse.

COMP-361 Software Engineering Project

Undergraduate course, School of Computer Science, McGill University, 2023

This 1-year course gives students the opportunity to develop a considerable software system following a rigorous software development process. Over two semesters, students develop a strategic, turn-based, distributed, 2D game following a model-driven engineering approach in groups. The project takes the students through all the phases of a software’s life‐cycle, from requirements elicitation and specification, to architecture design and detailed design, to implementation, deployment and maintenance. Throughout the project, students follow a model-driven engineering approach, where models of the software that is being developed are built at different levels of abstraction using different modelling formalisms. The final implementation is done by the students using an object-oriented programming language of their choice.