Take-home assignments are a small part of the interview process.<p>I use the take-home assignment as prep for the live interview. We have the candidate explain how they chose to structure their solution and why they chose their implementation over alternatives. The conversation is treated as a code review or an explanation to a coworker inheriting the code.<p>If someone can’t really explain how their code works or otherwise appears to be reading it for the first time, we don’t assume they cheated but we also don’t give any positive points. People can fumble under interview pressure and should be given a second chance. They need to demonstrate their skills sufficiently in the rest of the interview, though.
I used to teach a college lab course where students would do a lab project on their own time and then bring it to class to have it checked and graded. I'd always ask a few basic questions about it and it was really obvious who didn't do their own project.<p>I would do something similar. Ask a few questions about how they solved it, why they made a certain decision, etc.