An Undergraduate Computer Systems Curriculum Using Rust
Files
TR Number
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
We present the design and evaluation of an undergraduate computer systems curriculum taught in the Rust programming language. Traditionally, such courses have relied on C to introduce students to fundamental concepts including processes, memory management, and concurrency. While C has historical and practical significance, it exposes students to memory safety errors and undefined behavior that can hinder learning. Rust offers comparable performance and control while enforcing memory and thread safety, but the steep learning curve may preclude its use as an instructional language for operating systems education.
We investigate the feasibility of Rust as the teaching language for a computer systems course through three primary contributions. First, we designed a course curriculum that adapts the structure of a traditional computer systems class to Rust. We reworked core systems assignments to leverage Rust's features and safety guarantees. Second, we document the challenges of integrating Rust into undergraduate teaching, addressing its steep learning curve and balancing language instruction with systems concepts. Third, we offer pedagogical strategies and reusable materials that can support instructors considering Rust for similar courses.
We evaluated the curriculum in a single semester offering at Virginia Tech. Data from student surveys and qualitative feedback show that although Rust's ownership and borrowing rules required additional guidance, students successfully completed systems-level Rust projects and reported improved understanding of the associated systems theory. This work contributes both a concrete curriculum and an empirical case study supporting the integration of Rust into computer science education.