Below is the calendar for this semester course. This is the preliminary schedule, which will be altered as the semester progresses. It is the responsibility of the students to frequently check this web-page for schedule, readings, and assignment changes. As the professor, I will attempt to announce any change to the class, but this web-page should be viewed as authoritative. If you have any questions, please contact me (contact information is available at the course homepage).

Date Topic Assignments
Due
Readings for Discussion
(do readings before class)
01/14/25 Introduction
01/16/25 Vulnerabilities
01/21/25 Security Testing and Fuzzing
Fuzzing: Challenges and Reflections. link
NEUZZ: Efficient Fuzzing with Neural Program Smoothing. link
The Art, Science, and Engineering of Fuzzing: A Survey. link
01/23/25 Program Analysis
A Few Billion Lines of Code Later Using Static Analysis to Find Bugs in the Real World. link
Neutaint: Efficient Dynamic Taint Analysis with Neural Networks. link
01/28/25 Symbolic Execution
01/30/25 Formal Verification (Part 1)
02/04/25 Formal Verification (Part 2)
02/06/25
02/11/25
02/13/25
02/18/25
02/20/25
02/25/25
02/27/25
03/06/25
03/13/25
03/15/25
03/20/25
03/22/25
03/27/25
03/29/25
04/01/25
04/03/25
04/08/25
04/13/25
04/15/25
04/20/25
04/22/25
04/27/25
04/29/25
.