From the students perspective all they need to do is:
1. Write a "project proposal" where they define a project, define goals, schedule a checkin with you to see if that project is large enough (1/20th the grade of the class)
2. Watch lecture videos and go through exercises on their own time.
3. Write code and bring it in to teacher. (18/20th of their grade)
4. Demo their finished project to professor (1/20th their grade)
This does work for later classes. I never had the ability to test this workflow out for earlier (100-level) classes as all of those classes I TA'd for followed the same model you're talking about.
The 200+ level classes that followed the model I'm talking about had ~10% to 30% pass rate which was in line (~2x) with the pass rate of similarly leveled courses from our college's Math and Physics department which was used as a sanity check.
edit: that's not to say you're incorrect that it would be difficult to do at scale, this is just the way I've seen it done at moderate scale (20 to 40 students).