Programming Software to Trace the Composing Process

5(1) p. 45
Programming Software to Trace the Composing Process

Jane Zeni Flinn

We have found COMPTRACE to be a valuable tool for accurately recording the revision process and for prompting a writer's recall of that process during interviews. Research conducted with this software has been reported and demonstrated at many conferences. Since teachers and researchers often ask how they can get a copy of COMPTRACE, we are offering this paper as a response.


Keystroke-recording and keystroke-replaying software must be written as a modification to a specific word-processing program. Ours was written for THE MILLIKEN WORD PROCESSOR, an Apple program designed by Owen and Irene Thomas to support the composing process for inexperienced writers. COMPTRACE will not work with other Apple word processors. The principles of developing

p. 46

such recording and replaying software, however, are quite similar for almost any word processor. We'll outline our approach in an effort to help others develop and use similar programs. First of all, a few warnings are necessary:

  1. Check copyright and copy protection. A researcher can't simply hire a programmer to write recording software for any commercial word-processing system. In most commercial software, the programming code has been protected. An outsider cannot simply "List" the program statements and then change them to allow for keystroke recording. If you want to develop software like COMPTRACE, you need the permission and full cooperation of the commercial publisher.

  2. Find the right programmer. The person who originally created the word-processing software is in the best position to modify the code and design a keystroke record. However, if the software has been published commercially, the original programmer may no longer have permission to modify it further or have access to the copy protection system. Again, you will need the cooperation of the publisher.

  3. Be aware of ownership and distribution rights. After you find a suitable programmer and company, be sure to spell out clearly the legal and financial status of the software to be developed. Who will own it (researcher? programmer? publisher?)? Can it be distributed for research purposes? Can it be marketed? [Milliken's very generous agreement was that we could distribute COMPTRACE, which resides on a non-copy-protected version of the word processor, to other researchers or teachers involved in the National Writing Project or related programs on a non-commercial basis. We added a note to the software logo crediting Milliken (the programmer) and the funding agency; the note says that the word processor was "Modified for the Gateway Writing Project under a grant from the Fund for the Improvement of Postsecondary Education."]

    p. 47

  4. Design the software for a dual audience. Although the product will probably not be commercial, it should be sufficiently user-friendly so that both teachers and learners can use it with minimal control by the researcher.

  5. Remember that your program will have a limited life span. When your word processor is revised and upgraded, the modifications developed for the recording and replaying programs will probably not work. Consider the time and cost of programming in relation to the amount of research you expect to do with the software before the next upgrade of the word processor.


Programming COMPTRACE was not especially difficult because John Oberschelp had written the software for the MILLIKEN WORD PROCESSOR. He knew how the program was put together and how it could be most easily modified. Here is his description of the procedure he followed:

There are two pieces of code in every word processor that need to be modified in order to give the program the capacity to record a writing session and play it back at another time: the code that determines whether a key has been pressed (check-the-keyboard) and the code that remembers which keypress occurred (read-the-keyboard).

During a recording session, the word-processing program must appear to function the same as it did before the modification. This lets the student work naturally without interruption from the software. However, "check-the-keyboard" and "read-the-keyboard" must work continuously. "Check the keyboard" keeps looking for keystrokes while it increments a counter to keep track of the time till the next keystroke. "Read-the-keyboard" must read each key and record, in memory, which key was pressed and the value of the counter (how long it took the writer to press the key). After recording, "read-the-keyboard" must clear the counter to prepare for the next keystroke.

To play back a session at the word processor, "check-the-keyboard" and "read-the-keyboard" must mimic the action that

p. 48

took place as the writer composed. The programs take their cue, not from an actual keypress, but from the record of the earlier session stored in memory. "Check-the-keyboard" checks the counter. If it is not 0, the programs decrements the counter and does nothing; if the counter is 0, "check-the-keyboard" reports that it has detected a keypress. "Read-the-keyboard" presents the value of the next keypress from its record as if it were just typed at the keyboard. In this way, "check-the-keyboard" reports when something happened, and "read-the-keyboard" reports what happened.

Add to these changes the ability to write a completed session to floppy disk and to read it back to memory and you have a record/ replay word processor, a la COMPTRACE. Since the keyboard is not being used for anything during playback, several features can easily be added to "check-the-keyboard." Such commands can freeze, speed up, or abort the playback.


Once the keystroke record has been written to a disk, it is possible to obtain a list of the value of each keystroke and the timing in tenths of a second. This list can be printed out so that a researcher can analyze the tempo of composition and the syntactic points where pauses occur.

Preserving the keystroke records for later interviews and research requires some care. At the end of a composing session, the student's disk is in the computer, and the student saves the session's work as usual. The playback record, however, is stored in the modified word-processing program, which usually requires the help of an adult in switching disks. Adult supervision is especially important while replaying a composing session. The replay of a revision may conclude with storing the new, revised text in the old file which held the first draft-in which case the revision will overwrite the original. It will then be impossible to replay this particular session again because the original file cannot be reconstructed.

There are three ways to protect data from such accidental overwriting: ( 1) Keep at least one master copy of each modified word-processing disk that is not used for replaying. (2) Teach

p. 49

students to save each revision under a new filename, as in "GHOST1," "GHOST2," "GHOST3." (3) Write-protect the student's disk before replaying a session with the modified word-processing program.

Jane Flinn discovered the latter when she overwrote the file of a sixth grader who was a poor writer but an astute computer user. After Bob heard explain her dilemma, he responded with a look of sympathy, "You know, that wouldn't have happened if you had just put one of those little silver tapes on my disk." Jane assures me she has not lost a draft with COMPTRACE since she began following Bob's advice. Here is our suggested procedure for recording a session:

  1. Copy a modified word-processing disk and label this copy with your writer's name.
  2. Give the word-processing disk and a text-file disk to the writer, who will compose while automatically generating a keystroke/playback record.
  3. Have the writer save the file on his or her own disk as usual.
  4. Help the writer save the keystroke/playback record on the modified word-processing disk.
  5. Write-protect the student's disk.
  6. To replay a session, make a copy of the writer's modified word-processing disk and text-file disk, and play back the copies.
Jane Zeni Flinn teaches at the University of Missouri-St. Louis and directs the Gateway Writing Project.


The programming described in this paper was supported by a grant from the Fund for Improvement of Postsecondary Education.

The MILLIKEN WORD PROCESSOR, part of the MILLIKEN WRITING WORKSHOP (1985), was designed by Owen and Irene Thomas of Iota, Inc. and programmed by John Oberschelp. The Milliken Publishing Company, St. Louis, kindly allowed their product to be modified to create our non-commercial software, COMPTRACE.