Introduction to Scientific Python

(registration form below)

Description

Scientists approach programming from a very different angle than conventional software developers: most codes written for scientific applications are quick solutions, either single-use code designed to perform a specific analysis or glue code tying data processing steps together. Yet compiled languages like Fortran and C focus on speed and well-formedness, at the expense of being more verbose and more prone to subtle errors.

This makes for a strong case for the Python programming language, combined with the SciPy (scientific python) package. Python is a simple yet highly expressive, interpreted language. It has a “batteries included” approach to computing: it ships a large standard library and provides easy bindings to Fortran or C code. SciPy amends Python with a powerful and fast matrix library in the spirit of MATLAB. It also comes with a huge toolbox for numerical and scientific computing. This makes writing scientific code incredibly fast and a pleasurable expericence.

In this two-day workshop, we will cover the following topics:

Prerequisites

This workshop is directed at doctoral candidates (Ph.D. students) at the TU Wien, who write or plan to write scientific code for their research.

You should have at least basic coding skills, preferrably in C, Fortran, Python or MATLAB.

(Hastily added note for participants of the VSC tutorial on node-level performance engineering: unfortunately, these two workshops collide, which I found out only after fixing the time slot — seriously, what are the odds?. However, you can still join the SciPy workshop; I suggest you read up on the basics, session 1 and 2, using the slides and join then on Friday around 5.00 pm. In this case, please write a corresponding note in the comment field below.)

Slides

Presentation slides for the previous workshop can be found here. Feel free to modify and/or redistribute the slides under the Creative Commons Attribution Share-Alike 3.0 license.

  1. Python introduction (PDF, 740 kB)
  2. NumPy introduction (PDF, 355 kB)
  3. Plotting and advanced topics (PDF, 565 kB)
  4. Homework (Zip)