An Elevator Simulator
One of my favorite small projects is the infamous "Elevator Problem" from the Advanced Programming with Python course. As anyone who has attempted this project can attest, elevators seem like they ought to be "simple", but they are actually a lot harder than they look!
In that project, I never provided any detailed information about elevator hardware. After all, who has an elevator to hook up to their laptop? Thus, much of the challenge involves problem abstraction. What can you actually code and test without having elevator on hand?
Recently, I've been thinking it might be interesting to provide some kind simulated elevator hardware to play with. Thus, I've just created Lifty. It's a simple standalone program that gives you an elevator in the terminal.
If you've previously worked the elevator problem with me, an extension to that project might be to make your code work with the simulator. Can it be programmed in some kind of layered way that reuses your earlier work? Or do you have to rewrite everything?
If you're new to the elevator problem, I'm now offering it as a two-day Rust programming course. If you're new to Rust or simply Rust-curious, this might be a good way to jump into the pool. The simulator itself is also written in Rust so it might serve as an interesting coding reference if you're trying to learn. Just as a reminder, if you previously worked the elevator problem with me in some other course (Advanced Programming or the Elevated course from 2023), you can join me on the Rust elevator course at no charge.
Space Available in SICP, June 2-6
Unrelated to elevators, I wanted to quickly mention that space is available in the upcoming SICP course, June 2-6. Is SICP relevant to modern day programming practice? I have no idea. However, as long as problem solving remains a problem, I think SICP will remain useful.
Regards,
Dave