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.
WEEK 1
3 hours to complete
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.
10 videos (Total 66 min) 1 reading 2 quizzes
WEEK 2
4 hours to complete
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.
11 videos (Total 36 min) 1 reading 2 quizzes
WEEK 3
5 hours to complete
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.
9 videos (Total 61 min) 2 readings 2 quizzes
WEEK 4
4 hours to complete
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.
8 videos (Total 41 min) 1 reading 2 quizzes
Tham gia đánh giá khóa học
Nếu bạn đã học qua khóa học này thì mời bạn tham gia đóng góp ý kiến và đánh giá để cộng đồng bạn học có thêm thông tin tham khảo.
Cung cấp bởi: Coursera / University of California Davis
Thời lượng: 16 hours
Ngôn ngữ giảng dạy: Tiếng Anh
Chi phí: Miễn phí / 0
Đối tượng: Intermediate
Thông tin về nhà cung cấp
Coursera (/ kərˈsɛrə /) là một nền tảng học tập trực tuyến toàn cầu được thành lập vào năm 2012 bởi 2 giáo sư khoa học máy tính của đại học Stanford là Andrew Ng và Daphne Koller, nền tảng này cung cấp các khóa học trực tuyến (MOOC) cho cộng đồng người học online.
Coursera hợp tác với các trường đại học danh tiếng tại Bắc Mỹ và trên khắp thế giới, cùng với nhiều tổ chức khác để cung cấp các khóa học trực tuyến chất lượng, theo chuyên ngành và được cấp chứng chỉ trong nhiều lĩnh vực như kỹ thuật, khoa học dữ liệu, học máy, toán học, kinh doanh, khoa học máy tính, tiếp thị kỹ thuật số, nhân văn, y học, sinh học, khoa học xã hội , và nhiều ngành khác.