Introduction to Design Patterns#

Software Development is not a Jenga Game


The slides of this workshop are available here.

As scientists we don’t have to reinvent the wheel when it comes to software. Instead we will make use of software design patterns that provide proven solutions for reoccurring problems. Applying design pattern will help us achieving a higher application quality and rising the level of abstraction in documentation as well as communication with our colleagues. In this workshop we will walk you through a code example and step by step add new features. Along the way, we will involve you in every design decisions so that you have a good understanding of the pros and cons of our final solution. It is quite possible that we will come across some design patterns along the way.


  • Preparation

  • Basic knowledge of Python

  • Basic knowledge of the OOP (advantageous)

  • have a look on the starting point of the code example


  • Collaborative implementation of a sample application

  • Discussion of design decisions

  • Recognition and derivation of design patterns

  • Derive design patterns by applying development principles

Targeted Audience#

All scientists from TU Braunschweig and their research partners involved or interested in the development of research software.