CSC 161 Origami Algorithms

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 origami animals.

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 animal, 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 workshop subject(s) will be the Interpreter, and together your will be producing an origami animal for the end User.

Step 1

Divide into two teams. One team will work on the origami dog and the other on the frog. Each team selects someone to be the scribe and someone to be the head folder. Each team practices making their animal, until the head folder can do it correctly.

Step 2

After completing Step 1, each teamshould now understand the process of folding their animal. Each team needs to create 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. The algorithm may use no pictures, only text. Be detailed, yet concise (i.e. don't write a 10 page essay). The team scribe writes the final algorithm down clearly. Hint: the algorithm may begin with instructions such as "write the letters A, B, C, and D on the four corners of the paper".

Step 3

The teams now trade instructions, and attempt to follow the instructions created by the other team. The scribe should take notes on the team's progress in following the instructions.

Discussion Questions

  1. What instructions were hard to follow? What steps were missing?
  2. What was the most difficult concept to convey with only words?
  3. What elements of contextual information (i.e. things they would know outside of your instructions) do you think the subject used?
  4. Were there any steps that you felt were easier to describe with English than with pictures?
  5. If you were to write your algorithm again, what changes would you make?

This document includes material © Mark Goadrich 2007