Plan — Iteration 1 (DP Artifact)

Plan — Iteration 1 (DP Artifact)

Goal

Build a self-contained interactive HTML artifact teaching the fundamentals of differential privacy, following the 8-act progression from the Rapid Synthesis / NotebookLM podcast. Deploy to the public course website before class on April 6, 2026.

File Structure

course_materials/demos/
  differential-privacy-explainer.html          # The artifact (self-contained, ~1500-2000 lines)

website/demos/
  differential-privacy-explainer/
    index.html                                 # Wrapper page with course chrome (iframes the artifact)

Artifact Structure (inside differential-privacy-explainer.html)

The artifact is a single scrolling page with 8 sections (acts). Each section is a <section> element. The user scrolls (or clicks "Next") through them linearly during class.

<html>
  <head>
    <style>
      /* inline CSS — ~300-500 lines */
      /* Styling matches course aesthetic; clean academic look with accent color */
    </style>
  </head>
  <body>
    <header>
      <!-- Title, subtitle, progress indicator -->
    </header>
    <main>
      <section id="act-1-illusion">      <!-- Static -->
      <section id="act-2-sweeney">        <!-- Interactive: linkage attack -->
      <section id="act-3-k-anonymity">    <!-- Interactive: dataset transformation -->
      <section id="act-4-dp-mechanism">   <!-- Interactive: epsilon slider -->
      <section id="act-5-in-the-wild">    <!-- Static + external links -->
      <section id="act-6-dark-side">      <!-- Interactive: minority erasure -->
      <section id="act-7-law-theater">    <!-- Static -->
      <section id="act-8-reframe">        <!-- Static -->
    </main>
    <footer>
    <script>
      /* inline JS — ~500-800 lines */
      /* Laplace sampling, filter functions, chart drawing, state management */
    </script>
  </body>
</html>

Build Sequence

Step 1: Scaffold (30 min)

Acceptance: File opens in browser, shows 8 empty sections, styles render correctly

Step 2: Act 1 (The Illusion) — static content (15 min)

Acceptance: Reads well, sets the tone

Step 3: Act 2 (Sweeney/Weld) — interactive linkage attack (90 min)

Interactive element: Two side-by-side tables with progressive filtering

Implementation:

Acceptance:

Step 4: Act 3 (k-Anonymity) — dataset transformation + homogeneity reveal (90 min)

Interactive element: A single dataset table with a k-slider and a "Reveal Homogeneity Attack" button

Implementation:

Acceptance:

Step 5: Act 4 (DP Mechanism) — epsilon slider + live histogram (120 min)

Interactive element: The central exhibit — an SVG histogram with a real-time epsilon slider

Implementation:

Acceptance:

Acceptance: Clean card layout, links open in new tab, no dependencies

Step 7: Act 6 (Dark Side) — minority erasure visualization (75 min)

Interactive element: Bar chart of a mock town's demographics with shared epsilon slider

Implementation:

Acceptance:

Step 8: Act 7 (Law & Theater) — static content (20 min)

Acceptance: Clean layout with pull-quotes and statistics

Step 9: Act 8 (The Reframe) — static closing (15 min)

Acceptance: Satisfying close, reader feels the arc has resolved

Step 10: Website wrapper (20 min)

Acceptance: Wrapper page loads, iframe shows the artifact, course chrome is present

Step 11: Local preview + deploy (15 min)

Acceptance: Artifact is live at https://dallaselleman.github.io/cyb-4203-6203-spring-2026/demos/differential-privacy-explainer/

Testing Strategy

No automated tests — same-day build, manual testing is sufficient and faster.

Manual test checklist (runs at the end of each major step and again at the end):

Acceptance Criteria Checklist

The iteration is complete when ALL of the following are true:

Rough Time Budget

Step Estimated time
Scaffold 30 min
Act 1 15 min
Act 2 90 min
Act 3 90 min
Act 4 120 min
Act 5 30 min
Act 6 75 min
Act 7 20 min
Act 8 15 min
Wrapper page 20 min
Local preview + deploy 15 min
Buffer for polish/bugs 60 min
Total ~10 hours

This is an aggressive build but feasible. The longest items (Acts 3 and 4) are the core pedagogical exhibits; they deserve the most care. Static sections (1, 5, 7, 8) act as buffers that can absorb time pressure.

Risk Mitigation

If running out of time:

  1. Cut Act 6's interactive element — Make it static with a diagram; the concept is covered in narrative. Saves ~60 min.
  2. Cut the "frosted glass" visual in Act 4 — Keep the histogram but skip the CSS backdrop-filter overlay. Saves ~20 min.
  3. Simplify Act 3 — Show only 2-3 k values (k=1, k=3, k=5) as discrete buttons instead of a slider. Saves ~30 min.

If something breaks during deploy:

Out of Scope (Explicit)