It’s time to choose your own adventure! Your assignment, quite simply, is to implement in Scratch, at, any project of your choice, be it an interactive story, game, animation, or anything else, subject only to the following requirements:

  • Your project must use at least two sprites, at least one of which must not be a cat.
  • Your project must have at least three scripts total (i.e., not necessarily three per sprite).
  • Your project must use at least one conditional, at least one loop, and at least one variable.
  • Your project must use at least one custom block that you have made yourself (via Make a Block), which must take at least one input.
  • Your project should be more complex than most of those demonstrated in lecture (many of which, though instructive, were quite short) but it can be less complex than Oscartime and Ivy’s Hardest Game.

To meet these requirements, your project should probably use a few dozen puzzle pieces overall. And your code should ideally be not only correct but also well-designed. If one of your scripts is getting a bit long, try to break it up into multiple scripts (each of which does something specific). And try to leverage “abstraction” where possible: if you can imagine giving a descriptive name to a sequence of blocks (e.g., meow), those could probably be moved to a custom block!

If you’d like some inspiration from past students, here are just a few:

You might find these tutorials or starter projects helpful. And you’re welcome to explore for inspiration. But try to think of an idea on your own, and then set out to implement it. However, don’t try to implement the entirety of your project all at once: tackle one piece at a time, just as we did in lecture. In other words, take baby steps: write a bit of code (i.e., drag and drop a few puzzle pieces), test, write a bit more, test, and so forth. And select File > Save now every few minutes so that you don’t lose any work!

If, along the way, you find it too difficult to implement some feature, try not to fret; alter your design or work around the problem. If you set out to implement an idea that you find fun, odds are you won’t find it too hard to satisfy the above requirements.

If you decide to import any backdrops, costumes, or sounds into your project, do take care to cite their origin with a comment!

Alright, off you go. Make us proud!

Once finished with your project, select File > Save now one last time. Then select File > Save to your computer and keep that file so that you can submit it. If prompted by your computer to Open or Save the file, be sure to Save it.

How to Submit

Step 1 of 3

Submit this form.

Step 2 of 3

This step assumes that you’ve downloaded your project as a file whose name ends in .sb3.

  1. Go to CS50’s Gradescope page.
  2. Click “Problem Set 0: Scratch”.
  3. Drag and drop your .sb3 file to the area that says “Drag & Drop”. (Be sure that your file ends with .sb3! If you upload a file with a different extension, the autograder likely will fail when trying to run it, and ensuring you have uploaded files with the correct filename is your responsibility!)
  4. Click “Upload”.

You should see a message that says “Problem Set 0: Scratch submitted successfully!” You may not see a score just yet, but if you see the message then we’ve received your submission!

Step 3 of 3

Add your Scratch project to the course’s gallery for others to see, if you’d like, as follows!

  1. Visit and click on your Scratch project.
  2. Click See inside.
  3. Click Share atop the page.
  4. Highlight and copy your project’s URL.
  5. Visit, paste your URL under Add Projects, and click Add by URL!