Instructor: Matt Fredrikson TAs: Justin Zou, Keya Mann, Sanjana Kuchibhotla, Yuchen Wang, Jackson Ma Lectures: TuTh 2:00-3:20, Hall of Arts 160 Piazza: Here Gradescope: Here Piazza: TBD OH:
Matt Fredrikson: Friday 1:00-2:30pm
TAs: TBD
Grading: mostly due Tuesday
Written Homework (40%): short, frequent. show reasoning, 1 week to complete
Labs (40%): important, need correctness, justification, documentation (autograded + human graded), will have short quiz to test you actually did the lab
Final Exam (20%): no midterm, might be in-class final, will have formula sheet, may bring 1 page handwritten notes
Schedule: Here
Assignments:
Assignment 1: Semantics Tue 01/27
Assignment 2: Dynamic Logic Tue 02/03
Assignment 3: Proving Safety Tue 02/10
Lab 1: Memory Safety
(test cases due Tue 02/19) Tue 02/24
Spring Break
Assignment 4: Information Flow Tue 03/10
Assignment 5: Timing Vulnerabilities Tue 03/17
Assignment 6: Authorization Logic Tue 03/24
Lab 2: Information Flow Tue 04/07
Lab 3: Proof-Carrying Authorization Thu 04/23
Late Policy:
5 late days (on the 5 written homeworks), 3 late days (on the 3 labs)
you may not use more than 2 days on any given homework / lab
Homework:
logic proofs
describing vulnerabilities in formally described security systems
no collaboration (whiteboard policy), cite web resource
due at 11:59pm on the date marked on the handout
Gradescope submission (LaTeX format)
for system diagram, can use template or hand-drawn
Lab:
offense, defense
programming + written (Gradescope)
collaboration or individual
you should submit only one solution as a group on Gradescope
in-person comprehension check (15min quiz, 2 days after assignment due)
TA can help critique, but not debug
you can use AI to generate documentation, documentation is just for TA to read
Language: Rust, Python, OCamel (but no TA knows rust)
AI:
documentation: Yes
write code: No
write test case: No
written homework answer: No
Answer question about concept: Yes
Check understanding: Yes
Generate practice exercises: Yes
Table of Content