Software Engineering

The purpose of the software engineering theme is to equip students with solid knowledge of both the theory and practice of the conception, design, construction, evolution, and deployment of modern complex software systems. This includes principles guiding the design and evolution of software systems, as well as architectural styles and patterns to realize required quality attributes such as scalability, security, and sustainability. Furthermore, the theme investigates novel means to automate key aspects of the software development process, including the use of fuzzing for test suite generation, advanced program analysis techniques, and large language models as well as other machine learning techniques to boost software development quality and productivity.

Year 1

Quarter 1

Quarter 2

Quarter 3

Quarter 4

Software Architecture Core course Responsible Computer Science Research course
Core course Theme 1 Theme 1 Theme 1
Core course Theme 2 Theme 2 Theme 2

Credits: each course in a theme is 5EC, so each theme is 15EC.

Students choose 2 themes, each of which has 3 courses in the 2nd, 3rd and 4th quarters of the 1st year. For this theme, you will take the following courses:

Q2 - Machine Learning for Software Engineering

Q3 - Sustainable Software Engineering

Q4 - Automated Software Testing and Reverse Engineering