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.
Lecture and project-based
ECE undergraduate students (18-335) and graduate students (18-732).
- 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