This past semester I tried something new. I was teaching two introductory physics classes, one the first semester course (taken by physics, math, chemistry and engineering students) and the other was the third semester course, taken by physics majors only.
The traditional model is to give one assignment a week, or even every two weeks, with 10-15 problems.
This time I gave a small assignment (3-5 problems) after every class, due the next class.
I called this (but am not claiming to have invented the term) "Just in time" homework. The idea was that it would help/force the students to stay caught up.
I think it worked. A larger than normal percentage of the students completed all or nearly all of the assignments. And on the student evaluations if they mentioned it (JIT Homework) at all, they mentioned it favorably.
Next semester I am teaching an upper-level and a graduate level E&M class. It will be interesting to see if it works there as well.
By the way, there is a trend to reduce the weight given to homework. I used to make it 30% of the final grade. It is down to 15% and may drop to 10%. The reason: the solution to every problem can be found online. Times change. We try to adapt.