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 22, 2020 - Friday, June 26, 2020
Location: Y36-K-08 (UZH Campus Irchel)

Information Concerning Covid-19: Due to the restrictions related to Covid-19 we will have the course fully online. Participants should have received a mail with more detailed explanations on 2020-06-08.


You can find the programme here.


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.


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 Tuesday, March 31, 2020.
No participation fee has to be paid.


To benefit from the course, basic knowledge of Python is required. (If you are hesitant 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.


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!