MPCS 54001 Networks (Spring 2024)

Section 1
Instructor(s) Nicholson, Anthony (ajn)
Location Ryerson 251
Meeting Times Wednesday 5:30pm - 8:30pm
Website: https://canvas.uchicago.edu/courses/56723
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

Core Programming

Other Prerequisites

Familiarity with Python or Java a plus but not required.

Experience with concurrent programming (threads, synchronization)

Overlapping Classes

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

  • MPCS 51215-1 -- Topics in Software: Making an Impact
  • MPCS 53020-1 -- Foundations of Database Systems
  • MPCS 51400-1 -- Functional Programming
  • MPCS 52060-1 -- Parallel Programming
  • MPCS 53111-1 -- Machine Learning

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