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: {{:announcement-python-summerschool.pdf|pdf}}
====== Date & Location ======
**August 31—September 5, 2015**. Munich, Germany {{:flags:de.png|Germany}}
[[localinfo|Information about the venue, the city of Munich, travel, and accommodation]]
====== Applications ======
You can apply [[https://python.g-node.org/survey/index.php/survey/index/sid/11135/|on-line]]. Here is a {{:application_form_draft.pdf|preview}} of the application form.
Applications must be submitted before **23:59 UTC, March 31, 2015**. The application process is closed: We received 300 applications and are in the process of reviewing them to select the 30 participants! Notifications of acceptance will be sent by **May 1, 2015**. [[students|Participants]] have been selected. If you missed the deadline, write to python-info@g-node.org 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.
[[http://www.fens.org/|FENS]] and [[http://ibro.info|IBRO-PERC]] provide [[http://www.fens.org/Training/Training-Grants-and-Stipends/NENS-Grants/Slots-in-national-courses-or-programmes/|4 stipends of 750€]] for master and/or PhD students interested in attending this course. Through these stipends FENS and IBRO-PERC aim to encourage and promote international experience of students; hence, students that are currently residing or studying in Germany are **not** eligible for a FENS and IBRO-PERC stipend. You can apply for the FENS and IBRO-PERC directly in our [[https://python.g-node.org/survey/index.php/survey/index/sid/11135/|application form]].
Candidates will be selected on the basis of their profile and motivation. Places are limited: acceptance rate this year was 10%.
**You are supposed to know the basics of Python to participate in the lectures!**
**You are encouraged to go through the [[introductory_material|introductory material]].**
====== Students ======
[[students|Confirmed participants]].
====== Program ======
**[[schedule|Day-by-day schedule]] with links to lecture and exercise materials**
**Day0** (Mon Aug 31): **Best Programming Practices**
* Best Practices for Scientific Computing
* Version control with git and how to contribute to Open Source with github
* Object-oriented programming & design patterns
**Day1** (Tue Sep 1): **Software Carpentry**
* Test-driven development, unit testing & quality assurance
* Debugging, profiling and benchmarking techniques
* Advanced Python: generators, decorators, and context managers
**Day2** (Wed Sep 2): **Scientific Tools for Python**
* Advanced NumPy
* The Quest for Speed (intro): Interfacing to C with Cython
* Contributing to Open Source Software/Programming in teams
**Day3** (Thu Sep 3): **The Quest for Speed**
* Writing parallel applications in Python
* Python 3: why should I care
* Programming project
**Day4** (Fri Sep 4): **Efficient Memory Management**
* When parallelization does not help: the starving CPUs problem
* Programming project
**Day5** (Sat Sep 5): **Practical Software Development**
* Programming project
* The Pelita Tournament
----------------------------------------------------------------------------
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 5, we are going to have a little closing party that you should not miss: book your return travel not before Sunday, September 6 ;-)
====== Faculty ======
* [[http://people.brandeis.edu/~berkes|Pietro Berkes]], Enthought Inc., Cambridge {{:flags:uk.png|UK}}
* [[https://marianne-corvellec.appspot.com|Marianne Corvellec]], Plotly Technologies Inc., Montréal {{:flags:ca.png|Canada}}
* [[http://dimer.fuw.edu.pl/Members/ZbyszekJSzmek|Zbigniew Jędrzejewski-Szmek]], Krasnow Institute, George Mason University, Fairfax {{:flags:us.png|USA}}
* [[http://neuralensemble.org/people/eilifmuller/|Eilif Muller]], Blue Brain Project, École Polytechnique Fédérale de Lausanne {{:flags:ch.png|Switzerland}}
* [[http://ilovesymposia.com|Juan Nunez-Iglesias]], Victorian Life Sciences Computation Initiative, University of Melbourne {{:flags:au.png|Australia}}
* [[http://debilski.de|Rike-Benjamin Schuppner]], Institute for Theoretical Biology, Humboldt-Universität zu Berlin {{:flags:de.png|Germany}}
* [[http://neuroscience.telenczuk.pl/|Bartosz Teleńczuk]], European Institute for Theoretical Neuroscience, CNRS, Paris {{:flags:fr.png|France}}
* [[http://cbio.ensmp.fr/~nvaroquaux/|Nelle Varoquaux]], Centre for Computational Biology Mines ParisTech, Institut Curie, U900 INSERM, Paris {{:flags:fr.png|France}}
* [[http://www.cognition.tu-berlin.de/zito/|Tiziano Zito]], Forschungszentrum Jülich GmbH {{:flags:de.png|Germany}}
====== Evaluation Survey Results ======
{{:evaluation_survey_results.pdf| Evaluation survey results}}
====== Previous Schools ======
* [[https://python.g-node.org/python-summerschool-2014|Split]], Croatia, September 8—13, 2014. {{:evaluation_survey_2014_split.pdf| Evaluation survey}}. \\
* [[https://python.g-node.org/python-summerschool-2013|Zürich]], Switzerland, September 1—6, 2013. {{:evaluation_survey_2013_zurich.pdf| Evaluation survey}}. \\
* [[https://python.g-node.org/python-summerschool-2012|Kiel]], Germany, September 2—7, 2012. {{:evaluation_survey_2012_kiel.pdf| Evaluation survey}}.\\
* [[https://python.g-node.org/python-summerschool-2011|St Andrews]], UK, September 11—16, 2011. {{:evaluation_survey_2011_standrews.pdf| Evaluation survey}}.\\
* [[https://python.g-node.org/python-autumnschool-2010|Trento]], Italy, October 4—8, 2010. {{:evaluation_survey_2010_trento.pdf| Evaluation survey}}.\\
* [[https://python.g-node.org/python-winterschool-2010|Warsaw]], Poland, February 8—12, 2010. {{:evaluation_survey_2010_warsaw.pdf| Evaluation survey}}.\\
* [[https://python.g-node.org/python-summerschool-2009|Berlin]], Germany, August 31—September 4, 2009. {{:evaluation_survey_2009_berlin.pdf| Evaluation survey}}.
====== Organizers ======
Organized by [[http://www.cognition.tu-berlin.de/zito/|Tiziano Zito]] (head)
and [[https://fedoraproject.org/wiki/User:Zbyszek|Zbigniew Jędrzejewski-Szmek]] for the [[http://www.g-node.org/|German Neuroinformatics Node]] of the [[http://www.incf.org/|INCF]] {{:flags:de.png|Germany}},
Christopher Roppelt for the [[https://www.klinikum.uni-muenchen.de/Deutsches-Schwindelzentrum-IFB-LMU/|German Center for Vertigo and Balance Disorders (DSGZ)]] and the [[http://www.gsn.uni-muenchen.de/|Graduate School of Systemic Neurosciences (GSN)]] of the Ludwig-Maximilians-Universität Munich {{:flags:de.png|Germany}}, Christoph Hartmann for the [[https://fias.uni-frankfurt.de/|Frankfurt Institute for Advanced Studies (FIAS)]] and [[http://www.brain.mpg.de/graduate-studies/|International Max Planck Research School (IMPRS) for Neural Circuits]], Frankfurt {{:flags:de.png|Germany}}, and Jakob Jordan for the [[http://www.csn.fz-juelich.de|Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6), Jülich Research Centre and JARA]], {{:flags:de.png|Germany}}. Additional funding provided by the Bernstein Center for Computational Neuroscience (BCCN) Munich.
====== Contact ======
For any further questions please write to [[python-info@g-node.org]].\\
====== Sponsors ======
Machines for parallel computing exercises are graciously provided by [[http://www.s3it.uzh.ch|S3IT - Services and Support for Science IT]] of the University of Zürich.
| [[http://www.fens.org/|{{FENS-LOGO.jpg?250|http://www.fens.org/}}]]|[[http://ibro.info/|{{ibro-logo.jpg?250|http://ibro.info/}}]] | [[http://www.s3it.uzh.ch/|{{uzh_logo.jpg?200|http://www.s3it.uzh.ch}}]] |