Spring 2026 Course Overview
-
M 7:00pm-9:30pm, 451 Computer Science Building
- Two synchronous and in-person exams for all sections:
- Exam 1: 03/09/26 Mon 7:00pm ( ~ 70mins )
- Exam 2: 05/11/26 Mon 7:00pm ( ~120mins )
All students in all sections MUST take the exams at those times.
There are no make-up or alternate exams.
If you cannot make any of those exams, please take the course next semester.
- Instructor: Hubertus Franke
- Office hours: Mon 6:00pm - 6:45pm : Mudd 1334 ( Adjunct Office )
- REQUIRED READING:
ACADEMIC HONESTY POLICIES
- 4118 Dev Guides
HW Due Dates
All homeworks are due on Sunday at 11:59 PM. There will be no extensions.
| Date |
Assignment |
| Su 2/1 |
HW0 due |
| Su 2/8 |
HW1 due |
| Su 2/22 |
HW2 due |
| Th 3/5 |
HW3 due |
| TBD |
HW4 due |
| TBD |
HW5 due |
| TBD |
HW6 due |
| TBD |
HW7 due |
Overview of Course Schedule
| Date |
Topic |
| 1/26 |
Course overview / Introduction to OS |
Course Schedule
Note: We might/will have multiple presentations per class to break it up into smaller topic related sets.
Presentations materials will go life the night before class.
1/26 - Course overview and logistics
Note: class moved remote by the university, please join ZOOM here: zoom-recording-0126
- Lecture:
-
Assignments:
-
Check that you have access to Ed
- Read the following two documents:
-
HW0 (individual assignment) – due Sun 2/1, 11:59pm
Send an email:
- To: students-coms4118@googlegroups.com
- Subject: “[coms4118-s26] hw0-UNI” – without quotes, sole space before
hw0, UNI replaced with your actual UNI in lowercase
- Your name, major & school program, year
- E.g. John Doe, Electrical and Computer Engineering, School of Engineering and Applied Sciences, class of 2026
- Your pledge – see the pledge
- CS classes taken and/or other programming background
- Optionally anything else you want to let me know
- Optionally attach a picture of you, but please reduce image file
size to about 100KB
- Start forming your group of three people (the first few assignments will be individual)
1/26 - Introduction to OS/Unix
- Lecture:
- Reading:
- APUE: chapter 1, 2.3, 2.4
- OSTEP: chapter 2
- LKD: chapter 1
HW1: linux-list
- Individual assignment, due 02/08
Linux Overview
UNIX signals
- Lecture:
- Reading:
- APUE 9.4 - 9.6: skim, just to get a sense of process group, session, and controlling terminal
- APUE 9.7: skim pages 299-301, skip rest – just to get a sense of jobs running in foreground and background
- APUE 10.1 - 10.6 (skim signal descriptions in 10.2)
- APUE 10.8 - 10.9
- APUE 10.10: you can skip pages 340-341 & 343 (but interesting read if you know setjmp() / longjmp() or willing to find out)
- APUE 10.11 - 10.13
- APUE 10.14: skip page pages 352-353
UNIX File I/O
- Lecture:
- Reading:
- APUE: 3.1-3.13
- APUE: 8.1-8.10
- APUE chapter 5 (skim)
Interprocess communication in UNIX
- Lecture:
- Reading:
- APUE 15.2, 15.5
- APUE 15.10
- APUE 15.8 (just pgs 565-566): semaphore semantics
- APUE 7.6 - 7.7
- APUE 7.8: a little bit off-topic, so optional
- APUE 14.8: read page 525-527, skim the rest
- APUE 15.9: page 576-578
POSIX threads
- Lecture:
- Reading:
- APUE 11.1 - 11.4
- APUE 11.5: read page 388-393; skip the rest of 11.5
- APUE 11.6: read up to (and including) 11.6.6
Nonblocking I/O and I/O multiplexing
- Reading:
- APUE 14.2
- APUE 14.4.0 (i.e., page 500-501)
- APUE 14.4.1
- epoll
- Lecture:
UNIX domain sockets
- Reading:
- APUE 17.1
- APUE 17.2: pages 631-633 are optional, but recommended
- APUE 17.2.1
- APUE 17.3: pages 637-641 are optional, but recommended
- APUE 17.4: read 642-643, skip the rest
- Lecture:
HW2: shell
- Individual assignment, due Sunday 2/22
Linux System Calls
- Reading:
- OSTEP chapter 4 (previously assigned)
- OSTEP chapter 6 (previously assigned)
- LKD chapter 2
- LKD chapter 3: skim pages 37-40
- LKD chapter 5
- Lecture:
Run queues and wait queues
- Reading
- Process states (previously assigned)
- OSTEP 4.4
- LKD pages 27-28
- Scheduling basics & wait queues
- Lecture
Interrupts & Spin Locks
- Reading:
- Interrupts: LKD chapter 7
- Kernel locks: LKD chapter 10: pages 183 (from Spin Locks) - 202
- Preemption: LKD pages 62 - 64 (before Real-Time Scheduling Policies)
- Lecture:
Synchronization
- Reading:
- OSTEP chapter 28 (sections 28.9, 28.10, 28.11, and 28.15 are optional)
- Optionally, OSTEP chapter 30
- OSTEP chapter 31
- Optionally, read java.lang.Object API
doc
about
wait(), notify(), notifyAll() if you haven’t already
- Lecture:
HW3: tabletop
- Individual assignment, due Thursday 3/5