COMS 4995 Advanced Systems Programming

Spring 2025

HW Due Dates

Date Assignment
F 1/24 HW0 due
R 2/13 HW1 due
R 2/27 Su 3/2 HW2 due
F 3/14 Su 3/23 (Hard deadline) HW3 due
F 4/11 HW4 due
Su 4/27 HW5 due
W 5/7 HW6 due

Course Schedule

Lecture 1: W 1/22

Course overview and logistics

Git Overview and Internals

Lecture 2: M 1/27

Git Overview and Internals (continued)

Lecture 3: W 1/29

Git Overview and Internals (continued)

GitHub


HW1: malloctopus


Lecture 4: M 2/3

Introduction to Memory Allocators

Lecture 5: W 2/5

Introduction to Memory Allocators (continued)

Caching, Memory Mapping, and Advanced Allocators

Lecture 6: M 2/10

Caching, Memory Mapping, and Advanced Allocators (continued)

Lecture 7: W 2/12

Processes

Signals

Lecture 8: M 2/17

Signals (continued)

File I/O


HW2: greptile


Lecture 9: W 2/19

File I/O (continued)

POSIX threads

Lecture 10: M 2/24

POSIX threads (continued)

Synchronization

Lecture 11: W 2/26

Interprocess Communication in UNIX


HW3: cowchat


Lecture 12: M 3/3

Nonblocking I/O and I/O multiplexing

Lecture 13: W 3/5

Summary of UNIX IPC so far

UNIX domain sockets

Lecture 14: M 3/10

Threads 2

Lecture 15: W 3/12

Threads 2 (continued)

x86-64 Assembly

No Classes on M 3/17 & W 3/19 – Spring Break
Lecture 16: M 3/24

x86-64 Assembly (continued)

Midterm Exam: W 3/26

Midterm Exam


HW4: ladebug


Lecture 17: M 3/31

x86-64 Assembly (continued)

Interrupts

Lecture 18: W 4/2

Interrupts (continued)

HW4 ladebug Skeleton Code Overview & Demo

Lecture 19: M 4/7

HW4 ladebug Skeleton Code Overview & Demo (continued)

Introduction to ELF

Linking

Lecture 20: W 4/9

Linking (continued)


HW5: seald


Lecture 21: M 4/14

Linking (continued)

Lecture 22: W 4/16

Linking (continued)

Linking 2

Lecture 23: M 4/21

Linking 2 (continued)

UNIX Filesystem


Last updated: 2025-04-16