CS 356: Computer Networks

Fall 2026



Assignments: Network Arena

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.

What this is designed to teach

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.

How the arena works

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.

LLM Policy

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.

Competition, specialization, and learning

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 sketch

AssignmentFocusStructureDates
1. Make It WorkForwarding, discovery, routing, and recovery from failuresYour own network; establish a reliable foundation.Sep 18 [Handout] [Code]
2. Make It FairQueuing, scheduling, congestion, and isolationYour own network; meet performance goals under load.Oct 16 [Handout] [Code]
3. Make It VisibleMeasurement, telemetry, and fault localizationYour own network; collect evidence and identify hidden anomalies.TBD
4. Make It PayMarkets, specialization, and adaptationRepeated 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.