Introduction to Scratch Programming

Scratch is a programming language based on dragging and dropping different blocks. This means you can explore and start programming without the hassle of fixing typos and syntax errors.

Scratch programming is all done in the web browser, at The Scratch website includes its own tools for creating and modifying graphics, sounds and music — everything you need to create a fun and unique program.

A couple important elements in Scratch that you’ll see in almost every program. The first is your sprite, you’ll see when you first open up Scratch there’s a little Scratch cat on the top right. This is the default sprite for Scratch, you can add more from their library, from uploads, or from the paint program that’s right inside Scratch! All of the code in the center part of you screen is tied to this sprite. You can also add more sprites with their own code.

You’ll also notice a green flag and a stop sign. The stop sign is pretty straightforward; it stops whatever code is running. The green flag, however, only has an effect if you use the event “when green flag is clicked”. You’ll find this event in most Scratch programs.

For our most basic program, the “Hello World” program, we’ll use the green flag event and drag that into the center of the screen. Then we’ll need to go to the Looks category and find one that says “say Hello! for 2 seconds”. Notice that this block has a particular shape that we can attach it to our green flag event. Then we can change the default “Hello!” message to say “Hello World!”

Try it out! Click the green flag and see the Scratch cat offer you a greeting, then check our more lessons.

Resources for Young Coders

Online Resources and Mobile Apps

You can learn more about Scratch by visiting the Scratch Forums or the Scratch Wiki.

EduBlocks lets you write code in your browser, including Python 3 and HTML5. You can use either a block-based format, like Scratch, or a text-based format, like a traditional text editor.

Grasshopper is a Code With Google program that teaches JavaScript and coding fundamentals. You can use it in your web browser or get the app on the Google Play Store.

Lightbot is a game where you use coding logic to solve puzzles. It’s available for Android, iOS and Amazon devices.


There are lots of great books about learning Scratch that will take you from a newbie to an expert with lots of step-by-projects. DK Books has published many of them, including:

Coding Games in Scratch: A Step-by-Step Visual Guide to Building Your Own Computer Games

Coding Projects in Scratch: A Step-by-Step Visual Guide to Coding Your Own Animations, Games, Simulations

Coding with Scratch Workbook: An Introduction to Computer Programming

DK Books also has similar introductory books for the Python programming language. Python is a complete programming language used by professionals around the world. Its relatively simple syntax and wealth of modules make it a good language for beginners.

Coding Games in Python (Computer Coding for Kids) 

Coding Projects in Python (Computer Coding for Kids)

Advanced Scratch: Custom Blocks and Extensions (Make your own music!)

Custom Blocks in Scratch are an example of a function or method. They’re basically shortcuts: bits of code that you can use over and over again by calling the block, rather than reproducing it each time. This is very important as we get into more complex programs!

Music in Scratch

Music is an extra feature in Scratch. It’s hidden at first to give users a chance to learn the basics. To access Music (and other advanced features), look for the Add Extension button at the bottom left and select Music.

Some options, like selecting an instrument, are fairly straightforward. The “play note” command seems kind of tricky, but it’s really not! Drag it into your program and click in the space that says 60 and you’ll see a keyboard with Middle C selected. Any note can be selected by number or by key.

Each note is played for 0.25 beats, which corresponds to a quarter note in 4/4 time. If you don’t know the music theory, don’t worry — just know that 0.5 is twice as long as 0.25, 1 is twice as long as 0.5, etc. All of these notes together make up the first two lines of “Twinkle Twinkle Little Star” — now you know why we might want a shortcut!

We have our notes, now when do they play? Just like in gym class, they play when they’re called. If you look on the right, we see a command that says “When this sprite is clicked, Twinkle”. This tells Scratch when to run our custom block.

Advanced Scratch: Broadcasts

So far, most of our Scratch programs have had us follow a single sprite. This is great for making videos and animations, and we even made some basic interactive games using input, loops, and if/else statements. That’s a lot, really!

But think of your favorite games. There’s probably a lot of characters, and they interact in many ways: they have conversations, buy and sell items, or compete with one another.

In games, like in life, you need to communicate. Sprites in Scratch communicate with the Broadcast command.

Look at this demo. The program starts in a familiar way: when the green flag is clicked, the dragon says ROAR for 2 seconds. That’s great, but it doesn’t get much of a reaction… until we add the broadcast command. We’re calling our broadcast signal “roar” and seeing who picks it up.

If you click on the princess sprite, you’ll see that she has some code of her own. Her code starts when she receives a broadcast called roar, and has her saying “A DRAGON!” for 2 seconds.

Intro to Scratch Programming: Loops

When green flag is clicked, forever create clone of myself, go to random position

Forever loops  are a form of infinite loop. Some of you might already be thinking, “Oh no! That’s a bug!”

Usually we don’t want loops to go on forever. Think back to the story of the sorcerer’s apprentice. He had a job that was boring and repetitive, and he thought: I can automate this! He cast a spell on a broomstick and told it to carry water from the well. But he didn’t know the spell to make it stop!

Infinite loops are like that spell, they go on forever. Lucky for us, Scratch is much better than the apprentice at keeping loops contained. If you want to make an animation that loops continuously, the forever loop is what you want.

When the green flag is clicked, repeat 13 times: say Na for 0.25 seconds and wait 0.1 seconds. Then say BATMAN

Another type of loop is repeat. You may have seen this type of loop called a for loop. This loop starts off by saying how many times it should repeat.

Our repeat loop, which helps us remember the theme to the 1966 tv series Batman, repeats 13 times. Each time through the loop, our sprite says “Na” and waits. After we’ve gone through 13 times, we can finally progress past the loop and say BATMAN.

Why do we wait 0.1 seconds? Without this wait, we wouldn’t see 13 distinct “Na” lines, just one “Na” for 3.25 seconds (0.25 * 13).

You can see this code in action on Scratch.

When the green flag is clicked, repeat until touching Bananas: glide 1 secs to random position. Then say "Bananas!" for 2 seconds. Then go to x -162 y -97

Another type of loop is the repeat until loop. This loop will run until a condition is met. This code tells the monkey to glide around the screen at random until it reaches the bananas.

Unlike the repeat loop in our last example, we don’t know how many times the loop will repeat — our monkey is just too unpredictable! But with the repeat until loop, we don’t have to.

Before entering the loop, we check if we’re touching the bananas. If we are, we can skip the loop. If not, we enter the loop and glide for 1 second to a random position, then go back up to the top and check again.

After the loop is finished, our monkey says “Bananas!” for two seconds and then returns to his starting position.

You can see our monkey in action on Scratch.

Intro to Scratch Programming: If/Else and Variables

Variables can be used to store data. Two main types of variables are numbers and strings. Strings are words or phrases.

This program has a variable called answer that’s created when we use the ask block. The value of answer is whatever name the user enters in response to the question “What’s your name?”

We can use our variable to greet the user by name! Our say block includes a join — this concatenates, or glues together, the phrase “Hello, ” with the value of our answer variable. So if you entered the name “Jane” it would say “Hello, Jane”

See our Scratch variables in action!

The If/Else block can be used to choose between two options based on input.

Just like in our greeting program, we have an ask block that stores its response in the variable called answer.

The value of answer is used to make a choice. If the value is equal to “city”, Scratch changes the backdrop to Colorful City.

The else block contains a nested if statement testing if the value of answer is farm. If it is, Scratch changes the backdrop to Farm.

We need this additional check because the text box allows the user to enter any word and we don’t want everything that isn’t “city” to send them to the farm!

See our If/Else statements in action on Scratch!

Here’s is a more complex program that uses variables, loops, and nested if statements.

The first block has Scratch set the value of the variable my variable  to a random number between 1 and 10.

Next there is a repeat until loop that runs until the value of answer is equal to my variable — that is, until the user has the correct guess.

If answer is equal to my variable, nothing in the loop runs. Scratch runs the next block, which says “You got it!”

This may seem strange as a first step, even before the ask block. In practice, our loop will have to run at least once to have a value for answer that can match my variable. The repeat until condition says when the loop can stop running: when we have the answer.

The first step in every loop is to ask for a number and store that number in answer. We check if answer is too high or too low, to give the user a hint. Then we loop back up to the top to see if maybe the answer is just right.

Sounds like fun? Maybe you’d like to play our number guessing game on the Scratch website.

Resources for Elementary Homeschoolers: Language Arts and Social Studies

I grouped language arts and social studies because you can often work on them together. Reading and understanding non-fiction is a big part of modern language arts study, and historical and biographical texts are a great source.

Reading Skills

The Common Core Standards define three areas for reading: foundational skills (phonics and sight words), reading literature, and reading informational texts. Students reading literature are expected to recall key ideas and details in a story (characters, settings, events), identify elements of craft and structure (Who is the narrator? What sensory details add to the story? What is the genre of the story?) and integrate ideas through comparison and adaptation.

For foundational skills, I have a whole list of resources in my post about beginning readers.

To develop skills to understand and analyze all types of texts, though, you need a whole new type of resource. ReadWorks is this resource. ReadWorks is a completely free website. It’s aimed primarily at public school teachers, but homeschoolers can get great use out of it. It’s a collection of short texts of all levels, from kindergarten through high school, that are paired with comprehension questions. Texts include fiction, non-fiction and even poetry. This makes it a great source, not only for language arts, but also for social studies, as there are lots of great texts about world cultures and historical figures. There are texts about seasons and holidays and texts that are grouped together into a unit. Seriously, just a ton of great texts.

Writing Skills

There are two things to consider when teaching writing: the mechanics of spelling and grammar, and the craft of creating articles and stories.

For spelling, the Dolch sight words are a good place to start. As a homeschooler, you have the flexibility to start anywhere in the list and progress as your kid is ready — or to ignore them entirely if you have a “natural speller’!

Teachers Pay Teachers has a lot of spelling and grammar lessons you can download. Some of them are free, but paid lessons can definitely be worth the few dollars you pay for them. One category of lesson that you can find on TpT (or create yourself) is editing homework: provide a series of sentences with errors in spelling, grammar or punctuation and have the student write out the correct version. This really helps them focus on details without worrying about content.

Photo by Indi Samarajiva

When you do want your kids to think about content, I found the Common Core standards very helpful, especially the section “Text Types and Purposes”:

Write opinion pieces in which they introduce the topic or name the book they are writing about, state an opinion, supply a reason for the opinion, and provide some sense of closure.

Write informative/explanatory texts in which they name a topic, supply some facts about the topic, and provide some sense of closure.

Write narratives in which they recount two or more appropriately sequenced events, include some details regarding what happened, use temporal words to signal event order, and provide some sense of closure.

Topics for this type of essay can be as general or specific as you want. “Would you rather do this thing or that?” is a good format for opinion pieces, e.g. “Would you rather have a dog or a cat?” “Would you rather fly or turn invisible?”

Informative essays can tie into other subjects or relate to your kid’s interests. Sequential narratives can recount field trips and vacations or even be used to describe science experiments.

Templates can be a good way to help younger students organize their thoughts. I made few (very basic!) templates using Google Docs:

Social Studies

Social Studies may not get the same attention as English and Math, but there’s still a lot to learn! Social Studies can be integrated with other subjects, like reading or science. ReadWorks articles on world cultures and history are great for this!

If you just want to get started with some video lessons, Homeschool Pop’s social studies videos are hard to beat. They’re short and can be a great starting point to include readings and projects.

Social Studies lessons can also be a great opportunity for field trips that explore local history. It’s your classroom, have fun with it!

Resources for Elementary Homeschooling: Art, Music and Gym Class!

Art, music and physical education can seem very intimidating for parents like me whose own talents definitely lie elsewhere. Luckily there are a lot of great resources out there, especially on YouTube.

Drawing Lessons

Art for Kids Hub is a great source for step-by-step drawing tutorials. They range from super-simple videos appropriate for preschoolers to complex drawings for older students (or those with an inclination towards art). There’s a video for everyone and every occasion, including holiday themed drawings and drawings based on popular movies, tv shows and video games.

Physical Education

Let’s face it, Jamie has been everyone’s P.E. teacher these past two years. And it’s no surprise, with her channel’s collection of fun, upbeat yoga videos that require no equipment and feature kid-friendly themes.

Little Sports kids exercise videos also offer another simple option with basic workouts that you can do right in front of your television.

Video games like Just Dance were also a big hit in our household, and sure to get your heart pumping as you dance to a variety of popular songs.

Music Education

Our favorite music lessons came from the YouTube channel Music With Lindsey. Aimed at younger audiences, Music With Lindsey is mostly about getting kids engaged with basic songs, but it does manage to mix in some lessons in rhythm and pitch.

Another fun series comes from the New York Philharmonic’s Very Young Peoples Concerts at home. These videos introduce orchestral instruments and terms like staccato and legato. The only downside is there’s only four videos total.

Resources for Elementary Homeschooling: Beginning Readers

When it became clear that my kids would be at home for a while due to the pandemic, I knew that teaching my daughter to read would be a top priority. She had a pretty good grasp of letters and letter sounds, but hadn’t yet figured out how they come together to form words.

The main thing about learning to read is repetition. Both phonics and sight words will be picked up by repeated exposure. The best place I found to start was with a phonics box set. There are a lot of these out there, and they all follow basically the same format, so the main thing to look for is something that will hold your child’s interest.

Phonics books focus on a particular vowel sound, like “short a” or “long o”. Not all the words have those sounds, but the words that do are good ones to focus on. Feel free to read harder words yourself, asking your child to sound out target words, which will usually be short and not “tricky”.

Levelled readers are the next step up from phonics books. Look for Level 1 readers from World of Reading, Step Into Reading, and I Can Read!

Our favorite author, though, was definitely Mo Willems. Books featuring the Pigeon, Elephant and Piggie, and Cat the Cat are all great for new readers. Elephant and Piggie books are especially great because the text is mostly dialog, and kids will love going back and forth reading one of the parts.

With this experience under their belt, your kid will be well on their way to being a great reader!