A lot could be added to PGM, and Skilling. Here are some things to think about.
PGM makes a fuss about social interaction in the synchronous parts of flipped courses, but what of the asynch parts? In particular, what do students do when they get stuck, when they're by themselves? There's a Discord channel for my courses, and I encourage students to help each other. Other options, like large scale drop-in help services, are possible.
A concern is that students grow too dependent on such help, and don't learn to solve problems themselves. Something to keep in mind.
There's a set of learning effects sometimes grouped under the term "spaced practice." For example, suppose you're practicing three types of exercises, A, B, and C. It will feel better if you practice them in blocks. Do lots of As, get them down. Then lots of Bs, get them down. Then lots of Cs.
However, you'll learn more if you mix them up. ACBABBCCACAB… It will feel worse, though, since you don't develop the illusion of fluency you feel in the blocked condition.
There's also the spacing-over-time research. Better to study topic A for 20 minutes, switch to topic B, then topic C, and so on.
My programming courses give students spaced practice. Students use schemas learned early in the course again and again, in whole-task exercises. Repetition is irregular, with particular schemas repeated in some exercises, but not others. This matches what the research calls for.
However, I wonder how else PGM and Skilling could support spaced practice. Ideas?
The teaching profession has developed nice learning tools over the years. Oliver Caviglioli and pals are collecting chewy learning tool chunks, presenting them in a nice learning science sauce. (OK, that's a strange metaphor.) Things like graphic organizers. Interactive organizers linked to lessons and examples could be powerful. For example, a problem students have in programming courses is understanding how to nest schemas. Graphic organizers could show how schemas nest. Interactive organizers could let students drag-and-drop to nest schemas.
This shouldn't be done for the sake of cool tools. We should identify learning challenges first, then look for ways to mitigate them.