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.
Demonstrations help
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.
Nudge don’t solve
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.
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.
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.
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
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.