In my opinion this course https://tc.gts3.org/cs3210/2020/spring/lab.html, is the best OS course ever, perhaps even the best computer science course ever. Thru the labs you build a bare metal OS for raspberry pi using Rust. I went thru it on my own and was able to complete most of it. Running your OS on real hardware is way more satisfying than doing it on emulator.
By saying computer science, I'm excluding stuff that are theory oriented, and I also dislike most programming language courses, even though this one does try to teach you Rust.. So that pretty much leaves us with systems courses. Waterloo has a real-time OS course that makes you write a program that controls some toy trains moving on rails, that course must be pretty high on my list as well. But the Rust OS course teaches you more fundamental stuff like virtual memory, multi core, file system etc. So I think the train course is a good runner up.
A good course for me must have a super cool and well designed project. For example, for machine learning, I really like this one, https://dlsyscourse.org/assignments/, the assignments make you write your own mini version of PyTorch and use it to train models, how cool is that!
I'm aware of the Distributed Systems and SICP. I've always wanted to do the distributed systems course, but it just always seems to be at 3rd or 4th spot on my priority list lol, hopefully one day get to do it. SICP falls into what I said about programming languages, so I'm probably not going to touch it. Compilers are usually very fun though.
I took this class when Professor Evans originally taught it in 2014(?), and really enjoyed it. Just a note that Rust (the language) has changed significantly in the past 9 years, and many of these code examples will likely not run today with a newly installed version of rust.
More college courses should lean-forward to teach skills that are on the forefront of industry adoption. Learning about Rust and getting familiar with it in 2014 was incredibly helpful with my organization (Amazon) starting to adopt Rust for memory-critical applications in the late teens.
But was Rust on the forefront of industry adoption in 2014? It seems it wasn't even officially released until 2015 according to Wikipedia and the only known project that I'm aware of that was using Rust back then was Mozilla's Servo which is (semi?) dead. Similar languages back then that could have replaced Rust and had similar potential were Nim and D and both of them failed to get a significant industry adoption
The link I posted below contains commentary on why they chose Rust over various other languages.
There were other production users of rust in 2014, notably Dropbox and a bunch of cryptocurrency stuff. But not very many, it’s true. A lot of folks waited until 2015 to start building on Rust after it stabilized.
I got a chance to teach Rust as part of an undergraduate introduction to programming language theory class way back in 2016-2017, and spoke about it at RustConf 2017. Here's the video for the talk: https://www.youtube.com/watch?v=0PhfaFkzdBA
My key takeaways were basically that students took to it better than I had anticipated, and that Rust proved to be a useful way to illustrate a number of interesting programming language ideas.
Note that because it was a PL class, not a Rust class, that students were not expected to walk away as capable, ready-to-run Rustaceans.