Syllabus

This course provides an introduction to the emerging class of programming languages that are used to specify and verify behavior of computer networks. It will examine recent proposals based on logic, functional, and distributed languages, as well as tools for establishing correctness using tools such as 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.

Assessment

Assessment will consist of participation, problem sets, and a course project. The approximate breakdown for the overall course grade is as follows:

  • Participation: 20%
  • Problem Sets: 50%
  • Mini Project: 30%

Exams

There are no exams in this course.

Academic Integrity

Students are expected to conduct themselves with the utmost integrity. If you are unsure about what is allowed and what is not, please ask! See here for the university code of academic integrity.

Special Needs and Wellness

It is Cornell policy to provide reasonable accommodations to students who have a documented disability (e.g., physical, learning, psychiatric, vision, hearing, or systemic) that may affect their ability to participate in course activities or to meet course requirements. Students with disabilities are encouraged to contact Student Disability Services at 607-254-4545, or the instructor for a confidential discussion of their individual needs.

If you are experiencing undue personal or academic stress at any time during the semester or need to talk to someone who can help, contact the instructor or: