CS 351: Systems Programming

Announcements

  • Live lectures & labs will take place on Tue/Thu 8:30AM-12:55PM via Zoom

  • Recorded lecture & lab sessions can be found on Panopto

Calendar

Most readings are from "Computer Systems: A Programmer's Perspective, 3rd Edition" (CS:APP3e). Lecture slides/notes will be updated after class, when available.

The lecture calendar is tentative and may be updated.

Dates Topic Notes Reading(s)
May 17 Syllabus and Course overview 01-prelim Syllabus
May 17 - May 24 C Primer 02-c, x86-64-guide K&R, Pro Git chapters 1, 2
May 26 The Process 03-theprocess CS:APP 8.1-8.2
May 26 - May 31 Process Management: fork/exit 04-procmgmt-1 CS:APP 8.3-8.4.2, Video (to 1:08)
May 31 Process Management: wait/exec 05-procmgmt-2 CS:APP 8.4.3-8.4.6
Jun 2 - Jun 7 Process Management / Unix Shell 06-procmgmt-3 CS:APP 8.5-8.6
Jun 3 Midterm Exam
Jun 9 Memory Hierarchy and Caching 07-caching CS:APP 6.1-6.6
Jun 14 Cache Optimization
Jun 16 Dynamic Memory Allocation 08-dma CS:APP 9.9.1-9.9.4
Jun 16 Implementing malloc 09-malloc CS:APP 9.9.5-9.9.14
Jun 21 Garbage collection 10-gc CS:APP 9.10
Jun 21 System-level I/O 11-io CS:APP 10.1-10.12
Jun 23 Interprocess Communication 12-ipc
Jun 24 Final Exam Study guide

Machine Problems

Note that invitation links are inactive until assignments are released.

Released Due Writeup / Resources Repo Invite Max Points
May 17 May 22 Preliminaries / Pro Git mp-prelim 5
May 23 Jun 1 Attack Lab / Scoreboard mp-attack 70
Jun 2 Jun 12 Shell Lab / Intro video / Debugging video mp-shell 80
Jun 15 Jun 22 Cache Lab / Cache Viz / csim-hint.c mp-cache 53
Jun 22 Jun 28 Malloc Lab / Intro video / Explicit list tutorial mp-malloc 80

Resources

Administrivia

Primary references

C references

Library / Syscall references

Misc. development tool references

Other references

Exams and practice problems