Elevated - April 3, 2023
One of my all-time favorite “small” programming problems is the “Elevator Problem” that’s part of my Advanced Programming with Python course. In short, you’re tasked with the problem of implementing the control logic for a simple elevator. How hard could that be?
Elevators are something that you use all of the time, but maybe never think much about. Elevators are diabolical. Apparently, repeated stair climbing due to a broken elevator even inspired the creation of Rust!
Solving the elevator problem involves a little bit of everything all at once. Domain modeling, design patterns, event-driven programming, testing, simulation, different programming techniques (functional, object-oriented, logic, etc.)–it’s all there is you know where to go looking for it. Moreover, I’ve found that learning how to organize a solution has proven to be rather useful for other complex projects.