The class is embedded within CS 189: Programming Practicum, but will only occur duing the second half of the Fall semester. Interested students should attend the first CS 189 session for a brief class pitch, but will otherwise have no obligations until after Fall Break.
One class begins we will meet during Programming Practicum’s typical timeslot: 4:15 - 5:30, Tuesdays, in Shanahan 3460. There will also be frequent office/lab hours:
- 7:00 - 8:00 pm Monday, Shanahan B470
- 3:00 - 4:00 pm Sunday, by the Cafe
- 11:00 - 12:00 am Friday, Shanahan B454
|09/07||Memory Management and Rust||slides||–||–|
|0||10/17||Getting Acquianted With Rust||slides||Warm Up||10/25|
|1||10/25||The Ownership System||slides||A Linked List||11/1|
|3||11/8||Lifetimes||slides||A Baby Database||11/15|
|4||11/15||Unsafe||slides||The Wild West||11/22|
|5||11/22||Send, Sync, & Threads||slides||Git-rs(Optional)||11/29|
|6||11/29||NLL & Project Kickoff||slides||Graphs!||??|
It can be found here
Potential Presentation Topics
- Debugging Memory Errors in Rust (Assignment 1, Bonus C). –Adam
replace_with– this turned into part of the “unsafe” assignmnent.
- Doubly-linked lists and the Rust ownership model.
- What exactly are
FnMut? Function types, Closure types, and function traits in Rust. –Zach
- Macros –Eric
- Anonymous lifetimes in Rust: Elision versus anonymity.
- Writing (and explaining) a safe Rust program which leaks memory –Max and Daniel
- Type System Abuse: Compile Time Arithmetic in Rust
Sized: Sized and unsized types in Rust. (Also super cool) –Michael and Jackson
- Dereference coercions & partial moves –Ross and Luis
- Allocators. How can one go about allocating memory in (unsafe) Rust? –Julien and Dan
crossbeam: aturon’s scoped thread library. * You know how threads require
'staticinputs? What if they didn’t?
- Single Entry Multiple Exit/Static Single Assignment/Dominators take on Non-Lexical Lifetimes.
- Associated Type Constructors.
- Garbage collection traits.