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!
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.
This course won’t make you a software engineer or app developer, but it can provide kids with fun activities and give parents and K-12 teachers the training they need to help children learn to code. By the end of this course, you’ll have a solid understanding of Scratch and its community of millions of users.
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.
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
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.
Covers concepts that came up making the Rainbow Lines program
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Al Sweigart is a software developer in San Francisco. He has written four Python programming books, spoken at Python conferences, and has taught both kids and adults how to program. Python is his favorite programming language, and he is the developer of several open source modules for it. He is driven to make programming knowledge available to all, and his books freely available under a Creative Commons license.