We may earn an affiliate commission when you visit our partners.
Course image
Al Sweigart

Scratch is the best educational programming software for kids available today. With Scratch, you can create games and interactive art projects all while having lots of fun. Parents and teachers can use this course's fun projects to guide their children and students to a solid understanding of basic programming concepts while having fun.

Read more

Scratch is the best educational programming software for kids available today. With Scratch, you can create games and interactive art projects all while having lots of fun. Parents and teachers can use this course's fun projects to guide their children and students to a solid understanding of basic programming concepts while having fun.

IMPORTANT NOTE: This course was made for Scratch 2.0. On January 1st, 2019, Scratch 3.0 was released on the Scratch website. However, you can still use the Scratch 2.0 Offline Editor. This course will be completed updated for the new 3.0 version in mid-2019. The information here is still relevant to using Scratch 3.0, though it doesn't cover 3.0's new features.

Designed by the MIT Media Lab’s Lifelong Kindergarten Group for 8 to 16 year olds, Scratch is a free programming environment that runs in your web browser. But Scratch users consist of people of all ages, including younger children with their parents. The software makes it easy for anyone to start developing their programming and problem-solving skills.

I’m Al Sweigart, the author of several programming books for kids and beginners. This course follows the content of my latest book Scratch Programming Playground, which you can read for free online under a Creative Commons license. This is my second Udemy course following my highly-rated "Automate the Boring Stuff with Python Programming".

This course (and supplemental book) covers the creation of several classic games like brick Breaker, Snake, and Fruit Ninja. Instead of memorizing a list of programming concepts, you’re guided through making these games and picking up programming concepts on the way. The lectures follow the 6 game and computer art projects, along with additional content on debugging and experimenting with Scratch.

Enroll now

What's inside

Syllabus

Learn to launch the Scratch editor, about its different parts, and how blocks snap together.

In this lecture, you'll sign up for a free Scratch account, download the course content files, and optionally install the offline editor. You'll learn how to upload your programs from the offline editor to the Scratch website. If you choose to not use the offline editor, you can use the browser-based Scratch editor. Either way, you'll be able to share your Scratch games with others over the Internet.

Read more

Covers details about the Scratch Editor

In this lecture, you'll learn about the basics the Scratch editor and it's pieces: the Stage, the Scripts Area, the Code Blocks, the Sprites Area, and about the sprites on the Stage. At the end of this lecture, you'll be able to pull code blocks from the Code Blocks area and snap them together into a program, as well as edit the stacks of blocks you've made. You'll also learn how to save your program to your computer or the Scratch website.

Covers the different parts of the Scratch Editor and how to use code blocks

Create an animated rainbow lines art project.

In this lecture, you'll learn about the Paint Editor, Scratch's built-in drawing program. At the end of this lecture, you'll be able to draw simple sprites using the Paint Editor, as well as program the sprite to run code blocks in a "forever" loop code block. You'll also understand how Scratch uses degrees to point the sprite, and where you can find this direction information in the Info Pane.

Covers concepts that came up making the Rainbow Lines program

In this lecture, you'll learn some Scratch editor tricks like duplicating sprites. You'll also be introduced to the turquoise Pen blocks. After this lecture, you'll be able to draw lines using these blocks. We also cover debugging a mistake that happens in the drawing code, and the new "wait" code block.

Learn more about the Scratch editor and website, especially the online help system and the paint editor.

In this lecture, you'll learn how to find help with Scratch's built-in Help system and the Scratch forums. You'll also be able to share your project and look at other users' projects on the Scratch website.

Covers finding help on Scratch and sharing your projects

In this lecture, you'll learn more details about the paint editor and the Costumes tab. At the end of the lecture, you'll know how to use the various drawing tools to create shapes and colors for your sprites. You'll also know how to draw perfectly straight lines, change the line width, and draw shapes that are filled-in and outlined.

Covers the Paint Editor and its tools

Create a maze game project.

In this lecture, you'll start the second programming project: a maze game. You'll learn about Cartesian Coordinates and how they are using in programming. At the end of this lecture, you'll know how to use several of the code blocks from the dark blue Motion category, as well as how to program a sprite to move around in response to the keyboard. You'll also be able to identify a few common mistakes made using the Motion blocks.

Covers the wall-blocking code of the maze game

In this lecture, you'll use the files in the course content zip file and learn how to upload them into the Scratch editor. By the end of this lecture, you'll know how to take any image from the Internet and use it in your Scratch programs. We also cover a few of the code blocks from the purple Looks category, and how to make it so that sprites can't walk through walls.

Covers the concepts used in part 2 of the maze game

In this lecture, you'll learn how to use the images that come with Scratch to set the backdrop and new sprites. We'll also introduce the magenta Sound code blocks and the "broadcast" blocks. At the end of this lecture, you'll be able to have sprites control each other through broadcast messages, allowing for more complicated behaviors.

Covers the concepts used in part 3 of the maze game

Add 2-player, traps, and cheats to the maze game.

In this lecture, you'll be taking the previous Maze game and extending it by adding new features. Not only will you learn to create programs, but you'll also learn how to make modifications to programs. This lecture's new features are a second player. At the end of this course, you'll know how to duplicate sprites for a second player and the code changes needed to make your game accommodate two players.

Lecture 10 Quiz

In this lecture, you'll create clones of sprites to create several traps in the maze. By the end of the lecture, you'll understand when you should create clones (as opposed to duplicating sprites), and using the "show" and "hide" blocks to affect the visibility of the clones. The traps work with the new "touching color" block, which allows for a new way to detect when sprites have collided with each other. You'll also learn how to get fractions as well as whole numbers from the green "pick random" block.

Lecture 11 Quiz

In this lecture, you'll extend the maze game to include cheat codes. You'll learn how to add special keys to unlock the cheats that let players walk through walls. At the end of this lecture, you'll know how to use the Boolean "and" and "or" code blocks to add complex conditions to your "if then" blocks.

Lecture 12 Quiz
Create a basketball game which implements gravity physics.

In this lecture, we start a new Basketball game project. This program will use variables from the orange Data category. By the end of the lecture, you'll know how variables are used to implement realistic gravity. This lecture will also give you experience making games from a side view, rather than the maze game's top-down view.

Lecture 13 Quiz

In this lecture, you'll create a floating basketball hoop that uses the "glide" block to smoothly hover around the Stage. At the end of this lecture, you'll know how to use the ghost effect to separate a sprite's image with what counts as "touching" the sprite. You'll also learn how to use the Scratch editor's Grow and Shrink tools to change the size of the sprites.

Lecture 14 Quiz

In this lecture, you'll implement the basketball sprite's code. You'll learn how to make one sprite appear to throw another sprite. The way the program is made has a scoring bug, but you'll be able to identify the bug and fix it in the code.

Lecture 15 Quiz
Add 2-player and cheats to the basketball game.

Similar to what you did with the maze program, in this lecture you'll add a second player by duplicating sprites. You'll learn what adjustments have to be made to accommodate two players. You'll also implement a secret cheat code. This lecture reinforces the skills you picked up when extending the maze game.

Lecture 16 Quiz
Create the classic brick breaking game.

In this lecture, you'll create the paddle for a new "brick breaker" game. This paddle sprite has "following" style of movement. You'll learn how to implement this style by setting the rotation style of the sprite. By the end of this lecture, you'll know about the three rotation styles, and the new "point towards" block.

Lecture 17 Quiz

In this lecture, you'll learn how to implement a simple math equation that controls the bouncing of the ball. This involves the math operator code blocks from the green Operators category. By the end of the lecture, you'll understand how simple math equations like these are used in programming.

Lecture 18 Quiz

In this lecture, you'll learn more about clones and when to use them in your Scratch games. The brick breaker program makes use of a "generator" technique, where a sprite sets itself up before cloning, and ultimately disappears before the game begins. You'll also see how clones can delete themselves when they are no longer needed.

Lecture 19 Quiz

In this lecture, you use sprites to display text messages on the Stage. By the end of the lecture, you'll have a better understanding of how everything on the Stage is either a sprite or a clone of a sprite. You'll also know how to use the Paint Editor's text tool, as well as learn about the new "wait until" code block.

Lecture 20 Quiz
Polish the brick breaker game using simple tricks to make games more exciting.

In this lecture, you'll extend the previous brick breaker game to make it more "juicy", that is, a more polished game with cooler special effects. There are many small techniques you can add to this or any game that will turn it from a simple, boring game into an exciting one. By the end of this lecture, you'll know how to use the gradient tool in the Paint Editor, make sprites flash, and make sprites fade in and out.

Lecture 21 Quiz

In this lecture you'll continue to polish the brick breaker game into a more exciting version. By the end of the lecture, you'll be able to add animated entrances and exits to sprites, as well as a trailing effect as a sprite moves around.You'll learn about the "brightness" effect of the "set effect" code block, as well as some new sound effects.

Lecture 22 Quiz
Create a snake/worm/nibbles game.

In this lecture, you'll start a new game project: Snake. You'll learn about setting the costume center of a sprite, and creating a trail of clones to form the snake's body. At the end of this lecture, you'll have learned this trail effect technique and when to use it in a program. 

Lecture 23 Quiz

In this lecture, you'll finish the snake game. You'll use a few more simple math equations to determine the length of the snake's body and the orientation of the individual body segments. These techniques will reinforce what you've previously learned about the green Operators code blocks.

Lecture 24 Quiz
Add bonus fruit and cheat codes to the snake game.

In this lecture, you'll extend the previous snake game you made with some bonus items and secret cheats. By the end of the lecture, you'll know how to create a separate bonus item that can randomly move itself around the Stage at timed intervals. You'll also change the "color effect" setting of the snake body sprite to create a rainbow effect with the snake body's clones.

Lecture 25 Quiz
Create a clone of the famous Fruit Ninja mobile game.

In this lecture, you'll start a new game project that is a clone of the popular Fruit Ninja game. You will get some practice using the Paint Editor's drawing tools, as well as managing several different events with the "broadcast" code blocks. By the end of the lecture, you'll know how to implement some common video game mechanics, such as having a start screen and a high score.

Lecture 26 Quiz

In this lecture, you'll learn about lists. Lists are like advanced variables that can store multiple values. By the end o the lecture, you'll be familiar with the new code blocks for manipulating lists, as well as how to use lists to "record" the positions of the mouse. This technique will be used to draw the "slices" in our Fruit Slicer game.

Lecture 27 Quiz

In this lecture, you'll implement the slicing in the Fruit Slicer game. The technique used builds upon the Pen drawing code blocks used back in the Rainbow Lines program. You'll also know how to create your own code blocks in the More Blocks category, specifically to run Turbo Mode for a select script instead of the entire program. These advanced techniques make it possible to create a much more sophisticated gameplay experience.

Lecture 28 Quiz

In this lecture, you'll learn the advanced "select" drawing tool in the Paint Editor, and how to switch the "bitmap" and "vector" drawing modes. By the end of the lecture, you'll be able to reorder and duplicate the costumes of a sprite.

Lecture 29 Quiz

In this lecture, you will once again deploy a simple math equation to control the trajectory of the fruit. You'll also reuse the gravity techniques introduced in the basketball game, as well as the "clone generator" technique used in the brick breaker game.

Lecture 30 Quiz

In this lecture, you'll implement the code for the slice sprite to detect when it is cutting the fruit. This involves using the "broadcast" block to communicate between two sprites. You'll also use broadcasts to control various game events: when the game starts, when a fruit is missed, and when the game ends.

Lecture 31 Quiz

In this lecture, you finish the Fruit Slicer game. You'll learn how to use a white sprite to implement a "fade to white" animation effect. You will also extend this game with a cheat code and a website-wide high score system. By the end of this lecture, you'll have used Scratch's advanced "cloud variables" to keep track of the highest score of everyone who's played the game on the Scratch website, as well as how cloud variables work and their limitations.

Lecture 32 Quiz

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches beginners how to code in Scratch, a visual programming language
Covers a range of coding concepts, including variables, loops, and conditional statements
Provides hands-on practice through the creation of several classic games, such as Brick Breaker and Fruit Ninja
Taught by Al Sweigart, the author of several programming books for kids and beginners, making the course suitable for young learners
Covers debugging and experimenting with Scratch, which are essential skills for any coder
Uses a combination of video lectures, interactive exercises, and downloadable course materials to enhance the learning experience

Save this course

Save Scratch Game Programming to your list so you can find it easily later:
Save

Reviews summary

Scratch game programming: welcoming and informative

learners say Scratch Game Programming is a good introduction to Scratch with helpful concepts and engaging lessons. The instructor is knowledgeable and responsive. The last lesson can sometimes feel overwhelming.

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Scratch Game Programming with these activities:
Read Scratch Programming Playground
Understand core coding fundamentals and concepts without diving straight into a Scratch project.
Show steps
  • Choose between online and downloadable PDF/EPUB versions
  • Read through chapters in sequence
  • Complete the provided exercises at the end of each chapter
  • Refer back to material as needed
Show all one activities

Career center

Learners who complete Scratch Game Programming will develop knowledge and skills that may be useful to these careers:
Game Developer
A Game Developer is responsible for designing, developing, and testing video games. Scratch Game Programming is an excellent way to learn the basics of game development, as it provides a visual and interactive way to create games. You will learn how to use variables, loops, and conditionals to control the behavior of game objects, and you will also gain experience with using sprites and backgrounds to create game worlds.
Software Developer
A Software Developer is responsible for designing, developing, and maintaining software applications. With a background in Scratch Game Programming, you will have a solid understanding of basic programming concepts such as variables, loops, and conditionals. This foundation will be essential for success as a Software Developer, as you will need to be able to translate user requirements into code. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Web Developer
A Web Developer is responsible for designing, developing, and maintaining websites. Scratch Game Programming can provide a strong foundation for a career in Web Development, as it teaches you the basics of programming, including how to use variables, loops, and conditionals. Additionally, the experience you gain with Scratch's visual programming interface will be helpful for understanding how websites are structured and how to use HTML and CSS to create web pages.
Computer Scientist
A Computer Scientist is responsible for researching, designing, and developing new computer systems and technologies. Scratch Game Programming can provide a strong foundation for a career in Computer Science, as it teaches you the basics of programming and algorithms. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Data Scientist
A Data Scientist is responsible for collecting, analyzing, and interpreting data to help organizations make better decisions. Scratch Game Programming can provide a strong foundation for a career in Data Science, as it teaches you the basics of programming and data analysis. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Database Administrator
A Database Administrator is responsible for managing and maintaining databases. Scratch Game Programming can provide a strong foundation for a career in Database Administration, as it teaches you the basics of programming and data management. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Network Administrator
A Network Administrator is responsible for managing and maintaining computer networks. Scratch Game Programming can provide a strong foundation for a career in Network Administration, as it teaches you the basics of programming and computer networks. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Systems Analyst
A Systems Analyst is responsible for analyzing and designing computer systems. Scratch Game Programming can provide a strong foundation for a career in Systems Analysis, as it teaches you the basics of programming and systems analysis. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Information Technology Specialist
An Information Technology Specialist is responsible for providing technical support and troubleshooting for computer systems and networks. Scratch Game Programming can provide a strong foundation for a career in Information Technology, as it teaches you the basics of programming and computer systems. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Technical Writer
A Technical Writer is responsible for writing documentation for software and hardware products. Scratch Game Programming can provide a strong foundation for a career in Technical Writing, as it teaches you the basics of programming and technical writing. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Computer Programmer
A Computer Programmer is responsible for writing and maintaining code for computer programs. Scratch Game Programming can provide a strong foundation for a career in Computer Programming, as it teaches you the basics of programming and software development. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Quality Assurance Analyst
A Quality Assurance Analyst is responsible for testing and evaluating software products to ensure they meet quality standards. Scratch Game Programming can provide a strong foundation for a career in Quality Assurance, as it teaches you the basics of programming and software testing. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
User Experience Designer
A User Experience Designer is responsible for designing and evaluating user interfaces for software products. Scratch Game Programming can provide a strong foundation for a career in User Experience Design, as it teaches you the basics of programming and user interface design. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Project Manager
A Project Manager is responsible for planning, executing, and closing out projects. Scratch Game Programming can provide a strong foundation for a career in Project Management, as it teaches you the basics of programming and project management. Additionally, the problem-solving skills you develop through Scratch programming will be invaluable in this role, as you will often need to find creative solutions to complex problems.
Business Analyst
A Business Analyst is responsible for analyzing and documenting business processes. Scratch Game Programming may be useful for a career in Business Analysis, as it teaches you the basics of programming and problem-solving. Additionally, the experience you gain with Scratch's visual programming interface may be helpful for understanding how business processes are structured and how to use tools to document them.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Scratch Game Programming.
Is the supplemental material for the course and covers the same game and computer art projects as the course, along with additional content on debugging and experimenting with Scratch.
By the same author as the course provides a more in-depth look at programming concepts and game development in Python.
Provides a comprehensive guide to Scratch 3.0, covering the basics of programming, game development, and art creation.
Provides a deep dive into Scratch programming, covering advanced topics such as data structures, algorithms, and object-oriented programming.
Beginner-friendly guide to Scratch programming, providing step-by-step instructions for creating games, animations, and interactive stories.
Guide for educators on how to use Scratch in the classroom, providing lesson plans, activities, and tips for integrating Scratch into various subjects.
Provides a collection of Scratch projects and activities for use in CoderDojo clubs.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Scratch Game Programming.
Programming for Kids and Beginners: Learn to Code in...
Most relevant
Generative AI for Kids, Parents, and Teachers
Most relevant
Making Games in Scratch 2.0
Kids Coding - Introduction to HTML, CSS and JavaScript!
Kids Yoga Teacher Training Certificate Course - Ages 2-17
April Speight
An Introduction to Recreational Math: Fun, Games and...
Introduction to Programming with Scratch
The Science of Training Young Athletes
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser