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 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
Video Game Design and Development: Introduction to Game Programming (FutureLearn) FutureLearn
Abertay University

Video Game Design and Development: Introduction to Game Programming (FutureLearn)

Discover the essentials of video game programming and learn how you can start your own programming career. Learn the basics of game development to understand how great games are designed. Video games have become a multi-billion-dollar industry, even recently overshadowing cinema as the globe’s go-to entertainment medium of choice.

Jun 28th 2021
2 Weeks
Programming Essentials with Python: Cloud Technology and SaaS (FutureLearn) FutureLearn
FutureLearn

Programming Essentials with Python: Cloud Technology and SaaS (FutureLearn)

Launch your career in programming with this course on the fundamentals of Python and other programming languages. Develop your knowledge of cloud infrastructure and cloud technologies. What’s powering the architecture of cloud computing, and how does it rely on Python programming? Take a deep dive into the cloud and look at different types of cloud architecture and learn to articulate the benefits, challenges, and opportunities they offer.

May 23rd 2022
4 Weeks
Begin Programming: Build Your First Mobile Game (FutureLearn) FutureLearn
University of Reading

Begin Programming: Build Your First Mobile Game (FutureLearn)

Learn basic Java programming by developing a mobile game that you can run on your computer, Android phone or tablet. Take your first steps into the world of computer programming and learn how to build your own mobile game in just five weeks. You’ll be introduced to the basic constructs and the principles behind computer programs, as well as the building blocks that are used to create them.

No sessions available
5-12 Weeks
Understanding Maths and Logic in Computer Science (FutureLearn) FutureLearn
Raspberry Pi Foundation

Understanding Maths and Logic in Computer Science (FutureLearn)

Improve your understanding and ability to teach maths and logic in computing while building elements of an escape room. Become more familiar with maths and logic in computer science. The mathematical aspects of computer science can be difficult to understand and teach. On this course, you will be introduced to maths and logic in computing in an engaging way.

Nov 1st 2021
3 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
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
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
Teaching Physical Computing to 5-11 year olds (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Teaching Physical Computing to 5-11 year olds (FutureLearn)

Teach your young learners how to create electronic circuits, then learn to control them using block-based programming languages. Learn how to create physical computing projects using a Crumble or micro:bit. Physical computing is the process of designing, building, and programming systems that use physical components such as buttons, lights, and motors.

Mar 6th 2023
3 Weeks
Introduction to Quantitative Investing (FutureLearn) FutureLearn
Sungkyunkwan University - SKKU

Introduction to Quantitative Investing (FutureLearn)

Learn basics of financial economics and try its real life application using financial data and programming. Financial markets have become increasingly complex - it’s not easy to know where to start when it comes to investing. In today’s world the demand of accurate data-driven quantitative analysis across the world is steadily rising: it’s become crucial to understand and be able to use statistical and mathematical information accurately and promptly.

No sessions available
5-12 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