|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |