The pedagogical approach consists of a mixture of traditional theory courses, practical sessions, computer science and programming projects, as well as problem-based learning approaches that give the student an active role in the learning process. Some assignments will need to be worked out in groups of up to 6 students. Such activities enable the student to develop other competences like the ability to cooperate, group management, efficient communication, time management and planning, and so on.