CSC207 - Lab 1
Communication and Origami

Assigned Aug 25th
Due Aug 27th Beginning of Class


Overview

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 chicken.

Materials

Description

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 dove, 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 Compiler, and together your will be producing an origami dove for the end User.

Step 1

Using the instructions provided, fold one sheet of origami paper into a chicken. 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 chicken.

Step 2

After completing Step 1, you should now understand the process of folding an origami chicken. 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 chicken following your algorithm only. Do not let them see your completed chicken 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 chicken. 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:
  1. What was the most difficult concept to convey with only words?
  2. What elements of contextual information (i.e. things they would know outside of your instructions) do you think the subject used?
  3. Were there any steps that you felt were easier to describe with English than with pictures?
  4. If you were to write your algorithm again, what changes would you make?

What to Hand In


© Mark Goadrich 2008, Centenary College of Louisiana