Programme overview

Description of the Programme

The EMSE curriculum covers a wide range of topics, such as software process management, verification and validation, software design, and requirements engineering, and advanced topics including software quality, distributed systems and development, global software development, embedded systems, and open source software & agile development.

Structure of the Programme

The programme foresees a mobility period in two different universities. A mobility track is one of such mobility period where the student will spend one year in one university (i.e., first university) and one year in another university (i.e., second university).

Project and thesis work will be carried out at the second university.


All courses are taught in English. Students are requested to acquire language skills in a local language (e.g., by passing an exam) of each university visited.

Starting term

The term starts between August – October depending on the first university regulation.

Learning outcomes

A successful student will be able to

  • Have solid knowledge of theoretical foundations in SE and their application in the several informatics domains; that is, have knowledge of techniques and methods of design, development, test, and maintenance of information systems and be able to apply them in different contexts, also not typically IT, where the software technology is anyway crucial;
  • Be able to analyse and solve problems in SE of several different levels of complexity with specific focus on empirical investigation; that is, employ the scientific methods of investigation in SE; in particular understand and use mathematical instruments that support ESE and its practice;
  • Have basic knowledge of public, corporate and professional cultures and societies in Europe;
  • Have practice in various software applicative sectors in the socio-economic context including the non-IT specific like health, automotive, energy;
  • Be able to work in large autonomy also managing projects and infrastructures over different platforms, like cloud, distributed, or mobile systems;
  • Have a command of the SE technical knowledge and skills necessary to practice as software developer;
  • Have a command of the SE management skills needed to organize and control software project team work;
  • Be able to reconcile conflicting project objectives providing reasonable cost and time information;
  • Overcome the challenges of global software development and internationalization.