a Summer School by the G-Node and the School of Psychology, University of St Andrews

Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists actually use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques, incorporating theoretical lectures and practical exercises tailored to the needs of a programming scientist. New skills will be tested in a real programming project: we will team up to develop an entertaining scientific computer game.

We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist.

This school is targeted at PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python is assumed. Participants without any prior experience with Python should work through the proposed introductory materials before the course.

Download the original announcement: pdf

Date & Location

September 11–16, 2011. St Andrews, UK

Information about St Andrews, travel, and accommodation.

Preliminary Program

Day0 (Sun Sep 11): Best Programming Practices

  • Best Practices, Development Methodologies and the Zen of Python
  • Advanced Python: decorators, generators, context managers
  • Version control with git

Day1 (Mon Sep 12): Software Carpentry

  • Object-oriented programming & design patterns
  • Test-driven development, unit testing & quality assurance
  • Debugging, profiling and benchmarking techniques
  • Programming in teams

Day2 (Tue Sep 13): Scientific Tools for Python

  • Advanced NumPy
  • The Quest for Speed (intro): Interfacing to C with Cython
  • Best practices in data visualization

Day3 (Wed Sep 14): The Quest for Speed

  • Writing parallel applications in Python
  • Programming project

Day4 (Thu Sep 15): Efficient Memory Management

  • When parallelization does not help: the starving CPUs problem
  • Data serialization: from pickle to databases
  • Programming project

Day5 (Fri Sep 16): Practical Software Development

  • Programming project
  • The Pac-Man Tournament

Lectures start at 8:30 and finish around 18:30. During the day we will have short breaks (coffee & tea provided), and a long lunch break. The last half hour every evening is dedicated to tutors' consultation: Tutors will answer your questions and give suggestions for your own projects.

On Sunday, September 11 registration starts at 8:00: please try to be there as soon as possible, the lecture starts at 8:30 sharp.

On Friday, September 16, we are going to have a little farewell party that you should not miss: book your return travel not before Saturday, September 17.



You can apply on-line. Registration is now closed.
Applications must be submitted before May 29, 2011. Notifications of acceptance will be sent by June 19, 2011. Notifications have been sent.
No fee is charged but participants should take care of travel, living, and accommodation expenses.
Candidates will be selected on the basis of their profile. Places are limited: acceptance rate in past editions was around 30%. We selected 30 participants out of 154 applicants.


You are supposed to know the basics of Python to participate in the lectures!

If you are not familiar with Python, you are urged to go through the excellent Python Scientific lecture notes edited by Emmanuelle Gouillart and Gaël Varoquaux.



Francesc Alted, Barcelona Music and Audio Technology (BMAT), author of PyTables, Spain
Pietro Berkes, Volen Center for Complex Systems, Brandeis University, USA
Valentin Haenel, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany
Zbigniew Jędrzejewski-Szmek, Faculty of Physics, University of Warsaw, Poland
Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno Kessler and University of Trento, Italy
Rike-Benjamin Schuppner, Bernstein Center for Computational Neuroscience Berlin, Germany
Bartosz Teleńczuk, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany
Bastian Venthur, Berlin Institute of Technology and Bernstein Focus: Neurotechnology, Germany
Pauli Virtanen, Institute for Theoretical Physics and Astrophysics, University of Würzburg, Germany
Tiziano Zito, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany

Evaluation Survey Results

Previous Editions

Trento, Italy, October 4—8, 2010.
Warsaw, Poland, February 8—12, 2010.
Berlin, Germany, August 31—September 4, 2009.

You may be interested in the results of our evaluation surveys: Trento, Warsaw, Berlin.


For any further questions, please write to python-info@g-node.org.


Organized by Katharina Maria Zeiner and Manuel Spitschan of the School of Psychology, University of St Andrews , and by Zbigniew Jędrzejewski-Szmek and Tiziano Zito for the German Neuroinformatics Node of the INCF .

Additional funding is generously provided by:

start.txt · Last modified: 2012/01/27 10:50 by tiziano
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki