
Learn to code with Scratch 3.0 using a visual block language, build three games, and embrace active learning by solving problems, learning from mistakes, and transferring skills to text-based languages.
Visit scratch.mit.edu, create a unique username, verify your email, and activate your online Scratch 3.0 account. Learn safeguards for under-13 users and sign in to explore.
Explore Scratch games by the Explore section, sample projects like mini games and monochroman, view code blocks and sprites, remix with credit, and learn coding through the community.
Learn Scratch 3.0 by building your first project with block-based code, using events, looks, and motion blocks to control a sprite and respond to the green flag.
Select a sprite from Scratch, replace the default cat, and edit its appearance in the built-in costumes editor. Experiment with colors and features while keeping size for the maze game.
Learn how sequencing instructions affect Scratch 3.0 code by using motion blocks, when flag clicked events, and waits to move a beetle in a square path.
Learn how Scratch sprites move using an x y coordinate system and pixels with arrow keys. Explore the origin at zero zero and go to x y positions.
Learn to use if statements and a forever loop to enable movement with the arrow keys, alter X and Y coordinates, and have the sprite face the travel direction.
Learn how loops and if statements control Scratch 3.0 sprites. Use forever and countdown loops, point in direction, and conditional branches to respond to arrow keys and move sprites.
Select an apple sprite and program it to disappear when the beetle touches it using a forever loop with if touching the beetle, plus initialize positions to avoid overlap.
Use random numbers in Scratch 3.0 to place sprites and adjust size. Save projects by naming versions and explore random position logic, including edge-safe coordinates.
Introduce variables in Scratch by creating a score variable, initializing it to zero, and displaying it. Increase the score when the beetle touches the apple.
Create a countdown timer using a timer variable, decrementing every second with a repeat until loop, and stop the game when the timer hits zero.
Learn to use backdrops in Scratch 3.0 by selecting from the backdrops tab and editing with the graphics editor to create stage backgrounds that fit your sprites.
Import your own backdrops into Scratch by uploading images from the internet, maintain a 4:3 ratio (480 by 360), and resize with GIMP or Inkscape.
Introduce hazards with a bouncing ball that makes you lose a life or score on contact. Randomize its start position and learn collision and bouncing mechanics with a forever loop.
Learn to code with Scratch 3.0 demonstrates bouncing a ball off walls using x and y velocity variables, a forever loop, and velocity inversion on collision.
In Scratch 3.0, create an automated bouncing ball by reversing x and y velocities at wall hits in a forever loop, then vanish the beetle on collision to form hazard.
Demonstrates collision handling in Scratch: make beetle and ball collide, hide and show sprites, reset positions, update score, and debug why the ball and beetle interactions break game flow.
Master debugging in Scratch 3.0 by resolving concurrent scripts, using broadcast messages and event listeners to control sequence and prevent the ball and beetle from misbehaving.
debugging in Scratch 3.0: hunt the bug by logging sprite coordinates with say and join, test random start positions, reorder blocks to fix ball placement and prevent bouncing.
Apply debugging strategies to elevate a Scratch 3.0 game by removing the timer, making the ball bounce off the apple, and adjusting XVel and YVel to increase speed and challenge.
Create a lives variable accessible to all sprites, start with three lives, lose one on ball collision, stop when lives reach zero, and switch to a black game over backdrop.
convert a forever loop to a conditional loop that ends when lives reach zero, broadcast game over to hide sprites, and show a black backdrop in scratch 3.0.
Practice creating side-on 2D games in Scratch by recreating a dog that collects bowls and avoids balloons, with score and lives, while solving problems and extending the beetle game concept.
Adapt an existing Scratch 3.0 game for balloons walkthrough part 1 by reusing code from Apple Chase, swap in a dog and balloons, and implement left-right movement and collisions.
Set balloon to start at random x between -220 and 220 with y 180. Move down by minus 5, vanish below -160, and balloons and bowls reappear at random positions.
Learn to use cloning to spawn multiple balloons and balls with random velocities, repeat until loops, and timed clones, while handling collisions, scoring, lives, and game over.
Learn to design a 20x15 pixel maze in GIMP with alpha channel, using the pencil tool, avoid dead ends, export as PNG, and scale to 480x360 for Scratch.
Import the maze backdrop, duplicate the original game, remove unused sprites, and implement beetle movement with four directional controls, using a 25 percent size.
Fix sprite movement in Scratch 3.0 by keeping the beetle on maze paths, bouncing off walls when hitting color, and wrapping through the tunnel, with three lives and zero score.
Create an 8x8 food sprite in GIMP, import it into Scratch 3.0, clone it to fill the maze, and increase the score when the beetle hits food.
Master nested loops in Scratch 3.0 to populate a maze grid. Compute coordinates, manage column and row variables, and use inner and outer loops to place clones at grid points.
Apply nested loops to position food dots in a Scratch maze by calculating column and row coordinates, cloning food sprites, and showing them as you progress, while avoiding walls.
Learn to code food spawning and scoring in Scratch 3.0 by using clones, not touching color, and message-driven maze setup.
Learn to design and import a red ghost sprite for Scratch 3.0, creating a 14 by 14 pixel png with a transparent background, eyes, and simple movement within a maze.
Automate the red ghost to chase through the maze and avoid walls using a red speed variable, wall contact bounce, and random direction changes.
Learn to fix the ghost’s movement in a Scratch 3.0 maze, handle wall collisions, and implement beetle interactions, including initial setup, maze ready timing, and a lose life broadcast.
In this sprite interaction lesson, learn to manage beetle–ghost collisions by hiding, updating lives, and respawning at the starting positions, with maze ready and game over broadcasts.
Create four 16 by 16 yellow power-up sprites in Scratch 3.0, place them at maze corners, enable a state for the beetle to eat ghosts, and manage game over.
Copy four power-up sprites and tidy the game logic to ensure spawning, scoring, and maze resets. Manage food left, broadcast resets, and prepare ghost behavior for the next stage.
Implement a chase and eat ghost mechanic in Scratch 3.0 using a timer and state-driven beetle and ghost behavior.
Switch costumes in Scratch 3.0 to show the ghost's states: chasing, eaten, and eyes running. Use Looks blocks and initial conditions to manage transitions and scoring as the maze resets.
Expand your Scratch project by duplicating ghosts to four, color-coding individual ghosts, and define a custom block to streamline ghost movement, boosting code clarity and reusability.
Wrap up the course by reinforcing computational thinking and core Scratch concepts—if blocks, loops, events, coordinates, and functions—and explore extensions and sounds to enhance your three games.
Learning to code can be a very daunting experience.
Which language should I learn?
Which IDE should I use?
How will I ever learn how to use all those brackets and punctuation marks in the right way?
That’s where Scratch comes in…
Scratch is a block-based programming language that takes away the pain of having to type accurately to get your code working properly. The most important part of learning to be a good programmer is learning to “think like a programmer”. This course teaches you to think like a programmer without the added distraction of having to think like a typist!
All the concepts you learn in this course can readily be applied to other coding languages, but you will feel much more confident in choosing the right language to learn next and, when you learn it, all the terms and vocabulary will make sense.
This course teaches you to program by asking you questions throughout and encouraging you to play an active role in your learning. It is delivered by an experienced, qualified teacher and developer, so you will feel secure in your learning as you progress.
Scratch may be a block-based language, but it is still powerful and allows you to explore physical computing by interacting with Lego Mindstorms, BBC Micro:Bit amongst others, so it is more than just a learning platform. It is also a lot of fun and can be very addictive.
Start your coding journey here – it is the best way to gain a new superpower!
This course is designed for people who are new to coding or who have tried to learn before but were put off by all the typing. You will be guided through the important concepts at a gentle pace, making sure that you have the chance to put them into practice so that they become natural to you rather than just copying what is being done on the screen.
It doesn't matter what age you are - you can learn to code at any age! You are never too young and you are never too old. You just need to have a desire to learn and everything will flow from that.