Coding with ScratchJr

I recently discovered the ScratchJr App (free), designed for 5-7 year olds to introduce a simple programming language, and I installed it on an Android tablet we've got.  It doesn't require the child to be able to read well as it uses a graphical approach, and it turns out that he found it really quite straightforward to use even though he's not yet 5.  He's already got the basic skills of dragging and dropping objects on the tablet screen, and an understanding of the need to have step-by-step instructions from screen-free coding activities, but I was still pretty surprised by how intuitive he found it. 

He enjoyed tinkering with it, but I thought it'd be helpful to try and get him to think a little more systematically about how he could use it to do different things, and to introduce the idea of loops (a set of instructions that is repeated in order a number of times).  I started off printing off some copies of the programming blocks and setting them out for him to replicate on screen.  

Copying a sequence of programming blocks

We started with some very simple sequences, and I showed him how he can adjust the number of times each instruction is carried out by modifying the number within the programming block, rather than dragging multiple copies into the programming area.  He got the hang of this very quickly and adjusted the instructions to make the cat walk in a small square to a big square, and to a rectangle, and also so that the cat didn't end up at the same point as it started.  He discovered the different backgrounds that you can use, and enjoyed changing the character that he was moving.  

I introduced the idea of loops and made him think a little about perspective (things looking smaller when they are further away) by helping him to create a program using a single loop.  The instructions for this program are as follows:
- Change the backdrop to an underwater scene (click on the little picture at the top)
- Change the character by clicking on the cat, then on the little red cross to remove it.  Choose a new one, a fish, from the choices offered when you click the + on the left of the screen.
- Choose the programming blocks that move the fish one place to the right, and make it one increment smaller, with a start instruction (I used clicking on the green flag) and a stop at the end.
- If you repeat the two steps of moving the fish and making it smaller, using a loop, and then have the loop repeat 8 times, this moves the fish most of the way across the screen and makes it an increment smaller each time, appearing like it's swimming away from you.  The alternative is to have 8 copies of each block, with a repeated sequence, and we did it both ways to illustrate how the loop makes it quicker and easier to program.
I've put a screenshot below in case you want to replicate it.  He had lots of fun by himself changing it, adding to it and adding additional characters - we've had astronauts walking on the moon and cars driving into the distance too!

Simple loop which moves the fish right and makes it smaller

I'm conscious that lockdown has meant more screen time in our house, but ScratchJr seems a fun way to introduce some more elements of coding/programming than we've done in a screen-free way previously and he certainly finds it engaging.