Last week, I stumbled upon SpaceChem, an indie game where you play the role of a reactor engineer sent to various planets to turn harvested raw materials into more useful products.
What’s really great about this game is that you are practically programming the “reactors”. Not only does it dabble upon both digital design (clock timing, implementing state handlers from scratch) and software development (performance tuning, refactoring), missions that require you to connect multiple reactors also make the player learn supply chain management.
I won’t post any videos since it will spoil the joy of making your own solutions to the missions. I suggest you go grab the demo here (available on Windows, Linux, and Mac) and try it out yourself.