This is the webpage for Memory Safety, a half-course being offered at Harvey Mudd during the second half of Fall 2016. It is embdedded within CS 189: Programming Practicum.
A constant struggle when programming is writing programs that are both safe and highly performant. Most programming languages end up choosing to give the programmer more control at the expense of safety, or deny that control at the expense of performance. Rust, an up and coming programming language, aims to provide both control of memory and memory safety through the use of an elaborate type system. In this course we’ll take a close look at exactly how Rust does this, and in the process we’ll think a lot about memory safety, static analysis, and programming language design.
From a day-to-day perspective, the course will consist mostly of writing code in Rust in order to shed light on how the language addresses memory safety. We’ll also take turns giving presentations on the questions raised by the assignments, and how those questions can be resolved.