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

Software Development: Understanding Python (FutureLearn) FutureLearn
FutureLearn

Software Development: Understanding Python (FutureLearn)

Get an introduction to software development and learn the basics of Python. If you want to start a career in software development, it’s important to build your programming skills. This course focuses on one of the most popular programming languages – Python – which is widely used in scientific and numeric computing.

Self Paced
4 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.

Self Paced
4 Weeks
Object-oriented Programming in Python: Create Your Own Adventure Game (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Object-oriented Programming in Python: Create Your Own Adventure Game (FutureLearn)

Learn object-oriented programming principles by creating your own text-based adventure game in Python. Object-oriented programming is a programming paradigm based on objects and data rather than actions and logic. This online course will introduce you to the principles of object-oriented programming in Python, showing you how to create objects, functions, methods, and classes.

Jan 2nd 2023
4 Weeks
Robotics With Raspberry Pi: Build and Program Your First Robot Buggy (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Robotics With Raspberry Pi: Build and Program Your First Robot Buggy (FutureLearn)

Build and program your first robot buggy using a Raspberry Pi, learning how to connect motors, add sensors and write algorithms. Learn robotics by building a robot buggy and controlling it with a Raspberry Pi. On this course from the Raspberry Pi Foundation, you’ll build a robot buggy controlled by a Raspberry Pi.

Jan 2nd 2023
3 Weeks
Networking with Python: Socket Programming for Communication (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Networking with Python: Socket Programming for Communication (FutureLearn)

Discover how you can create networked applications in Python by using sockets. Supported by Google. Build your practical network application skills and understanding. On this course from the Raspberry Pi Foundation, you’ll learn how to create programs that communicate over the internet.

Mar 6th 2023
3 Weeks
Programming Applications with Python: Libraries and Web Scraping (FutureLearn) FutureLearn
FutureLearn

Programming Applications with Python: Libraries and Web Scraping (FutureLearn)

Consider applications for APIs and Python, and explore the purpose of web scraping. Examine Python libraries for web development. This course will introduce you to the popular Requests library in Python. You’ll study how to install the Requests library and get to know how it works. Learning via videos, interactive exercises, and quizzes, you’ll also explore what HTTP requests are and what each of the status codes in HTTP mean.

May 23rd 2022
4 Weeks
Introduction to Web Development (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Introduction to Web Development (FutureLearn)

Discover web development and learn to build your own interactive websites using HTML, CSS, and JavaScript. Supported by Google. Learn the basics of web development. On this course from the Raspberry Pi Foundation, you’ll first build a website using HTML, style it with CSS, and then make it interactive using JavaScript.

Jan 2nd 2023
3 Weeks
Fortran for Scientific Computing (FutureLearn) FutureLearn
Partnership for Advanced Computing in Europe - PRACE,Vlaams Supercomputer Centre

Fortran for Scientific Computing (FutureLearn)

Learn how to program in Fortran. Use object-oriented programming to design efficient and maintainable code. Discover the power of Fortran for scientific programming. Fortran is a programming language that has been designed for scientific computing, allowing users to naturally express numerical problems. On this course, you’ll discover how to express your numerical problems as a Fortran program, exploring the power and versatility of this popular programming language.

Sep 27th 2021
5-12 Weeks
Programming 103: Saving and Structuring Data (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Programming 103: Saving and Structuring Data (FutureLearn)

Learn how to save and structure data in external files, and import files back into your Python programs. Supported by Google. Discover how to save data to use it across multiple runs of your program. On this course, you will learn how to save text and binary files, and how to structure data so that programs can interpret it correctly.

Jan 2nd 2023
3 Weeks
Teaching Programming in Primary Schools (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Teaching Programming in Primary Schools (FutureLearn)

Understand key programming concepts and apply them using Scratch, with this introductory course for primary or K-5 teachers. This free online course will provide a comprehensive introduction to programming, designed for non-subject-specialist primary or K-5 teachers.

No sessions available
4 Weeks
Programming Applications with Python: Graphics User Interface (GUI) (FutureLearn) FutureLearn
FutureLearn

Programming Applications with Python: Graphics User Interface (GUI) (FutureLearn)

Discover how to create a GUI using Python and start to explore creating APIs. Make a GUI application in Python. On this course, you’ll explore a common use for Python – how to create a successful GUI. GUIs are a crucial aspect of any web service, and knowing how to create one is a vital skill for furthering your career in programming.

May 23rd 2022
4 Weeks
Introduction to Programming with Scratch (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Introduction to Programming with Scratch (FutureLearn)

Discover the fundamentals of programming using the block-based programming language Scratch. Learn how to program your own animations and games. Scratch is a powerful, visual programming language that provides a great introduction to the world of programming. By snapping blocks together, you can create amazing animations and games. Over this four-week course, you’ll learn how to navigate the Scratch programming environment, create your own programs, and share your creations.

Feb 14th 2022
4 Weeks