Course details

Defensive Coding Fundamentals for C/C++

Defensive Coding Fundamentals for C/C++

Target Audience
Expected Duration
Lesson Objectives
Course Number
Expertise Level

Defensive programming is a methodology for writing code that is not prone to present or future errors potentially caused by unexpected user inputs or actions. In this course, you will explore the fundamentals of defensive programming including inspections, testing, input validation, error handling, planning, methods, variables, assertions, and iterative design.

Target Audience
Developers seeking an introductory guide to developing efficient, secure applications that are defendable against a variety of issues


Expected Duration (hours)

Lesson Objectives

Defensive Coding Fundamentals for C/C++

  • start the course
  • describe the potential risks faced by software applications
  • identify the key reasons why risks are recurring issues
  • recognize the key features of defensive coding
  • list some key approaches that prevent problems during the planning stage
  • recognize what a clean code is
  • identify the key features of iterative design
  • use pseudocode to develop programming solutions
  • use assertions in your programming code
  • apply pre and post conditions to C/C++
  • identify how to perform low-level design inspections
  • describe the benefits of testing your code
  • recognize how to write testable code in C/C++
  • recognize how to perform unit tests using Visual Studio for C/C++
  • create examples of defensible methods in C/C++
  • identify the techniques for applying defensive techniques for method parameters and return values in C/C++ methods
  • recognize how to implement variable declarations for defendable code
  • identify how to use if and switch statements in creating defendable code
  • identify error-handling techniques to promote defensive coding
  • demonstrate how to use exceptions to handle errors
  • create a C/C++ application that incorporates error codes and messages into its error handling
  • recognize how to use error processing and global objects
  • identify how to handle errors locally in C/C++ code
  • recognize how to anticipate potential errors in C/C++ code
  • use defensive coding techniques to create clean testable methods
  • Course Number:

    Expertise Level