Looking Back
Experience: 1st year, 4th quarter
Practice: Developing and using abstractions, Creating computational artifacts, Collaborating around computing, Testing and refining computational artifacts, and Communicating about computing
Concept: Algorithms, Control, Modularity, and Program Development
Length: 100 +
Overview and Purpose
Coders combine their understandings from previous projects to create a scrapbook synthesis project that reflects on what they did/learned over the year. The purpose of this synthesis project is to reflect on and synthesize prior learning, while also learning how to simulate Polaroid pictures developing.
Preparation (25+ minutes)
Suggested preparation
Customizing this project for your class (15+ minutes): Remix the project example to include your own recorded narrations and list of favorite projects (or whatever theme you’ve selected for this project).
(10+ minutes) Read through each part of this lesson plan and decide which sections the coders you work with might be interested in and capable of engaging with in the amount of time you have with them. If using projects with sound, individual headphones are very helpful.
Download the offline version of Scratch: Although hopefully infrequent, your class might not be able to access Scratch due to Scratch’s servers going down or your school losing internet access. Events like these could completely derail your lesson plans for the day; however, there is an offline version of Scratch that coders could use when Scratch is inaccessible. Click here to download the offline version of Scratch on to each computer a coder uses and click here to learn more by watching a short video.
Resources for learning more
- BootUp Scratch Tips
- Videos and tips on Scratch from our YouTube channel
- BootUp Facilitation Tips
- Videos and tips on facilitating coding classes from our YouTube channel
- Scratch Starter Cards
- Printable cards with some sample starter code designed for beginners
- ScratchEd
- A Scratch community designed specifically for educators interested in sharing resources and discussing Scratch in education
- Scratch Help
- This includes examples of basic projects and resources to get started
- Scratch Videos
- Introductory videos and tips designed by the makers of Scratch
- Scratch Wiki
- This wiki includes a variety of explanations and tutorials
Getting Started (6-10+ minutes)
Suggested sequence
1. Review and demonstration (2+ minutes):
Begin by asking coders to talk with a neighbor for 30 seconds about something they learned last time; assess for general understanding of the practices and concepts from the previous project.
Explain that today we are going to create a synthesis project that looks back on what you learned or did over the year. Display and demonstrate the sample project (or your own remixed version).
Resources, suggestions, and connections
Practices reinforced:
- Communicating about computing
Video: Project Preview (2:50)
Video: Lesson pacing (1:48)
This can include a full class demonstration or guided exploration in small groups or individually. For small group and individual explorations, you can use the videos and quick reference guides embedded within this lesson, and focus on facilitating 1-on-1 throughout the process.
Example review discussion questions:
- What’s something new you learned last time you coded?
- Is there a new block or word you learned?
- What’s something you want to know more about?
- What’s something you could add or change to your previous project?
- What’s something that was easy/difficult about your previous project?
2. Discuss (3+ minutes):
Have coders talk with each other about how they might create a project like the one demonstrated; in particular, point out the Polaroid developing and ask coders how they might create something similar. If coders are unsure, and the discussion questions aren’t helping, you can model thought processes: “I noticed the sprite moved around, so I think they used a motion block. What motion block(s) might be in the code? What else did you notice?” Another approach might be to wonder out loud by thinking aloud different algorithms and testing them out, next asking coders “what do you wonder about or want to try?”
After the discussion, coders will begin working on their project as a class, in small groups, or at their own pace.
Practices reinforced:
- Communicating about computing
Note: Discussions might include full class or small groups, or individual responses to discussion prompts. These discussions which ask coders to predict how a project might work, or think through how to create a project, are important aspects of learning to code. Not only does this process help coders think logically and creatively, but it does so without giving away the answer.
Example discussion questions:
- What would we need to know to make something like this in Scratch?
- What kind of blocks might we use?
- What else could you add or change in a project like this?
- What code from our previous projects might we use in a project like this?
- What kind of sprites might we see in a project like this?
- What kind of code might they have?
- How could we simulate a Polaroid picture developing?
- Hint: there are two sprites used to simulate this process
3. Remix the original project (1-5+ minutes):
If not yet comfortable with logging in, review how to log into Scratch and remix this project.
If coders continue to have difficulty with logging in, you can create cards with a coder’s login information and store it in your desk. This will allow coders to access their account without displaying their login information to others.
Alternative login suggestion: Instead of logging in at the start of class, another approach is to wait until the end of class to log in so coders can immediately begin working on coding; however, coders may need a reminder to save before leaving or they will lose their work.
Why the variable length of time? It depends on comfort with login usernames/passwords and how often coders have signed into Scratch before. Although this process may take longer than desired at the beginning, coders will eventually be able to login within seconds rather than minutes.
What if some coders log in much faster than others? Set a timer for how long everyone has to log in to their account (e.g., 5 minutes). If anyone logs in faster than the time limit, they can open up previous projects and add to them. Your role during this time is to help out those who are having difficulty logging in. Once the timer goes off, everyone stops their process and prepares for the following chunk.
Project Work (95+ minutes; 2+ classes)
Suggested sequence
4. Create Polaroid costumes (40+ minutes):
2 minute discussion
Either pick a theme for everyone, have coders select from a list of themes (see the column on the right), or allow coders to create their own theme for their scrapbook project. Discuss with a partner how they might remix the Polaroids sprite to include several costumes related to their chosen theme.
5+ minute demonstration
Open up a project that coders previously worked on and click “See Inside” to reveal the code. Right click on the stage and click “save image as” to save the current project view as an image. Open the saved image and explain that saving the stage as an image will save everything that you can see when the project is running. Let everyone know this process works even when the project is running. Demonstrate by press the green flag so the project is running and repeat the process to save another image of the project.
Demonstrate how to open the “Polaroids” sprite’s “Costumes” tab and add one of the images by uploading a new costume. Explain that we want to be able to edit the text on the costume, so you’re going to click the blue button to “Convert to Vector,” then open the “Polaroid frame” costume and copy everything in that costume. Open the new costume and paste the “Polaroid frame” on top of the new costume then change the text so it labels the photo. See the video or quick reference guide on the right for a walkthrough of this process.
33+ minutes to create custom costumes and 1-on-1 facilitating
Give coders plenty of time to create their new costumes using the image editor tools or following the steps outlined above. Encourage peer-to-peer assistance and facilitate 1-on-1 as needed. If coders finish their costumes early, encourage them to begin adding code to their project.
Resources, suggestions, and connections
Standards reinforced:
- 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 artifact
- Creating computational artifacts
Concepts reinforced:
- Program development
Video: Create Polaroid costumes (2:31)
Quick reference guide: Click here
Suggested questions:
- What are some of your favorite projects you worked on this year?
- What did you like about that project and how could you save a picture that highlights your favorite part about that project?
Themes:
- What you learned in Scratch this year
- What you learned in another class
- Your favorite memories growing up
- Your favorite places to visit in town (or around the world)
- How your preferences for a topic changed over time (e.g., how your taste in books, video games, movies, comics, sports, etc. changed over time)
- What you want to experience and learn when you’re older
- Change the perspective from that of the coder to a scrapbook by a historical person (e.g., research a historical figure such as Ada Lovelace and create a scrapbook from her perspective)
- Create a historical scrapbook about a particular place, time period, or event
5. Record narrations (15+ minutes):
2+ minute review
Review how to record a custom sound in the Polaroids sprite. Remind everyone they can highlight their recording when finished and either edit the recording or add different effects to the recording.
13+ minutes to customize their sounds and 1-on-1 facilitating
Give coders time to record narrations for an introduction, each costume in the Polaroids sprite, and a closing. Encourage peer-to-peer assistance and facilitate 1-on-1 as needed. If coders finish recording their narrations, ask them to move on to the next step.
Practices reinforced:
- Testing and refining computational artifacts
- Creating computational artifacts
Video: Record narrations (1:30)
Quick Reference Guide: Click here
Video: Customize sounds (3:21)
Quick Reference Guide: Click here
Important: Coders tend to turn up the volume all the way when listening to recorded sounds. This can damage someone’s hearing. Take a moment to explain the expectations when sharing custom sounds with others (e.g., coders will sit out the remainder of class if they turn up the volume up too loud).
A note on using the “Coder Resources” with your class: Young coders may need a demonstration (and semi-frequent friendly reminders) for how to navigate a browser with multiple tabs. The reason why is because kids will have at least three tabs open while working on a project: 1) a tab for Scratch, 2) a tab for the Coder Resources walkthrough, and 3) a tab for the video/visual walkthrough for each step in the Coder Resources document. Demonstrate how to navigate between these three tabs and point out that coders will close the video/visual walkthrough once they complete that particular step of a project and open a new tab for the next step or extension. Although this may seem obvious for many adults, we recommend doing this demonstration the first time kids use the Coder Resources and as friendly reminders when needed.
6. Code the Polaroid narrations (20+ minutes)
10+ minute partner collaboration
Ask coders to work with a neighbor to figure out how to play each narration when each Polaroid appears in a random location on the screen; as well as the intro and outro narrations. Give time for each pair to implement and test out their algorithms in their own projects.
If coders are unsure how to match the sound to a costume, you can provide a hint that the Character Builder project had an extension that did something similar (see the resources on the right). Also, if coders are stuck trying to figure out how to make several Polaroids appear on the screen, you can give them the hint that they can use one of the pen blocks (i.e., stamp each costume of the Polaroid on the backdrop). Another solution is to use clone blocks; however, that solution is not demonstrated in the example project.
5+ minute small group discussion
Ask each pair to find another pair to share, discuss, and compare their potential solutions, bugs, and questions around coding the Polaroid narrations. When comparing algorithms, encourage groups to ask clarifying questions about their algorithms and decide as a group which algorithm they would like to use for their own project and why.
5+ full group discussion and implementation
Remind everyone there are often many solutions for the same problem. Demonstrate the Polaroids sprite’s code from the example project and ask groups to share out loud how their code is similar or different from the example code. Encourage groups to share their code on the screen or with other nearby groups. Give a couple of minutes for coders to refine their own algorithms before moving to the next section.
Standards reinforced:
- 1B-AP-08 Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
- 1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
- 1B-AP-13 Use an iterative process to plan the development of a program by including others' perspectives and considering user preferences
- 1B-AP-16 Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
Practices reinforced:
- Collaborating around computing
- Communicating about computing
- Creating computational artifacts
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
- Modularity
- Program development
Video: Match sounds to a costume (3:17)
Quick reference guide: Click here
Resource: Example project
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?
- How can you prevent the Polaroids from stacking on top of each other?
7. Simulate a Polaroid developing (20+ minutes)
10+ minute partner collaboration
Ask coders to work with either the same or a different neighbor to figure out how to simulate the Polaroid developing. Give them the hint that both the Polaroids and Overlay sprites need to work together to create this effect (also explain what an overlay is if they are unfamiliar with this term). Give time for each pair to implement and test out their algorithms in their own projects. If coders are stuck on making both sprites work together, you can ask what kind of blocks (i.e., message blocks) can you use to make multiple sprites run their own algorithms in parallel (i.e., at the same time)?
5+ minute small group discussion
Ask each pair to find another pair to share, discuss, and compare their potential solutions, bugs, and questions around simulating a Polaroid developing. When comparing algorithms, encourage groups to ask clarifying questions about their algorithms and decide as a group which algorithm they would like to use for their own project and why.
5+ full group discussion and implementation
Remind everyone there are often many solutions for the same problem. Demonstrate the code from the quick reference guide and ask groups to share out loud how their code is similar or different from the example code. Encourage groups to share their code on the screen or with other nearby groups. Give a couple of minutes for coders to refine their own algorithms.
Standards reinforced:
- 1B-AP-08 Compare and refine multiple algorithms for the same task and determine which is the most appropriate.
- 1B-AP-11 Decompose (break down) problems into smaller, manageable subproblems to facilitate the program development process.
- 1B-AP-13 Use an iterative process to plan the development of a program by including others' perspectives and considering user preferences
- 1B-AP-16 Take on varying roles, with teacher guidance, when collaborating with peers during the design, implementation, and review stages of program development.
Practices reinforced:
- Collaborating around computing
- Communicating about computing
- Creating computational artifacts
- Developing and using abstractions
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
- Modularity
Video: Simulate a Polaroid developing (5:04)
Quick reference guide: Click here
Suggested guiding questions:
- What kind of blocks do you think you might need to do something like that?
- What kind of blocks (i.e., message blocks) can you use to make multiple sprites run their own algorithms in parallel (i.e., at the same time)?
- Do you see a pattern where we might use a repeat?
- If so, what kind of repeat?
8. Add in comments (the amount of time depends on typing speed and amount of code):
1 minute demonstration
When the project is nearing completion, bring up some code for the project and ask coders to explain to a neighbor how the code is going to work. Review how we can use comments in our program to add in explanations for code, so others can understand how our programs work.
Quickly review how to add in comments.
Commenting time
Ask coders to add in comments explaining the code throughout their project. Encourage coders to write clear and concise comments, and ask for clarification or elaboration when needed.
Standards reinforced:
- 1B-AP-17 Describe choices made during program development using code comments, presentations, and demonstrations
Practices reinforced:
- Communicating about computing
Concepts reinforced:
- Algorithms
Video: Add in comments (1:45)
Quick reference guide: Click here
Facilitation suggestion: One way to check for clarity of comments is to have a coder read out loud their comment and ask another coder to recreate their comment using code blocks. This may be a fun challenge for those who type fast while others are completing their comments.
Assessment
Standards reinforced:
- 1B-AP-17 Describe choices made during program development using code comments, presentations, and demonstrations
Practices reinforced:
- Communicating about computing
Although opportunities for assessment in three different forms are embedded throughout each lesson, this page provides resources for assessing both processes and products. If you would like some example questions for assessing this project, see below:
Summative (Assessment of Learning)
The debugging exercises, commenting on code, and projects themselves can all be forms of summative assessment if a criteria is developed for each project or there are “correct” ways of solving, describing, or creating.
For example, ask the following after a project:
- Can coders debug the debugging exercises?
- Did coders create a project similar to the project preview?
- Note: The project preview and sample projects are not representative of what all grade levels should seek to emulate. They are meant to generate ideas, but expectations should be scaled to match the experience levels of the coders you are working with.
- Did coders use a variety of block types in their algorithms and can they explain how they work together for specific purposes?
- Did coders include descriptive comments for each event in all of their sprites?
- Can coders explain how they used broadcast blocks or My Blocks as functions to make their code more organized and easier to read (modularity)?
- Can coders explain how their project is similar to their storyboard?
- Can coders explain how the two sprites work in parallel to simulate a Polaroid developing?
- Can coders explain how every change in the position, direction, and size of the Polaroids sprite needs to be accounted for in the Overlay sprite?
- Did coders create a scrapbook project about the chosen theme with at least ## photos?
- Choose a number appropriate for the coders you work with and the amount of time available.
Formative (Assessment for Learning)
The 1-on-1 facilitating during each project is a form of formative assessment because the primary role of the facilitator is to ask questions to guide understanding; storyboarding can be another form of formative assessment.
For example, ask the following while coders are working on a project:
- What are three different ways you could change that sprite’s algorithm?
- What happens if we change the order of these blocks?
- What could you add or change to this code and what do you think would happen?
- How might you use code like this in everyday life?
- See the suggested questions throughout the lesson and the assessment examples for more questions.
Ipsative (Assessment as Learning)
The reflection and sharing section at the end of each lesson can be a form of ipsative assessment when coders are encouraged to reflect on both current and prior understandings of concepts and practices.
For example, ask the following after a project:
- How is this project similar or different from previous projects?
- What new code or tools were you able to add to this project that you haven’t used before?
- How can you use what you learned today in future projects?
- What questions do you have about coding that you could explore next time?
- See the reflection questions at the end for more suggestions.