Skip main navigation

What is Scratch?

Scratch is a visual programming language. Read about how you can use Scratch blocks to program sprites to make animations, games, and other programs.

Scratch is a visual programming language created by the Massachusetts Institute of Technology (MIT) Media Lab. Scratch uses blocks with text to indicate what the block can be used for in a program. Many people learn to use Scratch as their first programming language because it doesn’t involve memorising commands, and is particularly suited to creating visual programs and animations.

To complete the activities within this course, you will need access to Scratch 3, either online or installed on your computer.


When you create a Scratch project, you will program one or more objects known as a ‘sprite’. A sprite appears as an image; you can make a sprite look like a cartoon character, a ball, a butterfly or anything else. You can give instructions to a sprite, telling it to change appearance, move, play music, or react to other sprites.

In the animation below, I’ve given the Cat sprite the instructions to say “Hello” for two seconds, when the green flag is clicked.

Screen recording showing the Scratch user interface. The Cat sprite appears on the Stage at the top right. The cursor drags two blocks from the left into the centre, snapping the second onto the first. The green flag is clicked to run the instructions on the blocks. A call out reading "Hello" then appears on the Stage next to the Cat sprite for two seconds.

Programming using blocks

You can program a sprite by dragging and dropping the blocks from the Blocks menu on the left onto the Code area in the centre. If you have multiple sprites you will need to select the one that you want to give instructions to by clicking on it in the Sprite list on the bottom-right of the screen.

An annotated screenshot of the Scratch editor. The Blocks menu is on the left-hand side. To the right of the block categories are the blocks that are in the selected category. To the right of these blocks is the code area. The right side of the screen is split into two halves horizontally. The top half is the Stage, and the bottom half is the Sprite list.

To drag and drop a block using a touch screen device:

  1. Press and hold your finger on a block in the Blocks menu
  2. While still touching the screen, move your finger to the Code area
  3. Lift your finger off the screen to drop the block on the Code area

To drag and drop using a mouse:

  1. Click on a block in the Blocks menu
  2. Continue to hold down the button you have used to click on the block, and move your cursor to the Code area
  3. Release your button to drop the block on the Code area

As you move the blocks closer to each other, a grey coloured shadow of the block you are dragging will appear in the correct position if the blocks will snap together.

Block shapes

There are six different block shapes, which help to identify how blocks snap together:

Hat block

Black shaded version of a hat block.

Starts each sequence of instructions. It has a rounded top and a bump at the bottom to snap into other blocks below itself.

Stack block

Black shaded version of a stack block.

Performs the main instructions. It has a notch at the top and a bump at the bottom to snap into other blocks above and below itself.

Boolean block

Black shaded version of a boolean block.

These contain statements which can be either true or false. They fit inside other blocks, so that those blocks can behave differently depending on if the statement is true or false.

Reporter block

Black shaded version of a reporter block.

These have rounded edges on both side and fit within other blocks to provide a value such as numbers or text. For example, you can use a block to get the position of a sprite so that you can use that value in other blocks.

C block

Black shaded version of a c block.

These are also known as wrap blocks. You can use these blocks to control if and when to run the blocks that you have placed inside them.

Cap block

Black shaded version of a cap block.

You use the cap blocks at the end of a set of instructions. They have a notch at the top to snap into other blocks, and a rounded bottom so that you can’t snap other blocks onto it.

Block categories

To help you identify and select blocks, they are split into nine categories. Each of these categories contains several different blocks that you can snap together.

All blocks within a category are the same colour, and perform similar functions. Here are descriptions of seven of the categories. I will introduce the other two categories later in the course:

Motion blocks

Turn ccw (90) degrees.

Controls the sprite’s movement around the Stage.

Looks blocks

Change size by (10).

Changes what the user can see on the Stage.

Sound blocks

Play sound [dance celebrate v] until done.

Controls the sound that is output.

Events blocks

When flag clicked.

Starts instructions running.

Control blocks

Wait (10) seconds.

Determines when other instructions run. For example, this could be by waiting before moving on to the next block, or running some blocks multiple times.

Sensing block

Touching color [#00ff00] ?

Allows your programs to detect changes in your Scratch project, for example, if a sprite is touching another sprite, or how long a timer has run for.

Operator block

(10) + (10)

Operator blocks are used to manipulate letters, numbers, and symbols, and perform calculations or compare values. For example, you can use them for adding two numbers together, or searching for a letter in a word.


Throughout this course you will be using different blocks and sprites to create programs that will move sprites around the Stage, use different backgrounds, draw different shapes with a pen, and create music. To complete the tasks and activities in this course ensure you have access to Scratch 3, either online or installed on your computer. If you use the installed version of Scratch, you will not be able to share your projects.

This article is from the free online

Introduction to Programming with Scratch

Created by
FutureLearn - Learning For Life

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education