Lesson 5: Programming Unplugged: Happy Maps
Algorithms | Sequencing | Unplugged
This unplugged lesson brings together teams with a simple task: get the "flurb" to the fruit. Students will practice writing precise instructions as they work to translate instructions into the symbols provided. If problems arise in the code, students should also work together to recognize bugs and build solutions.
The bridge from algorithms to programming can be a short one if students understand the difference between planning out a sequence and encoding that sequence into the appropriate language. This activity will help students gain experience reading and writing in shorthand code.
Warm Up (5 min)
Activity (40 min)
Wrap Up (8 min)
Students will be able to:
- Translate an algorithm into a program
- Decode and run a program created by someone else
- Identify and address bugs or errors in sequenced instructions
For the Teacher
For the Students
- Feeling Faces - Emotion Images
- Happy Map Cards - Worksheet
- Happy Map Game Pieces - Manipulatives
- Think Spot Journal - Reflection Journal
- Algorithm - A list of steps to finish a task.
- Debugging - Finding and fixing problems in an algorithm or program.
- Program - An algorithm that has been coded into something that can be run by a machine.
Warm Up (5 min)
This warm-up is meant to get the class thinking about how to break a big problem down into a list of individual steps.
Model: Start by asking the class for step-by-step directions on how to get to the chalkboard. Make sure that you ask students to break apart any large instructions, like "Walk to the chalkboard," into smaller instructions like "Step forward."
When you reach the board, ask for instructions to draw a smiley face and try to get them to keep their instructions equally small.
If the class starts shouting simultaneously, explain that you can only hear one instruction at a time. Call on students individually if that helps.
Say: Well done! You just gave me a list of steps to finish a task. In computer science, that's called an Algorithm! [Follow up with your typical method of introducing vocabulary: word wall, repeat-after-me, etc.]
Activity (40 min)
Happy Maps Programming
In this exercise, the class will get map cards that have a pre-defined start space (Flurb) and end space (fruit). Students will need to get the Flurbs to the fruit on each card, using the arrows provided.
Model: Select one of the intermediate maps, like the one shown above. Display it for the class and work through the puzzle together.
Have students look at the puzzle, then think-pair-share their solution for how they would get the Flurb to the fruit.
Think: This Flurb needs to take two steps to get to the fruit. Work with your elbow partner to decide what you think those two steps are.
Pair: Have students discuss with neighbors for about 90 seconds.
Share: Ask a few students to describe their algorithm to the class. Move your finger along the displayed map as the students read their steps. Once you have a solution, ask if anyone else came up with a different idea that also works.
Now, share with the students that the magic step of changing an algorithm into a "program" happens when the code is written down using symbols. Do the students see any symbols on the display?
Think: Challenge students to encode the algorithm that they came up with before into symbols, and to write those symbols down in their journals (or on a piece of paper.)
Pair: Once students have written down their symbols, ask them to swap with a partner to see if they can follow each others' instructions.
Share: Ask for volunteers to come draw their arrows on the board. If the original code doesn't work, spend some time debugging as a class. Students should be familiar with the idea of "debugging" from previous lessons, so be sure to use the vocabulary to get them comfortable with it.
Once the code has been successfully written on the board, congratulate the class on writing their first program together!
Group: If your class is comfortable, place students into small groups of 2-3. Otherwise, you can continue solving these problems as a class and having them think-pair-share to write programs.
Distribute: Pass out one of the images from the Happy Map Cards - Worksheet to each group as needed.
(Optional) If you start noticing that students are ready for more, use the provided Happy Map Game Pieces - Manipulatives and let students choose their own start and finish destinations on the blank map.
Encourage the students to follow these steps:
- Discuss an algorithm to get the Flurb to the fruit.
- Encode the algorithm into arrows in their journals.
- Try their code to see if everything works as expected.
- Debug any issues and fix their code until it works correctly.
Share: When the lesson is done, offer to let groups share out the most difficult maps that they solved. If you had time, ask them to share their solutions as well.
Wrap Up (8 min)
Discuss: When it’s time to wind down, ask students if they can tell the difference between an algorithm and a program. Both are a list of steps, but a program (code) has been encoded in a way that can be run by a machine (or a kindergartener!)
- Do you think that someone who speaks another language would be able to run your program?
- Why or why not?
Students should be encouraged to capture their thoughts in their journal after each activity (with text or images.) Choose a journal prompt that will help students remember the purpose of this exercise.
- What was today's lesson about?
- Draw one of the Feeling Faces - Emotion Images that shows how you felt about today's lesson in the corner of your journal page.
- Can you draw your own Flurb map?
- What would the code be to solve your map?
Use these activities to enhance student learning. They can be used as outside of class activities or other enrichment.
- Create a life-size grid on the rug with tape and have student bring stuffed animals to school.
- Now students can program friends to move their actual stuffies as directed in the programs.
Create Your Own
- Have students create their own maps.
- Have other students solve them using programs.
CSTA K-12 Computer Science Standards
AP - Algorithms & Programming
- 1A-AP-09 - Model the way programs store and manipulate data by using numbers or other symbols to represent information.
- 1A-AP-11 - Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
This list represents opportunities in this lesson to support standards in other content areas.
Common Core English Language Arts Standards
L - Language
- K.L.6 - Use words and phrases acquired through conversations, reading and being read to, and responding to texts.
SL - Speaking & Listening
- K.SL.1 - Participate in collaborative conversations with diverse partners about kindergarten topics and texts with peers and adults in small and larger groups.
- K.SL.2 - Confirm understanding of a text read aloud or information presented orally or through other media by asking and answering questions about key details and requesting clarification if something is not understood.
- K.SL.5 - Add drawings or other visual displays to descriptions as desired to provide additional detail.
Common Core Math Standards
G - Geometry
- K.G.1 - Describe objects in the environment using names of shapes, and describe the relative positions of these objects using terms such as above, below, beside, in front of, behind, and next to.
MP - Math Practices
- MP.1 - Make sense of problems and persevere in solving them
- MP.2 - Reason abstractly and quantitatively
- MP.6 - Attend to precision
- MP.7 - Look for and make use of structure
- MP.8 - Look for and express regularity in repeated reasoning
Next Generation Science Standards
ETS - Engineering in the Sciences
ETS1 - Engineering Design
- K-2-ETS1-1 - Ask questions, make observations, and gather information about a situation people want to change to define a simple problem that can be solved through the development of a new or improved object or tool.
- K-2-ETS1-2 - Develop a simple sketch, drawing, or physical model to illustrate how the shape of an object helps it function as needed to solve a given problem.