MPCS 51082 Introduction to Unix Systems (Winter 2026)

Section 1
Instructor(s) Kenneth Samuels, Lamont (lamonts)
Location Ryerson 255
Meeting Times Tuesday 5:30pm - 7:30pm
Fulfills Core Systems Elective

Syllabus

Course Description

This course aims to introduce to the fundamental concepts, principles, and abstractions that underlie the design and architecture of Unix systems. Students will learn how a Unix system works from the hardware level all the way up to the application level. The course will also focus on teaching students develop a command of the Unix shell environment by ensuring a basic understanding of Unix commands and utilities, and networking capabilities.  Students will also be able to learn about the fundamentals of systems programming in Unix. 

After taking this course, students will develop a more-depth understanding of Unix and be able to use this knowledge to better implement programs on a Unix operating systems such as Linux or OS X.

Course Content
 
Topics that will be explored in the course will include (but not limited to) the following:
  • Brief history of Unix and Linux 
  • Unix system architecture
  • Interacting with a Unix shell 
  • Basics of how hardware interacts with a Unix operating system 
  • Unix operating system and processes 
  • Shell scripting
  • Application development for systems programming 
  • Unix network utilities 

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

This class is intended as an entry level systems class to prepare students without a strong CS background to take more advanced systems classes. You are not eligible to take this class if you have already taken Functional Programming, Distributed Systems, Advanced Computer Architecture, Compilers, Operating Systems, Parallel Programming, Foundations of Computer Networks, Foundations of Database Systems or any CMSC systems class.

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 55001-1 -- Algorithms
  • MPCS 52011-1 -- Introduction to Computer Systems
  • MPCS 51230-1 -- User Interface and User Experience Design
  • MPCS 53001-1 -- Databases
  • MPCS 57200-1 -- Generative AI

Eligible Programs

MS in Computational Analysis in Public Policy (Year 2) MS in Molecular Engineering MA in Computational Social Science (Year 2) 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 (new) Placement: Pass I + II Masters Program in Computer Science (new) Placement: Pass I + II (w/ Advanced)