"Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web. As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively."

iPad Apps: ScratchJr & Hopscotch

Hour of Code

Days 1 & 2

  • Watch the Scratch Intro Video
  • Teacher demos basic Scratch skills
  • 3rd graders create Scratch accounts
  • 4th graders test old Scratch accounts
  • 4th graders help 3rd graders explore Scratch
    • Sharing - 1 new/surprising/cool feature your group found

Days 3 & 4

Day 5

  • Sharing
    • Sharing to Scratch Studio - Simple Shapes Challenge Studio
    • Positive Commenting & Clarifying Questions
    • Copying from one user's account to the partner's account - Remixing

Days 6 & 7

Day 8

  • Commenting & Liking
  • Remixing, Reusing, & Modularizing - Creating a flower garden, fireworks display or snowflake storm by borrowing coding from classmates through a shared studio (Flower, Firework, or Snowflake Studio)

Days 9 & 10

Day 11-13

Days 14-18

  • Pong Challenge
  • Share your draft or finished game with friends or the class - BCS Pong Studio
  • Liking, Favoriting & Commenting
    • I really liked ...
    • We really loved ...
    • Your idea to ... was clever (cool, awesome, unique, etc.).
    • Your game is so much fun (challenging, entertaining, etc.)!
    • I/we would love to incorporate (use, borrow, remix, etc.) your idea of ...

Days 19-20

  • Embedding Scratch projects on a wiki portfolio - Use ScratchPortfolio template
    • Remix to your own account
  • Reflecting on Scratch/Programming

Optional Challenges for Home




  • Understanding and appreciating FAILure
  • Computational Concepts
    • sequence - identifying a series of steps for a task
    • loops - running the same sequence multiple times
    • parallelism - making things happen at the same time
    • events - one thing causing another thing to happen
    • conditionals - making decisions based on conditions
  • Computational Practices
    • being iterative and incremental - developing a little bit, then trying it out, then developing some more
    • testing and debugging - making sure that things work and finding and fixing mistakes
      • problem-solving technique - Guess & Check
    • reusing and remixing - making something by building on what others or you have done
    • abstracting and modularizing - building something large by putting together collections of smaller parts
    • Step by step coding (brute force and awkwardness) vs Clever Coding - What is the least number of blocks you can use? What is the most elegant solution?
    • Recipes vs Hacking/Tweaking/Modifying/Personalizing

Student Projects