WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Instruction system topic-interpreting method    
United States Patent4541056   
Link to this pagehttp://www.wikipatents.com/4541056.html
Inventor(s)Matthews; Paul G. (Somerset, NJ)
AbstractA topic announcement routine is provided and is called by an announce flag included in a flag field of an author-selected topic title definition in a course material database. Each call of such a flagged topic causes the routine to display for a student an announcement that a new topic is about to begin, and to make available to the student an opportunity to select a command from a predetermined set of commands including at least one address-generic transfer command. Control flags, such as an announce flag or the presence of text in the title field of a topic definition, are employed for various purposes, such as marking the end of transfer under a transfer command for that topic, or disabling selected commands of the set.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4541056
Instruction system topic-interpreting method - US Patent 4541056 Drawing
Instruction system topic-interpreting method
Inventor     Matthews; Paul G. (Somerset, NJ)
Owner/Assignee     AT&T Bell Laboratories (Murray Hill, NJ)
Patent assignment
All assignments
Publication Date     September 10, 1985
Application Number     06/513,367
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 13, 1983
US Classification     434/118
Int'l Classification     G06F 001/00
Examiner     Zache; Raulfe B.
Assistant Examiner    
Attorney/Law Firm     Phelan; Charles Scott
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 364/300 364/900 MS File 434/156 434/307 434/365
Patent Tags     instruction topic-interpreting
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3566482



[0 after 0 votes]
3606688



[0 after 0 votes]
4109938
Mitchell
283/43
Aug,1978

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a computer-based system, a topic-interpreting method for delivering instructional material from a database divided into segments to be accessed for display of said material on a screen of a computer-access terminal, said segments being grouped according to topics, said method comprising the steps of

providing an announce routine for placing said terminal in a command mode for at least a predtermined set of commands,

said routine displaying to a student both an announcement that a new topic is about to begin and a notice that the student has an opportunity to select for execution a command from among commands of said predetermined set, said set including at least one address-generic transfer command for transferring program execution to a different location in said database, and

calling said routine at predetermined topic locations in said material.

2. The topic-interpreting method in accordance with claim 1 and including, responsive to said calling step, the further steps of

computing for said at least one transfer command of said routine an execution-result-characterizing text, and

displaying said text with a user prompt for said one command.

3. The topic-interpreting method in accordance with claim 1 in which said calling step includes the step of

placing in said database announce flags at said predetermined locations,

testing each topic for an announce flag, and

automatically calling said announce routine when such a flag is detected.

4. The topic-interpreting method in accordance with claim 3 which comprises in addition the steps of

limiting execution of said at least one transfer command, in terms of extent of transfer, by marking an end of transfer through said database by at least one predetermined marking flag in said database, said marking flag being either the same as or different from one of said announce flags, and

executing said one transfer command by searching said database for said marking flag from a topic location, at which said routine was called, in a direction determined by such command.

5. The topic-interpreting method in accordance with claim 4 in which a stack is provided in a memory for storing topic definitions, each definition including at least a flag field, and said executing step comprises the steps of

searching said stack for a topic definition, flag field including said marking flag, and

resuming delivery of said material at a location of said marking flag.

6. The topic-interpreting method in accordance with claim 4 in which a stack is provided in memory for topic definitions, each including at least a control flag field, a topic definition for at least one topic includes a binary quit flag, said one transfer command is a quitting command, and said executing step for said quitting command includes the steps of

searching said control flag fields in said stack for a marking flag in the form of a quit flag in a set state, and

resuming delivery of said material at a topic definition having said set quit flag.

7. The topic-interpreting method in accordance with claim 4 in which a stack is provided in memory for multi-element topic definitions, each definition including address-linked memory locations for storing at least a part of the topic definition elements, and said executing step comprises the steps of

searching at least one of said definitions and its address-linked locations for said marking flag, and

resuming delivery of said material from a topic definition element having said marking flag.

8. The topic-interpreting method in accordance with claim 7 in which said linked locations include production action locations and associated event locations for storing information relating to student consideration of respective production actions of a topic definition, said event locations each includes a topic title register that may be null, said one transfer command is a topic repeating command, and said executing step for said repeating command comprises the steps of

checking said title register of said event locations for the presence of a title therein as said marking flag, and

resuming delivery of said material from a production action corresponding to an event location having said title marking flag.

9. The topic-interpreting method in accordance with claim 4 in which a stack is provided in memory for topic definitions, each definition including at least a topic identification field and an address-linked memory location that may or may not contain a topic title, and said executing step comprises the steps of

searching said address-linked locations of said topic definitions for the presence of a topic title therein as said marking flag, and

resuming delivery of said material at a topic definition having a topic title marking flag.

10. The topic-interpreting method in accordance with claim 9 in which said system includes means, actuatable by a user at any time during instruction material delivery, for entering a delivery sequence break command, and said searching step comprises the step of

advancing in said sequence to a topic definition including both an announce flag and a topic title.

11. The topic-interpreting method in accordance with claim 9 in which said one transfer command is an instruction skipping command and said searching step comprises the step of

advancing in said sequence to a topic definition including both an announce flag and a topic title.

12. The topic-interpreting method in accordance with claim 1 in which a stack is provided in memory for at least one topic definition of a topic currently being executed, said definition including a control flag field for a command set modification flag and an indicator for designating set modification, and said method includes the steps of

detecting a predetermined state of said modification flag and of said indicator, and

modifying said command set in accordance with said states.

13. The topic-interpreting method in accordance with claim 12 in which said command set modification flag is a command disable flag, said indicator is a command code for at least one of said commands of said set, and said method includes the step of

deleting said at least one command-code-designated command from said set during execution of the topic of said at least one topic definition.

14. The topic-interpreting method in accordance with claim 12 in which said command set modification flag is a command addition flag, said indicator is a command code for at least one further command to be added to said set, and said method includes the step of

adding said at least one command-code-designated command to said set during execution of the topic of said at least one topic definition.

15. In a computer-assisted instruction system in which textual courseware is delivered by the transfer of predetermined text segments from memory to a display at a user-interactive terminal, the courseware being divided into an outline hierarchy of topics in which a topic definition includes a title and one or more actions represented by various unit displays of course material, a method for user-controlled transfer of courseware execution among said topics, said method including the steps of

storing in association with predetermined ones of the topic definitions a control flag to initiate a command option routine,

announcing, by display to a user in accordance with said routine, that a new topic is the next topic to be exeucted, and

making available to said user a predetermined set of user-selectable, address-generic command options for transfer through said courseware.

16. In a computer-assisted instructiion system in which textual courseware is delivered by the transfer of predetermined text segments from memory to a display at a user-interactive terminal, the courseware being divided into an outline hierarchy of defined topics, in which a topic definition includes a title and one or more actions, the method for controlling transfer of courseware execution among said topics and comprising the steps of

announcing, to a user during execution of only predetermined ones of said topics, that execution of a new topic is about to begin,

making available, in conjunction with said announcing step, a predetermined set of user-selectable, address-generic, command options for transfer through said courseware,

storing, in association with predetermined ones of the topic definitions, at least one control flag designating a qualification on execution of predetermined commands of said set occurring during execution of that topic, and

executing received user commands in accordance with any one or more control flags therefor.

17. In a computer-assisted instruction system for delivering from memory course material comprising a predetermined ordered sequence of topics for user perception and reaction, by entry of appropriate commands to the system, a method for interpreting said topics out of memory to said user under limited user control, and comprising the steps of

constructing a predetermined array of topic definitions, each including at least one predetermined control flag field,

placing in a control flag field of topic definitions of preselected ones of said topics an announce flag,

announcing to said user, in response to said flag on execution of each of said preselected topics, the availability of said system to receive and execute a selectable command of a predetermined command set, and

setting in a control flag field of a topic definition of preselected ones of said topics at least one control flag for initiating a predetermined command exeuction modification.

18. The topic-interpreting method in accordance with claim 17 in which at least one of said topic definitions includes an action field for identifying a particular system action to be executed, and said setting step includes the step of

setting a control flag for initiating a command exeuction modification effective only in execution of said particular system action.

19. The topic-interpreting method in accordance with claim 17 in which at least a first topic definition includes an action field for identifying a particular system action to be executed, said particular system action calling a related second topic definition, and said setting step includes the step of

setting a control flag for initiating a command execution modification effective only in execution of said first topic definition and any additional topic definition called through an action of said first topic definition.
 Description Submit all comments and votes
 


This invention relates to a computer-based system topic-interpreting method, and it relates more particularly to an arrangement for controlling student transfers among topics in instructional material.

BACKGROUND OF THE INVENTION

Electronic delivery of instructional material has been done in many ways. For example, a U.S. Pat. No. 3,566,482 to C. A. Morchand and another U.S. Pat. No. 3,606,688 to J. Zawels et al. shown television broadcast techniques for distributing instructional material to students at widely dispersed television-type receivers. The essentially unilateral communication involved in such systems requires that course delivery proceed in a predetermined sequence with no opportunity for a student to alter the delivery pace or to branch to arbitrarily selected points in a course. p In a paper by R. Kaplow et al. entitled "TICS: A System for the Authoring and Delivery of Interactive Instructional Programs," which appeared on pages 384-388 of Proceedings, Seventh Annual Princeton Conference on Information Sciences and Systems, which conference took place March 22-23, 1973, a computer-assisted instruction delivery system gave a student some leeway in branching out and setting an appropriate pace in proceeding through a course by having at the disposal of the student certain global commands. These commands were usable at any time and allowed, for example, the repetition of a current topic or the branching to certain course nodes specifically identified by the teacher in the course material in terms of a set of keywords which were unique to the branching points. It has been found, however, that most students who are new to the subject matter of a course, or to a computer-assisted instructional system, are relatively passive and rarely take advantage of the opportunity to utilize such global flexibility offered to them without substantial guidance.

SUMMARY OF THE INVENTION

The present invention mitigates the foregoing problems of flexibility in student transfer throughout course material in a computer-assisted instruction system by exercising control of student transfer action options. The options are presented to the student by means of a callable announce routine for displaying to a student an announcement both that a new topic in the regular course sequence is about to begin, and that the student has an opportunity to select one command among a predetermined set of commands, including at least one address-generic transfer command. Contents of the command set can be modified by course-author-placed binary control flags. The commands of the set are available to a student at only such announcement points.

An announce flag is placed in memory at author-selectable locations in a course delivery program so that each time a program statement at any such location is called, the aforementioned routine is executed to present the display to the student in a fashion which is common, at least in part, to all such announcements. Additional material can be contained in the announcement, but it is of a character which is computed by the system and added to the display so that specific detailed coding, or keyword specifications, which are unique to each node in a tutorial, need not be devised and coded by a course author.

BRIEF DESCRIPTION OF THE DRAWING

A more complete understanding of the invention and the various features, objects, and advantages thereof may be obtained from a consideration of the following detailed description in connection with the appended claims and the attached drawing in which:

FIG. 1 illustrates a hardware system for running computer assisted instruction (CAI) systems employing the invention;

FIG. 2 illustrates a node tree depicting a hierarchical organization that can be used for tutorial material in a course delivered in the system of FIG. 1;

FIGS. 3 through 5 show partial maps of the FIG. 1 temporary memory, used for delivering a course structured as illustrated in FIG. 2;

FIGS. 6 and 7 contain the two parts of a process flow diagram of a topic-interpretor routine to be utilized in the central processing unit of the system of FIG. 1;

FIG. 8 is a process flow diagram of a "find next action" function used in the diagram of FIG. 6;

FIGS. 9 and 10 depict terminal displays, or screens, illustrating an announcement produced during the process of FIGS. 6 and 7; and

FIGS. 11 through 13 are process flow diagrams for execution of three transfer commands illustrated in the diagrams of FIG. 7.

DETAILED DESCRIPTION

FIG. 1 illustrates one typical hardware configuration utilized in the art for operating computer-assisted instruction systems. A user terminal 10, such as the Hewlett-Packard HP 2645 terminal, includes a cathode ray tube display or screen 11, and an ASCII keyboard 12. Terminal 10 is coupled by way of a cable 13 to be operated in conjunction with a host central processing unit, such as, for example, a VAX-11/780 computer 16 manufactured by Digital Equipment Corp. This computer, as usual, includes a temporary memory 17. Memory 17, herein sometimes called primary memory, contains a stack for course topic definitions, to be described, for representing portions of a course, or tutorial, which is currently being executed. Memory 17 is provided in addition to other memory capabilities (not shown), such as the program memory, which are included in the host CPU 16. Also coupled to the CPU is a secondary memory 18, such as any suitable disk system for providing bulk storage of the course materials database. That database includes digital representations of the textual and graphical materials included in a course to be delivered in accordance with a course delivery program in the host CPU 16. Such a course delivery program advantageously runs on the UNIX.TM. operating system, e.g., the UNIX System V, which has been made available by American Telephone and Telegraph Company for licensing to the public. A description of a UNIX operating system is found in a collection of papers comprising Vol. 57, No. 6, Part 2, of the July-August 1978, edition of the Bell System Technical Journal.

Courseware for a subject is typically divided into topics that can be divided again into subtopics and so on. This results in a hierarchically organized outline or table of contents. In software terms, a topic is a procedure; a topic may call another topic, which returns to the calling topic when done; and such call-and-return relations define a topic "tree."

As used in an instruction delivery context herein, the term "topic" has a somewhat broader meaning than is usually attributed to that term in the context of a body of textual material. Thus, a topic is here a procedure, sometimes called a "topic procedure," which includes at least two parts to be further discussed herein. One part includes several types of control flags of binary character in which the presence of a bit, a character, or a group of characters, has a first operational significance; and the absence thereof has a second operational significance. Another part of a topic procedure includes at least two types of executable elements. One type of executable element is an ultimate topic, or "twig," directing the performance of some function, such as the display on the screen 11, of a specified segment of test or graphics for consideration by a student. Another type of executable element is a production list, including one or more condition-action pairs, or "productions," each directing the performance of a stated action if a stated condition is satisfied, or if no condition is stated. Production actions are often topic calls which have the effect of administering a memory stack of hierarchically-related, or nested, topics, e.g., call the topic definition for "Radio Specifications" to the stack. Other actions, which result in removal of a topic from the stack, are called return actions, e.g., remove the current topic from the stack and return to the topic from which it was called. Still other actions, that are neither topic calls nor return actions, serve miscellaneous functions, such as setting values of variables of either a numerical type, e.g, set X equal to 1, or a functional type, e.g., set the contents of a memory location called "choice" to the one of plural displayed words selected by a student. Actions in condition-action pairs may also be a subset of the twig-type of executable elements.

FIG. 2 depicts a topic tree for illustrating the concept of a regular course delivery sequence for hierarchically related topics. The actual mechanism for using the memory stack will be further considered in connection with FIGS. 3-5. The tree is drawn with the root topic node at the center of a circle, and the ultimate topic nodes arranged along the circumference. Nodes in the interior of the circle cluster topics into meaningful groups. A student typically begins at the center and moves toward the periphery for specific topics. The order of topic execution, i.e., in the regular order of course delivery, tends to be clockwise; and the student sweeps through the courseware as the hand of a clock. The concept of a regular course delivery sequence, or order, is an approximation which assumes that all parts of the course are considered by the student in the same sequence contemplated by the author for a student who always gave the right answers when presented with questions.

Alphanumeric reference characters illustrate one way to depict the hierarchy of nodes and to show the regular course delivery sequence. A dashed line in FIG. 2 extends along one topic branch of the node tree; and the topic and subtopics of that branch become increasingly specific as one moves from the central node zero along the branch toward the outer circumference to an ultimate topic, such as that represented by the node Y, which is sometimes called a twig. Assume, for example, that a student is completing the action at the twig Y, and has been following the regular course delivery sequence for some course represented by the diagram of FIG. 2. Since there are no more topics at or beyond the level of the twig Y, one finds the next topic for execution by tracing along the branch inwardly from the node Y to the topic node B1c, and then to the next topic node for execution at the level, namely, the topic node B1d. The latter topic is the last one in the regular delivery sequence under the topic B1 of the illustrated branch, and the topic B1 is itself the last topic to be executed at its lever under the next higher topic node 1. At the level of topic 1, there are, however, additional topic nodes 2 and 3. Thus, in the regular course sequence, the next topic to be considered after B1 has been completed is the topic represented by the node 2. Subtopics under topic 2 are executed in accordance with the regular course delivery sequence by completing the topics represented by the nodes A2a, A2b, etc. under the node A2. Upon completion of the topics of all those nodes at the level of node A2, the next step in the regular course delivery sequence is to move to the topic next in order at the level of the node A2, i.e., the topic represented by node B2 and its subsidiary topic nodes. Thus, course delivery regularly progresses in the fashion illustrated, passing in a clockwise manner around the central node 0 until topics represented by all nodes under the node 0 have been delivered and completed by the student.

FIG. 3, and related FIGS. 4 and 5, comprise a memory map of a portion of the temporary memory 17 in FIG. 1, and illustrate the aforementioned topic definition stack. Because of the usual need to conserve space in primary memory 17, a topic definition in the stack includes primarily information representing, as by memory address pointers, actual course text stored in secondary memory. The proportion of actual course information included in the stack is a design choice governed by the type of hardware used to implement the system.

The column of boxes at the left-hand side of FIG. 3, as illustrated, comprises respective topic definitions for a level of subtopics associated with a particular topic node in the nodal tree diagram of FIG. 2. For example, assume that the illustrated region of the memory represents the subtopics under the topic node designated 0 in FIG. 2 while a student is considering topic Y. In that case, the topics on the stack are those along the dashed line in FIG. 2. Thus, the uppermost box, designated Topic 0 in FIG. 3, corresponds to the topic node similarly designated "0" in FIG. 2. The next block beneath Topic 0 represents Topic 1; and the lowermost block in the column, i.e., that designated Topic Y, corresponds to the topic node Y in FIG. 2. Subtopics under Topic 0 are nested in a manner which will be described so that a student at any given point in the delivery of a course, e.g., at the node Y in FIG. 2, is associated with the central node 0 of FIG. 2 through a branch made up of a succession of nesting topic relationships.

Each of the topic regions in the stack portion of the memory 17 shown in FIG. 3 comprises the same basic elements or structure, but includes different specific contents, i.e., different address pointers, data, and flags, or perhaps null information in one or more of the elements. Such structure, representing a topic procedure in memory, with specific contents is herein called a topic definition. That basic topic structure is illustrated for the topic 1 in FIG. 3. During course delivery, topics, such as those shown in FIG. 3 for a Topic Y currently being executed and all topics through which it was called to be executed, are included in the stack in primary memory 17.

At the outset of course delivery, a topic definition is added to the stack; and that operation is termed a "push" of the topic onto the stack. The topic most recently pushed onto the stack is the current topic, i.e., the topic to be executed currently. As execution of a topic is completed, its definition is erased from primary memory 17; and, in that operation, the topic is said to be "popped" off the stack. Administration of the stack to control pushing and popping of topics in accordance with the course delivery sequence, as modified by student input, is accomplished by a topic interpreter which will be described in connection with FIG. 6. It will become apparent that, as the interpreter operates, there is pushing and/or popping of topics with respect to the stack to work out to a twig before educationally significant information is displayed to the student as a result of execution of that twig topic.

A topic definition is made up of a plurality of fields, each containing at least one register location in the primary memory. Each field of a particular type is always found in the same location of a topic definition. Such a field may contain one or more segments of text, one or more binary flags, or one or more addresses pointing to other locations in memory, usually the primary memory, where certain pieces of information can be found. Those pieces of pointed information are also part of the topic definition; and they may, in some cases, themselves be topic definitions. If a register location designated for text or address contains no such information at a particular time, it is said to be null.

One field in each topic definition is a link field, and it is intended to contain a linking address directing the course delivery system to the topic to which it should return in the regular course delivery sequence when execution of the topic containing the link is completed. Such a linking address is accessed at the end of topic execution just before the topic definition is popped from the stack. Thereafter, execution of the next topic in the regular course sequence begins. The linking function is schematically represented in FIG. 3 by an arrow extending from a dot in the link field register to the next topic block above the representation of that link field if there is any such topic left to be executed. If a linking address location is null, the course delivery has been completed.

Another field in a topic definition is the title field, and this contains a topic name register and a topic title register. The "title" is the textual version of the topic title, which is displayed to a student user of the course at an appropriate point in the course delivery. This topic title register can either be null or include text, as noted, in order to achieve a binary flag function. For example, if it is necessary during course delivery to see whether or not a topic title is present in order to make use of the state of the title register as a control flag, it is this title register content which is sought. The name register is an internal identification of the topic that may be used to retrieve information about that topic from a field in secondary memory.

The flag field comprises several registers for some of the different types of binary control flags that may optionally be present in the topic definition for effecting predetermined modifications of course delivery with reference to the topic definition in which the flag apears. If a flag is present, the predetermined modification is in effect for that topic and for all topics called from, that is, linked on the stack to, that topic. If the flag is absent, that modification is not in effect. These flags are easily modifiable at the convenience of the course author when editing input to the course database. Although the different flags are distinguished in the drawing by different characters, each is advantageously implemented by at least one bit in a predetermined location of a topic definition. For purposes of illustration, four types of flags (other than the title flag) are specifically shown in the topic definition detail in FIG. 3; and these four are further described below. Another type, not specifically shown in FIG. 3, will be described in connection with FIGS. 4 and 5.

A q-flag is the first one illustrated in FIG. 3. This q-flag, which will be discussed in greater detail in regard to FIG. 13, is used for limiting the extent of transfer from one point to another in a course delivery sequence in response to a student-applied quit command. When such a command is received from a student, the course delivery program automatically scans up through the stack until a topic definition is found to contain a q-flag in the flag field thereof. At that point, the scan is terminated, and course delivery resumes at the topic associated with the flag.

An h-flag is written in the drawing as a lower case h and is a history flag. This flag is used for causing selectable types of student topic completion history to be recorded in a file kept exclusively for that particular student. The history flag can take different forms. If it appears simply as a bit in the h-flag register, the minimum history is recorded and includes simply the basic information that the student entered the corresponding topic, and that the student ultimately left the corresponding topic. In other forms, the history flag is useful for recording information that may be of assistance in repositioning a student within the regular course delivery sequence in accordance with the nature of a particular lesson or topic being executed. For example, an hr history flag causes the copying of the complete event list (to be described), compiled during the student's execution of the topic, into a student-specific file in secondary memory. If one of the other forms is in use in the topic, the presence of an address pointer in the flag register directs the system to a memory location that includes bits in predetermined locations to indicate by their respective states which forms of history flag are in use.

A disable flag d is employed for enabling a course author to disable one or more specified commands for limiting the student's options in selectable ways. Those options are made available in conjunction with a standardized topic announcement (to be described). Here, again, an address pointer in the d-flag register identifies a memory location which includes bit representation for the specific commands that are disabled. The disabling function has two aspects. In accordance with one aspect, it prevents the inclusion of the disabled command in the standardized announcement. In the other aspect, if the student gives such a command during execution of the corresponding topic, even though the command is not displayed in the standardized announcement, the system simply signals the student that an invalid command has been received.

An add flag o is employed for enabling an author to add one or more commands to the standardized list for expanding the student's options in response to the standardized announcement. A pointer to an Add Option List register identifies the added options.

Also included in the topic statement of FIG. 3 are three list fields that may or may not contain pointer address information, depending upon the character of the particular topic in one case, and the nature of the results from a student's consideration of the topic in the other two cases. The three are fields for a production list, an event list, and a variable list, respectively.

The production list register includes a pointer to a linked list of production nodes identifying subtopics which can be called under the current topic. So, such a node is sometimes referred to as a topic call. The linked list of productions is further characterized in that it is circular. Thus, the completion of the first projection causes the second to be called, and so forth, in sequence until the Nth production has been called and completed. Thereafter, the first production in the list is once more called, as schematically represented by the arrow 20 looping back from the Nth production to the production number 1. An individual production node structure memory map is to be described in connection with FIG. 4. If a topic is a twig, the projection list register contains a null value.

An event list register is also included in the FIG. 3 topic definition. This register contains a pointer to a linked list of event nodes in temporary memory 17. In event nodes, there may be found information about productions which have been completed by the student engaged in executing the course. The event list is null, either in a topic which is a twig, or in a topic which has not yet been started by the student. The event list grows as the projections of the topic are considered by a student. As each new event consideration is recorded, or stored, it is associated with a pointer to a head address of a last prior recorded event to facilitate a search of the event list. In this case, however, the address linking system is not circular. If the student has considered the topic before, and if the hr history flag is set, then when the topic is called again, the event list is restored to the content which it had when the student last considered the topic. An illustrative event node structure memory map will be described in connection with FIG. 5.

The variable list register in the FIG. 3 topic definition is null for all topics except twigs. In a twig, the list contains a pointer to an address in primary memory 17 where there may be found variable nodes containing specific data about the results of a student's consideration of each action comprising the twig. An event node also includes a linked variable list of the same make-up as the topic node variable list, and will be discussed further in connection with FIG. 5. For example, if the production had included a test of how much the student has learned by consideration of the projection, the variable list would indicate whether the student had passed or failed that test. Upon completion of a topic having an hr history flag, or upon the student leaving such a topic, the system transfers the event list contents to the student's history file.

FIG. 4 depicts a memory map of a production node of the type mentioned in connection with FIG. 3. This node typically includes four registers, which are advantageously in a file in the secondary memory 18 rather than being included in the temporary primary memory 17.

A first register is a binary flag register and contains an announce flag bit a. An announce flag bit in the ON state, e.g., a binary ONE, places the terminal in a command mode in which it can receive and execute user commands; and it initiates the display of the aforementioned standardized announcement when the associated projection is accessed. The announce bit is also used in at least one case, to be described, to limit the extent of an address-generic transfer by a student among topics in the course to points where the student can enter further commands. An address-generic transfer is one in which the command requires a certain type of action, e.g., skip or repeat, and does not include, as part of the command, a specific destination address. The announce flag transfer extent limiting function is often used in conjunction with, but is not the same as, the same function of a title flag. A title may be used to identify the transfer location for the student.

The second register in the projection node is an action register, and it points to a secondary memory 18 location containing the machine representation of the topic name or other action name with which the production node is associated. Other actions might be, for example, a return action (to be described) or a simple set action, such as "set X O", which assigns the value ".phi." to the variable "X." A production may itself refer to an action, which is a subtopic definition, which could also refer in its production list to one or more subtopics, which refer to actions which are sub-subtopic definitions, and so forth. This, together with the topic node linking mentioned in regard to FIG. 3, is the topic-subtopic-nesting to which reference was previously made. If a topic definition production list field is null, the topic is a twig; and its required action is specified in the twig register in FIG. 3 which gives the address of the twig instruction in secondary memory.

A third register in the production node is a condition register, and it points to a secondary memory location containing a Boolean expression, if one is appropriate for the particular production, defining the condition under which the production is to be executed. For example, it may contain an IF statement having an effect, such as "do this action only if production 3.2 already appears on the event list of the current topic under execution." Alternately, the condition register may point to a WHILE statement, having an effect, such as "do this action while awaiting a specified student command input."

A fourth register in the production node contains the linking, or pointer, address which links the current production node to the next one in the circular production execution loop indicated in FIG. 3.

FIG. 5 is a memory map of an event node of the type indicated in FIG. 3. This segment of memory also is typically located in a file in the secondary memory 18. Four registers are included in the event node. A first one of the four contains the linking address which points to the address of the last prior event node which was added to the event list. The second register is a production name register; and it identifies, e.g., by production number n, the production with which this event is associated.

A third register in the event node is a title register, and it may contain a machine-readable representation of the title text which would be displayed to a student engaged in studying this particular production. This title information is copied from the "topic title" register of the topic stack in FIG. 3 at the time that the topic called by the indicated production is being executed.

The final register in the event node of FIG. 5 is the variable list register, and it also (as well as the variable list field of the FIG. 3 basic topic definition) contains a pointer to a linked list of variable nodes, one node for each variable recorded in association with the event, or the topic in the case of the FIG. 3 variable list. Each variable node includes three registers, as shown for the second variable in FIG. 5. A first register contains a pointer to the name of the variable. A second register contains the value of that variable, as previously discussed. A third register is the link register, which contains an address pointing to the next node in the variable node group, if there is another in the group.

The operation of pushing a topic was previously mentioned. Topic .phi. is pushed when the interpreter starts, perhaps as the result of a student selection; and subsequent topics are pushed by topic calls, as in a production action. That topic name is used by the course delivery system to locate the topic definition in a topic file of the database. The topic definition thus obtained is then placed onto the stack and becomes the current topic. If the topic definition has a history flag set, a record indicating the start of execution of the topic is written in the student's history file. That record includes the topic name and, optionally, the time of day. If the topic includes a production list, and if the history flag in the flag field is a resume-history flag hr, then the event list pointer and the current production pointer are set to the last values, if any, recorded in the student's history file, so that consideration can be resumed from that point.

In the field of computer-assisted instruction, there are various course delivery techniques which are known; and they include various topic-interpreting techniques for controlling the accessing of the different parts of the course material in a course database in appropriate segments and delivering these segments by displaying them to a student. Some of these topic-interpreting techniques allow substantial control over course delivery sequence by the student, and some do not. The topic-interpreting technique, presented here for illustrating the present invention, is one allowing a student substantial control. The topic interpreter is useful beyond the computer-assisted instruction system environment in which it is here illustrated. For example, many types of user-interactive computer systems include a facility for explaining to a user some aspect such as a system command. The topic interpreter, to be discussed in connection with FIG. 6, is useful for delivering such explanations.

FIG. 6 illustrates a topic-interpreting process advantageously employed in a course delivery operation in which the present invention is utilized to facilitate delivery of successive topics and their nested components. Respective steps of the illustrating process are either readily implementable by those skilled in the art or are illustrated in greater detail, in related figures, of steps which are so readily implementable. The process is hereinafter described, and illustrative pseudocode is included in the Appendix.

The topic interpreter decides for the system on what branch, and where on the branch, of the node tree the system is presently working. Then, the interpreter causes an appropriate type of execution to be performed for that location. For example, it administers the FIG. 3 stack structure either to extend topic nesting out (by topic actions, or calls) from the root, or central trunk portion, toward a twig that enables new information to be displayed to a student or to decrease nesting inward (by return actions), usually temporarily, to attain ultimately a new set of twigs associated with a different topic or subtopic. Having identified a particular twig for delivery to the student, the interpreter causes execution by display of information designated in the twig topic definition. At appropriate points in the stack administration, selected by the course author by a-flag placement, as already described, the interpreter process causes a standardized announcement to be displayed to inform the student that a subject matter, i.e., topic, change is about to take place, so the student can elect how to proceed from that point.

The main algorithm of the topic interpreter of FIG. 6 places, or pushes, topic definitions onto a stack, such as the memory stack illustrated in FIG. 3, and removes, or pops, individual topic definitions from the stack as execution thereof is completed by the student.

The algorithm begins by pushing a first topic onto the stack, expands or contracts the stack as course delivery proceeds, and ends when the stack is empty. For purposes of illustration, it is assumed, in terms of the FIG. 2 node tree, that initial topic is the topic No. 0. An item on its production list caused topic No. 1 to be added to the stack, and an item on the topic No. 1 production list caused topic No. B1 to be pushed onto the stack. At this point, it is further illustratively assumed that course delivery is in some phase of the execution of topic No. B1, so topic Nos. 0, 1, and B1 are on the stack. As each topic is pushed onto the stack, its link register is loaded with the address of the last prior topic pushed onto the stack.

The last topic placed on the stack is the topic which is to be currently executed and is, therefore, referred to as the "current topic." In FIG. 6, the current topic B1 in the illustration previously mentioned, is first tested to determine whether or not it includes a production list. If not, it is a twig, say, lying at an outer extremity of the node tree of FIG 2. When the call for the twig is invoked, a protocol, many of which are known in the art and comprise no part of the present invention, is invoked for executing the twig; and it specifies the test and/or the graphics to the displayed; and it also provides for keyboard responses which may be solicited from the student at the terminal 10. This execution of the twig topic is the instructional output point as far as a student is concerned. The remainder of the FIG. 6 process, and any interaction therein with a student, relates to administration of the memory stack; and that remainder is largely unobserved by the student. Following execution of the twig, the process jumps to point E in FIG. 6 to perform a return action.

A return action is one in which the system returns from the current topic to the topic from which it had been called, and the return action includes the steps following point E in FIG. 6. Thus, the values of current topic variables, e.g., student test results, are set. That is, var