On assigning programming tasks perform in class, enabling students to ask fundamental questions that help them understand the abstractions: https://computinged.wordpress.com/2019/02/04/inverse-live-coding-a-practice-for-teaching-web-development/