Best practices in programming

Event Start Date 23 Oct 2017
Event End Date 24 Oct 2017
ECTS 0.5 (given an active participation)
Fee free for SIB PhD Training Network members, 100 CHF for academics. Others, please contact us.
Application status Open
Location Basel, Switzerland

This workshop is organised by the SIB PhD Training Network. Priority is given to its members, but is open to everyone.

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 / skills:
Working knowledge of one of the following programming languages: R, python, C/C++, java, perl.

Material:

  • Participants should bring their own laptop with a Wifi connection.
  • Participants should send some extracts of their code at least 2 weeks before the course

Application

Registration fees for academics are 100 CHF (free for members of the SIB PhD Training Network). This includes course content material and coffee breaks. Participants from non-academic institutions should contact us before application.

Deadline for application and cancellation is set to the 8 OctoberCancellation after this date will not be reimbursed. Please note that participation to SIB courses is subject to our general conditions.

Location & Timing

ETHZ BSSE building at Mattenstrasse 26, Basel

Day 1 morning lectures (starts at 10:00)

  • General Programming principles
  • Unit testing
  • Refactoring
  • Git

Day 1 afternoon

code clinic (part 1)

Day 2

code clinic (part 2)

Additional information

Tutors: Franz-Josef Elmer, Uwe Schmitt, Juan Fuentes, Matthew Baker, Geoffrey Fucile, Rubén Cabezón

Coordination: Grégoire Rossier