Network Programming Languages

Spring 2015 (March 13 – May 29)
Class: Friday 10:30 –12:15, Room SI-004
Instructor: Robert Soulé
Office hours: By appointment


This course provides an introduction to the languages used to program computer networks. It will examine recent proposals based on logic, functional, and distributed languages, as well as tools for establishing correctness using automatic solvers, model checkers, and proof assistants. Topics covered will include classic Internet routing protocols, along with peer-to-peer, overlay, enterprise, datacenter, and software-defined networks. Students will get hands-on experience through a series of small exercises using the Frenetic language for software-defined networks, and the Mininet network simulator.


Mailing list

Join the class mailing list: [email protected].


Mar 13
Mar 20
Naming and Addressing (Sam)
Mar 27
Routing (Rami)
Apr 3
Easter Break
Apr 10
Easter Break
Apr 17
Forwarding (Daniele)
Apr 24
SDNs (Tu)
May 1
No Class. Worker's Day.
May 8
SDN Languages (Nosheen)
May 15
Controllers (Tu)
May 22
Debugging (Sam)
May 29
Verification and Static Analysis (Meixian)


This course reuses much of the material from a similar course taught at Cornell University by Nate Foster. The course website is based on the design by Robert Grimm.