Topic outline

  • General

    Best practices in programming

    Bern, 21-22 November 2011

    Course description:

    The goal of this course is to teach the principals of software engineering and development to bioinformaticians. We will be focusing on version control and code craftsmanship. The course will be structured around a practical example applicable to bioinformatics and mix theory with hands-on exercises putting the theory into practice. The exercises will be in the Python programming language (version 3), and Git will used for version control.

    Course participants should already have some programming experience (e.g., in Python, Perl, Java, Matlab, R, or C). Since the practical portion of the course will be in Python, we encourage participants without Python experience to familiarize themselves with the language by going through the tutorial.

    The environment for the course will be Eclipse with PyDev and EGit. We will be providing Eclipse distributions for MacOS X, Windows, and Linux with the required packages already built in. Eclipse/PyDev would, of course, be an ideal environment for those of you who work through this Python tutorial.


    Bernd Rinn, Hannes Schabauer, Milan Simonovic, Franz-Josef Elmer, Ramakrishnan Chandrasekhar

    Important note: participants must bring their own computers

    Practical organization - Location and schedule

    Version Control in Git
    We will introduce the Git version control system and work through usage patterns optimized for small (1-2 person) teams.

    2. Basic Principals for Readable, Maintainable Code
    We will teach a few very useful principals for writing code that you will be able to still understand three months later.

    3. Basic Principal in Depth: Unit Testing
    We will take a more in-depth look at one of the basic principals: unit testing. We will look at testing strategies and techniques for minimizing writing effort and maximizing value of tests.


    Room 304, main building of the University of Bern.

    Hotel suggestion:



    Registration is closed.