Curriculum Overview

To empower all students, we need to abandon a one-size-fits-all approach and instead design educational experiences around the idea that coding can be individually meaningful and useful to every learner.

No two districts are exactly alike. BootUp uses a combination of free open-source curricula and long-term professional development to customize and support implementation for your students. BootUp also offers our own free project-based curriculum and a curated collection of unplugged lessons to teach computational concepts and practices off the computer. To ensure the longevity of your ongoing initiative year after year, we continue to provide high-quality curriculum materials at no cost.

“BootUp gave me the confidence I needed to teach coding on the very first day. It’s a low floor with a high ceiling. You don’t have to know anything about coding to start. But once you do, the sky’s the limit.”

– James Leighton,
Desert Thunder Elementary School,
Avondale, AZ


Lesson Plans

Check out the video below for an overview of BootUp’s free curriculum, and visit the following links to find lesson plans pertinent to your grade levels.


Curriculum Guide

BootUp’s curriculum includes projects and resources designed specifically for elementary coders and coding educators with little or no coding experience. The table below provides an overview of the resources we offer. View the Google Docs version of our Curriculum Guide if you have trouble viewing or to save or print a copy.

Grades K-2 Project Alignment and Outlines (ScratchJr)

In this sequence of projects for ScratchJr, we gradually introduce a variety of practices and concepts while simultaneously introducing young coders to a variety of blocks and tools in ScratchJr. Each project is aligned with the algorithms and programming standards developed by the Computer Science Teachers Association (CSTA). Below is a summary of the standards embedded within at least one of the projects, as well as a description of each project that may take several classes to complete. Click a link to preview each project or watch an overview video for projects #1-#10 (1:18), projects #11-#20 (1:32), projects #21-#30 (1:35), and projects #31-#40 (1:45).

Project 1 – Dancing Alone. In this introductory lesson, coders create a silly dance for Scratch Cat using motion blocks. The purpose of this lesson is to introduce young coders to creating algorithmic sequences in ScratchJr. Project 2 – Can’t Stop Dancing. Coders use the repeat block to repeat a silly dance for Scratch Cat using motion blocks. The purpose of this project is to introduce young coders to repeating algorithmic sequences in ScratchJr.
Project 3 – Dance Party. Coders use the start on green flag block to create a silly dance party using motion blocks. The purpose of this project is to introduce young coders to adding sprites in code and triggering algorithms with the green flag in ScratchJr. Project 4 – Starry Night. Coders learn how to use repeat forever blocks with looks and control blocks to create a simulated environment. The purpose of this project is to introduce new blocks and block combinations that are triggered with the green flag.
Project 5 – Under the Sea. Coders review how to use repeat forever blocks with looks and control blocks to create a different simulated environment. The purpose of this project is to continue applying understanding from the previous project to trigger new blocks and block combinations with the green flag. Project 6 – Fidget Spinner. Coders create their own fidget spinner sprite using the paint editor and motion blocks to animate their fidget spinner when they press the start on tap trigger. The purpose of this project is to introduce coders to creating their own sprites and the start on tap trigger.
Project 7 – Outer Space. Coders use a variety of blocks and sprites to create their own interactive diorama on outer space. The purpose of this project is to continue applying understanding from previous projects. Project 8 – Animal House. Coders use a variety of blocks and sprites to create their own interactive diorama about animals on a farm. The purpose of this project is to introduce coders to the sound blocks.
Project 9 – Musical Instruments. Coders will trigger sound blocks to play a musical instrument made out of different sprites. The purpose of this project is to review creating sprites and triggering sound blocks when a sprite is tapped. Another purpose of this project is to also introduce remixing. Project 10 – Randomized Synthesis Project. Coders storyboard a project based on randomized idea(s) and create a project based on their storyboard. The purpose of this project is to synthesize understandings into a project with up to three randomized ideas.
Project 11 – Dance Fever. Coders will use the start on bump block to create a contagious dance party using motion blocks. The purpose of this project is to introduce young coders to triggering algorithms using the start on bump block. Project 12 – Animated Card. Young coders apply their understandings from previous projects to create an animated card. The purpose of this project is to reinforce understandings from previous projects within a new context. This project can be repeated throughout the year for various events, holidays, birthdays, to give thanks, or as an act of kindness.
Project 13 – Haunted House. Coders use a variety of blocks and sprites to create their own interactive diorama about a haunted house. The purpose of this project is to review creating sprites and triggering algorithms when a sprite is tapped. Project 14 – Look Both Ways. Coders use a variety of blocks and sprites to create a short story with a moral. The purpose of this project is to apply previously learned concepts in a new context. This project can be adapted to any short story with a moral.
Project 15 – Race to the Finish. Coders use a variety of blocks and sprites to create a racing game and a short story about a race. The purpose of these projects is to apply previously learned concepts in a new context to create their first game and a short story, as well as introduce the say block. Project 16 – I’m Sooo Hungry. Coders use a variety of blocks and sprites to create a short story about a hungry sprite. The purpose of this project is to apply previously learned concepts in a new context and to review how to trigger algorithms when a sprite is bumped.
Project 17 – My Friends and Family. Coders use a variety of blocks and sprites to create their own interactive diorama about their friends and family. The purpose of this project is to reinforce the concept of parallelism to trigger two or more algorithms simultaneously. Project 18 – When I Grow Up. Coders use a variety of blocks and sprites to create their own interactive diorama about when they grow up. The purpose of this project is to reinforce the concept of parallelism to trigger two or more algorithms simultaneously.
Project 19 – Knock, Knock. Coders use a variety of blocks and sprites to create their own knock, knock joke. The purpose of this project is to reinforce using the wait block to accurately time algorithms running in parallel. Project 20 – Randomized Synthesis Project. Coders storyboard a project based on randomized idea(s) and create a project based on their storyboard. The purpose of this project is to synthesize understandings into a project with up to three randomized ideas.
Project 21 – Alien Planet. Coders use a variety of blocks and customized sprites to create their own interactive diorama about an alien planet. The purpose of this project is to review changing or creating sprites using the paint editor. Project 22 – There’s a Monster Under my Bed. Coders use a variety of blocks and sprites to create a short story about a monster under the bed (or in the closet). The purpose of this project is to apply previously learned concepts in a new context and to learn how to modify a backdrop to make it look like nighttime.
Project 23 – In the Future. Coders use a variety of blocks and sprites to create a interactive diorama about their predictions for the future. The purpose of this project is to apply previously learned concepts in a new context (e.g., modifying sprites, parallelism, events, etc.). Project 24 – Animate My Name. Coders use a variety of blocks to animate each letter of their name (or vocabulary words). The purpose of this project is to review creating sprites using the paint editor.
Project 25 – Jungle. Coders use a variety of blocks and customized sprites to create their own interactive diorama about a jungle. The purpose of this project is to reinforce the concept of parallelism to trigger two or more algorithms simultaneously. Project 26 – My Aquarium. Coders use a variety of blocks and sprites to create a interactive diorama about an aquarium. The purpose of this project is to apply previously learned concepts in a new context (e.g., creating or modifying sprites, parallelism, events, etc.).
Project 27 – Dribble a Ball. Coders use a variety of blocks in parallel to create simulations (e.g., dribbling a ball). The purpose of this short project is to apply previously learned understandings in order to simulate motion. Project 28 – Rainy Day. Coders learn how to use the “go to page” blocks to create a multi-page story about a rainy day. The purpose of this project is to introduce coders to the “go to page” blocks and to apply previous understandings across multiple pages.
Project 29 – A Day as a Pirate. Coders use a variety of blocks and sprites to create a multi-page story about a day as a pirate. The purpose of this project is to reinforce the “go to page” blocks and to apply previous understandings across multiple pages. Project 30 – Randomized Synthesis Project. Coders storyboard a project based on randomized idea(s) and create a project based on their storyboard. The purpose of this project is to synthesize understandings into a project with up to three randomized ideas.
Project 31 – Desert. Coders use a variety of blocks and sprites to animate a mini research project about the desert. The purpose of this project is to introduce using the message blocks with multiple sprites and pages. Project 32 – Oh No, We’re Super Tiny! Coders use a variety of blocks and sprites to create a multi-page story about being very tiny. The purpose of this project is to reinforce the “go to page” blocks and to apply previous understandings across multiple pages.
Project 33 – If Animals Could Talk. Coders review and apply a variety of blocks and sprites to animate a multi-page project about talking animals. The purpose of this project is to review using the message blocks with multiple sprites and pages. Project 34 – To the Moon. Coders revisit a previously created project about outer space to add a short story about travelling to outer space. The purpose of this project is to apply newly acquired understandings to a prior project.
Project 35 – Animate a Joke. Coders use a variety of blocks and sprites to animate multiple jokes. The purpose of this project is to reinforce understandings of storyboarding multiple pages and applying prior understandings into a project of interest. Project 36 – The Story of the Stinky Robot. Coders use a variety of blocks and sprites to create a multi-page story about a stinky robot. The purpose of this project is to apply previous understandings across multiple pages.
Project 37 – A Day at the Beach. Coders use a variety of blocks and sprites to create a multi-page story about a day at the beach. The purpose of this project is introduce multiple ways to have a sprite appear to switch costumes. Project 38 – On My Way to the Party. Coders revisit a previously created project about a dance party to add a short story about travelling to the dance party. The purpose of this project is to apply newly acquired understandings to a prior project.
Project 39 – Pass it On. Coders engage in a multi-day project where they create the introduction to a short story and then pass their project on to be finished by their peers. The purpose of this project is encourage young coders to communicate and learn from their peers. Project 40 – Randomized Synthesis Project. Coders storyboard a project based on randomized idea(s) and create a project based on their storyboard. The purpose of this project is to synthesize understandings into a project with up to three randomized ideas.

Grades 3+ Project Alignment and Outlines (Scratch)

In this sequence of projects for Scratch, we gradually introduce a variety of practices and concepts while simultaneously introducing coders to a variety of blocks and tools in Scratch. Each project is aligned with the algorithms and programming standards developed by the Computer Science Teachers Association (CSTA). Below is a summary of the standards embedded within at least one of the projects, as well as a description of each project that may take several classes to complete. Click a link to preview each project or watch an overview video for projects #1-#10 (1:40), projects #11-#20 (1:48), and projects #21-#30 (1:44).

Project 1 – Animate Your Name. In this introductory project, coders create their name using letter sprites and use code to animate each letter when clicked. The purpose of this project is to introduce coders to creating simple algorithms using a small number of blocks in Scratch. Project 2 – Interactive Collage. Coders create an interactive collage that explains what they like when a sprite is clicked. The purpose of this project is to reinforce understanding of the previously introduced blocks while introducing the Say block and further getting to know the coders you work with.
Project 3 – Jump Scare Slideshow. Coders learn how to create a jump scare slideshow as a fun prank. The purpose of this project is to introduce using control blocks to cycle through backdrops and eventually create a jump scare. Project 4 – Knock, Knock. Coders will unscramble a knock knock joke, then create their own jokes using two sprites. The purpose of this project is to introduce using wait blocks to simulate two sprites talking with each other.
Project 5 – What Can You Create – Introduction. This challenge asks coders to use a limited selection of block types within an unlimited number of sprites to create something interesting. The purpose of this challenge is to encourage coders to think creatively about block combinations to better understand algorithmic sequences. Project 6 – Animated Card. Coders apply their understandings from previous projects to create an animated card. The purpose of this project is to reinforce understandings from previous projects within a new context. This project can be repeated throughout the year for various events, holidays, birthdays, to give thanks, or as an act of kindness.
Project 7 – A Friend of Mine. Coders learn how to remix a project that introduces a friend, historical figure, or imaginary person. The purpose of this project is to introduce coders to remixing projects and to build on the understandings from previous projects. Project 8 – Virtual Museum. Coders collaboratively research and create a virtual museum that responds when a user clicks on a sprite. The purpose of this project is to review understandings from the previous projects and prepare coders for the following project in the suggested sequence (No Touching!).
Project 9 – No Touching! Coders create an interactive painting that respond when different parts are clicked. The purpose of this project is to introduce duplicating and editing a sprite, as well as applying previously used blocks in a new context. Project 10 – Story About Me. Coders select from a variety of starter prompts, storyboard their story, then code a story about themselves. The purpose of this synthesis project is to storyboard a project and then apply their understandings into a project of interest.
Project 11 – Photo Editor. Coders create an photo editor app that alters the appearance of a photo when various buttons are clicked. The purpose of this project is to introduce how to broadcast and receive messages.   Project 12 – Photo Booth. Coders apply their understandings of broadcasting and receiving messages to create an interactive photo booth. The purpose of this project is to reinforce understandings of messages through a remix project focusing on adding user controls.
Project 13 – Beatbox Machine. Coders create a project that allows them to make music with their faces when certain keys on a keyboard are pressed. The purpose of this project is to introduce triggering algorithms with specific keyboard events. Project 14 – What Can You Create – Music. This challenge asks coders to use a limited selection of block types within an unlimited number of sprites to create something musical. The purpose of this challenge is to encourage coders to think creatively about block combinations to better understand algorithmic sequences.
Project 15 – Let’s Dance. Coders create a project that causes sprites to dance to repeated background music. The purpose of this project is to introduce timing algorithms to repeated music. Project 16 – Character Builder. Coders learn how to design custom costumes to create a customized character builder for a selected theme. The purpose of this project is to reinforce understandings of messages while introducing new features in Scratch.
Project 17 – An Amazing Maze Game. Coders create a player controlled maze game with multiple, custom levels. The purpose of this project is to introduce conditional statements (if blocks) to create player controls, while reinforcing how to use the image editor to design mazes. Project 18 – Scenic Walk. Coders create a scenic walk where a sprite walks between backdrops to describe or introduce each scene. The purpose of this project is to introduce the when backdrop switches to block to show and hide sprites on specific backdrops.
Project 19 – Award Acceptance Speech. Coders combine their understandings from previous projects to storyboard and create an award acceptance speech. The purpose of this project is to storyboard a project, apply their understandings into a project of interest, and learn a couple of new tools and blocks. Project 20 – Coder Interview. Coders select from a variety of starter questions, storyboard their interview, then code an interview about what they learned in Scratch. The purpose of this synthesis project is to storyboard a project and then apply their understandings into a project of interest.
Project 21 – Nyan Simulator. Coders create a Nyan Cat simulator that causes a cat to fly around the screen while drawing rainbows. The purpose of this project is to introduce a variety of pen blocks by combining them with previous understandings. Project 22 – Pumpkin Carver. Coders create a pumpkin carver simulator that allows users to “carve” a pumpkin with their mouse. The purpose of this project is to introduce creating a drawing application using pen blocks by combining them with previous understandings.
Project 23 – What Can You Create – Drawing. This challenge asks coders to use a limited selection of block types within an unlimited number of sprites to create art. The purpose of this challenge is to encourage coders to think creatively about block combinations to better understand algorithmic sequences. Project 24 – Carve a Pumpkin with Code. Coders continue to develop their understanding of pen blocks by creating algorithms to carve pumpkins. This purpose of this project is to reinforce understandings of how to draw shapes with code.
Project 25 – Music Player. Coders combine their previous understandings of creating interactive buttons to create a music player with multiple buttons. The purpose of this project is to reinforce understandings of modularity by combining previous understandings within a new context. Project 26 – Blinking Maze Game. Coders create a player controlled blinking maze game with multiple, custom levels. The purpose of this project is to reinforce understandings of the previous maze game, while introducing new mechanics.
Project 27 – Sprite Catcher. Coders combine their understandings from previous projects to create a sprite catcher game. The purpose of this project is to reinforce understandings of modularity in a new context. Project 28 – Animate a Joke. Coders combine understandings from several prior projects to animate a joke. The purpose of this project is to reinforce prior understandings with a focus on modularity.
Project 29 – Interactive Store Display. Coders combine their understandings from previous projects to storyboard and create an interactive story display. The purpose of this project is to storyboard a project, apply their understandings into a project of interest, and experiment with new tools and blocks. Project 30 – Superhero(ine) Project. Coders select from a variety of starter questions, storyboard their superhero(ine) project, then code a story or game. The purpose of this synthesis project is to storyboard a project and then apply their understandings into a project of interest.

We appreciate your questions and feedback as we continue to update and improve our curriculum! To submit a question or provide feedback, fill out our Curriculum Questions and Feedback form.