Courses

Efficient Software Testing

Avoid embarrassing bugs!
Learn to verify and design software using efficient testing techniques.


There's no such thing as perfect software.

Humans make mistakes, and AI-generated code is also often wrong. Some bugs are mild annoyances, others are a source of embarrassment, huge costs, privacy nightmares, or worse.

However, you can make good and reliable software.

The testing approaches in this course will let you catch most bugs early in development, with little overhead.

Watch the free intro for more details!

Course Contents

  7 chapters, from basic to advanced
  1.5 h
  English
Payment and access to videos is done through the Payhip platform. Separate Terms of Service and Privacy Policy apply.
Approaches Overview of testing and workflows 8m 30s
Test-Driven Development How to integrate testing into your work 12m
Unit Testing Testing individual software parts 15m 30s
Integration Testing Testing groups of units working in tandem 7m 30s
Good Test Design Principles for good and efficient testing 14m
Testing Complex Code Systemic approaches for complicated software 23m
Testing Random Code Testing software that uses randomness, including scientific research software 10m 30s

The course does not award an accredited certificate, but it will help prepare you for pursuing entry-level certifications like Certified Tester Foundation Level (CTFL) from ISTQB or Certified Software Test Professional Associate Level (CSTP-A) from IIST.

Go to course

Project Structure for Reproducible Work

Learn to structure your project files to avoid chaos and get reliable results.

This course teaches you how to structure your computational projects in a way that both enables replicating results and helps with keeping complexity under control.

Besides getting a good general template for organizing files, you will also learn what factors affect the evolution of project files, and how to account for these. This will enable you to adapt the material to a variety of projects and operating procedures.

For the different parts of the project, the course gives practical advice and standard practices.
And the examples are about making pizza!

Course Contents

  7 sections
  44 min
  English
Payment and access to videos is done through the Payhip platform. Separate Terms of Service and Privacy Policy apply.
Reproducibility Principles The factors that affect reproducibility and how these relate to project structure 5m
General Project Structure A simple, generic project structure you can start adapting to your work 5m 30s
Sub-structure: Data Details about managing data 5 min
Sub-structure: Code Details about managing code, including packaging 8m 30s
Sub-structure: Output Details about managing the output (results) of a project 11m
Sub-structure: Doc Details about managing project documentation 3m
Tracking Changes and Syncing Good practices for version control related to project structure, and a simple workflow to reliably sync project copies 6m

Target Audience and Course Requirements

The course was created with early-career researchers in mind (especially those that don’t have a formal computational background) regularly working with code and computational projects, like in e.g. bioinformatics, data processing and analysis pipelines, machine learning applications, simulation, etc.

Go to course

Productive Programming

Do you just want results but programming is getting in the way?

Struggling to adapt your code to constant requirement changes?

Trouble making your software run on different computers?

Productive Programming can help!


Cheat sheet

Target audience

The course is mainly aimed at beginner programmers, as well as scientists, researchers, or engineers who write programs as part of their work, but have an informal computational background (outside of computer science or software engineering).

Go to course