CAS CS 392

Title Rust, in Practice and in Theory
Location Boston University
Semester Spring 2025

This is a course about the PL Rust. We'll spend the first half of this course learning how to program in Rust, then we'll shift to implementing a subset of Rust in Rust based on a very nice calculus defined by David J. Pearce. See the schedule and syllabus for more details.

Pages

Links

Schedule (Overview)

Date Topic Notes
01-21 Basics I: Introduction, Installation, Cargo  
01-23 Basics II: Common Programming Concepts A1 out
01-28 Ownership I: The Stack and Heap  
01-30 Ownership II: References, Borrowing A2 out, A1 due
02-04 Data I: Structures, Enumerations  
02-06 Data II: Collections, Slices A3 out, A2 due
02-11 Functions I: Generics and Traits  
02-13 Functions II: Closures, Iterators A4 out, A3 due
02-18 NO CLASS Presidents' Day
02-20 Lifetimes A5 out, A4 due
02-25 Smart Pointers I: Boxes, Recursive Data  
02-27 Smart Pointers II: Rc<T> and RefCell<T> A6 out, A5 due
03-04 TBD  
03-06 Midterm Exam A6 due
03-11 NO CLASS Spring Recess
03-13 NO CLASS Spring Recess
03-18 Background I: Crash Course in Logic  
03-20 Background II: Linear Types A7 out
03-25 Background III: Crafting Interpreters  
03-27 Workshop: An Interpreter for LTLC A8 out, A7 due
04-01 FR Calculus I: Introduction  
04-03 FR Calculus II: Syntax FP out, A8 due
04-08 Workshop: A Parser  
04-10 FR Calculus III: Semantics FP part 1 due
04-15 Workshop: An Evaluator  
04-17 FR Calculus IV: Type and Borrow Checking FP part 2 due
04-22 Workshop: A Type/Borrow Checker  
04-24 FR Calculus V: Extensions FP part 3 due
04-29 Advanced I: Soundness (Part 1)  
05-01 Advanced II: Soundness (Part 2) FP due