CAS CS 392

Table of Contents

Rust, in Practice and in Theory
Boston University
Fall 2025

This is a course about the programming language Rust, and, for better or for worse, this can mean a lot of things. Part of what making Rust fascinating (and what makes this course a pain to teach) is that it has a lot to offer. You might be coming to this course with an interest in systems programming (an unreasonbly broad term), or PL design (ditto). Regardless, our goal is not just to program in Rust, but also to understand the theoretical underpinnings of the language. So in reality you'll probably need to have at least a passing interest in both perspectives.

We'll spend the first half of this course learning how to program in Rust, and the second half working on a self-defined project in Rust or an adjacent topics.

Links

Calendar

Date Topic Notes
09-02 Basics I: Introduction, Installation, Cargo  
09-04 Basics II: Common Programming Concepts A1 out
09-09 Data I: Stack, Heap, References  
09-11 Data II: Struct, Enums, Collections A2 out, A1 due
09-16 Theory I: Straight Line Programs (salt0)  
09-18 Theory II: Variables and References (salt1) A3 out, A2 due
09-23 Functions I: Generics and Traits  
09-25 Functions II: Closures and Iterators  
09-30 Basics III: Boxes, Recursive Data  
10-02 Basics IV: Lifetimes A4 out, A3 due
10-07 Theory III: Mutable References (salt2)  
10-09 Theory IV: Mutable References (salt2) A5 out, A4 due
10-14 NO CLASS Indigenous Peoples' Day
10-16 Smart Pointers: Rc<T> and RefCell<T> A5 due
10-21 Odds and Ends: Modules, Testing  
10-23 Midterm Exam A6 out, midterm.zip
10-28 Concurrency I: Message Passing  
10-30 Concurrency II: Asynchronous Programming FP outline out, A6 due
11-04 Unsafe Rust I: An Introduction  
11-06 Unsafe Rust II: Implementing Rc<T> FP outline due
11-11 Theory V: Boxes and Lifetimes  
11-13 Theory VI: Conditionals FP check-in 1
11-18 Compiler I: TBD  
11-20 Compiler II: TBD FP check-in 2
11-25 Macros  
11-27 NO CLASS Thanksgiving
12-02 TBA  
12-04 Final Project Presentations  
12-09 Final Project Presentations FP due

Week 1: Basics ✓

Meeting 1

Meeting 2

Week 2: Data ✓

Meeting 3

Meeting 4

Week 3: Theory ✓

Meeting 5

  • Title: salt0: Straight Line Programs
  • Material:

Meeting 6

  • Title: salt1: Mutable Variables, Immutable References
  • Material:
  • Assignment:

Week 4: Functions ✓

Meeting 7

Meeting 8

Week 5: Basics ✓

Meeting 10

Week 6: Theory ✓

Meeting 11

  • Title: Mutable References I

Meeting 12

  • Title: Mutable References II

Week 7: Smart Pointers ✓

Meeting 13

Week 8: Midterm Exam ✓

Meeting 14

Meeting 15

Week 9: Concurrency ✓

Meeting 16

Meeting 17

Week 10: Unsafe

Meeting 18

Meeting 19

Week 11: Theory

Meeting 20

  • Title: Boxes and Lifetimes

Meeting 21

  • Title: Conditionals

Week 12: Compiler

Meeting 22

  • Title: TBD

Meeting 23

  • Title: TBD

Week 13: Macros

Meeting 24

  • Title: An Overview

Week 14: Final Project

Meeting 25

  • Title: TBA

Meeting 26

  • Title: Final Project Presentations

Week 15: Final Project

Meeting 27

  • Title: Final Project Presentations