Summer school – Collaborative scientific software development

Collaborative scientific software development

 

This summer school is in collaboration with Digital Life Norway (DLN).

TIME: 20 June – 1 July 2022

LOCATION: Høyteknologisenteret, University of Bergen

ORGANISERS: David Grellscheid, Digital Lab UBB

COURSE WEBPAGE: Here.

REGISTRATION: Closed. Register by 23rd of May.
Please note that participation at the school is free, but in case of a late non-medical cancellation we reserve the right to bill you kr.2000 for the lunches which we need to pre-book. The concept of the school and especially the group work aspects rely on all participants being able to take part for the full length of the school.

CREDITS: 3 ECTS

 

LECTURERS:

David Grellscheid (UiB)

Ivan Girotto (International Centre for Theoretical Physics, Trieste, Italy)

Ali Farnudi (ENS Lyon, France)

Korbinian Bösl (UiB)

Jenny Ostrop (UiB)

Stefanie Hólmgeirsdóttir (Sensar Marine)

 

DESCRIPTION:

What comes next once you’re comfortable with the syntax of a programming language or two, and have written some small programs for yourself? Once a project grows to a certain size, factors beyond the immediate programming task take more and more time, and the social aspects of software development become more important.

The aim of this summer school is to give an introduction to topics that go beyond the initial knowledge of reading and writing code. How do you design programs that are modular and reusable by others? How can libraries in different languages be used together? What are tools that can help in documenting and testing code? How can development and releases be managed in group projects with multiple authors and multiple users?

In a mixture of talks and many hands-on sessions we’ll try to address this next step. In the second half of the workshop, you will work in small groups on designing and writing a new project from scratch, giving you direct experience of having to rely on other people’s code.

 

TOPICS:

– Effective collaborative development

– Version control tools; Release cycles

– Useful documentation for different audiences; User interactions

– Testing and debugging; Continuous integration

– Profiling and optimization

– Mixing programming languages

– Copyright and licensing

 

LEARNING OUTCOMES:

After this course the participants will be able to identify challenges related to developing software in a group. They will be able to use tools and techniques to make this process easier.

 

EVALUATION:

Participants are expected to attend all 10 days. In the second half of the summer school, you will work in small groups on a project that you will present on the last day.

 

PREREQUISITIVES:

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

The working language for the examples will be Python, but participants with other language backgrounds are very welcome and will be able to benefit from the course equally. Please familiarize yourself with Python basic syntax in that case. You are welcome to sign up for our preparation workshop on May 3rd, where we will assist you in doing execises from a Python tutorial, and answer any questions you may have about Python syntax.