Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists have been trained to 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 Master or 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
Applications must be submitted before 23:59 UTC, May 1, 2014.
The application process is closed: We received 168 applications!
Notifications of acceptance will be sent by June 1, 2014. Participants have been selected. If you missed the deadline, write to email@example.com to be put on the announcement list for next year.
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 is usually around 20%.
You are encouraged to go through the introductory material.
Day-by-day schedule with links to lecture and exercise materials
Day0 (Mon Sep 8): Best Programming Practices
Day1 (Tue Sep 9): Software Carpentry
Day2 (Wed Sep 10): Scientific Tools for Python
Day3 (Thu Sep 11): The Quest for Speed
Day4 (Fri Sep 12): Efficient Memory Management
Day5 (Sat Sep 13): Practical Software Development
Lectures start at 8:30 sharp 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 Saturday, September 13, we are going to have a little closing party that you should not miss: book your return travel not before Sunday, September 14
Organized by Tiziano Zito (head) and Zbigniew Jędrzejewski-Szmek for the German Neuroinformatics Node of the INCF , Lana Periša for the Numerical and applied mathematics group, FESB, University of Split , Ivana Kajić from the CogNovo - Plymouth University , Ivana Balažević from the Technical University Berlin , and Filip Petkovski from IN2 Ltd. Skopje .
For any further questions please write to firstname.lastname@example.org.
Machines for parallel computing exercises are graciously provided by S3IT - Services and Support for Science IT of the University of Zürich.