Thursday, March 26, 2009

Advanced Scientific Programming in Python G-Node Summer School

When: August 31st, 2009 - September 4th, 2009.
Where: Berlin, Germany.

Many scientists spend much of their time writing, debugging, and
maintaining software. But while techniques for doing this efficiently
have been developed, only few scientists actually use them. As a
result, they spend far too much time writing deficient code and
reinventing the wheel instead of doing research. In this course we
present a selection of advanced programming techniques with
theoretical lectures and practical exercises tailored to the needs of
the programming scientist. To spice up theory and foster our new
skills in a real-world programming project, we will team up to develop
an entertaining scientific computer game.

We will use the Python programming language for the entire
course. With a large collection of open-source scientific modules and
all features of a full-fledged programming language, Python is rapidly
gaining popularity in the neuroscience community. It enables the
scientist to quickly develop powerful, efficient, and structured
software and is becoming an essential tool for scientific computing.

The summer school is targeted at Post-docs and PhD students from all
areas of neuroscience. Substantial proficiency in Python or in
another language (e.g. Java, C/C++, MATLAB, Mathematica) is absolutely
required. An optional, one-day pre-course is offered to participants
without Python experience to familiarize with the language.

Preliminary Program
Day 0 (Mon Aug 31) -- [Optional] Dive into Python

Day 1 (Tue Sep 1) -- Software Carpentry
- Documenting code and using version control
- Test-driven development & unit testing
- Debugging, profiling and benchmarking techniques
- Object-oriented programming, design patterns and Extreme Programming

Day 2 (Wed Sep 2) -- Scientific Tools for Python
- NumPy, SciPy, Matplotlib, IPython
- Neuroscience libraries
- Programming project in the afternoon

Day 3 (Thu Sep 3) -- Parallelization
- Python multiprocessing for SMP machines
- Distributed parallelization for cluster computing
- Programming project in the afternoon

Day 4 (Fri Sep 4) -- Practical Software Development
- Software design
- Efficient programming in teams
- Quality Assurance
- Finalizing the programming project

Applications should be sent before May 31st, 2009 to No fee is charged but participants
should take care of travel, living, and accommodation expenses.

Applications should include full contact information (name,
affiliation, email & phone), a short CV and a short statement
addressing the following questions (maximum 500 words):
- What is your educational background?
- What experience do you have in programming?
- Why do you think "Advanced Scientific Programming in Python" is an
appropriate course for your skill profile?

Candidates will be selected based on their profile. Places are
limited: early application is recommended.

Pietro Berkes, Volen Center for Complex Systems, Brandeis University, USA
Jens Kremkow, Bernstein Center for Computational Neuroscience Freiburg, Germany
Eilif Muller, Laboratory of Computational Neuroscience, Ecole Polytechnique Fédérale de Lausanne, Switzerland
Michael Schmuker, Neurobiology, Freie Universität Berlin, Germany
Bartosz Telenczuk, Charité Universitätsmedizin Berlin, Germany
Niko Wilbert, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany
Tiziano Zito, Bernstein Center for Computational Neuroscience Berlin, Germany

Organized by Michael Schmuker and Tiziano Zito for the German
Neuroinformatics Node of the INCF.