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:
- Engineering Academic Advising at 607-255-7414,
- Learning Strategies Center at 607-255-6310,
- Let’s Talk Drop-in Counseling at Gannett at 607-255-5155
- Empathy Assistance and Referral Service at 607-255-EARS.