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

University of Colorado System

Software Design Threats and Mitigations

University of Colorado System via 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.


  • Common Vulnerabilities and Weaknesses
    • How to use the CVE and CWE on-line databases to assess threats and mitigations
  • Specific Design Considerations
    • Specific things you can do to create a better design.
  • Building Security in
    • Security must be built in to a project, not added on.
  • A Dramatic Failure
    • The consequences of a bad design can haunt you forever.
  • Bitcoin Foundations
    • A detailed look at the first two sentences of the abstract of Nakamoto's 2009 paper announcing Bitcoin.
  • 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.
  • 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!
  • Final Exam
    • A comprehensive course assessment comprising of 5 quizzes. Each assessment contains a randomized set of questions from different modules of the course.

Taught by

Albert Glock and Oluwatobi Akanbi


4.7 rating at Coursera based on 85 ratings

Start your review of Software Design Threats and Mitigations

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.