Summer 2026 · daily M–F
Day-by-day course schedule
Machine Learning in Systems and Network Security · DS 6042 · Daniel G. Graham, UVA School of Data Science
This course is built around sixteen labs. Together they answer a question every security course should ask, and most don't: what does it actually mean to attack — or defend — a system that runs machine learning? You start with a first hands-on exploit on the cyber range, move on to small but real LLMs and agents, then work through the core AI-security attacks: on agents, on MCP, and on RAG. From there you harden real deployments, both server-side and in the cloud, and finish with the classic machine-learning intrusion-detection lab the field began with. Every lab has the same shape: build the smallest version, attack it, then fix it.
Daily rhythm. The course runs M–F from June 15 to July 10 — eighteen class days. The midterm is Thursday June 25, after the agent/MCP arc closes, and the final day (Fri Jul 10) is Lab 20 (microfake — deepfake generation and detection). Two federal holidays fall in the window — Juneteenth (Fri Jun 19) and Independence Day observed (Fri Jul 3).
Quizzes. Each lab day ends with a short in-class Canvas quiz in the last 15 minutes: 7–10 questions covering the lab's anatomy, attacks, and secure phase.
| Date | Day | Topic | Due today |
|---|---|---|---|
| Week 1Jun 15 – Jun 19 · course begins | |||
| Mon Jun 15 | Day 1 | Setup Lab 01 — Your first exploit (ProFTPd mod_copy · CVE-2015-3306) course intro · cyber-range onboarding · end-to-end mod_copy chain on Metasploitable 3 | In class · last 15 min Canvas quiz: Lab 01 (orientation) |
| Tue Jun 16 | Day 2 | Build Lab 02 — microGPT walkthrough hand-traced 2-layer transformer · the canonical didactic reference | In class · last 15 min Canvas quiz: Lab 02 (microGPT) |
| Wed Jun 17 | Day 3 | Build Lab 03 — Train nanochat on Rivanna scaled-up GPT · UVA Rivanna/Afton via Open OnDemand | In class · last 15 min Canvas quiz: Lab 03 (nanochat) |
| Thu Jun 18 | Day 4 | Build Lab 04 — microagent walkthrough smallest readable ReAct agent · the build half of the agent arc | In class · last 15 min Canvas quiz: Lab 04 (microagent) |
| Fri Jun 19 | — | No class Juneteenth — federal holiday | |
| Week 2Jun 22 – Jun 26 · midterm Thursday | |||
| Mon Jun 22 | Day 5 | Attack Lab 05 — Attacking AI agents prompt extraction · document fragmentation · memory poisoning | In class · last 15 min Canvas quiz: Lab 05 (attacking agents) |
| Tue Jun 23 | Day 6 | Build Lab 06 — microMCP walkthrough JSON-RPC + two tools · the whole Model Context Protocol on one screen | In class · last 15 min Canvas quiz: Lab 06 (microMCP) |
| Wed Jun 24 | Day 7 | Attack Lab 07 — Attacking MCP description poisoning · traversal CVEs · over-privileged DB tool · SSTI → RCE | In class · last 15 min Canvas quiz: Lab 07 (attacking MCP) |
| Thu Jun 25 | Day 8 | Midterm Midterm exam covers Labs 0–7 · Networks, LLMs, agents, MCP | In class · full session Midterm exam |
| Fri Jun 26 | Day 9 | Applied Lab 08 — OSINT datasets HIBP · Shodan · Shadowbroker aggregator · profile yourself | In class · last 15 min Canvas quiz: Lab 08 (OSINT) |
| Week 3Jun 29 – Jul 3 · holiday Friday | |||
| Mon Jun 29 | Day 10 | Applied Lab 09 — Agentic engineering Claude Code + gstack · ship a small security tool end to end | In class · last 15 min Canvas quiz: Lab 09 (agentic engineering) |
| Tue Jun 30 | Day 11 | Applied Lab 10 — Agentic pentesting same Kali + Metasploitable as Lab 01, the agent does the typing · PTES report | In class · last 15 min Canvas quiz: Lab 10 (agentic pentest) |
| Wed Jul 1 | Day 12 | Defend Lab 11 — Unaligned models abliteration · refusal direction · Llama-Guard-style classifier | In class · last 15 min Canvas quiz: Lab 11 (alignment) |
| Thu Jul 2 | Day 13 | Deploy Lab 12 — Secure deployment · servers nine-layer stack · STRIDE per layer · vLLM hardening | In class · last 15 min Canvas quiz: Lab 12 (server deployment) |
| Fri Jul 3 | — | No class Independence Day observed — federal holiday | |
| Week 4Jul 6 – Jul 10 · presentations Friday | |||
| Mon Jul 6 | Day 14 | Deploy Lab 13 — Secure deployment · cloud shared-responsibility per layer · NSA seven principles · Vertex hands-on | In class · last 15 min Canvas quiz: Lab 13 (cloud deployment) |
| Tue Jul 7 | Day 15 | Build Lab 14 — microRAG walkthrough ~200-line RAG pipeline · five steps · TF-IDF + hashed embedding | In class · last 15 min Canvas quiz: Lab 14 (microRAG) |
| Wed Jul 8 | Day 16 | Attack Lab 15 — Attacking RAG KB leakage · ingestion poisoning · embedding collision · retrieval hijacking · filter bypass | In class · last 15 min Canvas quiz: Lab 15 (attacking RAG) |
| Thu Jul 9 | Day 17 | Network Lab 16 — microNIDS · build → break → secure gradient-boosted IDS on NSL-KDD · three adversarial flow attacks · two layered defenses | In class · last 15 min Canvas quiz: Lab 16 (microNIDS) |
| Fri Jul 10 | Day 18 | Build Lab 20 — microfake · deepfakes from first principles autoencoder → GAN → diffusion + toy video · then build deepfake detectors — the generator-vs-detector arms race |
In class · full session
Lab 20 assignment: microfake.py generator + detector
|
Grade structure
| Component | Details | Weight |
|---|---|---|
| Daily Canvas quizzes | 16 quizzes × 7–10 points each, in-class in the last 15 minutes, lowest 2 dropped. | 30% |
| Lab assignments | Each lab ships an assignment, typically the "extend the build" or "secure the break" task — including the final Lab 20 (microfake). | 50% |
| Midterm | Thursday June 25, in-class. Covers Labs 0–7. | 20% |
Holiday and exception notes
- Fri Jun 19 — Juneteenth. No class. The week is arranged around it: Thu Jun 18 closes the build run with Lab 04 (microagent), and the attack/MCP sequence resumes Mon Jun 22 with Lab 05. Plan accordingly.
- Fri Jul 3 — Independence Day observed. No class. July 4 is a Saturday in 2026; the federal observance moves to Friday. Lab 12 (server deployment) lands Thu Jul 2, and its cloud sequel (Lab 13) resumes Mon Jul 6.
- Thu Jun 25 — Midterm. Full class session for the exam. The exam covers Labs 1–7 inclusive (67 questions); the midterm-prep quiz is reviewed Wed Jun 24 at the end of class, after Lab 07.
- Fri Jul 10 — Lab 20 (microfake). Final class session: build the generative machinery (autoencoder → GAN → diffusion) and the deepfake detectors that catch it. This slot opened up when the former ARP / Wireshark lab was retired — ARP spoofing won't run on the cyber range — and the remaining labs slid one day earlier.
Reading ahead
- Lecture pages take 30–60 minutes to read end-to-end. Read the lede + the §1 anatomy callout the night before.
- Attack labs assume you've already read the corresponding build lab. If you haven't done Lab 04, Lab 05 will feel underspecified.
- The Going Further / Wrapping Up sections at the end of most labs point at production references (LangChain, Snort, vLLM, Vertex). You don't need them for class — keep them for projects.