The school chatroom can be found at:

Please contact an organiser if you are experiencing difficulties logging in.

Date & Location

20th - 27th January, 2019. The Australian National University, Canberra, Australia Australia

The application deadline for ASPP-APAC is October 7th, 23:59pm Anywhere on Earth. You can apply here Applications are now closed.

NOTE: This site is specifically for the Asia-Pacific version of ASPP. The original ASPP summer school, which takes place each summer in Europe, is running independently of this. The next school will take place at the end of August or start of September, 2019. For more information on the European school, go to

What the school is for:

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 and best practices that are standard in industry, but especially tailored to the needs of a programming scientist. Lectures are devised to be interactive and to give the students enough time to acquire direct hands-on experience with the materials. Students will work in pairs throughout the school and will team up to practice the newly learned skills in a real programming project — an entertaining 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 people in all areas of science: Masters and PhD students, Post-docs, technicians and employees. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python and of a version control system such as git, subversion, mercurial, or bazaar is assumed. Participants without any prior experience with Python and/or git should work through the proposed introductory material before the course.

We are striving hard to get a pool of students that is international and gender-balanced: see how far we got in previous years!

Faculty, organizers, students.


  • Version control with git and how to contribute to open source projects with GitHub
  • Best practices in data visualization
  • Organizing, documenting, and distributing scientific code
  • Testing scientific code
  • Profiling scientific code
  • Advanced NumPy
  • Advanced scientific Python: decorators, context managers, generators, and elements of object oriented programming
  • Writing parallel applications in Python
  • Speeding up scientific code with Cython and numba
  • Memory-bound computations and the memory hierarchy
  • Programming in teams

Also see the detailed day-by-day schedule and information about venue and travel.

Materials from previous years

See the archives.