Introduction
In this class we are going to look at the basic of programming and Softwaredesign. We will always try to not only discuss the theory but also use Python to illustrate the content programmatically. These notes are an orientation to get into the topics but should not be the only source to consider. As the class is primarily designed as self study we present exercises in the appendices to check our progress.
The structure of the notes is as follows. We first look at some basics for software design like 2 Package manager and 3 Version Control. As a next step we introduce different programming paradigms with 5 Object Oriented Programming and 6 Functional Programming as well as an introduction to the concept of 7 Working with modules and packages.
The sections on scientific programming are best seen as a motivation to study Kandolf (2025), where the packages are shown in action.
The forth part is concerned with the runtime stability, namely how to do 10 Exception handling, 11 Logging, 12 Path and file handling, 13 Testing, and 14 CI/CD. As a final conclusion we introduce the modern concept of containerization with the example of 15 Docker.