Principles of Secure Coding (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

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.

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

Related Courses

An Introduction to Programming using Python (Coursera) Coursera
University of Leeds

An Introduction to Programming using Python (Coursera)

Maximise your employability, by learning the basics of coding in Python. Python is a versatile programming language used for developing websites and software, task automation, data analysis and more. In this course, you'll embark on an exciting journey into the world of Python and gain valuable skills that will enable you to start thinking about a career in programming.

Nov 16th 2026
2 Weeks
Thought Experiments: An introduction to philosophy (Coursera) Coursera
Erasmus University Rotterdam

Thought Experiments: An introduction to philosophy (Coursera)

Doing philosophy is like seeing a movie and wondering what will happen next, or what you would do in the same situation, or what’s real and what’s merely make-believe. You’re probably not aware of it, but since you already know how to see movies and use your imagination, you’re well on your way to becoming a good philosopher. The only thing you still need and want to develop though, is the ability to use your imagination in the philosophical way, and that’s exactly what you’ll learn in this MOOC.

Nov 16th 2026
5-12 Weeks
Securing Digital Democracy (Coursera) Coursera
University of Michigan

Securing Digital Democracy (Coursera)

In this course, you'll learn what every citizen should know about the security risks--and future potential — of electronic voting and Internet voting. We'll take a look at the past, present, and future of election technologies and explore the various spaces intersected by voting, including computer security, human factors, public policy, and more.

Nov 16th 2026
5-12 Weeks
Cybersecurity for Everyone (Coursera) Coursera
University of Maryland, College Park

Cybersecurity for Everyone (Coursera)

Cybersecurity affects everyone, including in the delivery of basic products and services. If you or your organization want to better understand how to address your cybersecurity, this is the course for you and your colleagues to take -- from seasoned professionals to your non-technical colleagues. Your instructor, Dr. Charles Harry, has served on the front lines with the NSA (National Security Agency) and as an expert advising corporate and institutional leaders on managing cybersecurity risk.

Nov 16th 2026
5-12 Weeks
Know Thyself - The Value and Limits of Self-Knowledge: The Examined Life (Coursera) Coursera
University of Edinburgh

Know Thyself - The Value and Limits of Self-Knowledge: The Examined Life (Coursera)

According to legend, inscribed on walls of the temple on the sacred site of Delphi in Ancient Greece were two premier injunctions: NOTHING IN EXCESS, and KNOW THYSELF. This course will be an examination of the latter injunction in an effort to discover what self-knowledge is, why it might be valuable, and what, if any, limitations it might face.

Nov 16th 2026
4 Weeks
DDoS Attacks and Defenses (Coursera) Coursera
University of Colorado System

DDoS Attacks and Defenses (Coursera)

In this MOOC, you will learn the history of DDoS attacks and analyze new Mirai IoT Malware and perform source code analysis. you will be provided with a brief overview of DDoS Defense techniques. You learn an Autonomous Anti-DDoS Network called A2D2 for small/medium size organizations to deal with DDoS attacks. A2D2 uses Linux Firewall Rate limiting and Class Based Queueing, and subnet flood detection to handle various DDoS traffic types.

Nov 9th 2026
4 Weeks
Cryptography I (Coursera) Coursera
Stanford University

Cryptography I (Coursera)

Cryptography is an indispensable tool for protecting information in computer systems. In this course you will learn the inner workings of cryptographic systems and how to correctly use them in real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic.

Nov 16th 2026
5-12 Weeks
Working with Integrated Development Environments (Coursera) Coursera
University of Leeds

Working with Integrated Development Environments (Coursera)

Integrated Development Environments (IDEs) are vital in increasing developer productivity and learning to work with them will help you create impressive software projects whether you're a beginner or have some programming experience. This course provides the essential skills and knowledge to excel in software development using Integrated Development Environments (IDEs). You'll cover IDE fundamentals, including environment setup, interface navigation, and valuable features like debugging.

Nov 16th 2026
2 Weeks
Designing and Implementing Your Coaching Strategy (Coursera) Coursera
University of California, Davis

Designing and Implementing Your Coaching Strategy (Coursera)

In order to be an effective manager in increasingly fast-paced and complex organizational environments, coaching skills to develop and get the best work out of employees has become essential. Throughout the Coaching Skills for Managers specialization, we’ve discussed many topics for improving coaching conversations with our employees. It is now time to put all of that theory and discussion into practice as you solidify your coaching philosophy, develop your coaching practice and agendas, and demonstrate mastery at handling everyday coaching conversations!

Nov 16th 2026
3 Weeks
Internet History, Technology, and Security (Coursera) Coursera
University of Michigan

Internet History, Technology, and Security (Coursera)

The impact of technology and networks on our lives, culture, and society continues to increase. The very fact that you can take this course from anywhere in the world requires a technological infrastructure that was designed, engineered, and built over the past sixty years. To function in an information-centric world, we need to understand the workings of network technology. This course will open up the Internet and show you how it was created, who created it and how it works. Along the way we will meet many of the innovators who developed the Internet and Web technologies that we use today.

Nov 16th 2026
5-12 Weeks