Students who have completed the "Software engineering and programming systems" option, will be able to:
- Understand and explain the problems encountered when engineering large software projects, as well as the critical impact of the solutions chosen throughout the entire software life cycle (problems related to construction, validation, documentation, communication or project management involving big teams as well as the cost and deadlines to respect).
- Choose and apply the appropriate methods and tools to engineer complex software systems that satisfy strict quality criteria: reliability, adaptability, evolutionarity, performance, security, usability, ...
- Model products and processes necessary to obtain such systems and to analyse these methods.
- Develop and implement programmes to analyse, transforme and optimise of complex date representations.
- Use wisely different programming paradigms and languages, and functional, object-oriented and distributed programming in particular for a given problem.
- Understand the differences between various models of concurrent and distributed programming and to be able to use the appropriate model.
- Define new programming languages (syntax and semantics) appropriate to solve problems in a specific domain.