CSCI 415/515 - Fall 2026
Systems Programming


Syllabi

General Course Information

Instructor Stephen Herwig Office Hours:
MW 11:00am - 12:00pm
F 1:00pm - 2:00pm
or by appt.
ISC4 Room #2391
Teaching Assistant Lily Gloudemans

Tu 12:30pm - 2:00pm
ISC4 Room #2372 (Cybersecurity Center)
Time/Place WMF 10:00am - 10:50am
ISC
Room #1280
Final Exam Tue 12/15: 2:00pm - 5:00pm

Roadmap

Readings Project Notes
Warm-up Weeks 1 and 2 (Wed 8/26 - Fri 9/4)
The Linux Programming Interface:
  • Ch 1: History and Standards
  • Ch 2: Fundamental Concepts
  • Ch 3: Systems Programming Concepts
  • Ch 7: Memory Allocation
  • Appendix B: Parsing Command-Line Options
p1: sgrep
Due: Fri 9/11 @11:59pm
  • Fri 9/4: Course drop/add deadline
File I/O and File Systems Weeks 3 and 4 (Mon 9/7 - Mon 9/14)
The Linux Programming Interface:
  • Ch 4: File I/O: The Universal I/O Model
  • Ch 5: File I/O: Further Details
  • Ch 14: File Systems
  • Ch 15: File Attributes
  • Ch 18: Directories and Links
  • Ch 13: File I/O Buffering
Signals and Timers Weeks 4 and 5 (Wed 9/16 - Wed 9/25)
The Linux Programming Interface:
  • Ch 20: Signals: Fundamental Concepts
  • Ch 21: Signals: Handlers
  • Ch 22: Signals: Advanced Features
  • Ch 23: Timers and Sleeping
  • Ch 10: Time
p3: mcron
Due: Tue 10/13 @11:59pm
Processes and Pipes Weeks 5 and 6 (Fri 9/25 - Fri 10/2)
The Linux Programming Interface:
  • Ch 24: Process Creation
  • Ch 25: Process Termination
  • Ch 26: Monitoring Child Processes
  • Ch 27: Program Execution
  • Ch 44: Pipes and FIFOs
  • Ch 28: Process Creation and Program Execution in More Detail
  • Ch 6: Processes
p4: bsh
Due: Wed 10/28 @11:59pm
Sockets Weeks 7 and 8 (Mon 10/5 - Fri 10/16)
The Linux Programming Interface:
  • Ch 58: Sockets: Fundamentals of TCP/IP Networks
  • Ch 56: Sockets Introduction
  • Ch 59: Sockets: Internet Domains
  • Ch 60: Sockets: Server Design
  • Ch 63: Alternative I/O Models
  • Fri 10/9: No class (Fall Break)
  • Threads Weeks 9 and 10 (Mon 10/19 - Fri 10/30)
    The Linux Programming Interface:
    • Ch 29: Threads: Introduction
    • Ch 30: Threads: Synchronization
    • Ch 31: Threads: Thread Safety and Per-Thread Storage
    • Mon 10/26: Withdrawal deadline
    Rust Week 11-14 (Mon 11/2 - Fri 11/27)
    • Mon 11/23 remote instruction
    • Wed 11/25: no class (Thanksgiving Break)
    • Fri 11/27: no class (Thanksgiving Break)
    Review Week 15 (Mon 11/30 - Fri 12/4)