Exact Instructions Challenge
The “Exact Instructions Challenge” is a video that Josh Darnit made together with his two kids, where he asked them to “write instructions for a simple task but left out that we were going to be following their instructions EXACTLY as written”. This video is about making a peanut butter & jelly sandwich. Josh Darnit considers this to be a “great lesson for communication and fun practice in patience”. It also a perfect example of a situation where a central processing unit (the dad here) executes the instructions it receives exactly as they are written and thus where unclear or imprecise instructions lead to unwanted results. Moreover, it shows how programmers (here the kids) try to incrementally improve their instructions by inventing new ones and testing them.
Material and technical aspects
The video is freely available to play and watch on YouTube (and probably other online video repositories). All you need is a device with an Internet connection and an access to www.youtube.com. It is also possible to show the video to a broader audience via a connected video projector. In classrooms, you might want to check for potentially age-inappropriate advertisements shown ahead of or during the video. The video is in English, but the main messages can be easily and rapidly translated, on the fly, by an English-speaking adult. Subtitles are available in English only.
The video has been developed by a father and his two kids and is about the importance of exact, precise and clearly understandable instructions given to a “stupid” execution machinery (can be a computer, a robot or a human that tries to follow instructions without interpreting them too much). It also shows how programmers try out their programs, realize that they often do not produce the desired outcomes, try to rewrite their instructions to test them again. It also shows that initial conditions (here for instance where the sandwich is positioned on the table) can have very important consequences on the successfulness of a set of instructions. Moreover, it shows that it is inherently difficult for humans to follow instructions exactly, we always tend to somehow interpret instructions, because we do understand the meaning of an instruction and use it to adapt our actions in more or less obvious ways, while a computer only blindly executes the instructions. This video thus provides a great opportunity to discuss various important aspects of what it means to develop instructions to make a computer, or a robot do certain things for us and how programmers use an iterative design approach to write, test, and debug their codes. In addition, the video is fun to watch. Note that many people, in addition to Josh Darnit, have produced and published spin off videos where they invite us to think about a wide range of other problems to solve using computational thinking.
This video can be used as a fun-to-watch introduction to programming and robotics because it shows how important clear and precise instructions are. It can be used as a steppingstone to a learning activity where children must set up their own instructions to control the actions of another child or a robot (on screen or off screen) in order to reach a certain more or less complex goal. It can also be used to discuss important concepts of computational thinking with them, either before or after a hands-on programming activity or even independently of such an activity. The video is very engaging to watch, and it generally instills a great desire in children to try it out themselves. This resource can be used in learning activities that rely on learning by doing, learning by discovering, learning by experimenting, learning by discussing together with others and on having fun. Some children might see it as an opportunity to have adults do “silly things”, which should be okay if you are prepared to do that and do not fear to lose your authority position. If you play the role of the CPU, you need to be very cautious not to interpret the instructions given by the children too much in order to execute them as precisely and as exactly as they are given. This is not necessarily always easy, because of our natural tendency to understand what the intentions of other humans are when they ask us to do something. You can also ask children to play the part of the CPU and help them to execute instructions as exactly as possible. This resource can be used with learners of all ages. Language-wise you might want to translate parts of the dialogues in advance or try to do it on the fly.
Overall, this video is a wonderful and potentially rich resource for teachers who wish to discuss the importance of clear and precise instructions, the fact that computers and robots are stupid machines who merely do what they are told to do, that computational thinking implies that we thoroughly think about the instructions we develop and about the initial conditions to which they are applied. Imagine that the bread lies in another place then when you wrote some instructions and that your instructions do not take this into account. This resource allows us to focus on the thinking part of problem-solving activities that computational thinking implies. The learning activities heavily rely on learning by doing, learning by discovering, learning by experimenting, learning together with other students and on having fun while exploring a wide range of topics in computer science. A highly recommendable resource that you can freely and creatively adapt to your own teaching practice!