If you have the sense from whiteboard discussions that the candidate understands computer science (like gets recursion) but you want to make sure they can code, why not choose a subset of a problem that you (your company) needs to solve?
Even if there were papers on it, I think there are too many confounding factors to elicit anything useful from them. Personally though, unit testing and test first development help me focus on a small problem and solving that, while ignoring the rest of the system. It's really easy to get pulled into the big picture. I also found my code to be more modular and decoupled.