Scientific Calendar Event

Description Note: ICTP has suspended all educational activities from 24 February up to 15 May as precautionary measures due to COVID-19; more details at

Deadline for applications extended to 23 February 2020.

Writing software has become central to research in many fields of science. This school aims to give early-career scientists an introduction to a variety of topics that help them to write efficient, clean, maintainable and long-lived code that is useful beyond solving an immediate problem. In a mixture of talks and many hands-on sessions, the focus lies on showing best practices and building fundamental skills in creating, extending and collaborating on modular and reusable software.


• Python / shell scripts as glue code
• Introduction to computer architectures and software optimization
• Modular, reusable software design
• Effective collaborative development with multiple co-authors
• Version control and release cycles
• Automated testing frameworks
• Structured documentation
• Management of open source scientific packages
• Continuous integration & deployment
• Conversational development


A. CORBETTA, Eindhoven University of Technology, The Netherlands
A. FARNUDI, Sharif University of Technology, Tehran, Iran
I. GIROTTO, ICTP, Trieste, Italy
D. GRELLSCHEID, University of Bergen, Norway & ICTP, Trieste, Italy
S. HOLMGEIRSDOTTIR, These Ways AS, Bergen, Norway
S. RICHTER, DESY, Hamburg, Germany

A limited number of grants are available to support the attendance of selected participants, with priority given to participants from developing countries. There is no registration fee.

Participants are expected to have some experience in a programming language, this course is not suitable for beginners in programming.
Go to day