Pass it On (Story Starters)
Experience: 1st year, 4th quarter
Practice: Creating computational artifacts, Testing and refining computational artifacts, and Communicating about computing
Concept: Algorithms, Control, Modularity, and Program Development
Length: 50-100+
Overview and Purpose
Coders engage in a multi-day project where they create or remix an introduction to a short story. The short version of this project is completed by one coder, while the longer version involves coders passing their incomplete project to a peer, who adds to their story. The purpose of this project is to encourage coders to communicate and learn from their peers.
Project Extensions
Suggested extensions
Create a project starter (one full class):
Either hand out paper, use handheld whiteboards, or use a painting app on a device to encourage coders to storyboard what they are going to create for the first scene of a starter project that will be used with other classes.
Encourage coders to draw or write out not only the kinds of sprites and backgrounds they’re going to use, but the kind of code that will accompany them.
When coders are ready, have them show you their storyboard and ask questions for clarification of their intent (which may change once they start coding and get more ideas). If approved, they may continue on to the next step (creating); otherwise they can continue to think through and work on their storyboard.
Coders will spend the remainder of the class creating their project starter, which can be shared on a class studio for other coders to remix.
Resources, suggestions, and connections
Standards reinforced:
- 1A-AP-12 Develop plans that describe a program’s sequence of events, goals, and expected outcomes
Practices reinforced:
- Creating computational artifacts
Concept reinforced:
- Program development
Resource: Example storyboard templates
Suggested storyboard questions:
- What will happen in the project starter?
- What backdrop will you use?
- What sprites are going to be in the first scene?
- What will the sprites do?
- What kind of code might we use to do that?
- When will the scene end?
- What are all of the ways we can interact with the story?
- In each of these ways we can interact with the story, how might we use code to create that interaction?
Suggestion: If coders need additional help, perhaps pair them with someone who might help them with the storyboarding process. Or, you could have coders meet with a peer to discuss their storyboard before asking to share it with yourself. This can be a great way to get academic feedback and ideas from a peer.
Advanced reverse engineering even more ideas (20+ minutes each):
15+ minute reverse engineering and peer-to-peer coaching
Ask coders to try and reverse engineer one of the sprites from a starter project without looking at the code. Encourage peer-to-peer coaching as you also facilitate by walking around and asking guiding questions (they may need to practice this).
If coders figure out how to get their sprite to do something similar, have them document in their journal, share with a partner, or attempt reverse engineering another sprite in the same or different project starter.
5+ minute peer explanation and demonstration
Ask coders to find a partner who is currently working on their project starter as their main project and have them reveal the code, walk through each step of the algorithm, and explain any new blocks. Encourage coders to ask each other questions about the code.
Standards reinforced:
- 1B-AP-10 Create programs that include sequences, events, loops, and conditionals
- 1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process
- 1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended
Practices reinforced:
- Communicating about computing
- Creating computational artifacts
- Fostering an inclusive computing culture
- Testing and refining computational artifact
Concepts reinforced:
- Algorithms
- Control
Video: Suggestions for reverse engineering (4:25)
Alternative suggestion: If reverse engineering is too difficult for the coders you work with, you could display the source code and have coders predict what will happen.
Suggested guiding questions:
- What kind of blocks do you think you might need to do something like that?
- Do you see a pattern where we might use a repeat?
- If so, what kind of repeat?
- When combining ideas, what happens if you use multiple event blocks in the same sprite? (Note: this concept is referred to as parallel computing)
- What are the benefits/drawbacks of using multiple event blocks?
Potential discussion: There is not always one way to recreate something with code, so coders may come up with alternative solutions to your own code. When this occurs, it can open up an interesting discussion or journal reflection on the affordances and constraints of such code.
Suggested application and exploration questions:
- What other code blocks could you use?
- What other sprites might use similar code?
- What other code could we add to this project?
Modify the original code (30+ minutes, or at least one class):
If time permits and coders are interested in this project, encourage coders to go into their final project and alter the original code that other people created by adding or changing the code to do something even more interesting. When changes are made, encourage coders to test their refinements and alter their comments to reflect the changes (either in the moment or at the end of class).
Standards reinforced:
- 1B-AP-10 Create programs that include sequences, events, loops, and conditionals
Practices reinforced:
- Creating computational artifacts
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
Facilitation Suggestion: Some coders may not thrive in inquiry based approaches to learning, so we can encourage them to use the Tutorials to get more ideas for their projects; however, we may need to remind coders the suggestions provided by Scratch are not specific to our projects, so it may create some unwanted results unless the code is modified to match our own intentions.
Suggested questions:
- What can you change in the original code to make this project even more interesting?
- How could you simplify or clean up the original code?
- What other sights, sounds, or interactions could you add to make the project even more interesting?
Similar projects:
Have coders explore the code of other peers in their class, or on a project studio dedicated to this project. Encourage coders to ask questions about each other’s code. When changes are made, encourage coders to alter their comments to reflect the changes (either in the moment or at the end of class).
Watch this video (3:20) if you are unsure how to use a project studio.
Standards reinforced:
- 1B-AP-10 Create programs that include sequences, events, loops, and conditionals
- 1B-AP-12 Modify, remix, or incorporate portions of an existing program into one's own work, to develop something new or add more advanced features
Practices reinforced:
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
Note: Coders may need a gentle reminder we are looking at other projects to get ideas for our own project, not to simply play around. For example, “look for five minutes,” “look at no more than five other projects,” “find three projects that each do one thing you would like to add to your project,” or “find X number of projects that are similar to the project we are creating.”
Generic questions:
- What are some ways you can expand this project beyond what it can already do?
- How is this project similar (or different) to something you worked on today?
- What blocks did they use that you didn’t use?
- What do you think those blocks do?
- What’s something you like about their project that you could add to your project?
micro:bit extensions:
Note: the micro:bit requires installation of Scratch Link and a HEX file before it will work with a computer. Watch this video (2:22) and use this guide to learn how to get started with a micro:bit before encouraging coders to use the micro:bit blocks.
Much like the generic Scratch Tips folder linked in each Coder Resources document, the micro:bit Tips folder contains video and visual walkthroughs for project extensions applicable to a wide range of projects. Although not required, the micro:bit Tips folder uses numbers to indicate a suggested order for learning about using a micro:bit in Scratch; however, coders who are comfortable with experimentation can skip around to topics relevant to their project.
Standards reinforced:
- 1B-AP-09 Create programs that use variables to store and modify data
- 1B-AP-10 Create programs that include sequences, events, loops, and conditionals
- 1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process
- 1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended
Practices reinforced:
- Recognizing and defining computational problems
- Creating computational artifacts
- Developing and using abstractions
- Fostering an inclusive computing culture
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
- Modularity
- Program Development
- Variables
Folder with all micro:bit quick reference guides: Click here
Additional Resources:
- Printable micro:bit cards
- Micro:bit’s Scratch account with example projects
Generic questions:
- How can you use a micro:bit to add news forms of user interaction?
- What do the different micro:bit event blocks do and how could you use them in a project?
- How could you use the LED display for your project?
- What do the tilt blocks do and how could you use them in your project?
- How could you use the buttons to add user/player controls?
- How might you use a micro:bit to make your project more accessible?
Differentiation
Less experienced coders
If coders struggle with this kind of project, pair them with other coders with more experience or understanding. Just make sure the lesser experienced coder “drives” the mouse and the more experienced coder can “navigate.” It might also help less experienced coders if they have time to see what others are creating for their stories; encourage coders to walk around and see what others are doing and then adding similar code in their projects.
More experienced coders
Challenge coders to figure out how to recreate a project starter without looking at the code of the original project. If coders get stuck reverse engineering, use guiding questions to encourage them to uncover various pieces of the project. Alternatively, if you are unable to work with someone one-on-one at a time of need, they can click “see inside” and read the comments in the code to learn how each part of the project starter works.
If you are working with other coders and want to get more experienced coders started with reverse engineering, have those who are interested watch this video (2:30) to learn how to reverse engineer a project.
Debugging Exercises (1-5+ minutes each)
Debugging exercises
Why does Captain Monet's mouth move after talking but not when she is talking?
Why doesn't Aiden ask the question about how humans went extinct?
Why doesn't the Referee sprite count down before saying "Sport!" at the end?
Why does this conversation seem out of order?
Why don't we ever hear the creepy sound that woke Boo up?
- We need to use the “Setup” and Creepy sound” blocks before our first “say” block. This will reset the sprite and then play the sound.
- Note, the “wait 1 seconds” block is optional
Why does Champ99 only say one thing and then move his mouth forever?
Resources and suggestions
Standards reinforced:
- 1B-AP-15 Test and debug (identify and fix errors) a program or algorithm to ensure it runs as intended
Practices reinforced:
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
Suggested guiding questions:
- What should have happened but didn’t?
- Which sprite(s) do you think the problem is located in?
- What code is working and what code has the bug?
- Can you walk me through the algorithm (steps) and point out where it’s not working?
- Are there any blocks missing or out of place?
- How would you code this if you were coding this algorithm from Scratch?
- Another approach would be to read the question out loud and give hints as to what types of blocks (e.g., motion, looks, event, etc.) might be missing.
Reflective questions when solved:
- What was wrong with this code and how did you fix it?
- Is there another way to fix this bug using different code or tools?
- If this is not the first time they’ve coded: How was this exercise similar or different from other times you’ve debugged code in your own projects or in other exercises?
Unplugged Lessons and Resources
Although each project lesson includes suggestions for the amount of class time to spend on a project, BootUp encourages coding facilitators to supplement our project lessons with resources created by others. In particular, reinforcing a variety of standards, practices, and concepts through the use of unplugged lessons. Unplugged lessons are coding lessons that teach core computational concepts without computers or tablets. You could start a lesson with a short, unplugged lesson relevant to a project, or use unplugged lessons when coders appear to be struggling with a concept or practice.
List of 100+ unplugged lessons and resources
Incorporating unplugged lessons in the middle of a multi-day project situates understandings within an actual project; however, unplugged lessons can occur before or after projects with the same concepts. An example for incorporating unplugged lessons:
Lesson 1. Getting started sequence and beginning project work
Lesson 2. Continuing project work
Lesson 3. Debugging exercises and unplugged lesson that reinforces concepts from a project
Lesson 4. Project extensions and sharing
Reflection and Sharing
Reflection suggestions
Coders can either discuss some of the following prompts with a neighbor, in a small group, as a class, or respond in a physical or digital journal. If reflecting in smaller groups or individually, walk around and ask questions to encourage deeper responses and assess for understanding. Here is a sample of a digital journal designed for Scratch (source) and here is an example of a printable journal useful for younger coders.
Sample reflection questions or journal prompts:
- How did you use computational thinking when creating your project?
- What’s something we learned while working on this project today?
- What are you proud of in your project?
- How did you work through a bug or difficult challenge today?
- What other projects could we do using the same concepts/blocks we used today?
- What’s something you had to debug today, and what strategy did you use to debug the error?
- What mistakes did you make and how did you learn from those mistakes?
- How did you help other coders with their projects?
- What did you learn from other coders today?
- What questions do you have about coding?
- What was challenging today?
- Why are comments helpful in our projects?
- How is this project similar to other projects you’ve worked on?
- How is it different?
- What happened in your story that you didn’t expect?
- What code did other people use that was interesting to you?
- What did you learn by looking at other people’s code?
- In what ways might users interact with a story?
- More sample prompts
Sharing suggestions
Standards reinforced:
- 1B-AP-17 Describe choices made during program development using code comments, presentations, and demonstrations
Practices reinforced:
- Communicating about computing
- Fostering an inclusive culture
Concepts reinforced:
- Algorithms
- Control
- Modularity
- Program development
Peer sharing and learning video: Click here (1:33)
At the end of class, coders can share with each other something they learned today. Encourage coders to ask questions about each other’s code or share their journals with each other. When sharing code, encourage coders to discuss something they like about their code as well as a suggestion for something else they might add.
Publicly sharing Scratch projects: If coders would like to publicly share their Scratch projects, they can follow these steps:
- Video: Share your project (2:22)
a. Quick reference guide - Video (Advanced): Create a thumbnail (4:17)
a. Quick reference guide