The assignments use Network Arena, a deterministic, sandboxed simulator in which you operate an independent network. You will write a program for your programmable switches, submit it as a WebAssembly (.wasm) file, and use the results of each run to understand and improve your network.
AI can help write code, but operating a consequential system still requires judgment: deciding what behavior to guarantee, weighing tradeoffs, interpreting incomplete evidence, and adapting a design when the world changes. You may use AI in the course; you remain responsible for understanding, verifying, and defending the behavior of what you submit. Assignment details, team policy, and grading are TBD.
The early assignments give each team its own network and well-defined goals. You will learn to make the network deliver traffic, perform under load, and observe its own behavior. In the later assignments, every team becomes an autonomous system (AS) in one shared simulated Internet. We run the submitted switch programs repeatedly—approximately twice each week. Between runs, teams may submit a new program and may choose to collect logs from the prior run, then use that evidence to refine their strategy.
You may use LLMs, you may collaborate on all assignments other than assignment 3 as long as you declare any collaborations, and you may post your solutions online. In theory, you may get an agent to write all of the code. The assignments this year are designed to embrace AI-assisted work as discussed below. However you are not allowed to (a) collaborate on assignment 3 and (b) exploit vulnerabilities or bugs in the simulator or the assignment portal.
There is deliberately no universal best strategy. Simulated customers choose the AS offering the best performance-to-cost tradeoff, so a network’s value depends on what the other networks provide. One AS might deploy many CDN nodes; another might focus on edge GPU compute; another might invest in ultra-low-latency wireless links for high-frequency trading. The successful approach is often to specialize, rather than follow a generic answer. This is also why an off-the-shelf LLM solution will not automatically be optimal: when everyone pursues the same strategy, there is an incentive to offer something different.
Quizzes will ask about your program's behavior. You will not be expected to understand or recall the code line by line. Instead, we will give you a network scenario and ask what your submitted program will do: for example, how it will route traffic or respond to a failure. We will check those predictions against the program's actual behavior. The goal is to know how your design operates and to be able to reason about it, even when AI helped write the code.
| Assignment | Focus | Structure | Dates |
|---|---|---|---|
| 1. Make It Work | Forwarding, discovery, routing, and recovery from failures | Your own network; establish a reliable foundation. | Sep 18 [Handout] [Code] |
| 2. Make It Fair | Queuing, scheduling, congestion, and isolation | Your own network; meet performance goals under load. | Oct 16 [Handout] [Code] |
| 3. Make It Visible | Measurement, telemetry, and fault localization | Your own network; collect evidence and identify hidden anomalies. | TBD |
| 4. Make It Pay | Markets, specialization, and adaptation | Repeated shared-network runs; invest and revise your AS strategy between runs. | TBD |
Full handouts, schedules, scoring rules, and submission instructions will be posted as they are finalized. Assignments may evolve through the course as we learn what works best and respond to the class's progress.