COMP2560: Systems Programming
What's actually happening below the languages that hide it: manual memory management, pointers, processes and system calls, and enough of the toolchain to debug a segfault without guessing. The lab exercises assume you'll break things; that's the point.
Credit units
6 units
Instructor
Dr. Nadia Kessler
Prerequisites
COMP1100.
Learning objectives
By the end of this course, students will be able to:
- Manage memory manually and explain what goes wrong when you don't
- Read and write C confidently, including pointers and structs
- Explain what a process and a system call actually are
- Debug a segfault or a hang using real tools, not guesswork
Assessment
- Lab exercises20%Weekly hands-on labs; break things on purpose, then explain why.
- Assignment 1 — memory & pointers25%A C program exercising manual memory management, marked with sanitiser tooling.
- Assignment 2 — processes & system calls25%A small multi-process program using system calls directly.
- Final exam30%Closed-book exam covering memory, processes and the toolchain.
Assignments are auto-tested with memory-safety tooling in addition to manual marking; the exam is in-person and closed-book.
Timetable
Lecture: Fri 10am–11am, CSIT N103
3 tutorial option(s) — pick one on the timetable page after enrolling.
- Tutorial A: Mon 11am–12pm, CSIT Lab 3
- Tutorial B: Tue 9am–10am, CSIT Lab 3
- Tutorial C: Thu 9am–10am, CSIT Lab 4
4/4 courses added.