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.

← Back to book
Setup Network Build Attack Applied Defend Deploy Midterm Presentations No class Quiz due in-class
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

ComponentDetailsWeight
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

Reading ahead