A SAT-based model checker has several real-world elements to it. I'm sure you can refactor it into appropriate lessons.