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 | Student paper presentations (1):
|
Paper |
| 9 | Tue Feb 17 | Guest talk | Guest |
| 10 | Thu Feb 19 | Student paper presentations (2):
|
PaperQ&ADDL: proposal due |
| 11 | Tue Feb 24 | Student paper presentations (2):
|
Paper |
| 12 | Thu Feb 26 | Student paper presentations (2):
|
Paper |
| 13 | Tue Mar 3 | Student paper presentations (2):
|
Paper |
| 14 | Thu Mar 5 | Skipped | |
| 15 | Tue Mar 10 | Midterm project proposal presentations (part 1) | Project |
| 16 | Thu Mar 12 | Midterm project proposal presentations (part 2) | Project |
| 17 | Tue Mar 24 | Student paper presentations (2):
|
Paper |
| 18 | Thu Mar 26 | Student paper presentation (2):
|
PaperQ&A |
| 19 | Tue Mar 31 | Student paper presentations (2):
|
PaperDDL: monthly update |
| 20 | Thu Apr 2 | Student paper presentation (1):
|
Paper |
| 21 | Tue Apr 7 | Student paper presentations (2) (tentative: may become project Q&A):
|
PaperFlexible |
| 22 | Thu Apr 9 | Student paper presentation (1):
|
Paper |
| 23 | Tue Apr 14 | Claude Code Discussion | DiscussionDDL: monthly update |
| 24 | Thu Apr 16 | Claude Code Discussion | Discussion |
| 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 |
Midterm proposal presentations: 10 minutes per team.
| Date | Team name | Members |
|---|---|---|
| Tue Mar 10 | TBD | Jivin Yalamanchili, Samarth Kumbla |
| Tue Mar 10 | Ghost Protocol | Evans Yang, Zhengtao Hu |
| Tue Mar 10 | MINimize bugs | Isaac Trost, Nicholas Assaderaghi, Madalina Stiocov |
| Tue Mar 10 | TRACE | Jenny Pan |
| Tue Mar 10 | BugEraser | Hongyi Li |
| Tue Mar 10 | Debugger | Stanley Chung |
| Tue Mar 10 | SQLFlow | Rohit Biswas, Kevin Chuang, Neasha Mittal |
| Tue Mar 12 | AI SQL Auditor | Jia Liu, Colin Calvetti |
| Thu Mar 12 | MetaGuard | Sammu Suryanarayanan |
| Thu Mar 12 | Zootopia | Jungyun Kim, Song Li, Mingkai Li |
| Thu Mar 12 | frieren | Quoc Bui |
| Thu Mar 12 | Frogger | Hailie Mitchell |
| Thu Mar 12 | midtown boss | Linfeng Li, Yishan Gao |
| Thu Mar 12 | BugByters | Romain Popescu |