Preparing video…

Computer Security

Learn how to design secure systems and write secure code.


Course at a Glance

About the Course

In this class you will learn how to design secure systems and write secure code. You will learn how to find vulnerabilities in code and how to design software systems that limit the impact of security vulnerabilities. We will focus on principles for building secure systems and give many real world examples. In addition, the course will cover topics such as:

  • memory safety vulnerabilities
  • techniques and tools for vulnerability detection and defense
  • security principles such as sandboxing, isolation and least privilege
  • mobile platform and application security
  • basic crypto concepts
  • web security
  • network security
  • malware detection and defense

Course homework and labs will help students practice the concepts and techniques learned in class, such as how to find vulnerabilities and how to fix them. The labs and projects are designed to help students practice the principles of secure system design.

Recommended Background

This course is intended for Computer Science students who have some programming background in C and C++.

Course Format

The class will consist of lecture videos, which are broken into small chunks, usually between eight and twelve minutes each. Some of these may contain integrated quiz questions. There will also be standalone quizzes that are not part of video lectures, and programming assignments. There will be approximately two hours worth of video content per week.


  • Will I get a statement of accomplishment after completing this class?

    Yes. Students who successfully complete the class will receive a statement of accomplishment signed by the instructor.

  • How much programming background is needed for the course?

    The course includes programming assignments and some programming background will be helpful. However, we will hand out lots of starter code that will help students complete the assignments. We will also point to online resources that can help students find the necessary background.