After 3 years of specialized IT teaching, Scratch has become a familiar friend of mine. It is a perfect tool for students to develop computational thinking, through drawing on fundamental computer science concepts, designing systems and problem solving (Wing, 2006). While Scratch does not necessarily subscribe to a specific coding language, it does engage with several core concepts that transfer across most coding languages, such as sequencing, parallelism, loops, conditionals, variables, etc.
Scratch is a free online programming platform that enables students to create their own projects to share within an online community. It allows users to connect drag-and-drop block codes to create a code sequence, to ultimately create animations, stories, mono/multiplayer games, etc. Users can freely place, reorder and delete different block commands, encouraging students to develop computational thinking through trial-and-error efforts.
The creative capacity of Scratch is endless. Users can customize their projects with a wide array of pre-made sprites (characters) and backdrops (backgrounds), or alternatively import their own preferences. All projects start as a blank canvas. Users may also alternatively create “spinoffs” of other users’ creations. Furthermore, Scratch offers several free add-ons for students to express their creativity through multiple means. Below is an example of a project I created for a Stage 3 lesson on parallelism, whilst using the music add-on:
However, students’ ability to creatively utilize Scratch is largely dependent on their ability to decompose their ideas, recognize and recognize patterns, and abstract necessary concepts in order to develop their code (Barr & Stevenson, 2011; Zhang & Nouri, 2019). It is therefore necessary to conduct a certain degree of direct teaching (which does not focus on creative output, but instead consolidates key concepts) in order to first build up students’ computational thinking. Many teachers find this difficult to implement due to the technicality of coding, and the lack of systematic lesson plans (Nienke van & Niejeuring, 2017). Several companies have attempted to resolve this gap, such as in-school programs such as ScopeIT Education, or afterschool coding classes.
However, it does not take a specialist teacher to implement this. Below are examples of how I have consolidated computational thinking skills in my 3 years of specialty teaching, which can be easily implemented by generalist teachers.
Firstly, simple concepts can be isolated and introduced through simple projects that focus on a single computational concept. For instance, in my stage 1 classes, I created a simple task to introduce conditionals, where students need to use if/then statements to animate a sprite as the backdrop changed colours. Though creative output is limited, students consolidate their knowledge of key concepts and further get to explore coding blocks.

When basic computational thinking concepts have been consolidated, more general projects can be introduced, training students to apply key concepts in different contexts. The following is a project I introduced to stage 2 students, to combine concepts of conditionals, variables, loops and parallelism. It is from such experiences that students develop their computational skills of decomposing, analyzing and abstracting, in order to use coding concepts creatively in their own projects (Zhang & Nouri, 2019).

References:
Barr, V., & Stephenson, C. (2011). Bringing computational thinking to K-12: what is Involved and what is the role of the computer science education community? ACM Inroads, 2(1), 48-54.
Wing, J. (2006). Computational thinking and thinking about computing. Philosophical Transactions Of The Royal Society, 1(336), 3717-3725.
van Es, N., & Jeuring, J. (2017). Designing and comparing two Scratch-based teaching approaches for students aged 10-12 years. In Koli Calling ’17: Proceedings of the 17th Koli Calling International Conference on Computing Education Research (pp. 178-182). ACM Digital Library.
Zhang, L. & Nouri, J. (2019). Assessing K-9 Teachers’ Computational Thinking Skills through a Computational Thinking Test. Handbook of Research on Integrating Computer Science and Computational Thinking in K-12 Education. IGI Global. Doi: 10.4018/978-1-7998-1479-5
Hi Hayley,
I really loved how well you explicitly demonstrated different concepts through Scratch. Your level of familiarity with the programs really made your explanations clearer and nicely mirrored the fact that teachers need that familiarity with the software in order to teach it effectively! I also liked your acknowledgement that while creativity is limited while they learn the concepts, once they’ve mastered them they are able to explore more creatively.
LikeLike
Hi Hayley!
Great post, I like how you outlined that direct teaching is necessary in order for students to reach a level of competence in order to be creative as I feel this is a significant point that does not get enough attention in the literature (or at least what I have read).
You stated in the opening of his post that you have 3 years of specialised IT teaching, do you have any other useful tools other than Scratch that you would recommend for the teaching of computational thinking?
Josh
LikeLike
Hi, Hayley,
FINALLY, I got the idea – how to teach computational thinking or how can I use Scratch in my Chinese class. For example, use if/then statement, that is really helpful when students practice if/then in Chinese using Scratch as visualization will help them to remember and consolidate the sentence structure.
It’s a pity I did not know you when we had face to face classes. Anyway we are here to meet:)
Chang’e
LikeLike