Best Practices in Programming

Date 7 - 8 July 2021
Speaker(s) Uwe Schmitt, Manuel Weberndorfer, Swen Vermeul, Franz-Josef Elmer, Mikolaj Rybinski
ECTS 0.5
Fees *academic: 120 CHF   -   for-profit: 600 CHF
Cancellation deadline 27 Jun 2021
City Streamed from Basel and Zurich
*academic fee includes non for-profit organisations as well as unemployed participants at the time of application.

Overview

The workshop will focus on learning and internalizing the practices of unit testing, refactoring, and version control through hands-on experience. The first morning will start with an introduction into these concepts and tools used to support them. In the afternoon, we will transition to a code clinic and work together in small groups applying these practices to make improvements to code brought by participants. The second day will continue with the code clinic.

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 her/his 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.
Technical / material
  • Participants should send some extracts of their code at least 2 weeks before the course

Application

The registration fees for academics are 120 CHF and 600 CHF for for-profit companies.

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 fees within 5 days.

Deadline for free-of-charge cancellation is set to 27/06/2021. Cancellation after this date will not be reimbursed. Please note that participation in SIB courses is subject to our general conditions.

Venue and Time

This course will be streamed.

The course will start at 9:00 and end around 17:00. Precise information will be provided to the participants in due time.

Additional information

Coordination: Grégoire Rossier

Instructors: Franz-Josef Elmer (IT Services, ETHZ and SIB), Uwe Schmitt, Manuel Weberndorfer, Swen Vermeul, Mikolaj Rybinski (all IT Services, ETHZ).

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.