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.
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.
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.
No data.
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.
Lecture notes available at Lecture notes
No videos available
Lab Assignments available at Lab Assignment
No other materials available