Computer Science
>
>

CS 144: Introduction to Computer Networking

Fall 2021

Princeton University

Princeton University's CS 144 is an introductory course teaching core principles of computer networking, including packet switching, layering, encapsulation, and protocols. Students get hands-on experience in building parts of the internet infrastructure, like a router, and a reliable data delivery service.

Course Page

Overview

CS144 is an introductory course about computer networks. You will learn about the basic principles of computer networks, for example packet switching, layering, encapsulation and protocols; and you will learn how applications such as the world-wide-web, video streaming (e.g. Netflix and Hulu), video conferencing (e.g. Zoom and Skype) and BitTorrent use the network to communicate. You will spend quite a lot of time learning about the specifics of how the Internet works – which is of course by far the biggest computer network ever built. You will learn how applications communicate reliably over an unreliable Internet. And you will build portions of the Internet yourself! In fact, we believe that in CS144 you build more parts of the Internet infrastructure than in any other undergraduate networking class anywhere. It’s really fun to see how the individual pieces work: You build an Internet router, and a reliable data delivery service, and then you use it to communicate with remote servers.

In addition to lectures, we will also have a few in-class guest lectures by outside speakers. All the guest lecturers are excellent speakers with many years of experience making networks work at huge scale. We will also have one or more in-class exercises, which you will complete during the regular lecture time. These are designed to give you hands-on experience with tools that are useful for your labs.

Prerequisites

The formal prerequisite for CS144 is CS110. CS144 is a lab course: 45% of your grade is based on a quarter-long lab assignment implemented in C++, which means you need to be very comfortable with C++ and using standard debugging tools (if you are reading through thousands of lines of printf output you are doing something wrong). CS107 is not sufficient preparation: you need more programming experience. CS144 is offered every year, so please wait until you are ready before taking it. That being said, if you did pretty well in CS110 you should do fine in CS144.

Learning objectives

No data.

Textbooks and other notes

Textbook: The optional course textbook is: Kurose and Ross, Computer Networking: A Top Down Approach, 8th edition (7th edition is fine too). We will not be assigning readings, but it is an excellent reference to supplement the lectures and videos.

Other courses in Computer Networks

COS-561: Advanced Computer Networks

Fall 2018

Princeton University

COS 461 Computer Networks

Spring 2023

Princeton University

CS 249i The Modern Internet

Winter 2022–2023

Stanford University

Courseware availability

Lecture notes available at Lecture notes

No videos available

Lab Assignments available at Lab Assignment

No other materials available

Covered concepts