Fantastic Bugs and How to Find Them

Course Number: 17-712

Department: Software and Societal Systems Department

Location: Pittsburgh

Units: 12

Semester Offered: Spring

This advanced course studies the nature of software bugs and security vulnerabilities arising in complex application domains and surveys specialized program analysis + automated testing techniques for identifying such issues proactively. The course will take a tour of various domains such as mobile systems, databases, web browsers, distributed and networked systems, autonomous vehicles, and smart contracts.

Syllabus

https://cmu-fantastic-bugs.github.io/#syllabus

Class format

Group discussion and group-led presentations 

Home department

Software and Societal Systems

Background required

The course is open to PhD and Masters students interested in software engineering, program analysis and/or security.

The following courses serve as sufficient prerequisites:

  • 18-335/732 Secure Software Systems
  • 14-735 Secure Coding
  • 17-355/665/819 Program Analysis
  • 15-411/611 Compiler Design
  • 15-414 Bug Catching
  • 15-330/18-330/18-730 Intro to Computer Security
  • 14-741/18-631 Intro to Information Security

Learning objectives

  • Identify practical challenges of applying well known program analysis techniques to a variety of application domains.
  • Formulate and leverage domain-specific assumptions for making program analysis tractable and useful in a specialized setting.
  • Build practical tools for improving software quality in real-world systems.

Faculty and instructors who have taught this course in the past

Rohan Padhye