Network Programming Languages

Fall 2015
Class:Politecnico di Milano, DEIB, Seminar Room - Building 20.
Instructor: Robert Soulé


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.



The course will be held at the Department DEIB of Politecnico di Milano via Ponzio 34/5 - Milano. Follow this link for DIRECTIONS.


The course is open to PhD students and post-docs from Politecnico di Milano and other universities. The course is free of charges but registration is mandatory.


A certificate of participation will be granted to attendees at the end of the course.

Mainling list

Please join the course mailing list at Google groups.


Please be sure to regularly check this page for updates.

Oct. 12: 14:00-17:00
Introduction, SDN History, OpenFlow
Oct. 13: 9:00-12:00
Control plane languages
Oct. 13: 14:00-17:00
Hands-on with NetKat
Oct. 14: 9:00-12:00
Data plane languages
Oct. 14: 14:00-17:00
Hands-on with P4
Oct. 15: 9:00-12:00
Verification tools
Oct. 15: 14:00-17:00
Hands on with SPIN
Oct. 16: 9:00-12:00



Material from this course is based on material from Nick Feamster, Nate Foster, Natasha Sharygina, and Changhoon Kim. The course website is based on the design by Robert Grimm.