On this page
0(0)
Defensive Programming and Debugging
- Course level:
All Levels - Share:
- Categories
IT - Duration
13h - Total Enrolled
0 - Last Update
December 8, 2020
About Course
Partnership for Advanced Computing in Europe
Description
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.
What topics will you cover?
- Defensive programming: the use of good coding style, documentation strategies and good code testing
- Preventing bugs: how to use compiler flags and static code checkers to identify bugs in an early stage
- Finding bugs: debugging concepts and technics
- Using the debugging tools GDB and Valgrind to fix serial programs
- Debugging parallel code: using Intel Inspector and ITAC
Who will you learn with?
During my physics studies I got interested in research in computational physics/astrophysics. After several postdoctoral positions I joined VSC and I stay close to science by supporting our HPC users.
I have been for more than 20 years helping users to take the most of the HPC systems. Since 2013 I work at the HPC User Support Team at KU Leuven.
Who developed the course?
The Partnership for Advanced Computing in Europe (PRACE) is an international non-profit association with its seat in Brussels.
What Will I Learn?
- Develop good written software codes
- Produce clear and useful software documentation
- Identify software bugs
- Solve software bugs
Topics for this course
Welcome to the course?
Welcome to Defensive programming and debugging00:00:00
Prerequisites and structure of the course
Set up the technical environment
Impact of bugs
Draft Lesson
Best practices in coding?
Introduction to best coding practices
Coding best practices: reading material
Best practices coding: Fortran00:06:38
Error handling in Fortran
Best practices in coding: C/C++00:06:22
Error handling in C/C++
Assertions
Code obfuscation00:02:54
Getting help from your development environment
Documentation?
Introduction to documentation
Documentation best practices: reading material
API documentation: Fortran00:09:00
API documentation: C/C++00:06:21
Application/Library documentation
Material Includes
- Official Certificate
Login
Target Audience
- 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.

