Defensive Programming and Debugging

Go to class
Write Review

Free Online Course: Defensive Programming and Debugging provided by FutureLearn is a comprehensive online course, which lasts for 5 weeks long, 4 hours a week. The course is taught in English and is free of charge. Upon completion of the course, you can receive an e-certificate from FutureLearn. Defensive Programming and Debugging is taught by Geert Jan Bex.

Overview
  • 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.

Syllabus
    • 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