In this activity from Scratch, students will use coding skills to create their own compositions.
Students are introduced to computer programming concepts as they solve basic coding puzzles, and enhance STEM learning outcomes as they play a fun coding adventure game. Learn skills such as patterning, sequencing, loops, conditionals, critical thinking, and problem-solving, while leading a personalized troll through the adventure! This interactive game can be used during a lesson on constructing elements of a simple computer program in collaboration with others. A teacher's guide and answer key are available. Est. time: 30 min. More free coding activities @ Tynker.
Video games are fun to play, but have you ever wondered how to make one? Carmelo, a grad student in the MIT Media Lab, shows how anyone can start learning how to create video games by talking to machines through programming languages using block-based programming. This video can be played to introduce a lesson on computer programming.
Students use computer science to simulate extreme sports, make their own fitness gadget commercial, and create commentary for a big sporting event.
Sports is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons,” which are mini-coding challenges that build on top of the core project.
Be sure to review the Materials tab for the lesson plan, starter guide, and more.
Users will need a Google account to use this resource.
In Art, students create animations, interactive artwork, photograph filters, and other exciting, artistic projects.
Art is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each Activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.
An Unusual Discovery is designed to be completed within 45-75 minutes. Students watch a series of videos to create a coding project. Students personalize their project using mini-coding challenges called "add-ons.”
In this activity, students will sequence dialogue to tell a story. They animate interactions between characters, their backdrops, and a surprising object. This activity introduces students to computer science and the programming language Scratch. Students will use different Scratch blocks to create their own unique stories.
By selecting add-on videos that present coding challenges, students will:- Use event blocks (like “when flag clicked”) to trigger a series of code.- Sequence at least 3 “say” blocks between two sprites (characters) to construct a dialogue.- Program a conditional so that the computer can make a decision based on user response.- Produce repeated movements by applying control blocks to their program.
The teacher's resource can be accessed here and a lesson plan is available here.
In this activity, students use code to animate an ocean wave and tell a story that takes place on the high seas. This activity introduces students to computer science and the programming language Scratch. Students will use different Scratch blocks to create their own unique stories.
Adventure on the High Seas is a sample activity designed to be completed within 45-75 minutes. Students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons,” which are mini-coding challenges that build on top of the core project.
This sample activity is a collaboration between Cartoon Network and CS First. Students will tell a story using the characters from “The Amazing World of Gumball". This activity introduces students to computer science and the programming language Scratch. Students will use different Scratch blocks to create their own unique stories.
Gumball’s Coding Adventure is a simple activity designed to be completed within 45-75 minutes. Students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.
In Music & Sound, students use the computer to play musical notes, create a music video, and build an interactive music display while learning how programming is used to create music.
Music is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons,” which are mini-coding challenges that build on top of the core project.
In Game Design, students learn basic video game coding concepts by making different types of games, including racing, platform, launching, and more!
Game Design is a complete theme designed to be completed over eight, 45-75 minute, sessions. For each activity, students will watch a series of videos and create one coding project with opportunities to personalize their work using “Add-Ons”, which are mini-coding challenges that build on top of the core project.
Students have practiced creating impressive designs in Artist and navigating mazes in Bee, but today they will use functions to harvest crops in Harvester. This lesson will push students to use functions in new ways by combining them with while loops and if / else statements.
while
if / else
This lesson is meant to further push students to use functions in more creative ways. By also using conditionals and loops, students will learn there are many ways to approach a problem, but some are more efficient than others. These puzzles are intended to increase problem-solving and critical thinking skills.
Students will be able to:- recognize when a function could help to simplify a program.- use pre-determined functions to complete commonly repeated tasks.
Note: You will need to create a free account on code.org before you can view this resource.
Students will be introduced to using functions on Code.org. Magnificent images will be created and modified with functions in Artist. For more complicated patterns, students will learn about nesting functions by calling one function from inside another.
One of the most important components of this lesson is providing students with a space to create something they are proud of. These puzzles progress to more and more complex images, but each new puzzle only builds off the previous puzzle. At the end of this lesson, students will feel confident with themselves and proud of their hard work.
Students will be able to:- categorize and generalize code into useful functions.- recognize when a function could help to simplify a program.
This series brings together concepts from previous lessons and gives students a chance to think critically about how they would solve each problem, but without telling them which concept to apply. Students will review basic algorithms, debugging, repeat loops, conditionals, while loops, and functions.
repeat
It's important for students to remember that computer science provides plenty of opportunities to be creative. Every topic can be combined with another to make something bigger and better. In this lesson, students will use previously learned concepts together, allowing for a "big picture" view of programming projects. This lesson will also bridge any gaps in understanding of when to use certain programming tools over others.
Students will be able to:- recognize which programming concept to use to solve a given problem.- describe the different ways one could solve a given problem.
In this lesson, students will learn about the two concepts at the heart of Sprite Lab: sprites and behaviors. Sprites are characters or objects on the screen that students can move, change, and manipulate. Behaviors are actions that sprites will take continuously until they are stopped.
This lesson is designed to introduce students to the core vocabulary of Sprite Lab, and allow them to apply concepts they learned in other environments to this tool. By creating a fish tank, students will begin to form an understanding of the programming model of this tool and explore ways they can use it to express themselves.
Students will be able to:- define “sprite” as a character or object on the screen that can be moved and changed.- create a new sprite and choose its appearance.
This lesson features Sprite Lab, a platform where students can create their own alien dance party with interactions between characters and user input. Students will work with events to create game controls.
Students will use events to make characters move around the screen, make noises, and change backgrounds based on user input. This lesson offers a great introduction to events in programming and even gives a chance to show creativity! At the end of the puzzle sequence, students will be presented with the opportunity to share their projects.
Students will be able to:- identify actions that correlate to input events.- create an animated, interactive game using sequence and events.
Students will use Sprite Lab to play with sprites and their properties. Students will use events, behaviors, and custom code to create their very own pet giraffe that gets hungry, playful, and even filthy!
Students will use events to make characters move around the screen, change size, and change colors based on user input. This lesson offers a great introduction to events in programming and even gives a chance to show creativity!
Over the course of four lessons, students will be building up to programming a project of their own design using either Sprite Lab or Artist as their programming environment. Now the students will be given their own space to create their project with either Artist or Sprite Lab. This is likely to be the longest stage of the project. The lesson guide for all four stages of the process can be found in the first stage of this project process here.
This lesson provides students with ample time to build and revise their projects. The trial and error inevitably involved in this lesson will teach problem solving and persistence.
Students will be able to:- use the planned design as a blueprint for creation.- overcome obstacles such as time constraints or bugs.
In this set of puzzles, students will begin with an introduction (or review depending on the experience of your class) of Code.org's online workspace. There will be videos pointing out the basic functionality of the workspace including the Run, Reset, and Step buttons. Also discussed in these videos: dragging Blockly blocks, deleting Blockly blocks, and connecting Blockly blocks. Next, students will practice their sequencing and debugging skills in a maze.
Run
Reset
Step
We recognize that every classroom has a spectrum of understanding for every subject. Some students in your class may be computer wizards, while others haven't had much experience at all. In order to create an equal playing (and learning) field, we have developed this "Ramp Up Stage" for Course E. This can be used as either an introduction or a review of how to use Code.org and basic computer science concepts.
Students will be able to:- order movement commands as sequential steps in a program.- modify an existing program to solve errors.- break down a long sequence of instructions into the largest repeatable sequence.
Debugging is an essential element of learning to program. In this lesson, students will encounter puzzles that have been solved incorrectly. They will need to step through the existing code to identify errors, including incorrect loops, missing blocks, extra blocks, and blocks that are out of order.
Students in your class might become frustrated with this lesson because of the essence of debugging. Debugging is a concept that is very important to computer programming. Computer scientists have to get really good at facing the bugs in their own programs. Debugging forces the students to recognize problems and overcome them while building critical thinking and problem-solving skills.
Students will be able to:- predict where a program will fail.- modify an existing program to solve errors.- reflect on the debugging process in an age-appropriate way.
In this lesson, students will take control of the Artist to complete drawings on the screen. This Artist stage will allow students to create images of increasing complexity using new blocks like move forward by 100 pixels and turn right by 90 degrees.
move forward by 100 pixels
turn right by 90 degrees
Building off of the students' previous experience with sequencing, this lesson will work to inspire more creativity with coding. The purpose of this lesson is to solidify knowledge of sequencing by introducing new blocks and goals. In this case, students learn more about pixels and angles using the new blocks, while still practicing their sequencing skills. Also, students will be able to visualize new goals such as coding the Artist to draw a square.
Students will be able to:- create a program to complete an image using sequential steps.- break complex shapes into simple parts.
Building on the initial "My Robotic Friends" activity, students learn to use loops when programming their robots in order to build bigger structures more efficiently.
This lesson serves as a reintroduction to loops, using the now-familiar set of "robot" programming instructions. Students will develop critical thinking skills by looking for patterns of repetition in the movements of classmates and determining how to simplify those repeated patterns using loops.
Students will be able to:- identify repeated patterns in code that could be replaced with a loop- write instructions that use loops to repeat patterns.
Watch student faces light up as they make their own gorgeous designs using a small number of blocks and digital stickers! This lesson builds on the understanding of loops from previous lessons and gives students a chance to be truly creative. This activity is fantastic for producing artifacts for portfolios or parent/teacher conferences.
This series highlights the power of loops with creative and personal designs. Offered as a project-backed sequence, this progression will allow students to build on top of their own work and create amazing artifacts.
Students will be able to:- identify the benefits of using a loop structure instead of manual repetition.- differentiate between commands that need to be repeated in loops and commands that should be used on their own.
In this online activity, students will have the opportunity to push their understanding of loops to a whole new level. Playing with the Bee and Plants vs. Zombies, students will learn how to program a loop to be inside of another loop. They will also be encouraged to figure out how little changes in either loop will affect their program when they click Run.
In this introduction to nested loops, students will go outside of their comfort zone to create more efficient solutions to puzzles. In earlier puzzles, loops pushed students to recognize repetition. Here, students will learn to recognize patterns within repeated patterns to develop these nested loops. This stage starts off by encouraging students to try to solve a puzzle where the code is irritating and complex to write out the long way. After a video introduces nested loops, students are shown an example and asked to predict what will happen when a loop is put inside of another loop. This progression leads to plenty of practice for students to solidify and build on their understanding of looping in programming.
Students will be able to:- break complex tasks into smaller repeatable sections.- recognize large repeated patterns as made from smaller repeated patterns.- identify the benefits of using a loop structure instead of manual repetition.
Now that students know how to layer their loops, they can create so many beautiful things. This lesson will take students through a series of exercises to help them create their own portfolio-ready images using Anna and Elsa's excellent ice-skating skills!
In this series, students will get practice nesting loops while creating images that they will be excited to share. Beginning with a handful of instructions, students will make their own decisions when it comes to creating designs for repetition. They will then spin those around a variety of ways to end up with a work of art that is truly unique.
Students will be able to:- describe when a loop, nested loop, or no loop is needed.- recognize the difference between using a loop and a nested loop.- break apart code into the largest repeatable sequences using both loops and nested loops.
This lesson demonstrates how conditionals can be used to tailor a program to specific information. We don’t always have all of the information we need when writing a program. Sometimes you will want to do something different in one situation than in another, even if you don't know what situation will be true when your code runs. That is where conditionals come in. Conditionals allow a computer to make a decision, based on the information that is true any time your code is run.
One of the best parts of teaching conditionals is that students already understand the concept from their everyday lives. This lesson merges computer science into the real world by building off of their ability to tell if a condition is true or false. Students will learn to use if statements to declare when a certain command should be run, as well as if / else statements to declare when a command should be run and what do run otherwise. Students may not recognize the word conditionals, but most students will understand the idea of using "if" to make sure that some action only occurs when it is supposed to.
Students will be able to:- define circumstances when certain parts of a program should run and when they shouldn't.- determine whether a conditional is met based on criteria.- traverse a program and predict the outcome, given a set of input.
This lesson introduces students to while loops and if / else statements. While loops are loops that continue to repeat commands as long as a condition is true. While loops are used when the programmer doesn't know the exact number of times the commands need to be repeated, but the programmer does know what condition needs to be true in order for the loop to continue looping. If / Else statements offer flexibility in programming by running entire sections of code only if something is true, otherwise, it runs something else.
If / Else
A basic understanding of conditionals is a recommended prerequisite for Course E. We created this introduction to give a review for the students already familiar to conditionals and allow practice for the students that are just learning. If you find that the understanding of conditionals varies widely in your classroom, we recommend a strategic pairing of students when completing this online lesson.
Students will be able to:- define circumstances when certain parts of a program should run and when they shouldn't.- determine whether a conditional is met based on criteria.
In this lesson, students will practice using events to build a game that they can share online. Featuring R2-D2 and other Star Wars characters, students will be guided through events, then given space to create their own game.
CS Fundamentals is not simply about teaching computer science, it is about making computer science fun and exciting. In this series, students will learn about events using popular characters from Star Wars. These puzzles blur the lines between "learning" and "fun". Also, students will learn to recognize regular programming practices in games so that when they play games at home, they can see common computer science principles being used.
Students will be able to:- create an animated, interactive game using sequence and events.- identify actions that correlate to input events.
Students will begin to understand how functions can be helpful in this fun and interactive Minecraft adventure! Students will discover the versatility of programming by practicing functions in different environments. Here, students will recognize reusable patterns and be able to incorporate named blocks to call pre-defined functions.
Students will be able to:- use functions to simplify complex programs.- use pre-determined functions to complete commonly repeated tasks.