One of the major goals of this unit is to help you develop a better understanding of the methods and techniques computer scientists rely on to construct simple and elegant solutions to potentially complex problems.
Today, in order to give you a feel for what this is like, you’ll be participating in a group exercise in which you’ll write and execute your first program. However, most of you have not learned any programming languages yet, so for now, we’ll stick with using a language that everybody in your group likely does know—English. And instead of executing your programs on an actual computer (which probably wouldn’t understand English as well as people do), you and your group will role-play the parts of a simulated computer as you attempt to execute your program in much the same way a real computer would run a real program. And if programs that are run by computers are called computer programs, then it only seems appropriate that our programs today that are run by people should be called people programs.
Working in groups of four, each team member should assume one of the roles listed below. Each group will be given a construction site (grid with directions and “X,” “A,” and “B” spaces marked), a bag of building blocks, and a set of criteria describing what they are to build. Each group should write/type a list of detailed instructions that the Supervisor can read off to the Supplier, Worker, and Inspector so that the required set of towers is properly constructed.
Supervisor: This is the “construction foreperson” whose job it is to follow the steps in the plan exactly, ask “Yes/No” questions of the Inspector, make decisions when appropriate, and tell the Worker and Supplier what to do. The Supervisor can be thought of as being analagous to the “processor” within a computer.
- Can only read the instructions exactly as they are written.
- Cannot say anything else.
- Cannot see the blocks, site, or other crewmembers while construction is in progress.
- Can instruct him/herself to make notes, count, or remember things about the progress that has been made.
Supplier: This individual is responsible for supplying and disposing of the raw materials (i.e., blocks) for construction. Think of the Supplier as an “input/output device” like a keyboard, mouse, or computer display.
- When instructed by the Supervisor, can randomly remove a single block from the supply bag and place it on the “Loading Zone” (X).
- When instructed by the Supervisor, can remove a single block from the “Loading Zone” (X) and randomly place it back into the supply bag.
Worker: This individual is solely responsible for manipulating, moving, and placing the construction materials into their designated locations. The Worker can be seen as performing the role of a “bus” that transfers data between components inside a computer.
- Can only touch one block at a time.
- Can only manipulate blocks that are on the construction site (i.e., the grid).
- Must follow the Supervisor’s instructions exactly.
- Knows about the grid (including direction, distance, and the three marked locations—A, B, and X).
- May NOT use any personal judgment in selecting, manipulating, or placing blocks. The Supervisor’s instructions should be clear enough.
Inspector: This is the “answer person” of the construction team who is responsible for giving the Supervisor essential feedback about materials and the status of constructions. The Inspector functions like a computer’s “logic unit” (part of the ALU—Arithmetic Logic Unit).
- When asked a question by the Supervisor, can only answer “YES” or “NO” about the block(s) in one or both of the two “Inspection Areas” (A, B).
- Cannot answer questions about anything not in one of the two “Inspection Areas” (A, B).
- May not communicate anything else.
- If at any point, a question cannot be answered strictly “YES” or “NO,” then the question is considered faulty. Stop the construction process, go back to the drawing board, and rethink the set of instructions your team has written for the Supervisor.