MPCS 51082 Introduction to Unix Systems (Autumn 2024)

Section 2
Instructor(s) Kenneth Samuels, Lamont (lamonts)
Location Crerar 011
Meeting Times Thursday 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

Core Programming (completed or concurrently enrolled)

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. New students must attend the MPCS Unix Bootcamp during orientation. Continuing students who previously attended the MPCS Unix Bootcamp have covered the required material. Continuing students who did not attend the MPCS Unix Bootcamp may review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Overlapping Classes

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

  • MPCS 52011-1 -- Introduction to Computer Systems
  • MPCS 53001-2 -- Databases
  • MPCS 51240-1 -- Product Management

Eligible Programs

MS in Molecular Engineering MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 2) Masters Program in Computer Science Masters Program in Computer Science (new) Placement: Pass I + II (w/ Advanced) Masters Program in Computer Science (new) Placement: Pass I + II Masters Program in Computer Science (new) Placement: Pass I Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors)