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 show the computer a picture of 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 dog, using no pictures or talking,
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 be the Interpreter, and together your will be producing an
origami dove for the end User.
Give them the second sheet of origami paper, and ask them to fold a dog following your algorithm only. Do not let them see your completed dog 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.