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
●    Mixing programming languages
●    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
●    Systematic debugging
●    Management of open source scientific packages
●    Continuous integration & deployment
●    Conversational development
Participants are expected to have some experience in a programming language, this course is not suitable for beginners in programming.

Grants:  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.


Go to day