There were many instances throughout this unit where my students completed what was asked in an appropriate way but were then prompted to change their code to make it match ONE way of doing things. If we are truly trying to promote creativity, and are honoring different ways to solve problems, then this is not an appropriate approach. My students were initially excited about the different features and then just got really frustrated and wanted to give up.
I’ll offer ways I deal with this frustration. One, I use it as an opportunity to connect with real world programming. Although programming is very creative and we want to encourage expression, sometimes you have to meet some requirements and deal with constraints. Two, I tell students in advance that these particular lessons require reading and following directions very carefully. I let them know when and where they can apply their new skills any way they wish. Three, I might take the opportunity to reinforce the idea of trade-offs from earlier in the year. If we want something to verify work and provide a reward, can it deal with infinite possible solutions? I might even try to sneak in the word, heuristic…… Lastly, I will give students permission to move on without the ‘finish’ reward if I am satisfied with their performance.