IMT Atlantique

I am co-responsible at IMT Atlantique of the Software Engineering Apprenticeship Specialization (FIL).

I have been responsible for the following courses and student projects at IMT Atlantique, formerly at Ecole de Mines de Nantes.

  • Software Engineering and Modeling (FIT-A2, ~30 students per year): 2021-2022, 2022-2023, 2023-2024
    • Software Design and Architecture, Unified Modeling Language (UML), Model-Driven Development (MDD), Software Testing and Validation.
  • Language Engineering (FIL-A3, ~30 students per year): 2023-2024
    • Introduction to Language Engineering, Language Design and Specification, Compiler Construction, Language Testing, Domain-Specific Languages (DSLs).
  • Agile Project (FIL-A1, ~30 students per year): 2023-2024
    • Development project with SCRUM for a real client.
  • Conferences and Testimonies (FIL-A1, FIL-A2, FIL-A3, ~90 students per year): 2023-2024
    • Presentations from experts and testimonials.
  • Collaborative Development (FING-A1, ~30 students per year): 2019-2020, 2020-2021, 2021-2022, 2022-2023, 2023-2024
    • Collaborative development on git, Simulation of the world-wide CACAO market.
  • Sensibilization to Research - MDE (FIL-A3, ~4 students per year): 2013-2014, 2014-2015, 2015-2016, 2016-2017, 2017-2018, 2018-2019, 2019-2020, 2020-2021, 2021-2022, 2022-2023, 2023-2024
    • Implementation for a research paper in Model-Driven Engineering
  • Domain-Specific Languages and Model-Driven Engineering (FING-A3-GSI, FIL-A3, ~30 students per year): 2020-2021, 2021-2022, 2022-2023
    • Introduction to DSLs and MDE, DSL Design and Implementation, Internal vs. External DSLs, Model-Driven Architecture (MDA), Meta-modeling and DSMLs, Model Transformation Techniques, Code Generation from Models, Integration of DSLs with MDE, Case Studies and Practical Applications
  • Databases (FING-A2, ~160 students per year): 2012-2013, 2013-2014, 2014-2015, 2015-2016 (FING-A1, ~160 students per year): 2015-2016, 2016-2017, 2017-2018, 2018-2019, 2019-2020, 2020-2021, 2021-2022, 2022-2023
    • Database Design, Relational Model, SQL Queries, Normalization, Object-Relational Mapping
  • Model-Driven Engineering (FIL-A3, ~30 students per year): 2015-2016, 2016-2017, 2017-2018, 2018-2019, 2019-2020
    • Introduction to Model-Driven Engineering (MDE), Model Transformation, Meta-modeling, Model Validation and Verification, Code Generation, Domain-Specific Modeling Languages (DSMLs), Case Studies in MDE Applications
  • Domain-Specific Languages (FING-A3-GSI, FIL-A3, ~30 students per year): 2013-2014, 2014-2015, 2015-2016, 2016-2017, 2017-2018, 2018-2019, 2019-2020
    • Introduction to DSLs, Internal vs. External DSLs, Syntax and Semantics of DSLs, DSL Design Patterns, Implementing Interpreters, Code Generators, Case Studies in DSL Applications
  • PRIME Project (FING-A1, ~30 students per year): 2012-2013, 2013-2014, 2014-2015, 2015-2016, 2016-2017, 2017-2018, 2018-2019
    • Simulation of the world-wide CACAO market
  • PIST Project (FING-A2, ~2 students per year): 2013-2014, 2015-2016, 2016-2017, 2017-2018
    • Programming project in Java
  • IPIPIP Project (FING-A1, ~2 students per year): 2010-2011, 2011-2012, 2012-2013, 2013-2014, 2014-2015
    • Programming project in Java
  • Higher-order Transformations (MDE Diploma, ~30 students per year): 2010-2011
    • Introduction to Higher-Order Transformations, Transformation Composition, Reusability in Transformations, Meta-Transformations, Transformation Patterns, Model-to-Model (M2M) Transformations, Transformation Tools and Frameworks, Case Studies in Higher-Order Transformations.

Politecnico di Milano

I have given lessons in the following courses at Politecnico di Milano.

  • Operating Systems Project (Lecturer, ~30 students per year): 2006-2007, 2008-2009
    • Operating System Design and Architecture, Process Management, Memory Management, File Systems, I/O Systems, System Calls and APIs.
  • Technological culture (Lecturer, ~30 students per year): 2007-2008
    • Introduction to Computers and Operating Systems, Computer Hardware, File Management, Essential Software Applications, Internet Basics and Web Browsing, Email and Communication Tools.
  • Software Engineering (Teaching Assistant, ~30 students per year): 2008-2009
    • Requirements Gathering and Analysis, Software Design Principles and Patterns, Implementation and Coding Practices, Software Testing and Quality Assurance, Project Management and Agile Methodologies, Version Control and Configuration Management, Software Maintenance and Evolution, Risk Management, Case Studies and Best Practices.
  • Web Technologies (Teaching Assitant, ~30 students per year): 2007-2008, 2008-2009
    • Introduction to Server-Side Web Development with Java, Java Servlet API, JavaServer Pages (JSP), HTTP Requests and Responses, Session Management, Database Connectivity with JDBC.
  • Computer Science 3 (Algorithms and Data Structures) (Teaching Assistant, ~30 students per year): 2006-2007, 2007-2008, 2008-2009
    • Introduction to Algorithms, Complexity Analysis, Sorting Algorithms, Searching Algorithms, Data Structures, Trees and Graphs, Hashing Techniques.
  • Web Technologies, at the post-university master on Service Oriented Architectures (Teaching Assistant, ~30 students per year): 2006-2007, 2007-2008
    • Introduction to Server-Side Web Development with Java, Java Servlet API, JavaServer Pages (JSP), HTTP Requests and Responses, Session Management, Database Connectivity with JDBC.
  • Information Systems (on-line degree) (Teaching Assistant, ~30 students per year): 2005-2006
    • Introduction to Information Systems, Database Management Systems (DBMS), Systems Analysis and Design, Business Process Modeling.