Secure Software Systems

Location: Pittsburgh

Semester Offered: Spring

Cross listed Courses:

Course Number Department Units
18-335 Electrical and Computer Engineering 12
18-732 Electrical and Computer Engineering 12

This course will examine approaches, mechanisms, and tools used to make software systems more secure. We will motivate the study by discussing common software security threats. Four main modules: run-time enforcement of security policies; architectural approaches to building secure software; software analysis; and language-based approaches to building secure software.


Class format

Lecture and project-based 

Home department


Target audience

ECE undergraduate students (18-335) and graduate students (18-732).

Background required

Systems programming

Learning objectives

  • An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
  • An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
  • An ability to communicate effectively with a range of audiences.
  • An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
  • An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
  • An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
  • An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Faculty and instructors who have taught this course in the past

Lujo Bauer, Anupam Datta, Bryan Parno