mshah.ioCourse ScheduleCourse Information


CPSC 3230 Computer Systems

'No more magic' -- Your Instructor

Schedule/Road Map

The following is our tentative syllabus for the course, changes should be expected throughout the semester. I will announce in class, piazza, or through e-mail any major changes.

Week

Date

Lecture and Readings

Problem Sets

Note(s)

1

Monday, 2026-Jan-12
Module 1 - Administrivia, Course Introduction, Systems Overview (Shah)
  1. Welcome!
  2. Administrivia / Syllabus Review
  3. What is this course about?
  4. Computer Systems Overview
PSET 01 - (C Review) Released (Due Jan. 23 Anywhere on Earth)

(Late Deadline Jan. 30 for up to 90%)
Welcome back to class!
Note: 1st PSET has extra time to accomodate students who add late. Students who add late still need to complete by the deadline shown.

1

Wednesday, 2026-Jan-14
Module 2 - Terminal Overview and Unix Programming Tools (Shah)
  1. Terminal / Shell / Command Line Interface (CLI) - A window to the operating system
  2. Some tools we will use: Compiler, git, ssh, text editor
  3. A motivation example with matrix multiply
  4. Why C? The 'lingua franca' of systems programming
  5. Some introduction to C
-- --
-- --

2

Monday, 2026-Jan-19
PSET 02 Released - (Instruments) Released (Due Jan. 30 Anywhere on Earth)

(Late Deadline Feb. 6 for up to 90%)
No Class; Martin Luther King Jr. Day

2

Wednesday, 2026-Jan-21
Module 4 - C Programming 1 - Memory/Pointers/Arrays/Pass-by-value/Stack/Heap Memory/Virtual (Shah)
  1. C Programming Review
  2. Memory
  3. Pointers
  4. Arrays
  5. Pass by Value
  6. Stack Memory
  7. Heap Memory
  8. Virtual Memory Introduction
-- --
-- --

2

Friday, 2026-Jan-23
-- --
Friday classes do not meet; Monday classes meet instead

3

Monday, 2026-Jan-26
Module 6 - C Programming 3 - Larger C programs (structs, unions, and ELF)
  1. How to organize a C project
  2. C Abstract Machine
  3. Address Space
-- --
-- --

3

Wednesday, 2026-Jan-28
Module 7 - OS: Heap Allocators 1 (Shah)
  1. Memory Overview
  2. Stack and Heap Overview
  3. malloc interface
  4. RAII
  5. brk/sbrk
  6. mmap
  7. strace
PSET 03 Released - Memory Allocator and Performance Analysis (Due Feb. 07 Anywhere on Earth)

(Late Deadline Feb. 14 for up to 90%)
-- --

4

Monday, 2026-Feb-02
Module 8 - OS: Heap Allocators 2 (Shah)
  1. Dynamic Memory Allocation
  2. Internal and External Fragmentation
  3. First-fit, next-fit, and best-fit
  4. Local and Global Allocators
-- --
-- --

4

Wednesday, 2026-Feb-04
Module 9 - Modern Systems Programming: D and Memory Safety (Shah)
  1. The D programming language
  2. Overview of D as a systems programming langauge
-- --
-- --

5

Monday, 2026-Feb-09
Module 10 - Assembly 1: Machine Instructions, and Reverse Engineering (Harry)
  1. What happens to our C code?
  2. Compiler Explorer Example
  3. Assembly instruction sets
  4. RISC / CISC
  5. Reverse Engineering
  6. Understanding Assembly Instructions - AT&T Syntax x86-64
PSET 04 Released - (Assembly and Binary tools) (Due Feb. 17 Anywhere on Earth)

(Late Deadline Feb. 24 for up to 90%)
-- --

5

Wednesday, 2026-Feb-11
Module 11 - Assembly 2: Assembly and Machine Representation (Harry)
  1. More on Assembly instructions
  2. What does C 'transform into'? -- compiler explorer example
  3. Anatomy of an assembly program
  4. Program Stack and Assembly
  5. Assembly Functions and procedures
-- --
-- --

6

Monday, 2026-Feb-16
Module 12 - Compilers 1 (Shah)
  1. Pre-processor
  2. Frontend
  3. Backend
PSET 05 Released - (Mini-Compiler, Linker Lottery, and Dynamic Libraries) (Due Feb. 25 Anywhere on Earth)

(Late Deadline Mar. 01 for up to 90%)'
-- --

6

Wednesday, 2026-Feb-18
Module 13 - Linkers and Code Generation (Shah)
  1. Full picture of compilation
  2. The Linker
-- --
-- --

7

Monday, 2026-Feb-23
Module 14 - Compilers 2 - Optimization (Shah)
  1. Donald Knuth
  2. Bentley's Performance Rules
  3. Understanding what compiler can and cannot do
  4. Time and Space Tradeoffs (of Algorithms and data structures)
-- --
This lecture will be prerecorded ahead of lecture due to the snowstorm

7

Wednesday, 2026-Feb-25
PSET 06 Released - (Memory Simulator) (Due Mar. 6 Anywhere on Earth)

(Late Deadline Mar. 13 for up to 90%)'
-- --

8

Monday, 2026-Mar-02
-- --
-- --

8

Wednesday, 2026-Mar-04
-- --
Exam otherwise includes any other materials from lecture, slides, and homeworks. You must finish the exam in one sitting (i.e. when you open the exam, your time starts)
Mid-semester date

9

Monday, 2026-Mar-09
-- --
Spring Recess

9

Wednesday, 2026-Mar-11
-- --
Spring Recess

10

Monday, 2026-Mar-16
-- --
Spring Recess

10

Wednesday, 2026-Mar-18
-- --
Spring Recess

11

Monday, 2026-Mar-23
PSET 07 Released - (Mini Shell) (Due Apr. 4 Anywhere on Earth)

(Late Apr. 11 for up to 90%)
-- --

11

Wednesday, 2026-Mar-25
-- --
-- --

12

Monday, 2026-Mar-30
PSET 08 Released - Operating System - (Due Apr. 11 Anywhere on Earth)

(Late Deadline Apr. 18 for up to 90%)
-- --

12

Wednesday, 2026-Apr-01
-- --
D language 2026 Symposium!

April 10th Colloquium

April 11th Talks

April 12th Hackathon

13

Monday, 2026-Apr-06
PSET 09 Released - Concurrency/Parallelism/Allocator 2 - (Due Apr. 22 Anywhere on Earth)

(Late Deadline Apr. 29 for up to 90%)
-- --

13

Wednesday, 2026-Apr-08
-- --
-- --

14

Monday, 2026-Apr-13
-- --
-- --

14

Wednesday, 2026-Apr-15
-- --
-- --

15

Monday, 2026-Apr-20
-- --
-- --

15

Wednesday, 2026-Apr-22
-- --
Last official day of class :(
Note: Final Exam: Monday, May 4 at 2pm in Location TBD, you will take your exam on Canvas in the 'quiz' section (come with your laptop charged). The access code for the exam will be written on the board before the quiz starts.
Please do not redistribute or host any materials without e-mailing me first. Thank you for your time!