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

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
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
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
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
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
Intermediate Python (FutureLearn) FutureLearn
University of California, Irvine

Intermediate Python (FutureLearn)

Develop your programming skills and learn the dynamic semantics of Python as an object-oriented programming language. Build your Python programming skills. On this six-week course from the University of California, Irvine, you’ll gain basic computer science knowledge to help you become more efficient with Python programming, focusing on the data-science applications of programming concepts.

Nov 29th 2021
5-12 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.

Self Paced
5-12 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 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
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
Software Development Basics (FutureLearn) FutureLearn
FutureLearn

Software Development Basics (FutureLearn)

Learn the basics of HTML code, gain expert insights into web development, and decide if the industry is right for you. Kick-start your career in web-based software development. The web design and development industry is growing exponentially and offers several exciting employment opportunities. Many people perceive this field as too complex, assume they won’t understand the material and therefore don’t consider it as a viable job prospect.

Self Paced
4 Weeks
Programming Pedagogy in Secondary Schools: Inspiring Computing Teaching (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Programming Pedagogy in Secondary Schools: Inspiring Computing Teaching (FutureLearn)

Examine a range of pedagogical approaches suitable for teaching computing in Key Stage 3 (Grade 6–8 in the USA). Transform your teaching by developing your pedagogical approach. In the first two weeks of this course, you’ll be introduced to a range of pedagogical approaches suitable for Key Stage 3. You’ll look at a range of pedagogies aimed at developing your students’ computational thinking skills, from unplugged approaches to PRIMM, and more. You’ll also investigate worked examples and targeted tasks such as Parson’s Problems.

Mar 6th 2023
3 Weeks