U3Ch1L1: The Need For Programming Languages (Legos).
Purpose: Students will discover the need for programming languages that leave no room for interpretation.
Vocabulary:
- Programming Languages: “A Code in which each action has an Unambiguous meaning (No room for interpretation!).”
Activity: Build A Lego Structure
Handout: Just Read the “Lego Instructions”
- Create Your Lego Arrangement.
- Each group use 10 blocks (different colors) to create a challenging structure.
- Record Your Arrangement.
- Draw or photograph it. – Don’t let anyone see it.
- Write Instructions. (Distribute a plain piece of paper to all groups.)
- Write clear precise instructions explaining how your structure should be built.
- Groups trade istructions and attempt to follow them.
- Groups place instructions next to pieces.
- Groups rotate around the room and try to rebuild.
- Original group checks accuracy.
Journal: “What is causing the Miscommunication?” (Indv. then partner)
- Look at the instructions you wrote for the other groups. Identify one instance where there may be multiple ways to interpret your instructions. How could you have written it clearer for the other groups to follow?
- Why is a programming language superior to our everyday language when attempting to communicate instructions to machines.
- Answer: Human language is not precise enough to express algorithms. If there is room for interpretation, then you can never be certain about the results.
Video: “You should learn how to Program,” Christian Genco at TedX SMU”
- Organize teams so that 1 partner stands at the board (Partner #A), while the other stands about 10 ft. away (Partner #B).
- I draw a geometric shape and hand a copy to Partner #B. (This shape is a continuous image in which the pen never leaves the paper0).
- Partner #B will tell Partner #A how to redraw the shape. They may not show them the shape!
- Partner #A pen may never leave the board or they will be disqualified. If there is an error and they need to erase, they must erase everything and start over.