MPCS 54001 Networks (Winter 2026)

Section 1
Instructor(s) Nicholson, Anthony (ajn)
Location Crerar 390
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Core Systems Elective

Syllabus

Course Description

This course focuses on the history, theory, and implementation of computer networks. It is intended as an introductory survey course where we will go broad on a wide array of fundamentals.

Our primary focus will be the Internet and mobile phone networks, using others (e.g. the legacy wired telephony network) as counterpoints where illustrative. We'll explore the whole stack, from low-level technologies (e.g., Ethernet, Wi-Fi) to high-level applications (e.g., Web, email).  By the end of this course, you should have a better understanding of the underlying network protocols used by the computers, smart phones, and other network-enabled devices that you depend on every day.

Course Scope

  • History + purpose of data networks
  • Application layer (HTTP, email, multimedia)
  • Transport layer (TCP, UDP, QUIC), flow+congestion control
  • Network layer (IPv4 / IPv6), routing
  • Link layer (Ethernet, WiFi, mobile phone networks)
  • Wireless + mobile computing complications
  • Network security, distributed systems introduction

Coursework

Weekly assignments, midterm and final. The exams will be in class, the assignments will be more in-depth to be completed at home.

Course textbook

Computer Networks: A Systems Approach, Peterson + Davie, version 6.2. Available free online.

Course Prerequisites

Completed or concurrently taking MPCS 51036, 51040, 51042, 51046, 51100, CAPP 30122, MACS 30122, or have a Core Waiver for Programming.

Other Prerequisites

Familiarity with Python or Java a plus but not required.

Experience with concurrent programming (threads, synchronization)

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 50103-1 -- Mathematics for Computer Science: Discrete Mathematics
  • MPCS 55001-2 -- Algorithms
  • MPCS 51250-1 -- Entrepreneurship in Technology
  • MPCS 51044-1 -- C/C++ for Advanced Programmers

Eligible Programs

MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science Masters Program in Computer Science (new) Placement: Pass I Masters Program in Computer Science (Immersion)