In this world of technology, everyone is aspiring to learn programming for kids at least to a basic level. Technology everywhere has augmented the need to learn to program. We see everyone learning programming basics in some way or the other. Learning computer programming ensures that students have access to a creative, fast-paced world that relies on machines. This also brings in that today’s child should be well-versed in the programming basics. Learning to code teaches abstract thinking and problem-solving.
Scratch is one such language that enables a child to learn programming step by step. It is block-based programming where the child drags the blocks and assembles them to create a set of instructions to perform. It is a coding language with a simple visual interface that allows young minds to create games, stories, and animations while learning to program.
Scratch is not just fun but incorporates most of the programming concepts. While creating fun projects a child is actually learning that a computer program is a step-by-step process that tells the computer what to do when to do and how to do it. It’s fascinating to see how the fundamentals of programming are incorporated. It’s only clear and careful thinking required to write a program from scratch. Let’s take a look at how the basic concepts are learned through scratch – a step-by-step guide to learn programming.
In order to create a program a child is involuntarily thinking of steps to be taken. He or She thinks systematically about the order of these steps. The child actually breaks down the whole process and creates small-small steps to perform the task at hand. Bringing in the concept of creating an algorithm. Say for example- If a right arrow key is pressed what all needs to be done? Our students are doing this so many times one such example is the Lion Game where the Lion moves as per the key pressed and eats the animals.
This means repeating a process. In programming it refers to a sequence of instructions that are repeated until a specific end result is achieved. While and for loops are ways to implement iterations when we are coding. The process can be repeated all the time or for a set number of times.
Scratch brings in this concept too. It uses a forever and repeat block to repeat a series of instructions. The name of the block is easy to relate to, so the child comfortably understands the use of these blocks. It also allows the child to effortlessly decide which block to use and when. The example here shows that when the sprite is clicked move-10 steps and turn- 15 degrees blocks would be repeated 10 times as these blocks are inside the repeat block which has the value 10.
When writing a program, a programmer would many times come across situations – when executing a set of instructions depend on a particular condition. At such times the programmer might even have more than one choice. We make use of the – if statement at such times. If allows us to analyze the condition and accordingly run a particular block of code. Scratch has also incorporated if and if-else blocks to check a condition. The use of “if” is clearly seen in Project Archnoid developed by one of the students of SkoolofCode.
Variables play a very vital role in any programming project. They are used to store values and support various data types. We can either change these values as per the need of the program or use it as it is. Scratch includes the concept of variables and allows both global and specific variables. Scratch variables can hold both numbers and string types. The use of a variable is so evident in the Flappy Bird The project increases the score as the bird goes forward.
It is an abstract data type that represents a finite number of items in an ordered or unordered structure. A list can be referred to as a type of tool that can be used to store multiple pieces of information in one place. It is used for a number of things like storing, deleting, or adding items. List in Scratch is a very important component
In Scratch, the list block allows storing or accessing numbers or strings. This kind of data structure can be considered for dynamic arrays. A fantastic example of the usage of a list can be seen in the car race game shown here.
User Interface Design
Scratch has the capability of designing an interactive user interface. For example – using clickable sprites to create buttons.
When creating a program, we want to read different actions performed by the user say- for example Key press, mouse click, mouse move etc. We call these as Events. The programmer reads / catches these events so that he can perform different actions based on the event that occurred. This is done through event handler, which is a callback routine that operates asynchronously once an event occurs. The event handler tells the action that is followed by the event, and the programmer writes the code for this action to take place. The game Hungry Shark uses event handling to move the shark where the mouse is clicked.
Threads / Parallel execution
A thread is a small set of instructions designed to be scheduled and executed by the CPU independently of the parent process. Parallel execution is another important concept in programming which is launching two stacks at the same time resulting in the creation of two independent threads. It states that a process is decomposed into a smaller piece of code and would run parallelly to provide a faster solution. Thus, it facilitates solving a process using the same set of resources in less time.
A beautiful example of parallel programming in Scratch can be seen in a Treasure Hunt game.
Boolean data type is very often used in programming languages to control programming structures that allow us to implement “choice” into our algorithm. And, Or, or Not are examples of Boolean logic.
Coordination and Synchronization
The need for coordination and synchronization arises as different processes are using the same resource and at times the need occurs at the same time. Scratch includes this feature -using Broadcast.
Broadcast with When I receive allows coordinating actions of multiple sprites. Broadcast and wait, allows synchronization. Sprite 1 checks for the condition and gives a broadcast message. Sprite 2 or more would receive the message and perform a set of instructions. One such example is seen in Cookie World.
When programming we often need inputs from the user. Various programming languages have different ways of incorporating them. Scratch uses the ask and the wait block that prompts the user to enter some input. The answer block stores the keyboard input. Using these two blocks together we can take the user’s choice. One such example is the Math game of learning mathematics where the user enters the answer to the question asked. Later it is checked if it is correct.
Wherever we see a recursive solution that has repeated calls for same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of subproblems, so that we do not have to re-compute them when needed later. Scratch exercises dynamic interaction with blocks like mouse_X, mouse_y and loudness.
The above discussion presents that while Scratch is easy to code language where young minds can learn coding. Scratch could look very basic but at the same time it has all capabilities of any programming language. One can develop programs, games, animation etc. using Scratch. In whole it’s a complete programming language. SkoolOfCode provides its students step by step approach to learn the concepts well. We take tiny steps so that the young mind is not overworked with too much in a go. So, why wait and Book a FREE trial class today.
Let’s do it– Create a maze game to collect candies before we lose out on time or life. It should have an ogre who when touches you, you lose a life.
By: Ms. Divya Dalal, an educator working with SkoolofCode taking Scratch and Python classes. She is an MCA with, a Master’s in Technology in Software Engineering.