Topics

This course introduces the basics of networking, ranging from sending bits over wires to the Web and distributed computing. We focus on the internetworking ground between these two extremes, particularly focusing on the engineering of the Internet - goals, constraints, solutions, and experiences. The outcome of this course for you should be an appreciation of the fundamental challenges of networking, design strategies of proven value, and common implementation technologies. Topics will include: framing, error correction, packet switching, multi-access (Ethernet), addressing and forwarding (IP), distance vector and link state routing, queueing and scheduling, reliable transport, congestion control (TCP), quality of service, naming (DNS), software defined networks (SDN), and security.



 
Exams

     There will be one midterm and a final exam for this course. In addition, there will be a few pop quizzes.

 
Grades

  • Assignments: 10%
  • 3 Projects: (15 + 15 + 15)%
  • In-class Quizzes: 5%
  • Midterm: 15%
  • Final: 20%
  • Participation: 5%

  Policies

(Many of these policies are taken verbatim from previous instances of this course.)
  • Late Policy: There is a 10% penalty for each late day (a day is 24 hours, including weekends), or portion thereof. Each person gets three free late days - three days of lateness with no penalty - to use at your discretion. For late projects, every member of the group is charged for the lateness.
  • Reasonableness: No set of rules can apply perfectly in every setting. Reasonable exceptions can be made.
  • Cheating vs. Collaboration: Collaboration is a very good thing. On the other hand, cheating is considered a very serious offense, and is vigorously prosecuted. Vigorous prosecution requires that you be advised of the cheating policy of the course before the offending act. For this course, the policy is simple: don't cheat. You know it when you're doing it. We'll recognize it when you do it.

    That said, collaborating is, for many people, an effective way to learn. Learning isn't cheating. Misrepresenting that you've learned something, or done the work that implies you've learned something, almost certainly is.