Skip to main content

Challenges for Scratch Learners in Nepali Public Schools

Learning coding through tools like Scratch poses its own set of challenges for students, especially public school students in Nepal. The third section of the article explores different challenges students encountered in our classrooms.

Language barrier

It was anticipated that not being able to understand the text on blocks would pose a challenge for the students, but the challenge exceeded the assumptions. A teacher piloting the Scratch lessons to grade 4 students from a Nepali medium school mentions the challenge of language barrier in his reflection.
I asked students to explore the blocks in the motion section and see what they could figure out. They struggled more than what I had expected. While they were able to make the cat move by clicking the blocks, they struggled to read and understand the labels on the blocks, such as “point in direction”, “glide to x__ y__” etc.
Towards the end of the pilot in this school, we got the students to engage with ScratchJr because they struggled to grasp Scratch. The students shared that they found ScratchJr platform easier and fun. One of them said that they couldn’t understand the labels on the blocks in Scratch, but ScratchJr has icons and they were much more intuitive for him to understand. He added that he was able to use all the blocks in ScratchJr, which he couldn't do in Scratch.

Access problems due to unfamiliarity with tech

Unfamiliarity with tech emerged as a hidden barrier in learning Scratch during the pilot. The basic actions related to tech that we often take for granted proved to be challenges for many students from public schools; especially those who didn’t have access to computers at home. The excerpts below highlight the situation.
The class was getting ready for the lesson. A few students were having problems related to the internet and the monitors, but most had opened the Scratch website. Some had even logged in to their class accounts. Some, however, were unable to login due to incorrect passwords. The requirement for captcha further slows things down. Most students didn’t know what a captcha was and what they needed to do. Some knew what they needed to do but they made mistakes with the image selection. It took some time for the teacher to reset the password for about 7 students and help them get past the captcha.
During another lesson, the teacher asked the students to repeat his actions through the projector screen. He showed them the process of loading a browser and opening the Scratch website. The website loads and he asks them to click on the Create button to go to the coding platform. Some students weren’t able to get past opening the browser. A student didn’t know how to open the browser and simply clicked once on its desktop icon. The teacher had asked them to click once on the taskbar icon, which wasn’t there on her computer.

The coordinates and direction

Some of the most commonly used but difficult to grasp concepts for students were coordinates and direction of sprites. Students frequently need to engage with them to create their stories. But many students seemed to struggle to understand these concepts till the end of the course. One instance with Mijas, who showed a promising aptitude for coding, is shown below.

Mijas is working on an interactive story of a grasshopper. The sprite moves downwards as he runs the script, which has a move block inside the repeat block. He had intended the sprite to move towards the right. The direction of the sprite isn’t the default 90 and it has caused the sprite to move downward. Mijas is unaware of it. He changes blocks - removes set x block and brings the point in direction block. He then gets the sprite to point upwards by putting dir as -11. This makes the grasshopper turn in a clockwise direction. He then rotates the costume to make it look horizontal. He lets out a frustrated sound.

“My grasshopper disappeared!” Mijas says to Saurabh after some time. The x value is -277 and the sprite seems to have gone outside the stage. After some unsuccessful attempts to drag it back inside the stage, Mijas deletes the sprite and gets a new grasshopper from the sprite library. He proceeds to code it with the same blocks he had used earlier.

Unclear between sprites and backdrops

Working with drawing and editing sprites and backdrops are some of the most enjoyable activities for many students on Scratch. But these were also quite confusing for many. Many students draw sprites but on a backdrop. Some students drew the elements of a backdrop on a sprite’s costume.

Most of the students are struggling with drawing the backdrop. Mr. Ramesh had asked them to draw the maze of the game too and this is something they aren’t familiar with much. Mijas, sitting in the front row, draws backdrops in cat sprite itself. He doesn’t seem to realize the difference until pointed out to him.

Saurabh on the next computer duplicates ants but in the same costume 2 times. On the stage it looks like there are 3 ant sprites but actually it’s just 1 sprite.

Understanding the sequential nature of the program

The blocks in a script are always executed in a linear sequence from top to bottom. Students new to Scratch struggle to grasp this idea. This concept is something that seems intuitive to teachers and usually gets overlooked during the lessons, with an assumption that students know this already. During the pilot, many students had confusion that was born out of their inability to understand the sequential nature of scripts.

Connecting blocks in the script with the output

Students often faced difficulty in seeing the connection between the script being executed and the output. They knew the function of some of the blocks used in the script but had difficulty in picturing how the blocks in the scripts worked together to create the output. In the example below, a grade 6 student knew the blocks that he needed but struggled to visualize how they would work alongside others.

Irfan is able to make a butterfly sprite flutter at an optimum speed. He tries to add movement to it and has found it challenging. He adds move blocks and after some iterations gets it working. But everytime he runs the program, the butterfly goes beyond the stage. To re-run the program he has to drag the butterfly back to the original position. I ask him if he can make it happen automatically. He figures out that he needs to use the “set x to” block. But places it inside a forever block. He struggled to figure it out despite hints and leading questions.

In the example below, although Chhabi was able to modify a working script from another project to animate a sprite of his choice, he wasn’t able to understand how the script worked. He even seemed unclear about the functions of the individual blocks.

Chhabi had adapted the walking bear project into a project with a dragon sprite. When I talked to him I got to know that he hadn’t understood the functions of the blocks. Chhabi told me that the size block was making the sprite move from one edge of the stage to another. He also thought that the go to block was responsible for making the sprite walk. I asked him to remove the go to block and see what happens. To my surprise, although the change in the output was clearly visible, Chhabi couldn’t point out that the starting position of the sprite was different when the go to blocks was removed.

Unaware about necessary blocks

There were often situations where the students knew what they needed to do but either didn’t know the block to execute that action. There were plenty of such situations. While building his final project, one of the students wanted a sprite to get larger after touching a potion sprite. He had this idea but didn’t execute it because he didn’t know that there were blocks to make it happen. He only knew to change size using the numbers above the sprite section.

One of the struggles was finding a block in a particular category when required.

Today's class at one of the schools, focuses on debugging codes. The first debugging task involves placing a 'Green Flag' at the beginning of the code blocks. This action enables the code to run once the green flag is pressed. Despite its simplicity, no one knows where to find the 'Green Flag'. I realized then that we could have guided the students about the different categories of the blocks, making it easier for them to find the blocks they needed.

Unable to see the work of individual blocks

Students learn about the blocks by making them run, observing the output, and connecting the blocks or the changes they made to the output. Some blocks can run rapidly in a script if there is no time pause in them as in wait, say or glide blocks. Such stacks are executed rapidly and students can’t see the changes. In some cases the work of the block isn’t always clearly visible, as in the case of blocks or operators unless they are connected to a visible output. Students new to scratch struggle to connect blocks to such output, and this becomes a barrier in their learning process. A good scaffolding in such situations is crucial for them to overcome this barrier.

Not getting enough attention from the teacher

The classes are designed to be student driven and as a result most students won’t get enough attention from the teacher.

Mr. Ramesh comes to the back of the class once, sees them doing their work but doesn't say anything. He glances from the distance of about three feet and immediately turns around. He doesn’t come to this part of the class later or interact with the girls. The girls show each other how to change the colors of the dresses. Mr. Ramesh moves around to the other desks but doesn't seem to want to come here.

The class time is almost over. I ask Mijas why he created the rocket project instead of the snake game. “I didn’t get what the teacher said so I made this,” he says.

By Sameer Prasai

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