Introduction to Scientific Programming with Python
The Python programming language, named after the British comedy series *Monty Python’s Flying Circus*, is now one of the most widely used programming languages in the world. The first public version was released in 1991. Since then, Python has been continuously developed. The language enjoys great popularity, particularly in the fields of scientific computing, numerical simulations, data analysis and machine learning. In addition to its language design, which allows for rapid and flexible development, the large number of available libraries and packages is a key factor in Python’s success. These provide numerous functions for areas of application such as linear algebra, graphical user interfaces and data analysis.
The fundamental principles of Python are summarised in the Zen of Python. Among the best-known guiding principles are:
- Beautiful is better than ugly.
- Explicit is better than implicit.
- Simple is better than complex.
- Complex is better than complicated.
- Readability counts.
In line with these guiding principles, the course ‘Introduction to Scientific Programming with Python’ demonstrates, in simple steps, the building blocks offered by the Python language and how these can be used to solve even complex tasks. The focus is on scientific applications and problems from the natural sciences. In addition to the basics of programming, the course introduces methods for processing, analysing and visualising data, as well as for the numerical solution of scientific problems. Furthermore, the course covers fundamental concepts of algorithmics and general principles of good programming practice, which are relevant beyond the scope of Python.
Course format
The course is offered in different formats depending on the semester:
- Summer term: Compact course before the start of the lecture period.
- Winter semester: Course running throughout the semester.
Further information can be found in the relevant course catalog.
Language
The lectures are delivered in German. However, the course materials, the lecture notes and some of the documentation used are provided exclusively in English.
Course content
The course teaches the basics of the Python programming language and provides a step-by-step introduction to scientific applications. Topics covered include:
- Basics of Python
- Variables and data types
- Control structures
- Loops
- Functions
- Error handling
- Classes and object-oriented programming
- Generators
- Modules and packages
- Scientific libraries
- NumPy
- SciPy
- SymPy
- pandas
- Matplotlib
- tkinter
- Further topics
- Parallel programming
- Asynchronous programming with asyncio
- Project management and software development
Requirements
No prior programming knowledge is required to take part.
The following would be helpful:
- Basic knowledge of Linux or Debian, as the exercises will be carried out in the Linux CIP-Pool.
- Alternatively, you may use your own laptop. All tools used in the course are platform-independent (Windows, macOS and Linux) and available free of charge.
- A basic knowledge of English, as the course materials and parts of the documentation are in English.
Assessment
Course assessment is based on active participation in the practical exercises. The exact arrangements will be announced at the start of the course.
For graded credit as part of the IT training programme accompanying your studies, it is also necessary to complete and submit a final project. The project may be undertaken individually or in pairs. The topic will be determined in consultation with a member of the teaching staff. A selection of possible topic suggestions will be provided.
Further organisational details will be announced during the course.
Course materials
All course materials are available online: