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.
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 |