Courses
(tentative list, to be confirmed)
Core courses (mandatory)
Advanced Software Testing and Fuzzing
Systematic methods for uncovering software defects (including vulnerabilities) through advanced testing and automated fuzzing techniques.
#testing
#fuzzing
#verification
more info…
Systematic methods for uncovering software defects (including vulnerabilities) through advanced testing and automated fuzzing techniques.
Empirical Methods in Software Engineering
Methods and practices for conducting rigorous, reproducible empirical studies on software artifacts using qualitative, quantitative, and repository-mining techniques.
#mining
#research
#data
more info…
Methods and practices for conducting rigorous, reproducible empirical studies on software artifacts using qualitative, quantitative, and repository-mining techniques.
Software Variability
Techniques for modeling, implementing, analyzing, and evolving software product lines to manage variability and maximize systematic reuse at scale.
#product-lines
#modeling
#maintenance
more info…
Techniques for modeling, implementing, analyzing, and evolving software product lines to manage variability and maximize systematic reuse at scale.
Elective courses (optional)
Advanced Programming of Interactive Systems
Foundations and architectures of interactive systems, covering I/O technology, GUI design, programming paradigms, and client-server interaction.
#ux
#ui
#programming
more info…
Foundations and architectures of interactive systems, covering I/O technology, GUI design, programming paradigms, and client-server interaction.
Design Patterns for Decentralised Control and Coordination
Decentralised coordination techniques and emergent-design patterns for scalable, dependable collective system behaviour.
#design
#decentralization
#coordination
more info…
Decentralised coordination techniques and emergent-design patterns for scalable, dependable collective system behaviour.
Formal Methods
Formal specification and verification techniques for building mathematically proven, correctness-by-construction software systems.
#verification
#modeling
#specification
more info…
Formal specification and verification techniques for building mathematically proven, correctness-by-construction software systems.
Safe System Programming (in Rust)
Safe software construction using Rust, emphasizing memory safety, secure concurrency, and avoidance of C/C++ pitfalls.
#systems
#programming
#safety
#rust
more info…
Safe software construction using Rust, emphasizing memory safety, secure concurrency, and avoidance of C/C++ pitfalls.