Advanced Programming and Design
|Professor|| Binder Walter
|Course program|| MSc
This course teaches concepts and methods of object-oriented programming that help create complex software systems that are maintainable, reusable, and extensible. It also addresses the development of scalable software that is able to exploit modern multicore hardware.
Type systems, inclusion polymorphism, dynamic binding, single and multiple dispatch, parametric polymorphism, principles of object-oriented programming and design, design by contract, UML, design patterns, concurrent system design.