The Aliens have landed
Experience: 2nd year, 1st quarter
Practice: Developing and Using Abstractions, Creating computational artifacts, Testing and refining computational artifacts, Communicating about computing
Concept: Control, Algorithms, Modularity, and Program Development
Length: 60+
Overview and Purpose
Coders use a variety of blocks and sprites to create an interactive story about giving a gift to an alien visiting Earth. The purpose of this project is to reinforce understanding of message blocks.
Project Extensions
Suggested extensions
Switch costumes (15+ minutes)
*5+ demonstration*
Demonstrate how to use show and hide blocks with message blocks to make it so one sprite hides in the same location as another sprite that shows to make it appear as though the sprite is changing costumes. Emphasize the importance of making sure the sprites are in the same location. For example, making them hide into a doorway, then the new sprite (costume) shows in the same location to make it appear as though the costume changed when the came back out of the door. See the video for a demonstration.
Another option demonstrated in the video involves changing costumes by switching pages to the same backdrop. Although this option works, you have to make sure every sprite is perfectly lined up to do the transition (which may require some iteration to get the timing correct if the sprite is moving). Each method can work really well depending on the project and purpose.
10+ minute application and exploration
Encourage coders to try and experiment with using one of the two methods for making a sprite appear to change costumes (it doesn’t have to relate to this project’s theme). Facilitate by walking around and asking questions about their processes.
Resources, suggestions, and connections
Standards reinforced:
- 1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem
- 1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
Practices reinforced:
- Testing and refining computational artifacts
- Creating computational artifacts
Concepts reinforced:
- Algorithms
- Control
Video: Switching costumes (3:20)
Sample questions:
- When might you switch costumes in your projects?
- What kind of blocks might we use when switching costumes?
- How can we hide the costume change?
- For example, moving off the page, hiding behind another sprite, appearing to hide in a door or container, etc.
Creating a transition overlay (Advanced) (15+ minutes)
*5+ minute intro demonstration*
Demonstrate how other projects (e.g., A Day at the Beach and The Story of the Stunky Robot) use a transition overlay in the project. Use the video to learn the following process:
- Demonstrate how to create a blank sprite that is all one color.
- Next, demonstrate creating another blank sprite of the same color, but add your text on one side of the sprite (e.g., something like “The End” or “2 Hours Later”).
- Use grow blocks to make the sprites as large as possible.
- Drag the blank sprite over to one side of the screen, then drag the sprite with the text on the other side of the screen (the text should now appear centered).
- Use show and hide blocks in an algorithm attached to either the start on green flag or start on message blocks to make both overlays show or hide.
10+ minute application and and 1-on-1 facilitating
Quickly review each of the steps for creating a transition overlay (1 - create a blank sprite; 2 - create a sprite with text; 3 - make the sprites big; 4 - position the sprites on the screen; and 5 - trigger the transitions with code). Leave your example code on the screen and give coders time to replicate the process for creating a transition overlay. Facilitate 1-on-1 as needed, but encourage coders to work together.
Standards reinforced:
- 1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem
- 1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
Practices reinforced:
- Testing and refining computational artifacts
- Creating computational artifacts
Concepts reinforced:
Video: Creating a transition overlay (3:38)
Resource: Paint Editor Guide
Facilitation suggestion: This process might be a little complicated for younger coders; however, you can group coders together in small groups to collaboratively create their own transition screen. If coders complete their stinky robot early, encourage them to begin working on their storyboard.
Advanced reverse engineering even more ideas (10+ minutes each):
*1 minute intro demonstration*
Demonstrate one of the following example sprites on the board without displaying the code (they are in order of complexity):
Page 1
Page 2
Page 3
- Most of the code on this page is about making sprites respond to interaction with another sprite (e.g., when tapped)
- Interaction
- Spaceship
Page 4
4+ minute reverse engineering and peer-to-peer coaching
Ask coders to see if they can figure out how to use their code blocks to create an algorithm that makes a sprite do something similar to what was demonstrated. Facilitate by walking around and asking guiding questions.
1 minute explanation demonstration
If coders figured out how to get their sprite to do something similar, have them document in their journal, share with a partner, or have a volunteer show the class their code and thought processes that led to the code. Otherwise, reveal the code, walk through each step of the algorithm, and explain any new blocks.
4+ minute application and exploration
Encourage coders to try something similar, and leave your code up on display while they work. Facilitate by walking around and asking questions about how coders might change their code so it’s not the same as yours.
Standards reinforced:
- 1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem
- 1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
- 1A-AP-14 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
Practices reinforced:
- Communicating about computing
- Testing and refining computational artifacts
- Creating computational artifacts
Concepts reinforced:
- Algorithms
- Control
Video: Suggestions for reverse engineering (4:25)
Note: It is not recommended to show each of these ideas at once, but to show one idea, give time for application and exploration, show another idea, give time for application and exploration, etc. This process could take multiple classes. Also, some of these examples may be difficult for young coders, so go slow and encourage copying and modifying code as it’s good practice.
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?
- What trigger blocks do you think I used for that sprite?
- Did I use one trigger block or more than one?
- What makes you think that?
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?
Adding even more (5+ minutes):
If time permits, encourage coders to explore what else they can create in ScratchJr. Although future lessons will explore different features and blocks, early experimentation should be encouraged.
While facilitating this process, monitor to make sure coders don’t stick with one feature for too long. In particular, coders like to edit their sprites/backgrounds by painting on them or taking photos. It may help to set a timer for creation processes outside of using blocks so coders focus their efforts on coding.
Standard reinforced:
- 1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem
Concepts reinforced:
- Algorithms
- Control
Suggested questions:
- What else can you do with ScratchJr?
- What do you think the other blocks do?
- Can you make your sprites do ____?
- What other sprites might we use in an interactive story?
- What other sounds might we hear in your interactive story?
- Can you customize how your sprites look?
Similar projects:
Have coders explore the sample projects built into ScratchJr (or projects from other coders), and ask them to find code similar to what they worked on today.
Standard reinforced:
- 1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem
Practice 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,” or “find three projects that each do one thing you would like to add to your project.”
Generic questions:
- 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?
- How might we change the backdrop of this project?
- What other sound or looks blocks might we use in this project?
- Can you turn this project into an interactive story?
- How could we add message blocks to this project?
Differentiation
Less experienced coders
ScratchJr is simple enough that it can be picked up relatively quickly by less experienced coders. However, for those who need additional assistance, pair them with another coder who feels comfortable working cooperatively on a project. Once coders appear to get the hang of using ScratchJr, they can begin to work independently.
More experienced coders
Because ScratchJr is not inherently difficult, experienced coders might get bored with simple projects. To help prevent boredom, ask if they would like to be a “peer helper” and have them help out their peers when they have a question. If someone asks for your help, guide them to a peer helper in order to encourage collaborative learning.
Another approach is to encourage experienced coders to experiment with their code or give them an individual challenge or quest to complete within a timeframe.
Debugging Exercises (1-5+ minutes each)
Debugging exercises
Resources and suggestions
Standards reinforced:
- 1A-AP-14 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops
Practices reinforced:
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
Display one of the debugging exercises and ask the class what they think we need to fix in our code to get our project to work correctly. Think out loud what might be wrong (e.g., did I use the wrong trigger block, did I forget to repeat something, did I put a block in the wrong place, am I missing blocks, etc.). Ask the class to talk with a neighbor how we might fix the code. Have a volunteer come up to try and debug the code (or demonstrate how). Repeat with each debugging exercise.
Unplugged Lessons and Resources
Standards reinforced:
- 1A-AP-08 Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks
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.
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?
- How did you help other coders with their projects?
- What did you learn from other coders today?
- What’s a fun algorithm you created today?
- What’s something you could create next time?
- What questions do you have about coding?
- What was challenging today?
- How did your storyboard help you plan out your project?
- What did you end up adding that you didn’t originally plan for in your storyboard?
- How did you make your story interactive?
- How might you add message blocks to projects you already created?
- How could you use message blocks to trigger more than one sprite at the same time?
- How could you send and receive message blocks in the same sprite?
- What questions do you have about message blocks?
- More sample prompts (may need adapting for younger coders)
Sharing suggestions
Standards reinforced:
- 1A-AP-15 Using correct terminology, describe steps taken and choices made during the iterative process of program development
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.