Let students write "bad" code to let them apply abstraction to working code.

Even after students have learned repeat I find that they’ll solve problems by copying and pasting code rather than using repeat. I find students are most efficient solving the problem if they get the code working without repeat before I suggest, "could you use repeat to make this code simpler?" My hypothesis is that as students are learning more abstract tools like repeat, it can be helpful to be able to see the working code without the more abstract tool.

Example: "Now that your code works, could you use a repeat to make it simpler?"

See this and related tips as a Tip Sheet: http://csteachingtips.org/tips-for-teaching-scratch

More about this tip