This programme is oriented towards software engineering and offers in particular, a training that focuses on the automation of the stages of the software life cycle, while ensuring the quality of the software product. All stages of the software life cycle are concerned, from design to maintenance, including compilation and optimisation of code and testing. In this context, several facets related to these stages are studied, such as the modularisation and reuse of programs, their semantics and dependability, as well as their model-driven development and evolution. In this programme, particular attention has been paid to the current interactions of software engineering with a number of other related fields (artificial intelligence, robotics, health, environment, etc…). The presence of numerous industrial partners guarantees that the training is in line with the requirements of the industrial environment.