Open and Creative Coding

Iain Brodie, Jessica Albert, and Christopher Chan

There are many definitions concerning the concept of creativity in education. Most of these definitions disagree on what constitutes creativity in an educational setting. While educators value creativity in their students, their pedagogies frequently suppress creative behaviours. Creativity and its partners, innovation and entrepreneurship, are soon to become part of the new learning skills on the Ontario report card. How are we as educators going to be able to assess and change our pedagogies in order to teach and ultimately assess creativity in our students? One way to foster these 21st century learning skills is through coding and computational thinking tasks.

If you tell your students exactly what you want, do not be surprised if that is all you get.

In Ontario, the idea of success criteria is shared with students to ensure that students know  explicitly what they are supposed to do to attain a Level 3 (Ontario, 2010). The problem with success criteria is that they too often become the end goals for our students rather than what they really can achieve if given some freedom. If we are to foster creativity, we must appreciate and encourage divergent thinking and ideas rather than expecting everyone to conform to a set of pre-defined criteria of what we deem to be successful.

Creativity is a much misunderstood skill. Some people think being creative means making things look nice by “using lots of colour” – but that is aesthetics. Some people think it is doing something in a way that no-one has done before – it is a tall order for an adult to create something completely novel, let alone a child. Yet others define creativity as something original and of high quality – again with the novelty, and high quality is subjective, relative, and more in the realm of aesthetics. Creativity is not any of these things. It is not a product. It is a thinking process that thrives on opportunity and openness rather than set, fixed goals or criteria, and it is one that our grade 7 & 8 students demonstrate daily through coding with the language Scratch.

Creativity as a High Order Thinking Skill

Psychologist Liane Gabora (2017) gives educators some valuable advice on how to foster creativity in our classrooms. Focus less on reproduction or the following of instructions and more on critical thinking and problem solving (Gabora, 2017). The computational thinking space also offers this notion, as an open space that allows for multiple expressions of what the students know and are able to do. Besides the low floor and high ceiling, the computational thinking space also offers us these wide walls to allow everyone to access and work on problems.

The computational thinking space offers us a wonderful opportunity to allow our students to learn how to be creative. When creating, we are developing and demonstrating our creativity, and it is embedded in the coding learning cycle of use-edit-create, except that at each stage we are really being creative in different ways. At the ‘use’ stage we are creating knowledge and understanding of how the code works. When editing, we are applying our knowledge and understanding to adapt code to meet our needs, and analysing the results to create something that does a task that we wish to be done. At the ‘create’ stage, we are using the different ideas we have learned to put them together in order to make new code to meet a need or to model something that we wish to learn about. This synthesis of ideas is the creation of something new for ourselves and a high order thinking skill that is easy to teach and encourage in our students.

Designing Open Coding Challenges

One way we allow our students to be creative in the computational thinking space is to design open tasks that present a problem of how to incorporate into, or fix, certain features of pre-existing code. By using pre-existing code, we are providing an opportunity for everyone to engage in the tasks at the ‘use’ stage of the coding learning cycle. This low floor allows for everyone to engage with the tasks in order to begin their learning. The different ‘asks’ for each task were designed to allow for multiple levels of thinking and abilities. Students were encouraged to solve any one of these ‘asks’ with the possibility of solving more of them individually or in concert. This allowed for a high ceiling that encouraged every student to think critically about the problem and to design solutions for it.

The Tasks

We encourage you to try out any of the three following tasks yourself – remix them, adapt the given code, and have fun. When you are done, click save then share and we will all be able to see your solutions. For any of the following activities, you may click onto the project page then click on the tree button at the bottom right. This will let you see all of the other remixes that have been done and to learn from them.

Monthly Morning Fruit Choices

This task asks the students to add features to existing code. The students are free to attempt any one or more of the three asks. All three require that they use their prior knowledge of coding, data management, and probability to create the new features.








[Original code by Jessica Albert]

Please help Jessica with her code. She would like it to do some of these things:

The fruit totals only calculate at the end of the program. Is it possible to have them update each time?

The fruit always disappears. Could we have it stay? Could it be in a grid like a pictograph? Would we be able to get rid of the fruit totals then?

There is no output for the experimental probability. It would be nice to have it.

An important feature of the three asks is that they ask for what is desired and do not indicate how it is to be accomplished. Part of teaching students to be creative is giving them opportunities to learn how to think, not what to think.

Rock, Paper, Scissors

This is a debugging task that can be used to help students learn how to analyse existing code to find the bugs that are misbehaving. In it, they will need to use their existing knowledge as well as creating knowledge of “if-then” statements and permutations in order to debug the code. Thinking analytically ultimately helps you to think creatively when you take the pieces you have broken down through analysis and put them back together in a new way.








[Original code by Christopher Chan]

Please help Chris with his code. He would like it to do some of these things:

There is a bug in the code somewhere. It is set to ten repeats, but it seems to do thirteen.

There is a bug in the code somewhere. The player totals and the number of ties do not match the numbers in the list.

It would be nice to have some graphics. Either hands showing a rock, a paper, or scissors or maybe just pics of the objects.

Could the graphics be made to show what is happening?

Creativity is not always demonstrated with a physical or virtual artifact. Here, the creation is in the thinking of the students. The nice thing about having their code in front of you as the teacher is that you can see their thinking in the way they have fixed the existing code. Another thing that we do regularly is to have the students talk through their code to highlight what they have done. This allows us to ask and probe the student’s thinking and to make sure that they understand the ideas they have used.

Take a Chance

This is a very open task. The students are presented with code that animates rolling dice, but little else. Here they will need to use their knowledge of probability to create more code in order to track results as well as learning how to use more than one sprite.









[Original code remixed from Scratch user sunkissedslu]

Please help Iainbro with his code. He would like it to do some of these things:

The dice rolling graphics are great, but there is no output of the results. We need something to keep track of the rolls.

Is there a way to make the results into a line plot somewhere on the screen? It would be cool to show how the middle numbers come up more often than those at either end.

An Invitation

We have found that open coding tasks not only support our students learning to be creative through problem solving, but they also allow for everyone to engage at their own level, and most importantly to think critically. We would like to invite you to remix our codes, use it with your own students, and try to create your own. If you do, please write a comment in the comment box of one of these projects, say hello, and maybe send us a link to your code so we can try remixing yours. Afterall, remixing code is not only a beneficial creativity opportunity for our students, it is great for educators as well.

Iain Brodie is a grade 7/8 teacher in Scarborough, Ontario

Jessica Albert is a grade 8 teacher in London, Ontario

Christopher Chan is a grade 4 teacher in Taipei, Taiwan



Brookhart, S. M. (2013). Assessing Creativity. Retrieved March 24, 2018, from

Miller, A. (2018). Yes, You Can Teach and Assess Creativity! Edutopia, 1–3. Retrieved from

Ontario., & Ontario. (2010). Growing success: Assessment, evaluation and reporting in Ontario’s schools : covering grades 1 to 12. Toronto: Ministry of Education.

Gabora, L. (2017, August). What creativity really is – and why schools need it. Retrieved March 25, 2018, from

Iain Brodie is a grade 7/8 teacher in Scarborough, Ontario

Jessica Albert is a grade 8 teacher in London, Ontario

Christopher Chan is a grade 4 teacher in Taipei, Taiwan