Give Yourself the Real Power of Computers             s






Scratch Main Page

Scratch is one of the most exciting languages meant for anyone who wants to learn CS concepts and computational thinking. It is designed and actively supported by MIT USA.

To learn about the activities of the vibrant worldwide Scratch community visit:


The material provided below is ideal for upper elementary and middle school children.



Home Page
Main page for the CS teaching activity at SPARK Institute





Power of Programming
Articles and papers about programming and learning.




Scratch Page
Main page for Scratch programming.




Snap! Page
Main page for Snap! programming





Books on Scratch Programming

Learn CS Concepts with Scratch is a perfect textbook for beginners. Combined with the supplement below, you have all the material you need to run two back-to-back courses for yourself or for your students.

Practice CS Concepts with Scratch is a supplement to the textbook above. It offers extra review questions and practice programs on all the concepts covered in the textbook. This is a free download.

Advanced Scratch Programming is for anyone who has the knowledge of Scratch and basic CS concepts and wants to take up challenging projects.

Pen Art in Scratch Programming is for those who have basic knowledge of Scratch and would like to become Pen Artists or so-called "Turtle Programmers".





Python Page
Main page for Python programming



Logo Page
Main page for Logo programming



Course Material

These courses are specially designed for anyone who is interested in learning CS concepts and computational thinking. Contact me at if you are interested in instructor-led learning. If you are a self-learner or a teacher who wishes to conduct these courses, download all the files below. They are available free of charge with no copyright restriction.

Scratch-courses-learning-objectives.pdf: This file describes the learning objectives and other background information of the level 1 and level 2 courses.

Scratch-Level-1-course-flow.pdf: This document describes the high level curriculum of the Level 1 course. It is presented in the form of how the day-to-day flow might look like while running this course.

Scratch-Level-2-course-flow.pdf: This document describes the high level curriculum of the Level 2 course. It is presented in the form of how the day-to-day flow might look like while running this course. This file contains all the material referenced in the curriculum documents, such as, PowerPoint slides, demo programs, etc.


Additional Exciting Scratch Programs

This is a collection of articles: most of which describe the design of interesting and challenging Scratch programs. Some articles also address advanced topics about how to do something in Scratch.

Library: Here, we list several commonly used controls and procedures, which can be imported by any Scratch program. We have used some of these controls and custom blocks in subsequent projects.

Tic-tac-toe: This program implements the popular two-player game. You play against the computer.

Show string: This short program takes a word (string of alphabets) and simply displays it in a graphical format.

Scramble: This is a two-player game in which Player1 enters a word. The program then scrambles it up, and Player2 needs to rearrange the letters to unscramble the word.

Solo chess: This program implements a popular board game that purports to "train" young minds for the game of chess. It uses a 4x4 chess board and only 10 chess pieces.

What shape is that: This is a silly little program that presents a quiz to preschoolers to recognize simple geometric shapes. One can extend this easily to add more fun shapes to the quiz.

Shopping animation: This program presents an animation of shopping activity. The main screen shows a shop with items on display along with their prices. Customers walk in one after the other to do their shopping.

Missing digit: Leila is a math detective; she can tell you (in "interactive" mode) or her friend Sheila (in "animation" mode) the missing digit in your (or her) number.

Helicopter: This game is used as a project assignment in the book "Learn CS Concepts with Scratch". Read this article to understand how it can be designed.

LCD Counter: This article shows how to design a 4-digit LCD counter similar to the one you see at petrol stations.

Fern plant: To draw this beautiful recursive design, you need "local variables" in your custom block – which Scratch does not allow. This article describes how to overcome this limitation.

Bricks in "Auto" mode: I took my earlier Bricks game and made it "automatic", i.e. now the computer moves the paddle.

Number table: Several programs require the display of numbers in a table format, i.e. in rows and columns. This program allows you to create a square table big enough to display natural numbers (i.e. > 0) up to a max that you specify. For example, if you specify the max as 75, the program will show a table with 9 rows and 9 columns, and display numbers 1 to 75 in this table.

Sieve of Eratosthenes: This program is basically an animation program that shows how the sieve of Eratosthenes works. There is no user interactivity required once the program is started. The animation initially shows a table of numbers 1 to N and then using the technique of Eratosthenes starts dropping numbers until only prime numbers are left in the table.

Scrolling background: Several programs and games require us to be able to scroll the background. There is no straightforward way in Scratch to do this. This program shows one way. You can also control the speed of scrolling.

Script local variables: Scratch (as of Version 3) does not allow you to have local variables for a custom block or a script. In this program, we will see how to overcome this shortcoming through a simple technique called "stack". We will also see how to have a "return value". Once you understand this scheme, you can use it easily for any custom block that requires local variables and/or return values.

Eight queen puzzle: This program implements the famous eight queen puzzle in which you have to arrange eight queens on an empty chessboard such that none of them checks any other. The program has both "manual" and "auto" modes.

Animal rescue puzzle game: The aim of the game is to free all animals from prison (the 4x4 grid). To free these animals from the prison make them exit from right (east) by clicking one at a time. Each clicked animal lines up in a "freedom queue" below the grid.

Sudoku assistant: Load and solve any Sudoku puzzle. Try to solve it yourself or at any time have the computer try to solve it for you. It uses what is called the "brute force" or "exhaustive search" approach.

Hangman: This is a classic 2-player game in which player 1 enters a secret word which player 2 tries to guess by suggesting letters. S/he is allowed 5 bad guesses after which death by hanging is the punishment!

Slider puzzle: This is a game you play with a grid with numbered blocks. One of the cells is empty, so that neighboring blocks can slide to it. The goal of the game is to line up the numbers left-to-right and top-to-bottom. This program implements a 3x3 grid containing numbers 1 thru 8.


Simulation of Bubble Sort: In this program, we use the bubble sort algorithm to sort an array of numbers and create a graphical simulation to demonstrate how it works.


Practice addition using pictures: This is a simple program that allows a preschooler practice adding single digit numbers. It presents 2 numbers in countable picture form and asks how much they add up to.


Digital clock: The digital clock shows hours, minutes and seconds as numbers, and it uses a 24-hour time format. There is an additional indicator for AM/PM. The clock shows a tick-tock animation synchronized with seconds. The user can set the clock time by adding or subtracting minutes.


Connect Four: This is an updated/enhanced version of the same program I wrote for my book "Advanced Scratch Programming". This new version uses clones and is able to detect a winner. Connect Four is a 2-player game which consists of two sets of colored coins and a standing grid of rows and columns. Each player takes one set of coins and then by turn drops coins down any of the vertical columns (we will call them “tubes”).


Base converter: This program allows you to convert numbers from one base to another. We will allow bases 2 (binary), 8 (octal), 10 (decimal), and 16 (hexadecimal). It is a kind of educational tool to further our understanding of these number systems.


Snakes and ladders: This is a popular game in which players traverse a series of numbers 1 thru 100 and work through snakes and ladders along the way. You get to play with the computer!


Snake: This is an old retro game popularized by Nokia when they put it on their first smartphones. Move your Snake around the screen eating apples and avoid edges, blue obstacles and bad cherries.


Chessboard stretch: This is an interesting optical illusion in which a chessboard-like layout appears as if it has been stretched in the center, or it is being viewed from a lens of some sort.











Please contact if you have any questions or comments.


Last modified: 19 January 2022