Module Number

Module Title

Software Design and Programming Techniques
Type of Module

Elective Compulsory
Work load
- Contact time
- Self study
180 h
Class time:
60 h / 4 SWS
Self study:
120 h
Duration 1 Semester
Frequency Irregular
Language of instruction German and English
Type of Exam

Written or oral exam; Successful participation in the exercise is a prerequisite for the exam.

Lecture type(s) Lecture, Tutorial

The goal of this course is to provide knowledge on how design and programming techniques can improve the effectiveness of developers throughout the software lifecycle. In addition to classic topics such as design and architecture patterns, design heuristics, and framework design, we will learn about a wide range of tools and programming techniques, for example for refactoring or implementing domain-specific languages. You will learn techniques from both research and industrial practice and deepen your knowledge by reading scientific articles and experimenting with practical tools.


Students are able to understand and apply design techniques such as design patterns. They can evaluate a software design and understand the trade-offs between modularity, extensibility, performance, etc. Students will be able to use technical terminology to describe the relationship between programming languages and design techniques and will be able to use advanced programming techniques in modern programming languages to design software.

Allocation of credits / grading
Type of Class
Type of Exam
Exam duration
of Module (%)
Prerequisite for participation INFM1110 Practical Computer Science 1: Declarative Programming,

INFM1120 Practical Computer Science 2: Imperative and Object-Oriented Programming
Lecturer / Other Ostermann


Last offered unknown
Planned for currently not planned
Assigned Study Areas BIOINFM2510, INFM2510, INFM3110, MDZINFM2510, MEINFM3210