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.
Principles of Secure Coding
This course is part of Secure Coding Practices Specialization
Instructor: Matthew Bishop, PhD
Sponsored by Louisiana Workforce Commission
19,051 already enrolled
(350 reviews)
Recommended experience
Skills you'll gain
Details to know
Add to your LinkedIn profile
8 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 4 modules in this course
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.
What's included
10 videos1 reading2 assignments1 discussion prompt
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.
What's included
11 videos1 reading2 assignments1 discussion prompt
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.
What's included
9 videos2 readings2 assignments1 discussion prompt
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.
What's included
9 videos1 reading2 assignments2 discussion prompts
Instructor
Offered by
Why people choose Coursera for their career
Learner reviews
350 reviews
- 5 stars
59.25%
- 4 stars
26.78%
- 3 stars
8.83%
- 2 stars
3.13%
- 1 star
1.99%
Showing 3 of 350
Reviewed on Apr 5, 2022
Very helpful. Recommending this course for others as well.
Reviewed on Jun 3, 2020
The course provides good insights in secure coding and robust programming. However, I think there should more than 10 questions for each module for assesment.
Reviewed on Aug 2, 2020
Good introductory course for those who are not familiar with secure coding
Recommended if you're interested in Computer Science
University of London
Microsoft
Infosec
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy