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.
Certificate to participant(s) at the end of the Workshop shalls be only upon successful contribution to the final development projects.
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.
All lectures' slides and course material is available on a public GitLab repository: https://gitlab.com/ictp-cssd-2019