CIS 198: Rust Programming

University of Pennsylvania

Fall 2016

Tues 4:30–6:00pm · Towne 321
<cis198@cis.upenn.edu>
Terry Sun (Instructor)
Wed. 3:00-4:30pm
Levine 6 Lounge
David Cao (TA)
Tues. 3:00-4:00pm
Levine 6 Lounge
Alex Ma (TA)
Mon. 1:00-2:00pm
Levine 6 Lounge

Prerequisites:

Resources:

Discussion:

Rust is a new, practical, community-developed systems programming language that "runs blazingly fast, prevents almost all crashes, and eliminates data races." Rust derives from a rich history of languages to create a multi-paradigm (imperative/functional), low-level language that focuses on high-performance, zero-cost safety guarantees in concurrent programs. It began to gain traction in industry even before its official 1.0 release in May 2015, showing a recognized need for a new low-level systems language.

In this course, we will cover what makes Rust so unique and apply it to practical systems programming problems. Topics covered will include traits and generics; memory safety (move semantics, borrowing, and lifetimes); Rust’s rich macro system; closures; and concurrency. Evaluation is based on regular homework assignments as well as a final project and class participation.