In this lab, you will learn how to communicate instructions effectively and concisely through
the use of the English language, as a prelude to writing programs in Python. Specifically,
you will be writing a detailed algorithm for folding an origami owl.
Communication, be it between people, computers, or
extraterrestrial intelligences, is a central
concept in computer science. In all communication, one entity has information and wants to
convey it to another.
Arguably, pictures are one of the most basic forms of communication, found in ancient
Petroglyphs and
Cave Paintings. They are still
used today in the form of
Symbol Signs for
universal communication in airports, train stations, etc.
If you encounter someone who does not speak your language, drawing pictures
and pantomiming are great ways for both of you to communicate.
There will be many times this semester
when you wish you could demonstrate or show the computer what you would like it to do instead of
writing computer code. Unfortunately when
conversing with computers or ETs, we will not have this luxury.
We most often communicate through the medium of a language, following a strict
protocol.
If both sides understand the language and follow the protocol, communication is straight-forward.
However, a computer is a very literal machine; it does not tolerate mistakes in language easily.
This may be convenient in some ways, as the language will follow a specific, unambiguous grammar,
and there will be only one way for the computer to understand a correctly written piece of code.
But this is foreign to our everyday use of language, where slang is common and real-world context is often used
to disambiguate the underlying semantics.
You assignment for today is to use a language you are familiar with (English), but in a way
that simulates the experience of talking with a computer. You will precisely
describe a set of instructions (called an
algorithm) for folding an
Origami owl, using no pictures or talking or demonstration,
and hope that someone else is able to understand your algorithm.
An origami pattern is usually communicated with both pictures and words, allowing it to
mostly transcend languages, however here the two will be separated. In
computer science terms, you will assume the role of
Programmer, your lab subject will execute, and together your will be producing an
origami owl for the end User.
Step 1
Watch the above video and learn to fold
one sheet of origami paper into a owl. You may wish to practice on
other paper first to make sure you understand all the instructions.
Write your name with a permanent marker on the outside of your completed owl.
Step 2
After completing Step 1, you should now understand the process of folding an origami owl. In your
own words, write an algorithm (a set of detailed instructions)
in English describing this process. Assume
that the person following your algorithm can understand English well, but may have never
folded origami before. Your algorithm may
use no pictures, only text. Be detailed, yet concise (i.e. don't write a 10 page essay).
Step 3
Find someone not in this class willing to help; this may be a roommate, friend, or random
acquaintance. They will be your subject, putting your algorithm into practice.
Give them the second sheet
of origami paper, and ask them to fold a owl following your algorithm only. Do
not let them see your completed owl or the pictorial instructions provided with this lab.
If they get frustrated by your algorithm, ask them to keep folding as
best they can to get to the end, no matter what.
Step 4
Thank your subject for their help. You subject may or may not have been successful in their
attempt to fold the owl. In either case
you should consider the experiment successful. If you are still on speaking terms with the subject,
ask them a few questions about their experience, in particular: Have you folded
origami before? What was the most difficult step
to follow? Were there any steps missing?
Evaluation
Write a short evaluation of your experience with this lab. Include the answers given to
you from your subject in Step 4. You must also answer the following questions:
What was the most difficult concept to convey with only words?
What elements of contextual information (i.e. things they would know outside
of your instructions) do you think the subject used?
Were there any steps that you felt were easy to describe with English?
If you were to write your algorithm again, what changes would you make?
What to Hand In
Your owl from Step 1
The algorithm you wrote from Step 2 (in a Google Doc)
The owl folded by your subject in Step 3
Your written evaluation from Step 4 (in a Google Doc)