Advanced Programming Concepts

  • Code

    L.27721

  • Amount of hours required

    140

  • Language

    en-GB

  • Quartile of execution

    1, 2

Advanced Programming Concepts introduces students to abstract thinking about program design and to multi-paradigm programming practices. The course builds on the foundation of procedural and object-oriented programming in C++. Students learn to apply OO design patterns to create robust software and to use generic and functional programming in their daily professional practice. This broad introduction serves as a trampoline to an in-depth study of a selection of topics such as fixed-point arithmetic, binary data representation and processing or compile-time programming that’s performed under the guidance of tutors.

Competences

  • LED competentie

Learning goals

After a successful completion of this course a student: • Will be able to explain basic OO building blocks like interface, dependency injection, etc. • Will write simple programs that leverage concepts such as dependency inversion, single responsibility principle or interface segregation. • Will design programs that use basic OO design patterns like abstract factory, strategy, dependency injection, adapter, etc. • Will document their design of those programs using UML. • Will understand the basics of generic programming and write simple generic functions or classes. • Will implement (generic) function objects and use closure types in their programs to capture state and modify behavior. • Will be familiar with selected advanced programming concepts like compile-time programming, vectorized processing, fixed-point arithmetic, etc. The learning outcomes derived from the course goals are summarized in the Assessment Matrix.

Tests