Defensive Programming and Debugging (FutureLearn)

Defensive Programming and Debugging (FutureLearn)

Find out how to write clean and robust code. Explore techniques to minimise the number of bugs during development. Learn how to keep your code clean and bug-free. Identifying and fixing bugs in code often proves difficult. On this course, you’ll discover tools and techniques to minimise the number of bugs during software development.

Class Deals by MOOC List - Click here and see FutureLearn's Active Discounts, Deals, and Promo Codes.

You’ll learn how to catch bugs early using compiler features and writing tests for your code.
You’ll find out how to pinpoint bugs in your code using the best tools available including debuggers, code analysers and more.
You’ll 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 code that is clean, robust and easy to maintain.

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

What will you achieve?
By the end of the course, you'll be able to...

  • Develop good writen software codes
  • Produce clear and useful software documentation
  • Indentify software bugs
  • Solve sofware bugs

Who is the course for?
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.

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

Related Courses

Scratch to Python: Moving from Block- to Text-based Programming (FutureLearn) FutureLearn
Raspberry Pi Foundation

Scratch to Python: Moving from Block- to Text-based Programming (FutureLearn)

Learn how to apply the thinking and programming skills you've learnt in Scratch to text-based programming languages like Python. Discover how you can transition from block to text-based programming. Block-based programming languages like Scratch make it simple to learn and teach programming. But once you and your students have mastered it, it’s time to move on to a text-based programming language such as Python. This online course will show you how.

Mar 6th 2023
4 Weeks
Django Features and Libraries (FutureLearn) FutureLearn
University of Michigan

Django Features and Libraries (FutureLearn)

Gather all the skills you need in order to build Django-based web applications suitable for use. Learn the ins and outs of Django and how to build web applications. This practical, six-week course from the University of Michigan will give you all the skills you need in order to build Django-based web applications suitable for use by end users.

Jan 11th 2021
5-12 Weeks
Using JavaScript, jQuery, and JSON in Django (FutureLearn) FutureLearn
University of Michigan

Using JavaScript, jQuery, and JSON in Django (FutureLearn)

Understand how to use JavaScript, jQuery and JSON within the Django framework. Learn how JavaScript supports the framework of Django. Django is a Python web framework that encourages fast development and a clean, pragmatic design. This comprehensive course will introduce you to the JavaScript language, and will show you how it supports Django’s framework.

Feb 22nd 2021
5-12 Weeks
Functional Programming in Erlang (FutureLearn) FutureLearn
University of Kent

Functional Programming in Erlang (FutureLearn)

Learn the theory and practice of functional programming in Erlang, through practical exercises and suggested projects. Functional programming is increasingly important in providing global-scale applications on the internet. For example, it’s the basis of the WhatsApp messaging system, which has over a billion users worldwide.

No sessions available
3 Weeks
Introducing Robotics: Making Robots Move (FutureLearn) FutureLearn
Queensland University of Technology

Introducing Robotics: Making Robots Move (FutureLearn)

The world needs people who understand how to get robots moving. Making robots move requires both mathematical knowledge and programming skills. We begin with the problem of describing where things are in the world. Starting simply, we consider objects in a two-dimensional plane, exploring the concepts of position, pose, rotation, and translation. Robot movement relies on the principles of kinematics – the motion of a body or bodies. You’ll program forward kinematics equations in MATLAB and learn approaches to inverse kinematics.

No sessions available
3 Weeks
Programming Essentials with Python: Matplotlib and Seaborn (FutureLearn) FutureLearn
FutureLearn

Programming Essentials with Python: Matplotlib and Seaborn (FutureLearn)

Explore the fundamentals of object-orientated programming languages and learn how to visualise data with Python. Discover Python libraries and the tools to improve your data presentation. On this course, you’ll examine the core principles of data-visualisation libraries. You’ll learn to define object-oriented programming, explore the key components of visualising with Python and the tools that can be leveraged. You’ll also explore other Python libraries and their uses, learning how to define and compare them.

May 23rd 2022
4 Weeks
Programming Applications with Python: Working with Files (FutureLearn) FutureLearn
FutureLearn

Programming Applications with Python: Working with Files (FutureLearn)

Discover how to read and create files and directories in Python, and how Python is used for data collection and exploration. Learn how to use Python create applications. On this course, you’ll start to develop the knowledge and skills needed to successfully launch a career in programming or software development, learning how to program applications using Python. You’ll study alongside industry experts at Github, giving you the confidence and competitive advantage to work in or manage development teams.

May 23rd 2022
4 Weeks
Introduction to VR Programming, Design, and Unity (FutureLearn) FutureLearn
VR Voom

Introduction to VR Programming, Design, and Unity (FutureLearn)

Step into the world of VR game development, learn the basics of programming language, and even create your own 2D game. Learn how to design, program, and create your very own VR games. The gaming industry has grown exponentially, outperforming both movies and sports combined in 2020. And VR is the newest, exciting innovation taking the industry by storm.

Jun 27th 2022
5-12 Weeks
Prepare for a Software Development Career (FutureLearn) FutureLearn
FutureLearn

Prepare for a Software Development Career (FutureLearn)

Review everything you need to know about Java and Python to start a career as a software developer. Cement your foundational knowledge of Python and Java and kickstart your career in software development. You’ll apply object-oriented programming principles to Java, and go deeper on methods, constructors, strings, inheritance, classes, and collection.

May 23rd 2022
4 Weeks
Functional Programming in Haskell: Supercharge Your Coding (FutureLearn) FutureLearn
University of Glasgow

Functional Programming in Haskell: Supercharge Your Coding (FutureLearn)

Get an introduction to Haskell, the increasingly popular functional programming language, with this University of Glasgow course. Do you want to develop software using the latest programming language paradigm? Haskell is a functional programming language, based on formal mathematical principles. As such, it is easy to reason about and develop, and it executes efficiently on modern multicore machines. From investment banks to social networks, everyone is adopting Haskell.

Sep 25th 2023
5-12 Weeks
Programming 101: An Introduction to Python for Educators (FutureLearn) FutureLearn
Raspberry Pi Foundation

Programming 101: An Introduction to Python for Educators (FutureLearn)

Explore the basics of Python. Guided by the Raspberry Pi Foundation, you’ll learn to code your first program. Learn how to program in Python with help from Raspberry Pi. On this course, you’ll explore programming in Python. Guided by the Raspberry Pi Foundation, you’ll discover basic programming concepts, learning how to understand the basics of python syntax and interpret error messages.

Nov 1st 2021
4 Weeks