Personally, my favorite setup is what one of my math professors does: recommended homework, which can be submitted to get feedback, and which 1/2 of the test questions are pulled from. If you do it all, it's a lot, but you're not required to do any. Predictably, most people do little, but the people who need it / actually care still get the benefit of homework, and the flexibility of a lack of deadlines.