Software Design Threats and Mitigations (Coursera)

Software Design Threats and Mitigations (Coursera)

The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.

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

Course 4 of 4 in the Secure Software Design Specialization.

Syllabus

WEEK 1
Common Vulnerabilities and Weaknesses
How to use the CVE and CWE on-line databases to assess threats and mitigations

WEEK 2
Specific Design Considerations
Specific things you can do to create a better design.

WEEK 3
Building Security in
Security must be built in to a project, not added on.

WEEK 4
A Dramatic Failure
The consequences of a bad design can haunt you forever.

WEEK 5
Bitcoin Foundations
A detailed look at the first two sentences of the abstract of Nakamoto's 2009 paper announcing Bitcoin.

WEEK 6
The Bitcoin Project
Continuing with the abstract of Nakamoto's Bitcoin paper. More details on how it works and how security is integrated into it.

WEEK 7
Simple software compromises
A look into the specifics of two common exploitation techniques--buffer overflow and SQL injections. Even though they're "old", these exploits are still used today!

WEEK 8
Final Exam
A comprehensive course assessment comprising of 5 quizzes. Each assessment contains a randomized set of questions from different modules of the course.

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

Related Courses

Enterprise and Infrastructure Security (Coursera) Coursera
New York University

Enterprise and Infrastructure Security (Coursera)

This course introduces a series of advanced and current topics in cyber security, many of which are especially relevant in modern enterprise and infrastructure settings. The basics of enterprise compliance frameworks are provided with introduction to NIST and PCI. Hybrid cloud architectures are shown to provide an opportunity to fix many of the security weaknesses in modern perimeter local area networks.

Jun 22nd 2026
4 Weeks
Engineering Maintainable Android Apps (Coursera) Coursera
Vanderbilt University

Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Jun 22nd 2026
4 Weeks
Web Connectivity and Security in Embedded Systems (Coursera) Coursera
EIT Digital

Web Connectivity and Security in Embedded Systems (Coursera)

In this course, we will explore several technologies that bring modern devices together, facilitating a network of connected things and making devices internet enabled. We will discuss rules, protocols, and standards for these devices to communicate with each other in the network. We will also go through security and privacy issues and challenges in cyber physical systems (CPS). We will explore measures and techniques for securing systems from different perspectives. Possible attack models are introduced and solutions to tackle such attacks are discussed. Moreover, some basic concepts related to privacy in cyber physical systems are presented.

Jun 22nd 2026
5-12 Weeks
Software Design Methods and Tools (Coursera) Coursera
University of Colorado System

Software Design Methods and Tools (Coursera)

Since many software developers are compulsive coders, they have created software over the years to help them do their job. There are tools which make design and its associated tasks easier. The course introduces some basic tools and techniques to help you with design. Tools aren’t always tangible, however. The last two lessons of this course discuss questions of Ethics in software development. The purpose here is, as with tools, to equip you to better carry our your responsibilities as a designer. Students will be required to have a prior knowledge of writing and delivering software and some programming knowledge in java.

Jun 22nd 2026
5-12 Weeks
Introduction to Programming with MATLAB (Coursera) Coursera
Vanderbilt University

Introduction to Programming with MATLAB (Coursera)

This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers.

Jun 22nd 2026
5-12 Weeks
Cybersecurity and the Internet of Things (Coursera) Coursera
University System of Georgia

Cybersecurity and the Internet of Things (Coursera)

Welcome to “Cybersecurity and the Internet of Things”! This course is for you if you are curious about the most recent trends and activities in the internet capabilities and concerns about programmed devices. There are complexities and areas of necessary awareness when the industrial sector becomes connected to your home.

Jun 22nd 2026
4 Weeks
The Arduino Platform and C Programming (Coursera) Coursera
University of California, Irvine

The Arduino Platform and C Programming (Coursera)

The Arduino is an open-source computer hardware/software platform for building digital devices and interactive objects that can sense and control the physical world around them. In this class you will learn how the Arduino platform works in terms of the physical board and libraries and the IDE (integrated development environment). You will also learn about shields, which are smaller boards that plug into the main Arduino board to perform other functions such as sensing light, heat, GPS tracking, or providing a user interface display. The course will also cover programming the Arduino using C code and accessing the pins on the board via the software to control external devices.

Jun 22nd 2026
4 Weeks
Real-Time Cyber Threat Detection and Mitigation (Coursera) Coursera
New York University

Real-Time Cyber Threat Detection and Mitigation (Coursera)

This course introduces real-time cyber security techniques and methods in the context of the TCP/IP protocol suites. Explanation of some basic TCP/IP security hacks is used to introduce the need for network security solutions such as stateless and stateful firewalls. Learners will be introduced to the techniques used to design and configure firewall solutions such as packet filters and proxies to protect enterprise assets.

Jun 22nd 2026
4 Weeks
Software Development Processes and Methodologies (Coursera) Coursera
University of Minnesota

Software Development Processes and Methodologies (Coursera)

Software is quickly becoming integral part of human life as we see more and more automation and technical advancements. Just like we expect car to work all the time and can't afford to break or reboot unexpectedly, software industry needs to continue to learn better way to build software if it were to become integral part of human life.

Jun 22nd 2026
4 Weeks
Proactive Computer Security (Coursera) Coursera
University of Colorado System

Proactive Computer Security (Coursera)

I’ve heard this before – “I’m not sure my computer security practices are working”. I reply “Have you tested them?” This course is the fourth and final course in the Practical Computer Security specialization. In this course, you’ll learn how to proactively test what you have put in place to protect your data. In the first week you’ll be able to discuss the basics of deterrents and how to “trick” attackers into believing they’ve hit a goldmine of data away from your real systems. In week 2, you’ll be able to understand and discuss the steps of penetration testing methodology.

Jun 22nd 2026
5-12 Weeks
TCP/IP and Advanced Topics (Coursera) Coursera
University of Colorado System

TCP/IP and Advanced Topics (Coursera)

In this course, we give an in-depth study of the TCP/IP protocols. We examine the details of how IP enables communications across a collection of networks. We pay particular attention to the hierarchical structure of IP addresses and explain their role in ensuring scalability of the Internet. The role of address prefixes and the uses of masks are explained in details. We review in details about TCP three-way handshake, flow control, and congestion control. Furthermore, we provide an introduction to some advanced topics, including Multicast, SDN and security

Jun 22nd 2026
5-12 Weeks