Link Search Menu Expand Document

CS340 - Introduction to Computer Networking

Northwestern University, Fall 2023

About the CS340 fall 2023 course

  • Instructor: Esteban Carisimo
  • Location: - Annenberg Hall G21
  • Time Tuesdays and Thursdays 9:30AM - 10:50AM


This course provides an introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics to be covered include: overview of network architectures, applications (HTTP, Email, BitTorrent), network programming interfaces (e.g., sockets), transport (TCP, UDP), flow control, congestion control, IP, routing , IPv6, multicast, data link protocols, error-detection/correction, multiple access, LAN, Ethernet, wireless networks, and network security. Examples will be drawn primarily from the Internet protocol suite (e.g., HTTP, TCP, and IP). Over the course of the quarter, students will build a web server, reliable transport (like TCP), and implement routing algorithms.


  1. CS214 Data structures
  2. CS205/213 Basic C/Unix programming

or student should be in the any CS Graduate program (MS or PhD) in order to register for this course.

CS340 Public files repository

Please visit the public files repository of the course and clone it to your computer. This repo includes all files you are going to use for homeworks and projects.

CS340 Public files repository

The Learning Environment

We consider this classroom to be a place where you will be treated with respect, and we welcome individuals of all ages, backgrounds, beliefs, ethnicities, genders, gender identities, gender expressions, national origins, religious affiliations, sexual orientations, ability – and other visible and non-visible differences. We expect all our students and teaching staff to contribute to a respectful, welcoming and inclusive environment for every other member of the class. We will not tolerate disrespectful language or behavior.

We believe in providing reasonable accommodations that allow for full access to learning for all. Please contact me if there is anything that we should be aware of that might have an impact on your participation in this course (documented disability, language challenges, absences for religious observations, etc.)

Cheating policy

We encourage you to talk to your classmates about the topics in this course and about the projects and homework assignments, but any work you turn in must be your own. You may look at small parts of your friend’s code, but only live on their screen, and not while typing into your own computer. If your friend asks to see all of your code, they are asking you to cheat with them. You may not send your code to a friend or post it publicly. If you copy code from the Internet, you must add a comment explaining the source. You must understand what your code does, and we will randomly choose students to explain their code. We will use Moss to detect plagiarized code, and the punishments will be severe (including the possibility that you will fail the class or be expelled from the university). Your code will be compared to code submitted by your peers in this class and code submitted by all students in prior offerings of the class. If you have any questions about this policy, please ask the instructor.

Auditing Policy

From the Northwestern Catalog:

Auditors are persons who enroll in a course to observe or listen only; they are not permitted to engage in class discussion, submit written or oral assignments, or take examinations, and they do not receive academic credit.

We are not going to be able to grade assignments or exams from auditors. I ask that auditors refrain from asking questions during class, on the discussion board, or attending office hours. The university and department allocate resources for each course based on enrollment so these resources need to be used by enrolled students only.