Roles and Responsibilities

Code reading activites in lab are to be done in groups of three. Each person in the group has a particular role with specific tasks. Review the various roles and task descriptions below. Remember for this to be an effective activity each person must work to help the group. It does not help anyone to let them off easy.

Reader

The reader is the one engaged in understanding a particular program or code fragment. The reader is to think aloud during the process, making visible his/her thoughts about the artifact under study. The reader can read directly from the code, offer hypotheses about behavior, or test a particular hypothesis (including the criteria for confirming or rejecting the hypothesis). The reader views the discussant as an assistant, not as an adversary. The reader is allowed to annotate the source code provided.

Discussant

The discussants' main job is to keep the reader focused on the comprehension activity and talking aloud. The discussant can direct questions to the reader requesting elaboration or clarification of points the reader is making, or asking the reader to predict the consequence of a particular item (use the categories suggested under the activities section above). The discussants should be able to summarize what is known at a particular point during the activity. One strategy the discussants can use if the reader becomes quiet is to summarize accomplishments up to that point. Direct the reader back to what is known. The discussants is allowed to make notes, but should not solve the problem for the reader.

Recorder

The recorder should make notes for the reader. The job is to record hypotheses made by the reader and indicate whether the hypothesis is confirmed or rejected by the reader. This allows the reader to focus on the comprehension activity while the recorder tracks progress. The recorder should remain silent, but is encourage to maintain the peace between the reader and discussants. Furthermore, if the discussants are not behaving responsibly, then the recorder can also encourage either the discussants or reader to stay focused on the task.

Activities

Brown and Palincsar (1989) used four strategic activities in the construction of their reciprocal teaching activities for reading comprehension of natural language content. This technique has been shown effective in improving general reading comprehension. The activities used provide the supportive framework to structure the reading/comprehension groups, and activities of the participants in those groups. The general activities are:

Summarizing
Summarizing allows those involved to monitor progress. The summary includes points of agreement and disagreement. For a code reading activity, summarizing may involve either identifying the role a variable plays in a code fragment. Perhaps a summary includes the nature of a procedure or function (as suggested by stepwise abstraction).

Questioning
The discussant asks questions about the code fragment, or the reader's perception of the fragment. Questions are aimed at helping the reader solidify her knowledge of the artifact under review. The reader could identify a variable or localize a code fragment and pose a question that further exploration is intended to resolve. Questioning from the code reader's view is to direct activity. A clear statement, such as "I want to see how x is used in this while loop", directs the cognitive activity.

Clarifying
Problems and difficulties must be revisited. Fuzzy ideas or understandings must be reviewed and discussed until agreement on meaning is reached. The discussant should listen carefully to the manner in which the reader makes claims about her understanding. Many times statements have inflections indicating less than full endorsement from the problem solver. Part of the discussant's role is to insure the readers doesn't avoid the difficulties.

Predicting
Discussion allows participants to predict how a particular routine may conclude. These predictions are made without reading further. This type of activity puts the reader in the position asserting how a fragment must conclude based on the current state of her knowledge. During code reading claims are made. These claims are hypotheses and conjectures regarding what the reader "believes" the program does. As reader begins to understand the code under study, she should predict how and why things are done. If these predictions are correct then the reader's confidence in the model being built increases. If she are incorrect, then the model must be refined to meet the evidence provided by the new data.

As your group works through a code reading activity, think of ways to help the reader by posing questions or asking for clarification. Note that different strategies probably work with different readers. Paying attention to the reader and things that seem to bother them.


Modified: June 1, 1997