ATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAAGTAC
TGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAACGGTCCTTAAGCTGTATTGCACCATATGACG
GATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTTCGGTCCTTAAGCTGTATTCCTTAACAACGGTCCTTAAGG
ATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAAGTAC
TGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAACGGTCCTTAAGCTGTATTGCACCATATGACG
GATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTTCGGTCCTTAAGCTGTATTCCTTAACAACGGTCCTTAAGG


Best Practices in Programming
10 June 2025
17 June 2025
For-profit: 1000 CHF
Overview
This workshop will focus on learning and internalising the practices of unit testing, refactoring, and version control through hands-on experience. The first morning will begin with an introduction to these concepts and the tools that support them. In the afternoon and on the second day, we will transition to a code clinic, where we will work together in small groups to apply these practices and improve the code brought by participants. Due to the hands-on nature of the course, which involves a lot of code handling, discussions, and sharing experiences, it will not be taught remotely.
The focus of this course is not object-oriented programming, software architecture, design patterns or algorithms. The goal of this course is to introduce skills and techniques for effectively developing software.
Audience
If the answer to two or more of the following questions is “yes”, then this course is for you:
- Do you write software to analyze data or implement in-silico models as part of your daily work?
- Do you write scientific publications based on software you created yourself but do not know what unit testing, refactoring or version control are?
- Are you writing code that you find hard to understand some weeks later?
- Do you have thousands of lines of code, but no automated way of verifying that the code works correctly?
- Do you find yourself regularly using “copy & paste” to re-use code you wrote earlier?
- Do small changes in your code later cause trouble in other unexpected places?
Learning objectives
At the end of the workshop, the participants should be able to:
- identify and avoid the most common mistakes in the process of writing software in a scientific context
- improve the quality of their code
- exploit techniques for effectively developing software
Prerequisites
Knowledge / competencies
- Working knowledge of one of the following programming languages: R, python, C/C++, java, perl, Matlab.
Technical / material
- Participants will need to share with the trainers some extracts of their code at least 2 weeks before the course.
Programme
Day 1
- Lectures “Principles”, “Clean code”, “git”
- Code Clinics
Day 2
- Lectures « Automated Testing », « Refactoring »
- Code Clinics
Application
The registration fees for academics are 200 CHF and 1000 CHF for for-profit companies.
Applications will close on 10/06/2025 or as soon as the places will be filled up. Deadline for free-of-charge cancellation is set to 17/06/2025. Cancellations after this date will not be reimbursed.
You will be informed by email of your registration confirmation. Upon reception of the confirmation email, participants will be asked to confirm attendance by paying the registration fees within 5 days.
Venue and Time
This course will be take place in Zurich and start at 9:00 and end around 17:00.
Detailed information will be provided to the participants in due time.
Additional information
Coordination: Patricia Palagi, SIB Training Group
Instructors: to be announced
We will recommend 0.5 ECTS credits for this course (given that you provide your code and work on it).
You are welcome to register to the SIB courses mailing list to be informed of all future courses and workshops, as well as all important deadlines using the form here.
Please note that participation in SIB courses is subject to our general conditions.
SIB abides by the ELIXIR Code of Conduct. Participants of SIB courses are also required to abide by the same code.
For more information, please contact training@sib.swiss.