Scientific Software Development tutorials

This is the index of tutorials on software development for scientific computing basics. These are not specific to high-performance computing (yet), but introduce the standard tools that professional devolpers already have which solve the practical problems in writing code: tracking revisions, debugging, making it correct, making it fast, and so on. Basically, the raw material that scientists need in order to do their work the best.

The format is designed to be short packets of tools or ideas which can be immediately used, not detailed theory. If talks come in groups of two, the first is a discussion about why and how we might want to use some tool, and the second is a practical (and hands-on) introduction to the topic.

This project is still new, so you still see the versions for each specific audience (and partially incomplete or buggy, depending on the state when it was presented). This page has existed only a few weeks, so is under active development. Also, a new tutorial hopefully appears every 2-3 weeks, or whenever I can present them.

Courses

These tutorials were transformed into an informal course at the Aalto University Department of Biomedical Engineering and Computational Science, during the Spring 2015 term. Course information is available at the course page

In June 2015, the git, debugging, and profiling (and an introduction talks were given at Scientific Computing in Practice 2015. These tutorials are made more concise and hands-on compared to the ones below.

Tutorials

Tutorials are created to serve two purposes at the same time, a) a presentation to be given in a lecture or workshop format, and b) a notes format that can be read independently after the lecture. To save work and make the product most useful, both of these formats are combined in the same documents. In the presentation version, you see a "slide version" (use left/right arrows to scroll) followed by a hidden box of details. In the normal version, the box of details is larger and should roughly cover what should be said in a presentation (but sometimes in more detail).

This project is new, and thus different tutorials have various phases of completeness. Some have just the presentation part completed, some are in an older format.

The following tutorials are "under development": they have some content, but have not been presented yet and thus are not fully structurally sound:

Other information

Similar or other resources:

Future tutorials will include: