- Level Professional
- المدة 16 ساعات hours
- الطبع بواسطة University of California, Davis
-
Offered by
عن
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.الوحدات
Getting Started
1
Discussions
- Learning Goals
1
Videos
- Course Introduction
1
Readings
- A Note From UC Davis
Secure Programming Philosophy
1
Assignment
- Module 1 Practice Quiz
9
Videos
- Module 1 Introduction
- The Philosophy of Secure Programming
- Defining Secure Programming
- Robust vs. Secure Programming
- Security Policies and Procedures
- Secure Programming General Philosophy
- Checking Design and Implementation
- Where to Look for Vulnerabilities
- Secure Programming Summary
Review
1
Assignment
- Module 1 Quiz
Secure Programming Design Principles
1
Assignment
- Module 2 Practice Quiz
1
Discussions
- Complete Mediation (Suggested Activity)
11
Videos
- Module 2 Introduction
- Secure Programming Design Principles Overview
- Principle of Least Privilege
- Fail-Safe Defaults
- Principle of Economy of Mechanism
- Principle of Complete Mediation
- Separation of Privilege Principle
- Principle of Open Design
- Principle of Least Common Mechanism
- Principle of Least Astonishment
- Secure Programming Design Principles Summary
1
Readings
- Complete Mediation - What Is Going On?
Review
1
Assignment
- Module 2 Quiz
Robust Programming
1
Assignment
- Module 3 Practice Quiz
1
Discussions
- Fragile Programs (Suggested Activity)
9
Videos
- Module 3 Introduction
- Robust Programming Overview
- Robust Programming Basic Principles
- An Example Of Fragile Code
- Error Handling
- Cohesion, New Interfaces, and Token Generation
- Token Generation and Interpretation
- Creating and Deleting a Queue
- Adding and Removing Elements to a Queue
2
Readings
- Before You Begin This Module...
- Fragile Programs - What Is Going On?
Review
1
Assignment
- Module 3 Quiz
Module 4 Topic
1
Assignment
- Module 4 Practice Quiz
1
Discussions
- Robust Programs (Suggested Activity)
8
Videos
- Module 4 Introduction
- Methods for Robustness Overview
- Methods Overview: Formal, Informal, and Ad Hoc Methods
- Overview of Formal Methods
- Login Program Example
- Incorporating Hierarchical Decomposition Methodology
- Login Program: Authenticating a User
- Login Program: Preconditions and Postconditions
1
Readings
- Robust Programs - What Is Going On?
Review
1
Assignment
- Module 4 Quiz
Course Summary
1
Discussions
- Self-Reflection
1
Videos
- Course Summary
Auto Summary
"Principles of Secure Coding," offered by Coursera, focuses on IT & Computer Science, emphasizing secure and robust programming. Taught by experts, the course covers key principles, design flaws, and coding methods with practical lab exercises. Spanning 960 minutes, it caters to professionals, available through Starter and Professional subscriptions. Ideal for those with or without C programming knowledge.

Matthew Bishop, PhD