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

Online Course

Principles of Secure Coding

University of California, Davis via Coursera

49
  • Provider Coursera
  • Cost Free Online Course (Audit)
  • Session In progress
  • Language English
  • Certificate Paid Certificate Available
  • Duration 4 weeks long
  • Learn more about MOOCs

Taken this course? Share your experience with other students. Write review

Overview

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. 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.

Syllabus

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.

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.

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.

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.

Taught by

Matthew Bishop, PhD

Help Center

Most commonly asked questions about Coursera

Reviews for Coursera's Principles of Secure Coding Based on 0 reviews

  • 5 star 0%
  • 4 star 0%
  • 3 star 0%
  • 2 star 0%
  • 1 star 0%

Did you take this course? Share your experience with other students.

Write a review

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free