Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.


Defensive Programming and Debugging

Partnership for Advanced Computing in Europe via FutureLearn


Learn how to identify and solve software bugs in your code

Want to improve your ability to identify and fix bugs in code?

On this course, you’ll discover how to reduce bugs during software development. You’ll learn with examples in both C and Fortran programming languages and understand how to catch bugs early using compiler features and writing tests for your code.

You’ll learn to find the bugs in your code using the best tools available including debuggers and code analysers. You’ll also look at parallel programs and explore tools for debugging parallel code at scale.

By the end of the course, you’ll feel confident writing high-quality and clean code.

This is an intermediate level course aimed at people with some programming experience. Although examples will be given in C and Fortran, the principles (and most of the tools) are transferable to other programming languages.


  • Defensive programming
    • Welcome to the course
    • Best practices in coding
    • Documentation
    • Discussions
    • Week 1 recap and Additional material
  • Preventing bugs
    • Introduction
    • Testing code
    • Code Coverage
    • Compiler flags to prevent bugs
    • Static code checkers
    • Discussions
    • Week 2 recap and additional material
  • Finding bugs
    • Introduction
    • Debugging concepts and techniques
    • Debugging serial programs
    • Verification of serial programs
    • Discussions
    • Week 3 recap and additional material
  • Debugging parallel code
    • Introduction
    • Debugging MPI parallel code
    • Debugging OpenMP and hybrid (MPI+ OpenMP) parallel codes
    • Verification of parallel programs
    • Discussions
    • Week 4 recap and additional material
  • Debugging examples
    • Introduction
    • Taxonomy of bugs
    • Student exercises
    • Discussions
    • Closing and goodbye

Taught by

Geert Jan Bex


5 rating at FutureLearn based on 1 rating

Start your review of Defensive Programming and Debugging

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.