Software Foundations of Security and Privacy

Course Number: 15-316

Department: Computer Science Department

Location: Pittsburgh

Units: 9

Semester Offered: Fall

Understanding the security and privacy needs of software, and being able to rigorously demonstrate that those needs are met, is key to eliminating vulnerabilities that cause these issues. Students who take this course will learn the principles needed to make these assurances about software, and some of the key strategies used to make sure that they are correctly implemented in practice.


Class format

Lecture and project-based

Home department


Target audience (e.g. undergraduates, MS students, Ph.D. students)

  • Undergraduate programming languages students

Learning objectives

  • Identify and formalize security and privacy policies.
  • Understand formal proof and deductive systems.
  • Understand how automated software security tools work.
  • Apply rigorous techniques to achieve security and privacy.
  • Understand trusted computing technologies.
  • Understand web security threats & best practices.

Faculty and instructors who have taught this course in the past

Matt Fredrikson, Jean Yang, Bryan Parno

Last offered

Fall 2020