- Lecture: DP1: FIB - LIS - LCS (Due: August 18 - August 24, 2025)
- Homework 1 (Due: August 25 - August 31, 2025)
- Quiz 1: Format Quiz on DP (Due: August 25 - August 31, 2025)
- Lecture: DP2: Knapsack - Chain Multiply (Due: August 25 - August 31, 2025)
- Lecture: DC1: Fast Integer Multiplication (Due: September 1 - September 7, 2025)
- Lecture: DC3: Solving Recurrences (Due: September 1 - September 7, 2025)
- Homework 2 (Due: September 1 - September 7, 2025)
- Quiz 2: Format Quiz on D&C (Due: September 1 - September 7, 2025)
- Mock Exam 1 (Due: September 1 - September 7, 2025)
- Lecture: DC2: Linear-Time Median (Due: September 8 - September 14, 2025)
- Homework 3 (Due: September 8 - September 14, 2025)
- Quiz 3: Content Quiz on DP + D&C (Due: September 1 - September 7, 2025)
- Homework 4 (Due: September 15 - September 21, 2025)
- Exam 1 (Due: September 18 - September 21, 2025)
- Lecture: DP3: Shortest Paths (Due: September 22 - September 28, 2025)
- Lecture: GR1: Strongly Connected Components (Due: September 29 - October 5, 2025)
- Lecture: GR2: 2-Satisfiability (Due: September 29 - October 5, 2025)
- Homework 5 (Due: September 29 - October 5, 2025)
- Quiz 4: Format Quiz on Graph Theory (Due: September 29 - October 5, 2025)
- Lecture: GR3: Minimum Spanning Tree (Due: October 6 - October 12 , 2025)
- Homework 6 (Due: October 6 - October 12, 2025)
- Quiz 5: Content Quiz on Graph Theory (Due: October 6 - October 12, 2025)
- Lecture: MF1: Ford-Fulkerson Algorithm (Due: October 13 - October 19, 2025)
- Lecture: MF2: Max-Flow Min-Cut (Due: October 13 - October 19, 2025)
- Lecture: MF3: Image Segmentation (Due: October 13 - October 19, 2025)
- Lecture: MF4: Edmonds-Karp Algorithm (Due: October 13 - October 19, 2025)
- Homework 7 (Due: October 13 - October 19, 2025)
- Homework 8 (Due: October 13 - October 19, 2025)
- Exam 2 (Due: October 23 - October 26, 2025)
- Lecture: NP1: Definitions (Due: October 27 - November 2, 2025)
- Lecture: NP2: 3SAT (Due: October 27 - November 2, 2025)
- Lecture: NP3: Graph Problems (Due: October 27 - November 2, 2025)
- Homework 9 (Due: October 27 - November 2, 2025)
- Quiz 6: Format Quiz on NP Theory (Due: October 27 - November 2, 2025)
- Lecture: LP1: Linear Programming (Due: November 3 - November 9, 2025)
- Lecture: LP2: Geometry (Due: November 3 - November 9, 2025)
- Lecture: LP3: Duality (Due: November 3 - November 9, 2025)
- Homework 10 (Due: November 3 - November 9, 2025)
- Quiz 7: Content Quiz on NP & LP (Due: November 3 - November 9, 2025)
- Lecture: NP4: Knapsack (Due: November 10 - November 16, 2025)
- Lecture: NP5: Halting Problem (Due: November 10 - November 16, 2025)
- Lecture: LP4: Max-SAT Approximation (Due: November 10 - November 16, 2025)
- Homework 11 (Due: November 3 - November 9, 2025)
- Exam 3 (Due: November 20 - November 24, 2025)
- Lecture: DC4: FFT - Part 1 (Due: Optional)
- Lecture: DC5: FFT - Part 2 (Due: Optional)
- Lecture: GR4: Markov Chains and PageRank (Due: Optional)
- Lecture: MF5: Max-Flow Generalization (Due: Optional)
- Lecture: RA1: Modular Arithmetic (Due: Optional)
- Lecture: RA2: RSA (Due: Optional)
- Lecture: RA3: Bloom Filters (Due: Optional)
- Start of Course Survey (Due: August 25, 2025)
- Syllabus Quiz (Due: August 25, 2025)
- Lesson 0: Course Introduction (Due: August 18 - August 24, 2025)
- Lesson 1: Introduction to Software Analysis (Due: August 18 - August 24, 2025)
- Lesson 1: Introduction to Software Analysis - Quiz (Due: August 18 - August 24, 2025)
- Lesson 1.5: Soundness and Completeness (Due: August 18 - August 24, 2025)
- Lab 0: LLVM Intro (Due: August 25, 2025)
- Lesson 2: Introduction to Software Testing (Due: August 25 - August 31, 2025)
- Lesson 2: Introduction to Software Testing - Quiz (Due: August 25 - August 31, 2025)
- Lesson 3: Random Testing (Due: August 25 - August 31, 2025)
- Lesson 3: Random Testing - Quiz (Due: August 25 - August 31, 2025)
- Lesson 4: Automated Test Generation (Due: September 1 - September 7, 2025)
- Lesson 4: Automated Test Generation - Quiz (Due: September 1 - September 7, 2025)
- Lesson 5: Dataflow Analysis - Quiz (Due: September 1 - September 7, 2025)
- Lab 1: Fuzzing (Due: September 8, 2025)
- Lesson 6: Pointer Analysis (Due: September 15 - September 21, 2025)
- Lesson 6: Pointer Analysis - Quiz (Due: September 15 - September 21, 2025)
- Lesson 7: Constraint Based Analysis (Due: September 29 - October 5, 2025)
- Lesson 7: Constraint Based Analysis - Quiz (Due: September 29 - October 5, 2025)
- Lesson 8: Type Systems (Due: October 13 - October 19, 2025)
- Lesson 8: Type Systems - Quiz (Due: October 13 - October 19, 2025)
- Lesson 9: Statistical Debugging (Due: October 27 - November 2, 2025)
- Lesson 9: Statistical Debugging - Quiz (Due: October 27 - November 2, 2025)
- Lesson 10: Delta Debugging (Due: November 10 - November 16, 2025)
- Lesson 10: Delta Debugging - Quiz (Due: November 10 - November 16, 2025)
- Lesson 11: Dynamic Symbolic Execution (Due: November 24 - November 30, 2025)
- Lesson 11: Dynamic Symbolic Execution - Quiz (Due: November 24 - November 30, 2025)
- All quizzes (Due: December 8, 2025)
- Lab 2: Dataflow (Due: September 22, 2025)
- Lab 3: Datalog (Due: October 13, 2025)
- Lab 4: Type Systems (Due: October 27, 2025)
- Lab 5: Cooperative Bug Isolation (Due: November 10, 2025)
- Lab 6: Delta Debugging (Due: November 24, 2025)
- Lab 7: KLEE (Due: December 8, 2025)
- Exam Policies Acknowledgment (Due: September 29, 2025)
- Course Exam (Due: September 29, 2025)
- Mid-Course Survey (Due: October 6, 2025)
- End-of-Course Survey (Due: December 8, 2025)
- Assignment 1: Team Matching (Due: August 18 - August 25, 2025)
- Assignment 2: Git Usage (Due: August 23 - September 1, 2025)
- Assignment 3: Basic Java Coding and JUnit (Due: August 30 - September 8, 2025)
- Participation/Syllabus Quiz (Due: August 30 - September 8, 2025)
- Assignment 4: Simple Android App (Due: September 6 - September 15, 2025)
- Assignment 5: Software Design (Due: September 13 - September 22, 2025)
- Group Project: Deliverable 0 (Due: September 13 - September 22, 2025)
- Group Project: Deliverable 1 (Due: September 20 - September 29, 2025)
- Group Project: Weekly Report 1 (Due: September 20 - September 29, 2025)
- Group Project: Deliverable 2 (Due: September 27 - October 6, 2025)
- Group Project: Weekly Report 2 (Due: September 27 - October 6, 2025)
- Group Project: Deliverable 3 (Due: October 4 - October 13, 2025)
- Group Project: Weekly Report 3 (Due: October 4 - October 13, 2025)
- Group Project: Deliverable 4 (Due: October 11 - October 20, 2025)
- Group Project: Weekly Report 4 (Due: October 11 - October 20, 2025)
- Assignment 6: White-Box testing (Due: October 18 - October 27, 2025)
- Group Project: Individual Assessments, Collaboration (Due: October 18 - October 27, 2025)
- Individual Project: Deliverable 1 (Due: October 25 - November 3, 2025)
- Individual Project: Deliverable 2 (Due: November 1 - November 10, 2025)
- Individual Project: Deliverable 3 (Due: November 8 - November 17, 2025)
- Individual Project: Deliverable 4 (Due: November 15 - November 24, 2025)