CS 423/523 Rust Programming
4/3
Bart Massey
In this course, we will learn to program in Rust. Rust is a novel programming language combining solid bare-metal performance with modern language features that give acceptable usability and encourage high-quality code.
The languages of choice for systems programming for the past 30 years have been C and its larger cousin C++. Because of their popularity and performance, C and C++ have also been a common choice for application programming. However, these languages are well-understood to be both error-prone, inconveniently verbose and repetitive, and difficult to use for large-scale software engineering.
Rust is an attempt to remedy many of the deficiencies of C and C++. Rust provides a modern strong static type system, a strong module system supporting separate module compilation, and a static programmer- transparent memory allocation scheme that largely eliminates runtime memory errors.
Requires CS 205, CS 302, and CS 358. Familiarity with programming in general and C or C++ in particular is required. Basic ability to use the Linux environment is required. A software engineering course is highly recommended.
Upon the successful completion of this course students will be able to
Programming Rust: Fast, Safe Systems Development (2nd ed)
Jim Blandy and Jason Orendorff
O’Reilly 2021
Many homeworks that require Rust programming, plus a project.
Writeups of work. A brief project presentation.
N/A
Some programming language design and analysis.
Adapt requirements toward a Rust-ready design.
Design high-quality Rust code that naturally leverages the strengths of the language.
CAC Category Credits | Core | Advanced |
Data Structures | 0.25 | |
Algorithms | ||
Software Design | 0.5 | 0.5 |
Computer Architecture | ||
Programming Languages | 0.5 |