Skip to main content

Coding, Design and Stories(CoDeS)

A guide to teaching coding as a literacy skill - Teaching Mindset for Creative Coding

“In most places where new technologies are being used in education today, the technologies are used simply to reinforce outmoded approaches to learning,” writes Mitch Resnick, the LEGO Papert Professor of Learning Research at MIT’s Media Lab, in his book Lifelong Kindergarten. This quote transports me momentarily to ICT-integrated classrooms in Nepal. Students there learn through digital images, animations and videos. Teachers use slides to better explain the concepts to students. If the school and the families of students are tech-friendly, some assignments are also done and submitted digitally.

“Of course, computers are wonderful for transmitting and accessing information, but they are, more broadly, a new medium through which people can create and express. If we use computers simply to deliver information to students, we are missing the revolutionary potential of the new technology for transforming learning and education.” Resnick tells us that these innovations, although they might appear radical, are still doing the same thing as the traditional education system - feeding information to students; limiting their roles in classrooms to that of consumers.

In their quest to use technology as a medium for people to create and express, Resnick and his team developed Scratch, an online platform where “young people can create animations, games, and other interactive projects based on their interests — and share them with others in an online community.” Technically speaking Scratch is a block-based programming language and many schools and organizations use Scratch to teach children to code. Resnick’s vision, however, doesn’t place coding at the center. He believes that through Scratch “students still learn important coding skills and computer science concepts, but they learn them in a more motivating and meaningful context, so they make deeper connections with the ideas.” In Scratch, coding is a tool, a mechanism, that allows students to create meaningful, interactive projects.

At Karkhana Samuha we have adopted the idea of coding as a literacy, developed by Prof. Marina Umaschi Bers, which “supports young learners in developing new ways of thinking, new ways of expressing themselves and new opportunities to make the world a better place and themselves better human beings.” When we start teaching kids to read and write, we don’t want every child to become a professional writer. Text literacy is both an important skill and an intellectual tool. So it is with coding. We do not teach coding for the children to grow into software developers and programmers. We want them to have computational literacy so they can engage with digital artifacts as producers, and not remain mere consumers.

Karkhana Samuha, as a part of the Scratch Education Collaborative, has been working on creating an Equitable Creative Coding Resource(ECCR) to help promote equity on Scratch. Our ECCR integrates coding with Nepal’s local children’s literature. As a part of our design process, we conducted pilot classes in three community and government schools in Lalitpur. This blog is the result of qualitative research we conducted during the pilot. We didn’t start the research with the aim to produce a guide for Scratch educators. It occurred to us during the analysis and writing phase that it can also be a useful resource for Scratch educators, especially those who are new to it. This guide aims to show what the environment of Scratch lessons can look like. It focuses on helping the educator understand the challenges and opportunities that exist in these lessons.

This series of blogs captures our experience of piloting Scratch for 72 students between ages 8 to 11 years old. The 3 teachers who participated in the pilot were new to Scratch and learnt to use it while preparing for the lessons. The names have been anonymized to protect the privacy of the participants. The first blog of the series focuses on teaching mindset that will allow students to practice creative coding.

Give students opportunities to figure things on their own

Students figure things out as they use Scratch. This is how learning often happens in Scratch. While working on projects that interest them, students often stumble upon insights and questions. Having someone familiar with Scratch near them during such instances gives them opportunities to ask questions and learn. Let’s go inside a classroom and see this happen.

In an introductory class to Scratch, a group of students are working with sprites and backdrops related to basketball. They tinker with the change size block for sometime, trying to shrink the sprites they have on the stage. Nisha, one of the students, suddenly exclaims, “Hey! use the minus sign. I got it!” She gets the idea of using negative numbers to shrink the sprites. It occurred to her that “if positive numbers in the block enlarge the sprites, then the minus sign might be needed to shrink.”

Towards the end of this class, Ashu has two blocks on the screen - a move block and a next costume block. His screen shows a playground backdrop, a football sprite, and a boy sprite that can change costume to a kicking posture. On the other side, he has two separate blocks - move 10 steps and the next costume. Not yet learnt to use the blocks to code, he repeatedly clicks on the move block to manually move the boy up to the ball, and then clicks on the next costume block to make the sprite kick it. The teacher, standing beside him, laughs, amused, and says that he has almost gotten it.

While reading this blog we’ll take you on many such brief visits to classrooms.

Debugging is often the most frustrating as well as the most fruitful part of working on Scratch. It’s a technical term for fixing errors in code. When students build their projects, things often don’t go as planned. In trying to identify and correct the bugs, students unintentionally build their understanding.

Rita was able to make her cat fly, and make the buildings appear and disappear in a recurring pattern. When I asked her how it was working, she wasn’t able to explain the logic behind. She had followed the instructions from a tutorial on Scratch website. She didn’t understand what each individual block did but she had developed an intuitive understanding of some concepts. Initially, her cat was moving only a short distance and not the entire length of the screen, which she had wanted. While tinkering she eventually changed the number in the repeat blocks from 10 to 50 and got the desired output. Later, one of her sprites was moving in the opposite direction. While comparing the code with the other sprite she realized that the move block had a negative value. It worked after she changed the number to positive.
When teachers are focused on delivering the lesson’s content, and that we often do, we tend to miss noticing moments of students’ creativity and learning. What could have been an opportunity for reflection and insight often becomes discouraging for the student.
The lesson on animating sprites is taking place. Mr. Ramesh, the teacher, wants the students to engage with the blocks relevant to animation. He is concerned that if they don’t learn those blocks by the end of the lesson, they’ll lag behind in the coming lessons. Samyam, one of the students from grade 6, has modified a sprite and has given it a hands-up pose. Originally the sprite had both its hands down to the waist. Samyam calls the teacher to show his work. Mr. Ramesh, understandably focused on getting the work done, doesn't seem to look carefully at Samyam’s project. Mr. Ramesh seems eager to make Samyam do a task related to animation. After seeing the project he tells Samyam that the legs should also move.
Being a teacher myself and having taught at primary and lower secondary levels, I can empathize with Mr. Ramesh and other teachers who participated in the pilot. His focus on covering the content for the lesson is understandable. Teachers in Nepal’s schools face tremendous time constraints. The large school curriculum leaves little time to accommodate the extra-curricular activities such as Scratch. On top of that, whenever teachers engage in this kind of making based lessons, the school management expects them to organize an exhibition to showcase the things students created. Schools often see such lessons as an opportunity for marketing; riding the wave of trending buzzwords related to STEAM, coding etc. Teachers feel the pressure to drive the class and to engage students with the specific concepts they have decided for a particular lesson. They have to complete the course on time, and produce something “good enough” to be exhibited.

Demonstrations help

Letting students figure things out doesn’t mean not giving them instructions or guidance. Some of the frustrating and time consuming moments for students new to Scratch is when they know what they need but don’t know where to find it. A Karkhana Samuha member reflects on his experience of co-teaching from one such lesson.
In the first project of the debugging lesson, students had to use a green flag block in their code in order to complete it. However, students didn’t know where to find the block. I had to intervene to tell them to find the green flag block by scrolling through the code blocks. At that time I felt that we could have guided them about the block categories so they could know where to find the blocks they required.
If a projector or a large screen is available, teachers can use them to give demonstrations on how to start and where to explore. If not then the teacher can gather a small group of students at a computer and demonstrate. Demonstrations are most useful after the students have struggled with the problem for some time.

Mr. Ramesh has given students a new challenge from the student guide - change the gesture of a sprite by moving her arms. Supreme is having difficulties and Mr. Ramesh goes to his place. Mr. Ramesh takes control of the mouse and uses a few tools in the sprite editor.

“You can do that?” exclaims Supreme, amazed to see his teacher rotate the sprite’s arm. “I thought it’s only for clicking.” Supreme adds.

Demonstrations are not limited to Scratch projects. Mr. Sudan, another teacher who participated in the pilot, creatively used paper to demonstrate costume related concepts to his students.
The electricity connection is disrupted during the debugging activity at the start of the class. The lesson is on modifying sprites. To help students understand the grouping and ungrouping concept while working with sprites, Mr. Sudan drew a paper house and split it in two halves. He showed the concept of grouping by joining the two pieces and moving them together. Then he moved the pieces separately while showing the concept of the ungrouping.
Demonstrations, however, can be ineffective if the teacher isn’t clear about the concept they are demonstrating. It’s always best to prepare for demonstrations beforehand as unexpected problems can arise. One such incident happened in Mr. Ramesh’s class.
It’s the middle phase of the lesson and students are engaged in working on their projects. The teacher interrupts and demonstrates, on the projector screen, the process to create a simple dance animation. He shows how to place the move block inside the repeat block. Having run the script, he struggles to move the sprite back to its original position and asks the observer for help. He soon struggles again to use the switch costume block to make the dancer sprite switch between two moves. The demo isn't effective as Mr. Ramesh isn't clear about the process.

Nudge don’t solve

Students often need a little support with their thinking. With the required support available, and adequate time, they can often figure things out on their own. This support can come in the form of a question, a hint, or an idea.

The lesson on animating sprites has just begun. While the rest of the class is engaged in their own work, Samyam asks Mr. Ramesh about the use of the glide block. Samyam had clicked on the block but nothing had happened. The teacher takes a look at Samyam’s screen and tells him to drag his sprite anywhere on the stage and then to click on the glide block again.

“Oh… it moves upwards!” exclaimed Samyam.

“By questioning in this manner we build understanding,” says Mr. Ramesh. They then proceed to make the sprite move to a place Samyam has intended.

Often, a nudge in the right direction is enough. There are numerous possibilities to explore at any given moment in Scratch, and this lack of clarity about where to look often seems to overwhelm the students. It is a great help to them if the teacher can point them in the right direction. One of the Karkhana Samuha members reflects on scaffolding the learning for a student in Mr. Ramesh’s class.

Dibesh wanted to make a girl sprite and a dog sprite appear at the other side of the road when the backdrops change. In his current version, the dog moved to the position just before the backdrop changed, and then the girl moved. He wanted them to move together, and also wanted the girl sprite to be positioned a bit up to give an impression that she was stepping on the pavement. I asked Dibesh to play with the x and y coordinates in the go to block. Minutes later he had figured things out but there was a small detail he was struggling with. The girl sprite still moved a bit later than the dog. I then asked him to compare the codes of both sprites. He had difficulty figuring it out, and said that both scripts looked the same to him. I then asked him to count the number of blocks in those scripts. He laughed as he noticed the problem.

“1 second!” he said, referring to the wait block that was there in the girl’s script but not in the dog’s. He removed it and the project worked as he had wanted. He then said that the project seemed a bit quick and asked if he should make a similar adjustment in the backdrop too. I nodded and he seemed excited to continue his work. I saw later that he had also fixed the coordinates of the girl sprite by playing with the go to block.

Scaffolding needs time, patience and a certain level of understanding from the teacher. It’s difficult if the teacher can spare only a little time for each student. The core idea behind scaffolding is that engaging and struggling with a problem helps students build their understanding. Merely getting the project to work won’t help them learn; especially if the solution is given to them by the teacher. But it’s easy to get too involved with the students’ problems and give them quick solutions.
Rojina wants to create a project with a bear sprite. The teacher guides her to do so using glide blocks. He asks her if she knows how to slow down the movement. He proceeds to show her the blocks for it, and fills in the numbers needed to make the project work as intended. He then asks her if she got it. Rojita nods.
It’s usually an uncomfortable moment for the teacher to know the solution and see the student not being able to figure out the obvious. In such situations, teachers in the pilot often solve problems for the students; especially towards the beginning of the course. While doing so, they often explained what they were doing. However, despite the detailed explanation and demonstrating the process, students had difficulty in grasping the concepts.
In one instance, a student was working on a project that had a well constructed if condition connected to glide blocks. Upon being asked about the code she had written, she said that the teacher had made it for her and she doesn’t know how it works. Another student, who is working with a llama sprite, watches the sprite jump and sit as she runs her project. She finds it funny but wants to change it. She doesn't know why it’s happening because “sir did it”.
Scaffolding can be challenging for teachers who aren’t well versed with Scratch. Effective scaffolding requires a teacher to understand the problem first, and then find a way to nudge the student without revealing the solution. It’s much easier to work on the problem, solve it, and then explain the solution to the students.
Ms. Romi asks a group of girls to debug a project to control a beetle sprite using arrow keys. The two girls do a series of hit-and-trial, switching blocks and immediately checking the output. They call Ms. Romi and show their work. They have fixed the movement in 3 directions by now. Ms. Romi comes and tries to correct the one last block. Perhaps she assumed that the girls weren’t able to debug the last one. She turns the laptop towards her and makes changes. She thinks out loud but doesn't interact with the students.
Scaffolding can also be challenging for teachers who are familiar with the concepts in Scratch. It might take them some time to identify the problem and they might have to try things for themselves before they are able to nudge the students. In such situations, it’s again tempting for teachers to solve the problem first, and then explain the solution to the students.
While helping students troubleshoot, Mr. Ramesh himself is figuring things out often. Thus, it takes time and he isn't able to scaffold properly. He seems to find giving direct solutions and solving problems more convenient. He also seems to enjoy working on projects with students, debugging their problems. It’s common to see him and students laugh together at the speech text made by students, or the sprites drawn by them, and other things that go wrong sometimes. But he often ends up solving the problems for them.
Having a good understanding of Scratch helps teachers scaffold effectively. It not only helps the teacher identify the problems and possibilities in a student’s work, but also allows the teacher to come up with appropriate hints and questions. Here’s my reflection from one of the initial pilot lessons.
Irfan was clueless about his project initially. In one instance I noticed him working with a griffin sprite. Next time I visited him he was working with a butterfly. He wanted to make the griffin fly but it wasn’t happening so he tried working with a different sprite. He didn’t seem to recall the function of the next costume block. I asked him to play with the block to see if he could get the wings to flutter. This led to a series of iterations where he tried to get an optimum flutter speed for the wings. He tinkered with the “wait 1 sec” block and felt that the speed was too slow. When he removed the block he found that the fluttering was too rapid. He eventually shared, disappointed, that he can’t get the desired speed because he can’t enter values below 1. He had assumed that he could only enter whole numbers and was surprised when I told him that it’s possible to insert decimal numbers too.
It’s recommended that teachers new to Scratch spend time creating projects they enjoy. It helps them go through the same experiences of excitement, frustration, confusion and struggle that their students go through. It’s one of the most effective ways to learn Scratch. As teachers gain knowledge and experience in Scratch, they get better at scaffolding learning experiences for their students.

Prompts as tools for controlled exposure

Scratch, despite its carefully designed low floors, has a challenging learning curve for children; especially those who face a language barrier in the platform. It takes time for such students to navigate the possibilities. Allowing students to engage with Scratch in a freeplay model eventually leads to a learning gap between the students. Some, with aptitude for and interest in coding, who are better at exploring unknown territories, will excel. Their peers who need time to grasp the concepts and build their understanding, who don’t have prior exposure to coding or making, might fall behind.

On the other hand, engaging all students with the exact same activity in order to move them forward together, something that’s been the hallmark of the conventional schooling in Nepal, will lead to students being disengaged. The common activity simply does not cater to the diverse interests of the students.

To strike a balance, we recommend the approach of controlled exposure. In this approach, the teacher takes students on a planned journey where each lesson provides students with a wide enough but manageable boundary to explore within. There the students can explore freely as per their interests. Carefully designed prompts make sure students engage with the learning goals for the lesson, but they also provide students with the agency to work on the projects that they are passionate about.

A good prompt gives a healthy boundary to the students - that’s small enough for students to explore the things within without getting overwhelmed, but that’s also wide enough for them to work on projects of their choice.

At the start of the lesson on modifying sprites, Mr. Ramesh asks his students to try and modify the cat sprite. He asks the students if they can make the sprite, standing on two feet originally, stand on four legs. Some students ask him if they can do the similar activity with any other sprite, such as a dog or a bear. Mr. Ramesh tells them to work on any animal sprite they want, and asks them if they can make the dog or the bear stand on 2 feet.

The example given above is a good prompt because it has the right balance of specificity and flexibility. The task is a specific one - try to edit a sprite and change its posture. But the students aren’t restricted to work on the cat sprite, or to make a two-legged sprite stand on four legs.

We have observed that asking students to build a specific kind of project can be limiting for some students. It includes activities such as asking students to make a particular sprite dance, or to recreate the popular snake game. Teachers, particularly those new to Scratch, might be tempted to give such prompts because narrow prompts make it easy to engage students with specific blocks, concepts and algorithms. It’s also easier to troubleshoot their problems because they’ll be similar. Students working on similar projects are likely to encounter similar problems.

A prompt that is too narrow will get students to disengage. This can happen when the teacher picks the prompt for them based on his or her interest, or if the prompt focuses on getting students to create something very specific. The latter case happens when there is too much emphasis on getting students to grasp the lesson’s content.

During a lesson on sensing things, Mr. Ramesh asks all the students to work on the same project. Minutes later, he asks some students if they have understood the concepts. The students reply with a no. Most students don't seem engaged in the activity he has given them. Mr. Ramesh has asked everyone to make the same project, where one sprite moves to a random position when touched by another. One girl quietly does her own work - modifying a butterfly sprite. A boy in the other row creates random effects with his sprite and tells his peers that it’s some kind of teleportation technique from an anime he likes.

Seeing their disengagement, Mr. Ramesh decides to give students more flexibility. He asks them to work on something different if they aren’t enjoying the prompt he gave them. About half of the students switch to designing their own obstacles and sprites for other games they prefer, as well as a storyline. Among the other half, some have drawn mazes and walls around the stage. A boy seated at the back of the class has drawn a maze for the snake game. He has placed an apple in the maze. He adjusts the size of the apple and duplicates the sprite to create many apples. A boy sitting next to him is working on a project to launch a rocket.

Being open to learning from students

School teachers in Nepal have long had a reputation, coupled with expectations, for being experts in the subjects they teach. The situation changes when they cross over to the realm of Scratch. It’s common for teachers to encounter something new, unfamiliar during Scratch lessons. Students will sometimes figure things out that the teachers might not have been aware of. Being comfortable in letting students know that even the teachers don’t know everything brings an openness to the class environment. It invites teachers and students to collaborate as peers and takes pressure off the teacher. Teachers often learn, or at least see things differently, as they help students work on their projects.
Mr. Ramesh gives another guided activity to the students, where he makes a sprite follow the horizontal movement of the mouse. He places the mouse x block inside an if block. He asks the students to build the project he just tried. Then he moves around the class to see the students’ work. Ashu has placed both set x and set y blocks inside the same forever loop and it seems to work well. It’s different from how the teacher had done, and a simpler idea. Seeing this the teacher expresses a new realization saying, “so we can place [both blocks] inside the same forever.”

The experience of teaching Scratch can be a mix of joy, frustration, insight, confusion etc. The teacher’s approach primarily determines what the dominant experience will be. Transferring the conventional teaching strategy to Scratch lessons is bound to fail, and might give the teacher as well as students an unpleasant experience. Scratch invites educators to explore, experiment and invent their own teaching styles.

By Sameer Prasai

Sameer is a researcher & learning resource designer at Karkhana Samuha.