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)
  1. Full picture of compilation
  2. The Linker
-- --
-- --
8 Wednesday,
2025-Oct-15
Module 16 - No Class
-- --
October Recess
9 Monday,
2025-Oct-20
Module 17 - 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)
PSET 06 Released - (Mini-Compiler, Linker Lottery, and Dynamic Libraries) (Due Nov. 4 Anywhere on Earth)

(Late Deadline Nov. 11 for up to 90%)'
Exam Review Session (Location: Davies Auditorium) - 7-10pm

Exam study guide topics (Click me)
9 Wednesday,
2025-Oct-22
Module 18 - Exam
  1. Exam in class
-- --
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 away at SOSP

Mike away at Code::Dive

Reading Section #2 - Thursday, October 23, 4-5 pm - WTS A30
10 Monday,
2025-Oct-27
Module 19 - 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
-- --
-- --
10 Wednesday,
2025-Oct-29
Module 20 - 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
PSET 07 Released - Memory Allocator and Performance Analysis (Due Nov. 10 Anywhere on Earth)

(Late Deadline Nov. 17 for up to 90%)
-- --
11 Monday,
2025-Nov-03
Module 21 - Modern Systems Programming: D and Memory Safety (Shah)
  1. The D programming language
  2. Overview of D as a systems programming langauge
-- --
Lecture is pre-recorded (Mike out sick), you can watch from home.
11 Wednesday,
2025-Nov-05
-- --
-- --
12 Monday,
2025-Nov-10
PSET 08 Released - Operating System - (Due Nov. 21 Anywhere on Earth)

(Late Deadline Nov. 28 for up to 90%)
-- --
12 Wednesday,
2025-Nov-12
Module 24 - xv6 and Schedulers and operating system multiprocessing (Shah)
  1. Capabilities of xv6 and operating systems
  2. Operating System Bootup and the First Process
  3. Scheduling
  4. Operating System Capabilities
-- --
Reading Section #3 - Thursday, November 13, 6-7 PM - WTS A74
13 Monday,
2025-Nov-17
-- --
-- --
13 Wednesday,
2025-Nov-19
PSET 09 Released - Concurrency/Parallelism - (Due Dec. 5 Anywhere on Earth)

(Late Deadline Dec. 12 for up to 90%)
Mike away 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 - GPU Programming and LLMs (Zhong)
  1. GPU programming to power LLMs (e.g. GPT)
-- --
-- --
15 Wednesday,
2025-Dec-03
Module 30 - Course wrap-up, class photo, Instructors Choice of topic(e.g. Networking) (Shah)
  1. Networking
  2. Client-Server Model
  3. UDP and TCP
  4. Sockets
  5. Networking in other languages (e.g. D)
  6. Class picture
-- --
Last official day of class :(

Note: Final Exam: Will be on December 12, at 9:00 - 10:15AM in LUCE 101, you will take your exam on Canvas (come with your laptop charged). The access code for the quiz will be written on the board before the quiz starts.

Exam study guide topics (Click me)
Please do not redistribute or host any materials without e-mailing me first. Thank you for your time!