This is a project-first course about building AI-assisted software security auditors that can work on real codebases. The course is centered on AuditZoo, an agent framework with built-in program abstractions such as control-flow and call graphs. See the Course GitHub org for the shared repos and updates. Instead of one-off class projects that disappear at the end of the semester, we will collaborate around a shared infrastructure so that work can accumulate across student cohorts and, if students want, be merged into a public open-source version.
Software security is at a turning point. AI can help with reasoning over code, triage, explanation, and workflow automation, but it also fails in systematic ways. The most promising direction is combining AI with strong program representations and measurable evaluation so AI does not guess, it reasons with evidence. AuditZoo is actively developed, and I am building it together with students in this course.
This course is designed to teach two things simultaneously:
Guest talks may shift; three sessions are reserved as "Guest talk / flexible slot" dates.
We use GitHub as the system of record for coordination, collaboration, and communication. Please read the GitHub guide and check the private repo updates and discussions.
In short: Issues for tracking, Pull Requests for integration, Discussions for Q&A and monthly updates.
All projects live in a shared private AuditZoo repository during the semester. Teams choose one of two tracks.
Build an AI auditor agent specialized for one vulnerability class or defect pattern.
Examples:
Expectations:
You are also welcome to re-implement a published paper or existing method and integrate it into AuditZoo with a clean evaluation.
Extend the framework itself.
Examples:
Expectations:
Students are welcome to open issues on the current framework in the corresponding private repo. We will keep a small set of issue templates to keep triage fast:
To motivate real impact, the course includes a bug bounty program and an all-time leaderboard. Each unique vulnerability that is confirmed by the project developer or maintainer earns +1 extra course point.
That means, if a student reaches 100 maintainer-confirmed vulnerabilities, the student may skip all presentation and proposal requirements. Students should follow each project's security policy and responsible disclosure norms.
See the bug bounty leaderboard for current standings.
For every presentation, the audience submits an anonymous 1-10 rating with optional written feedback. These ratings provide structured feedback and contribute to presentation scoring in a controlled way, with normalization to reduce popularity bias.
All deadlines are 11:59 PM unless noted.
| Date | Item | Type |
|---|---|---|
| Tue Jan 20 | Classes begin | Academic date |
| Thu Jan 29 (end of class) | Paper sign-up deadline | Deadline |
| Fri Jan 30 | Last day to add Spring courses (end of Change of Program) | Academic date |
| Thu Feb 5 (end of class) | Team formation deadline (1-3 students) | Deadline |
| Thu Feb 19, 11:59 PM | Project proposal due (PDF + GitHub Discussion) | Deadline |
| Tue Feb 24 | Last day to drop courses via SSOL | Academic date |
| Fri Feb 27, 11:59 PM | Monthly project update (GitHub Discussion) | Deadline |
| Mon Mar 9 | Midterm date (university) | Academic date |
| Mar 16-20 | Spring recess (no classes) | Academic date |
| Tue Mar 31, 11:59 PM | Monthly project update (GitHub Discussion) | Deadline |
| Tue Apr 14, 11:59 PM | Monthly project update (GitHub Discussion) | Deadline |
| Mon Apr 27 | Last day to withdraw with W | Academic date |
| Mon May 4 | Last day of classes | Academic date |
| Mon May 4, 11:59 PM | Final report + final submission; bug bounty leaderboard cutoff | Deadline |
| May 8-15 | Final exams window | Academic date |
Meeting time: Tue/Thu 5:40-6:55 PM. Location: 601B Sherman Fairchild Life Sciences Building. Guest talks may shift; flexible slots are used for paper presentations or project Q&A.
Lecture Paper Project Guest Flexible Q&A Deadline
| # | Date | Focus | Tags / notes |
|---|---|---|---|
| 1 | Tue Jan 20 | Lecture: security analysis challenges + course overview | Lecture |
| 2 | Thu Jan 22 | Guest talk by Hari Mulackal | Guest |
| 3 | Tue Jan 27 | Lecture: AI for software security - opportunities and limitations | Lecture |
| 4 | Thu Jan 29 | Lecture: AI for software security - opportunities and limitations (cont) | LectureQ&ADDL: paper sign-up |
| 5 | Tue Feb 3 | Student paper presentations (2):
|
Paper |
| 6 | Thu Feb 5 | Student paper presentation (1) + AuditZoo update/Q&A:
|
PaperQ&ADDL: team formation |
| 7 | Tue Feb 10 | Student paper presentations (2):
|
Paper |
| 8 | Thu Feb 12 | Guest talk / flexible slot or paper + AuditZoo update/Q&A:
|
GuestFlexiblePaperQ&A |
| 9 | Tue Feb 17 | Student paper presentations (2):
|
Paper |
| 10 | Thu Feb 19 | Student paper presentation (1) + AuditZoo update/Q&A:
|
PaperQ&ADDL: proposal due |
| 11 | Tue Feb 24 | Student paper presentations (2):
|
Paper |
| 12 | Thu Feb 26 | Student paper presentation (1) + AuditZoo update/Q&A:
|
PaperQ&A |
| 13 | Tue Mar 3 | Student paper presentations (2):
|
Paper |
| 14 | Thu Mar 5 | Student paper presentation (1) + AuditZoo update/Q&A:
|
PaperQ&A |
| 15 | Tue Mar 10 | Midterm project progress presentations (part 1) | Project |
| 16 | Thu Mar 12 | Midterm project progress presentations (part 2) | Project |
| 17 | Tue Mar 24 | Student paper presentations (2) or midterm overflow:
|
Paper |
| 18 | Thu Mar 26 | Student paper presentation (1) + AuditZoo update/Q&A | PaperQ&A |
| 19 | Tue Mar 31 | Student paper presentations (2):
|
PaperDDL: monthly update |
| 20 | Thu Apr 2 | Student paper presentation (1) + AuditZoo update/Q&A | PaperQ&A |
| 21 | Tue Apr 7 | Student paper presentations (2) or project Q&A | PaperQ&A |
| 22 | Thu Apr 9 | Guest talk / flexible slot or project Q&A + AuditZoo update | GuestFlexibleQ&A |
| 23 | Tue Apr 14 | Project Q&A / bug bounty Q&A / make-up paper presentations | Q&ADDL: monthly update |
| 24 | Thu Apr 16 | AuditZoo update/Q&A + project Q&A | Q&A |
| 25 | Tue Apr 21 | Final project presentations (3) | Project |
| 26 | Thu Apr 23 | Final project presentations (3) | Project |
| 27 | Tue Apr 28 | Final project presentations (3) | Project |
| 28 | Thu Apr 30 | Final project presentations (3) + closing notes | Project |