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.
WeekDateLecture and ReadingsProblem SetsNote(s)
1 Wednesday,
2025-Aug-27
Module 1 - Administrivia, Course Introduction, Systems Overview (Shah & Zhong)
  1. Welcome!
  2. Administrivia / Syllabus Review
  3. What is this course about?
  4. Computer Systems Overview (Zhong)
-- --
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 Friday,
2025-Aug-29
Module 2 - C Review and Unix Programming Tools (Shah)
  1. Why C? The 'lingua franca' of systems programming
  2. A motivation example with matrix multiply
  3. C Programming Review
  4. Terminal / Shell / Command Line Interface (CLI) - A window to the operating system
  5. Some tools we will use: Compiler, GDB, git, ssh, text editor
PSET 01 - (C Review) Released (Due Sept. 7 Anywhere on Earth)

(Late Deadline Sept. 14 for up to 90%)
Friday classes do not meet; Monday classes meet instead
2 Monday,
2025-Sep-01
Module 3 - No Class
-- --
No Class; Labor Day
2 Wednesday,
2025-Sep-03
Module 4 - Transistors-instructions (Zhong)
  1. Recap of CPSC 2010
  2. Gates
  3. Transistors
  4. Memory
PSET 02 Released - (Instruments) Released (Due Sept. 14 Anywhere on Earth)

(Late Deadline Sept. 21 for up to 90%)
Add/Drop Period closes Sept. 5 at 5:00pm ET

3 Monday,
2025-Sep-08
Module 5 - Architecture (Zhong)
  1. C Abstract Machine
  2. Address Space
  3. x86
  4. CISC and RISC
-- --
-- --
3 Wednesday,
2025-Sep-10
Module 6 - Assembly 1: Machine Instructions, and Reverse Engineering (Shah)
  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 03 Released - (Assembly and Binary tools) (Due Sept. 21 Anywhere on Earth)

(Late Deadline Sept. 28 for up to 90%)
-- --
4 Monday,
2025-Sep-15
Module 7 - Assembly 2: Assembly and Machine Representation(Shah)
  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
-- --
-- --
4 Wednesday,
2025-Sep-17
-- --
Mike away at CPPCON, his piazza/e-mail response may be slower.
5 Monday,
2025-Sep-22
Module 9 - Abstract machine: implementation and Operating System: Process (Zhong)
  1. Abstract machine continued
  2. Loading a program
  3. ELF
  4. Fork / Execute
PSET 04 Released - (Mini Shell) (Due Oct. 5 Anywhere on Earth)

(Late Deadline Oct. 12 for up to 90%)'
-- --
5 Wednesday,
2025-Sep-24
Module 10 - Operating System: File (Zhong)
  1. Virtualization
  2. Files
  3. Processes
-- --
-- --
6 Monday,
2025-Sep-29
Module 11 - OS: Virtual Memory (Zhong)
  1. Virtual Memory
  2. MMU
  3. Page (Page hit, page miss, page fault)
  4. Address Translation
  5. Translation Lookaside Buffer (TLB)
-- --
-- --
6 Wednesday,
2025-Oct-01
-- --
Reading Section #1: Friday, October 3, 4-5 PM - WTS A30
7 Monday,
2025-Oct-06
PSET 05 Released - Memory Simulator (Due Oct. 20 Anywhere on Earth)

(Late Oct. 26 for up to 90%)
-- --
7 Wednesday,
2025-Oct-08
-- --
-- --
8 Monday,
2025-Oct-13
Module 15 - Linkers and Code Generation (Shah)
-- --
-- --
8 Wednesday,
2025-Oct-15
Module 16 - No Class
-- --
October Recess
9 Monday,
2025-Oct-20
Module 17 - Compilers 2 - Optimization (Shah)
PSET 06 Released - (Mini-Compiler, Linker Lottery, and Dynamic Libraries) (Due Oct. 31 Anywhere on Earth)

(Late Deadline Nov. 7 for up to 90%)'
Exam Review Session (Location TBD) - 7-10pm
9 Wednesday,
2025-Oct-22
Module 18 - Exam
-- --
Brief Study Guide Link (Click me).

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)

Lin tentatively at SOSP

Mike away at Code::Dive

Reading Section #2 - Wednesday, October 22, 10-11 AM - HLH17 115
10 Monday,
2025-Oct-27
Module 19 - OS: Heap Allocators 1 (Shah)
PSET 07 Released - Memory Allocator and Performance Analysis (Due Nov. 7 Anywhere on Earth)

(Late Deadline Nov. 14 for up to 90%)
-- --
10 Wednesday,
2025-Oct-29
Module 20 - OS: Heap Allocators 2 (Shah)
-- --
-- --
11 Monday,
2025-Nov-03
Module 21 - Modern Systems Programming: Rust and Memory Safety (Zhong)
PSET 08 Released - Rust and D - (Due Nov. 14 Anywhere on Earth)

(Late Deadline Nov. 21 for up to 90%)
-- --
11 Wednesday,
2025-Nov-05
Module 22 - Modern Systems Programming: D and Memory Safety (Shah)
-- --
Reading Section #3 - Thursday, November 6, 6-7 PM - WTS A74
12 Monday,
2025-Nov-10
Module 23 - mini - Operating Systems, xv6 (Shah)
-- --
-- --
12 Wednesday,
2025-Nov-12
Module 24 - xv6 and Schedulers and operating system multiprocessing (Shah)
-- --
-- --
13 Monday,
2025-Nov-17
Module 25 - Concurrency and Threads (Zhong)
PSET 09 Released - Concurrency/Parallelism - (Due Nov. 28 Anywhere on Earth)

(Late Deadline Dec. 5 for up to 90%)
-- --
13 Wednesday,
2025-Nov-19
Module 26 - CPU Parallelism with SIMD (SSE, AVX) (Shah)
-- --
Mike tentatively presenting at Graphics Programming Conference in Europe
14 Monday,
2025-Nov-24
Module 27 - No Class
-- --
November Recess
14 Wednesday,
2025-Nov-26
Module 28 - No Class
-- --
November Recess
15 Monday,
2025-Dec-01
Module 29 - Instructors Choice (e.g. OpenMP,GPUs, Quantum, etc.) (Zhong)
-- --
-- --
15 Wednesday,
2025-Dec-03
Module 30 - Instructors Choice (e.g. Networking) (Shah)
-- --
Last official day of class :(

Note: Final Exam location/room: Will be on December 12, at 9AM (Location TBD)
Please do not redistribute or host any materials without e-mailing me first. I generally am happy to share the latest .pdf or slide presentation with those who ask. Thank you for your time!