Pair programming meets group testing
The story in this one is that we have students in a pair programming class, some of whom will do the work and some of whom will let their partner do all the work. But if two of the slackers get paired together, we can catch them, because then nobody does the work. So how do we choose partners for the assignments to be sure of catching everyone, with an assumption that only a small fraction of the students are slackers?
Actually, we started out working on a different (but related) puzzle. We've been having a weekly tea with our theory students and faculty, at which we drink tea and also try to solve puzzles. The first one from the Puzzle TOAD is on distinguishing engineers (who always tell the truth) from managers (who will either tell the truth or lie, whichever of the two will confuse you the most) using as as few questions as possible about who is whom. It caught our attention at one of these teas, especially after we had some ideas for solving part 3 and saw that there was no official solution already given. Sadly, someone else with a time machine already got there first, so we had to find something else to work on.
Speaking of time machines, if you like time travel movies and get a chance to see Young Gun In The Time, do. It's a fun South Korean time-travel detective farce. I'd like to rewatch it to get a clearer idea of exactly what happened, but at this point the easiest way to do that seems to be to find a time machine of my own.