Teaching

He, who lives at the bottom of the well, can see only a part of the sky.

I am currently teaching two master level courses at NTNU:

I am teaching every other year a PhD course:

Advanced Tools for Performance Engineering

The objective of this course is to present fundamental concepts, methods and tools to assess and to optimize the performance of complex technical and socio-technical systems using the Python programming language. De facto, it is also an example-driven introduction to Python itself. Its intended audience is students, engineers and scientists working in all engineering disciplines.

Undoubtedly, computer programs play an increasingly important role in all engineering processes. Consequently, engineers and scientists must be familiar with their use and, at least to some extent, with their development. I do believe however that developing large, professional software is the job of professional software developers. Training a professional software developer takes years. It remains that scientists and engineers from all disciplines can take huge benefits of mastering a programming language such as Python. Python can actually help them to achieve a high productivity in many of their daily tasks, including data processing and analysis, chaining modeling and simulation tools, performing specific calculations and simulations, writing reports and web-pages… These tasks can be at least partly automated by writing scripts, i.e. small programs, quickly and easily developed. Writing scripts does not require high competences in mathematics, computer science or software engineering, just to know the basics and to be ready to give it a try. More than that: it proves to be fun.

My objective, with this course, is to provide students in engineering curricula with fundamental knowledge and know-how about Python scripting. I want to show them that they can, using Python, improve their productivity right now, without having to swallow tons of difficult concepts on algorithms, computational complexity and the like.

My book "Performance Engineering in Python" contains many exercises and problems. The pdf file of this book can be found here. Most of these exercises and problems answer concrete questions one has to solve when assessing and optimizing the performance of a technical and socio-technical system. With that respect, this book can be seen as a cookbook, full of recipes that students can reproduce at home, and, more importantly, from which they can take inspiration to prepare gala dinners.

Zip archives containing solutions to exercises are available below.

Elements of Models Engineering

The systems designed by industry are more and more complex. Not only these products are more and more complex but also the processes by which they are designed/produced/operated/decommissioned and organizations that implement these processes are. To face this complexity, the different engineering disciplines (mechanics, thermic, electric and electronic, software, architecture…) virtualize their contents to a large extent, i.e. they are designing models. We entered the era of: model-based systems engineering. Each system comes with dozens if not hundred of models.

The emerging science of complex systems is the science of models. This science comes with engineering concepts, methods and tools.

When I arrived at Ecole Centrale Paris, in 2013, I have been asked to create a course of complex systems engineering for first year students (which corresponds to third year of university). I decided to design a course of model-based systems engineering that would introduce the students with a panoply of modeling formalisms, methodologies and tools. It resulted the course SE2150 which I give also now at NTNU (with some necessary adjustments) as TPK5120. This course has been also delivered at Centrale Pékin (Beihang University, Beijing, China) by Dr. Michel Batteux and by myself, still at Beihang University, at the school of Reliability and Systems Engineering.

A zip archive containing the slides of earlier versions of the course can be found here.

This course evolved trough the years. It is now focusing on two main domains: model-based system architecture and model-based reliability engineering. I wrote a book to support the course. A preliminary version of this book can be downloaded here.