55AA-008

Systems Programming

Level
Undergraduate
Status
Under development

Note: this course is still being designed and calibrated; the page content is for reference and does not represent the final teaching version.

Syllabus

Course Overview

Systems Programming trains students to build reliable programs on top of operating-system interfaces: processes, threads, files, networks, memory, synchronization, build systems, and debugging tools are taught through practice. The course emphasizes resource lifetimes, error handling, and observability.

This is the practical bridge to operating systems, networking, software security, embedded systems, and system security.

Prerequisites

  • Computer organization and assembly language.
  • Familiarity with at least one of C, C++, or Rust.
  • Ability to use the Linux command line and Git.

Learning Outcomes

  • Use processes, files, pipes, sockets, and threads correctly.
  • Manage memory, handles, and resource lifetimes.
  • Write robust error handling, logging, and tests.
  • Use debuggers, tracers, and performance tools to locate problems.
  • Build a small systems tool or service.

Course Format

  • Two meetings per week: one for core concepts and one for labs, paper discussion, or project review.
  • The course proceeds over 16 weeks, each with a checkable assignment, lab, or project milestone.
  • Reproducibility is required: code, configuration, data, lab logs, and reports must be reviewable by staff or peers.

Weekly Plan

Week 2

Unix programming model and toolchain: lab and review

Implement a command-line tool and add tests. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 4

Files, directories, and error handling: lab and review

Write a reliable file-processing program. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 6

Processes, pipes, and signals: lab and review

Implement a small shell or task runner. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 8

Memory, ownership, and debugging: lab and review

Fix memory issues with sanitizers or valgrind. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 10

Threads, synchronization, and concurrency bugs: lab and review

Implement and debug a concurrent queue or server. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 12

Sockets, protocols, and network services: lab and review

Implement a simple network service and client. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 14

Build, deployment, and observability: lab and review

Add logs, metrics, and CI checks. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Week 15
Week 16

Systems tool project: lab and review

Submit the tool, tests, performance notes, and failure analysis. Complete the paired lab, record issues, and explain design tradeoffs in class review.

Assessment

Individual assignments

Concept questions, reading responses, design tasks, and small programming or lab exercises.

25%
Labs and project

Systems programs, tests, debugging records, and runbooks.

40%
Participation and review

Participation in discussions, demos, code or paper reviews, and peer feedback.

10%
Final report and defense

Submit reproducible artifacts, a technical report, and a demo explaining methods, results, limitations, and future work.

25%

Course Project

Students implement a small systems tool or service, such as a concurrent downloader, log collector, proxy, file synchronizer, or lab-platform component.

Policies

  • AI tools are allowed, but generated code, lab notes, and design suggestions must be reviewed by the student and disclosed in the report.
  • Students may not submit code, proofs, configuration, or experimental results they cannot explain; each member must defend their own design, tests, and tradeoffs.
  • Late work affects iteration grades, but the course values reproducible, auditable, and maintainable results over last-minute accumulation.

Reference Courses

China 985 Universities