Principles of Secure Coding (Coursera)

Principles of Secure Coding (Coursera)
Course Auditing
Categories
Effort
Certification
Languages
1-2 years of experience with some form of computer programming language like C/C++ or Java.
Misc

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

Principles of Secure Coding (Coursera)
This course introduces you to the principles of secure programming. It begins by discussing the philosophy and principles of secure programming, and then presenting robust programming and the relationship between it and secure programming. We'll go through a detailed example of writing robust code and we'll see many common programming problems and show their connection to writing robust, secure programs in general.

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

We’ll examine eight design principles that govern secure coding and how to apply them to your own work. We’ll discuss how poor design choices drive implementation in coding. We’ll differentiate between informal, formal, and ad hoc coding methods. Throughout, methods for improving the security and robustness of your programs will be emphasized and you will have an opportunity to practice these concepts through various lab activities. A knowledge of the C programming language is helpful, but not required to participate in the lab exercises.

Course 1 of 4 in the Secure Coding Practices Specialization.


Syllabus


WEEK 1

Secure Programming Philosophy

In this module, you'll be able to describe key concepts in secure programming including typical problems and procedures. You'll be able to differentiate between robust programming and secure programming and you'll generalize from philosophies of "what to watch out for" and "where to look" to specific situations.


WEEK 2

Secure Programming Design Principles

In this module, you will be able to recall eight software design principles that govern secure programming. You will write a short program, in any language you like, to determine whether the system enforces the Principle of Complete Mediation. You'll be able to apply design principles from Saltzer, Schroeder and Kaashoek to code situations.


WEEK 3

Robust Programming

In this module, you will be able to explain the issues that can arise from fragile programming. You'll be able to discuss how design issues drive implementation and be able to distinguish between robust and fragile code. You'll be able to explain what can go wrong in fragile code and be able to write a robust version of fragile code.


WEEK 4

Methods for Robustness

In this module, you will be able to describe how to use techniques that mimic formal methods to improve the robustness and security of programs. You will also be able to compare and contrast formal, informal, and ad hoc programming methods. You'll be able to write a program to demonstrate how a poorly-written program or library can cause incorrect results.



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

Course Auditing
31.00 EUR/month
1-2 years of experience with some form of computer programming language like C/C++ or Java.

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