Synthesizing a Progression of Subtasks for Block-Based Visual Programming Tasks