Ninja Maze Challenge 1
Experience: 2nd year, 1st quarter
Practice: Creating computational artifacts, Testing and refining computational artifacts, and Communicating about computing
Concept: Program Development, Algorithms, and Control
Length: 50+
Overview and Purpose
Coders will solve four different maze challenges that focus on a combination of vertical and horizontal movement, then create their own unique mazes that peers will solve. The purpose of this project is to reinforce understanding of predicting and sequencing a sprite’s movement using the motion blocks.
Preparation (20+ minutes)
Suggested preparation
Ensure all devices are plugged in for charging over night.
Customizing this project for your class (10+ minutes): Remix the project example to include your own maze challenges to solve. Make a copy of your custom project that doesn’t include any motion blocks on the NinjaCat sprite (this copy will be distributed to coders to remix).
(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.
Resources for learning more
- BootUp ScratchJr Tips
- Videos and tips on ScratchJr from our YouTube channel
- BootUp Facilitation Tips
- Videos and tips on facilitating coding classes from our YouTube channel
- Block Descriptions
- A document that describes each of the blocks used in ScratchJr
- Interface Guide
- A reference guide that introduces the ScratchJr interface
- Paint Editor Guide
- A reference guide that introduces features in the paint editor
- Tips and Hints
- Learn even more tips and hints by the creators of the app
- Coding as another language (CAL)
- A set of curriculum units for K-2 using both ScratchJr and KIBO robotics
- ScratchJr in Scratch
- If you’re using ScratchJr in Scratch, this playlist provides helpful tips and resources
Getting Started (5+ 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 solve and create maze challenges using code. Display one of mazes in the sample project (or your own remixed version).
Resources, suggestions, and connections
Practices reinforced:
- Communicating about computing
Video: Project Preview (0:59)
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, it might help to set a time limit for exploration before discussing the project.
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 solve the maze displayed in the example project create a project like the one demonstrated. If coders are unsure, and the discussion questions aren’t helping, you can model thought processes: “I noticed the sprite will need to move around the walls to get to the goal. Where can the ninja move so it doesn’t touch a wall? What motion block(s) might be in the code to make the sprite move in that direction? Where will the ninja need to go next?” 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 solve something like this in ScratchJr?
- What kind of blocks might we use?
- If you were creating your own mazes, 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 maze challenge?
- What kind of code might they have?
Project Work (45+ minutes; 2+ classes)
Suggested sequence
3. Solve the mazes (20+ minutes):
Begin by sharing with everyone the sample project (or your own remixed version) that does not include any motion blocks that move the NinjaCat through the maze (use this guide if you are unsure how to share project files).
Repeat the following for each level.
1 minute prompt
Making sure the motion blocks are removed or hidden from the example project (or levels you created and shared), display one of the levels so everyone can see the maze:
3+ minute problem solving and peer-to-peer coaching
Ask coders to see if they can figure out how to make the sprite navigate through the maze without touching a wall. Facilitate by walking around and asking guiding questions.
1 minute explanation demonstration
If coders figured out how to navigate through the maze without touch a wall, 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 and walk through each step of the algorithm. Repeat this process with the remaining levels.
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.
- 1A-AP-14 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
Practices reinforced:
- Communicating about computing
- Creating computational artifacts
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
Resource: Sharing ScratchJr Projects
Suggested guiding questions:
- What kind of blocks do you think you might need to solve this maze?
- Do you see a pattern where we might use a repeat?
- Do we need to use one trigger block or more than one?
- What makes you think that?
- How could you change the level to make it easier or harder?
Potential discussion: There is not always one way to solve a problem 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.
4. Create even more mazes (20+ minutes):
Ask coders to create a new project with a small sprite, a goal, and at least one level sprite. Use looks blocks to shrink the sprite that will navigate the maze and to grow the level sprite(s) to create obstacles to navigate around. Facilitate by walking around and asking questions and encouraging coders to not only create at least one new level a peer will solve, but to test out their mazes to make sure the sprite can vertically and horizontally navigate through the maze without touching a wall or obstacle.
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:
- Creating computational artifacts
- Program development
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
Suggested questions:
- How can we make a level easier or harder?
- How many sprites will you use for a wall?
- How will a player know if they’ve touched a wall?
5. Solve the new mazes (5+ minutes or until the end of class):
If time permits, repeat the following process until out of time.
1 minute device swapping
Making sure the motion blocks are removed or hidden from the newly created levels have coders swap devices with a neighbor to try and solve the newly created mazes.
3+ minute problem solving and peer-to-peer coaching
Ask coders to see if they can figure out how to make the sprite navigate through the maze without touching a wall. Facilitate by walking around and asking guiding questions.
1 minute explanation demonstration
If coders figured out how to navigate through the maze without touch a wall, 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, have the creator of the project reveal the solution and walk through each step of the algorithm. If time permits, repeat this process by having coders remove the solutions (or partial solutions) and swap their device with another coder to try and solve another level.
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
- Creating computational artifacts
- Testing and refining computational artifacts
Concepts reinforced:
- Algorithms
- Control
Suggested guiding questions:
- What kind of blocks do you think you might need to solve this maze?
- Do you see a pattern where we might use a repeat?
- Do we need to use one trigger block or more than one?
- What makes you think that?
- How could you change the level to make it easier or harder?
Potential discussion: There is not always one way to solve a problem 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.
Assessment
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
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
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 solve or 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?
- Can coders accurately predict how a sprite will move before running code?
- Did coders solve or create a maze game with at least ## different levels to navigate through?
- Choose a number appropriate for the coders you work with and the amount of time available.
- Did coders use at least ## pages in their project?
- Choose a number appropriate for the coders you work with and the amount of time available.
- Can coders explain when/how the project will switch pages?
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.