And if you like those, any of the Zachtronics series of games are perfect. Spacechem is a personal favorite (machine layout programming), but there's also TIS-100 (modular system programming), SHENZEN IO (modular digital logic programming), and Opus Magnum (machine layout programming). The last two are actually upgrades of older games they made, KOHCTPYKTOP and The Codex of Alchemical Engineering. I'm hoping that Ruckingenur II gets an upgrade eventually (debugging! in a video game!).