How can I efficiently test if my code does what it should do? How can I improve the performance of my code? What are ways to improve the development of code in a collaborative environment? How can I handle my data in an easy way? Is it possible to run existing C++ code in Python? If you come across these or similar questions in your daily work as a scientist, you will very likely profit from this course.
A large part of everyday's work of many scientists today is spent on programming, debugging and maintaining software. Although there are tools and procedures to do this in an efficient way, many scientists have never experienced a thorough instruction in these techniques. Writing code is for them only an auxiliary field in their work. Therefore they spend a significant time on writing deficient code and reinventing the wheel. But ultimately scientists should do science and not spend most of their time with software engineering tasks...
This course will teach a selection of important programming techniques and incorporates theoretical lectures followed by practical exercises where the discussed techniques can be applied and tried out.

We use Python as programming language through the entire course. Python is easy to learn and popular among scientists. Over the last couple of years high-quality programming libraries tailored for scientific computing and data analysis have been developed.


Date and Location

Date: Monday, June 28, 2021 - Friday, July 02, 2021
Location: Y36-K-08 (UZH Campus Irchel)

Information Concerning Covid-19: If the situation next summer allows, we will run the school on-site. However we will be ready to teach the school online again should this be necessary.

Programme / Lecture Material

You can find the programme here. Once the school starts we will also upload slides and other lecture materieal there.


At the UZH, participants that attend the course and successfully participate in the exercise sessions are awareded 1 ECTS point. All participants will receive a confirmation stating this.


This course is not an introduction into programming or Python.
To benefit from the course, basic knowledge of Python is required. If you are unsure if your Python knowledge is suitable enough for this course, please have a look at this pop-up quiz.

We encourage everybody who has only limited knowledge to study the introductionary material. It is also beneficial for all other people to refresh their knowledge by working through them. In this context please be aware that the course will use the Python 3 syntax.


To provide an optimal experience for everybody, the number of participants is limited. If you are interested to participate in this course, please apply via the corresponding form.
The closing date for applications is Wednesday, March 31, 2021.
No participation fee has to be paid.


For any further questions please write to



This course is supported by the Physics Institute and the Faculty of Science of the University of Zurich. Thank you!