CIS198: Rust Programming

Spring 2021

Description

Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.rust-lang

In this course we will cover Rust as a practical alternative to C and C++ for systems programming. We will explore design choices and language features that allow Rust to compete with C and C++ without compromising speed, correctness, or high level abstractions.

Expected topics covered include: the Rust type system (structs, enums, traits, generics), memory management (safety, ownership, borrowing, and lifetimes), functional programming (closures, higher order functions), parallelism and concurrency, and advanced topics (macros, constant functions, async/await, Rust for the web, future of Rust, etc.)

Evaluation is based on regular homework assignments as well as a final project and class participation.

Prerequisites:

Piazza

I plan to use Piazza for all class announcements, Q&A and discussions. Please do not email me with questions except for official matters --- paste them on Piazza! This website is mostly static; Piazza will contain the most up-to-date information.

Basic Information

Please see Syllabus Link in the side bar for detailed class information!

Book

The course will follow The Rust Programming Language, 2nd Edition, a free online book created by the Rust community. This is a wonderful and concise resource.

Although not free online, we also recommend O'Reilly's Programming Rust Fast, Safe Systems Development, which the course structure is based on. This is an excellent more thorough resource, though out-of-date in some minor ways.

Considering taking the class?

If you're curious what this class is about, please see the class schedule and homeworks for an overview of the type of topics we will cover.