The following is a tentative schedule. It will likely change and be updated throughout the semester.

Week Dates Lecture Topics Lab Topic Assignments Readings
Week 1 17-Jan to 21-Jan Security Principles
  • Introduction to Security and the Course
  • Threat Models and Trusted Computing Bases
GDB Refresher
Week 2 24-Jan to 28-Jan Software Security
  • Execution Semantics and Buffer Overflows
  • Control-Flow Attacks
Thinking Up Exploits HW1 Released
Week 3 31-Jan to 4-Feb
  • Basic Control Flow Attack Defenses
  • Return Oriented Programming
ROP Gadgets
Week 4 7-Feb to 11-Feb
  • Retrofitting Memory Safety
  • Analysis and Isolation Techniques
Week 5 14-Feb to 18-Feb
  • Security Design Principles
Systems Security
  • Modern OS Security and Authorization Logic
Exam 1 Review HW1 Due: 15-Feb at 5:00pm
Week 6 21-Feb to 25-Feb Exam 1 (Mon 22-Feb)

  • Intro to Cryptography
  • Terminology
28-Feb to 4-Mar Spring Break!
Week 7 7-Mar to 11-Mar
  • Symmetric Key Cryptography
Basic Network Communication and AES HW2 Released
Week 8 14-Mar to 18-Mar
  • Public Key Cryptography
Diffie-Hellman Wisdom
Week 9 21-Mar to 25-Mar
  • Integrity, Hashes, and MACs
  • Blockchains and Cryptocurrencies
Week 10 28-Mar to 1-Apr Web Security
  • Part 1
  • Part 2
Exam 2 Review HW2 Due: 1-Apr at 5:00pm
Week 11 4-Apr to 8-Apr
  • Part 3
Exam 2 (Wed 7-Apr)
Investigating Single-Sign On with Tamper Dev HW3 Released
Week 12 11-Apr to 15-Apr WiFi Security
  • Part 1
  • Part 2
Week 13 18-Apr to 22-Apr Human Factors
  • Making Security Usable
  • Privacy
Exam 3 Review
(Exam 3 will occur during the scheduled final exam slot.)
HW3 Due: 22-Apr at 5:00pm