WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Interactive online tutorial system for software products    
United States Patent5535422   
Link to this pagehttp://www.wikipatents.com/5535422.html
Inventor(s)Chiang; Alice (Portola Valley, CA), McBride; Kevin M. (Menlo Park, CA), Yee; Calvin C. (Fremont, CA)
AbstractAn interactive online tutorial system is disclosed for providing instruction in the use of a software product operating on a data processing device. The data processing device including an instruction processing unit or CPU, a data storage resource, an input system for receiving input from a user via a mouse or keyboard, and an output system for generating output images on a video display. The tutorial system includes a first display control for generating a tutorial window in a first portion of the video display. A second display control is provided for generating a product window in a second portion of the video display. A tutorial presentation system selectively generates a plurality of tutorial text panels in response to input from the input system. The tutorial text panels include one or more lesson panels and one or more step panels associated with each lesson panel. A tutorial panel linking system links the lesson panels through a series of sequential links and links the lesson panels and their associated step panels through a series of hierarchical links. A series of tutorial panel selectors are provided for selectively activating from a lesson or step panel a link to another lesson or step panel in order to display the linked panel.
   














 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 5535422
Interactive online tutorial system for software products - US Patent 5535422 Drawing
Interactive online tutorial system for software products
Inventor     Chiang; Alice (Portola Valley, CA) , McBride; Kevin M. (Menlo Park, CA) , Yee; Calvin C. (Fremont, CA)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     July 9, 1996
Application Number     08/326,792
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 20, 1994
US Classification     715/709 434/118
Int'l Classification    
Examiner     Harrell; Robert B.
Assistant Examiner    
Attorney/Law Firm     Baker, Maxham, Jester & Meador
Address
Parent Case     This application is a continuation of application Ser. No. 07/858,295, filed Mar. 26, 1992, now abandoned.
Priority Data    
USPTO Field of Search     364/DIG.1MSFile 364/DIG.2MSFile 395/100 395/118 395/161 395/153 395/154 395/375 395/500 434/118
Patent Tags     interactive online tutorial software products
   
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
5155806
Hoeber
715/711
Oct,1992

[0 after 0 votes]
5038316
Hempleman
715/531
Aug,1991

[0 after 0 votes]
5035625
Munson

Jul,1991

[0 after 0 votes]
4941829
Estes
434/118
Jul,1990

[0 after 0 votes]
4648062
Johnson
715/708
Mar,1987

[0 after 0 votes]
4637797
Whitney
434/118
Jan,1987

[0 after 0 votes]
4622013
Cerchio
434/118
Nov,1986

[0 after 0 votes]
5179654
Richards
715/708
Dec,1969

[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
 


We claim:

1. An interactive online tutorial system product operable in conjunction with a digital processing apparatus for providing instruction in the use of a software product operating on said digital processing apparatus, the data processing apparatus including a CPU, a data storage resource, an input system for receiving input from a user via a mouse or keyboard input device, and an output system for generating output images on a video display, and a multitasking operating system, said tutorial system comprising:

a data storage medium operable in conjunction with said digital processing apparatus;

a tutorial control module encoded on said medium having a window control interface;

a lesson control file encoded on said medium providing input to said tutorial control module;

an information presentation module encoded on said medium and adapted for communication with said tutorial control module via said window control interface;

a lesson display file encoded on said medium providing input to said information presentation module;

first display control means provided by said tutorial control module, said window control interface and said information presentation module for generating a tutorial window in a first portion of the video display;

second display control means provided by said tutorial control module for generating a product window in a second portion of the video display concurrently with said tutorial window;

application execution means provided by said tutorial control module for commencing execution of said software product in said product window;

tutorial presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said tutorial window a plurality of tutorial text panels, said tutorial text panels including one or more lesson panels and one or more step panels corresponding to each lesson panel, said lesson panels and step panels displaying instructional text illustrating a predetermined sequence of operations to be performed on said software product;

lesson control means provided by said tutorial control module for dynamically adjusting a lesson control pointer in said lesson control file based on lessons displayed in said tutorial text panels;

tutorial panel linking means provided by said information presentation module and said lesson control file for linking said lesson panels through a series of sequential links and for linking said lesson panels and their corresponding step panels through a series of hierarchical links; and

tutorial panel selection means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for selectively activating from a lesson or step panel a link to another lesson or step panel in order to display the panel so linked.

2. The tutorial system of claim 1 wherein said tutorial presentation means includes means for generating lesson panels containing pointers to previous and subsequent lesson panels that are linked sequentially to the lesson panels.

3. The tutorial system of claim 2 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons.

4. The tutorial system of claim 1 wherein said tutorial presentation means includes means for generating lesson panels containing a list of corresponding step panels that are linked hierarchically to the lesson panels.

5. The tutorial system of claim 4 wherein the hierarchical links between lesson panels and associated step panels are hypertext links which are activated by selecting hypertext words contained in the list of corresponding step panels.

6. The tutorial system of claim 1 wherein said tutorial presentation means includes means for generating lesson panels containing a list of corresponding step panels that are linked hierarchically to the lesson panels and pointers to subsequent and previous lessons that are linked sequentially to the lesson panels.

7. The tutorial system of claim 6 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons and wherein the hierarchical links between lesson panels and corresponding step panels are hypertext links which are activated by selecting hypertext words contained in the list of associated step panels.

8. The tutorial system of claim 1 wherein said tutorial presentation means further include means for generating in said product window a plurality of concept panels, wherein said panel linking means include means for generating a series of parallel links between said concept windows and corresponding lesson panels, and wherein said panel activation means include means for selectively activating from a lesson panel a link to one of said concept panels in order to display the linked panel.

9. The tutorial system of claim 8 wherein said tutorial presentation means include means for generating lesson panels containing descriptive information concerning the panel.

10. The tutorial system of claim 9 wherein the links between the lesson panels and concept panels are hypertext links which are activated by selecting hypertext words contained in the lesson panel descriptive information.

11. The tutorial system of claim 1 wherein links between panels include hypergraphic and hypertext links which are activated using icons and keywords contained in said panels.

12. The tutorial system of claim 1 further including means for selectively displaying help information in said product window.

13. An interactive tutorial method for providing instruction in the use of a software product operating concurrently in a data processing device, the data processing device including an instruction processing unit or CPU, a data storage resource, an input system for receiving input from a user via a mouse or keyboard input device, and an output system for generating output images on a video display, said tutorial method comprising the steps of:

providing a tutorial control module having a window control interface;

providing a lesson control file providing input to said tutorial control module;

providing an information presentation module in communication with said tutorial control module via said window control interface;

providing a lesson display file providing input to said information presentation module;

generating a tutorial window in a first portion of the video display using said tutorial control module, said window control interface and said information presentation module;

generating a product window in a second portion of the video display concurrently with said tutorial window using said tutorial control module;

commencing execution of said software product in said product window using said tutorial control module;

generating a series of tutorial display panels including lesson panels and corresponding step panels using said tutorial control module, said window control interface, said information presentation module and said lesson display file, said lesson panels and step panels displaying instructional text illustrating a predetermined sequence of operations to be performed on said software product;

dynamically adjusting a lesson control pointer in said lesson control file based on lessons displayed in said tutorial display panels using said tutorial control module;

generating a series of hierarchical links between lesson panels and corresponding step panels and a series of sequential links between sequential lesson panels using said information presentation module and said lesson display file;

displaying a first tutorial panel in said tutorial window using said information presentation module and said lesson display file; and

in response to selective activation of a link from said first tutorial panel to another panel linked thereto, displaying the panel so linked in said tutorial panel using said tutorial control module, said window control interface, said information presentation module and said lesson display file.

14. The tutorial method of claim 13 wherein said lesson panels are provided with pointers to previous and subsequent lesson panels that are linked sequentially thereto.

15. The tutorial method of claim 14 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons.

16. The tutorial method of claim 13 wherein said lesson panels are provided with a list of corresponding step panels that are linked hierarchically thereto.

17. The tutorial method of claim 16 wherein the hierarchical links between lesson panels and corresponding step panels are hypertext links which are activated by selecting hypertext words contained in the list of corresponding step panels.

18. The tutorial method of claim 13 wherein said lesson panels are provided with a list of corresponding step panels that are linked hierarchically thereto, and wherein said lesson panels are further provided with pointers to subsequent and previous lessons that are linked sequentially thereto.

19. The tutorial method of claim 18 wherein the sequential links between lesson panels are hypergraphic links which are activated by selecting the pointer icons to previous and subsequent lessons and wherein the hierarchical links between lesson panels and corresponding step panels are hypertext links which are activated by selecting hypertext words contained in the list of corresponding step panels.

20. The tutorial method of claim 13 wherein the links between panels include hypergraphic and hypertext links which are activated using icons and keywords contained in said panels.

21. The tutorial method of claim 13 further including the steps of providing a plurality of concept panels, providing a series of parallel links between the concept windows and corresponding lesson panels, and, in response to the selective activation of a parallel link between one of said lesson panels and an corresponding concept panel, displaying the linked panel in said product window.

22. The tutorial method of claim 21 wherein said lesson panels are provided with descriptive information concerning the panels.

23. The tutorial method of claim 22 wherein the links provided between the lesson panels and concept panels are hypertext links which are activated by selecting hypertext words contained in the lesson panel descriptive information.

24. The tutorial method of claim 13 further including the step of selectively displaying help information in said product window.

25. An interactive online tutorial system for providing instruction in the use of a software product operating on a data processing device, the data processing device including an instruction processing unit or CPU, a data storage resource, an input system for receiving input from a user via a mouse or keyboard input device, and an output system for generating output images on a video display, said tutorial system comprising:

a tutorial control module having a window control interface;

a lesson control file providing input to said tutorial control module;

an information presentation module in communication with said tutorial control module via said window control interface;

a lesson display file providing input to said information presentation module;

first display control means provided by said tutorial control module, said window control interface and said information presentation module for generating a tutorial window in a first portion of the video display;

second display control means provided by said tutorial control module for generating a product window in a second portion of the video display concurrently with said tutorial window;

application execution means provided by said tutorial control module for commencing execution of said software product in said product window;

lesson panel presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said tutorial window a plurality of lesson panels, said lesson panels including a descriptive summary in a listing of steps to be taken during the lesson, said lesson panels displaying instructional text representing a predetermined sequence of operations to be performed on said software product;

step panel presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said tutorial window a plurality of step panels representing steps listed in corresponding lesson panels, said step panels including a listing of actions to be taken during the step, said step panels displaying instructional text representing a predetermined sequence of operations to be performed on said software product;

concept panel presentation means provided by said tutorial control module, said window control interface, said information presentation module and said lesson display file for generating in said product window a plurality of concept panels representing conceptual information pertaining to corresponding lesson panels;

lesson control adjustment means provided by said tutorial control module for dynamically adjusting a lesson control pointer in said lesson control file based on lessons displayed in said tutorial text panels;

first panel linking means provided by said information presentation module and said lesson display file for linking sequential lesson panels through a series of sequential links;

second panel linking means provided by said information presentation module and said lesson display file for linking corresponding lesson panels and step panels through a series of hierarchical links;

third panel linking means provided by said information presentation module and said lesson display for linking sequential step panels through a series of sequential links;

fourth panel linking means provided by said information presentation module and said lesson display file for linking corresponding lesson panels and concept panels through a series of parallel links; and

tutorial panel selection means provided by said tutorial control module, said window control interface, said information presentation facility and said lesson display file for selectively activating from a lesson or step panel a link to another lesson panel or step panel or concept panel in order to display the panel so linked.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention relates generally to tutorial systems for providing instruction in the operation of software products. More particularly, the invention pertains to online tutorial systems wherein software product training is provided interactively by guiding the user through one or more examples of product operation. Still more particularly, the invention involves a computer implemented, interactive tutorial system providing online instruction, monitoring and assistance in conjunction with a contemporaneously operating software product.

As software developers strive to provide ever more versatile and powerful products, the task of becoming proficient in the use and implementation of such products becomes increasingly difficult. Even for those users who consider themselves computer "literate", days and sometimes weeks of instruction may be required before the user is able to take full advantage of functional capabilities offered by many software products. In such cases, the quality of the instructional materials accompanying the software may be nearly as important as the product in ensuring ultimate user satisfaction.

Software instructional materials for prior art products fall into two general types. On one hand are product documentation materials, such as printed manuals and online product description files. These materials provide textual descriptions of operational features of the product. They may also include examples of product operations. Although documentation of this nature may be adequate for reference purposes, such materials are not particularly suitable for providing initial instruction in the use of a product. Most users would rather use the product directly than spend hours reading ancillary instructional materials. Accordingly, a number of products follow a learn-by-doing approach using interactive tutorial materials, which represent a second category of instructional materials.

Unlike product documentation materials, tutorials provide instruction in a manner which gives the user an opportunity to gain practical experience in the context of solving actual problems. Both online and workbook-based tutorials have been proposed wherein the user is guided through a presentation of one or more examples or problems in a sequence of lessons. In workbook-based systems the student performs specified actions on the product in accordance with a lesson plan set forth in a printed workbook. Online systems work in a similar fashion except that the tutorial lessons are displayed sequentially on-screen. In addition, online tutorials typically include the capability of monitoring student actions and advising when a mistake has been made. Moreover, if the user requires assistance, a preprogrammed demonstration can be requested to perform the correct action(s) to be taken. For these reasons, online tutorials represent the most promising avenue for providing instruction in the operation of software products.

Most prior art online tutorial systems allow users to interact with a simulation of the software product of interest. This approach to tutorial instruction is both inefficient and costly. The software designer must not only code and debug the application product itself but also the duplicative simulation code for the tutorial. The simulation code must be periodically updated and maintained as the product changes, all at additional time and cost. The effectiveness of simulation tutorials as a teaching vehicle is also open to question. Simulation tutorials provide only limited product interaction because the simulations can only emulate the user interface of the product and do not have full capabilities in processing user actions. The user is not afforded direct experience with the product and thus may be deprived of a full and accurate understanding of product characteristics. Because only a partial view of the product is provided, users are unable to explore other portions of the product or learn on their own beyond what the tutorial covers.

As a solution to the inefficiencies of simulation tutorials, several systems have been proposed wherein online tutorial instruction proceeds in conjunction with the operation of the product to be taught. The prior art includes interactive tutorials implemented in single task operating systems in which special hardware or software subsystems are required to control the environment and provide tutorial information. This special hardware and software includes such things as interrupts between the user and operating system, processing outside the operating system, and external information presentation hardware. As a result, the flexibility and efficiency of these tutorial products is relatively limited. For example, the information presentation function in many prior art tutorial systems is provided in a strict top down sequence which must be followed in the order set forth. No provision is made for selectively controlling the level of tutorial information detail presented as the student works through the lesson. In other cases, the input monitoring function of prior art tutorial systems is unduly restrictive insofar as literal input response from the student is required. No provision is made for allowing the student to provide input to the computer for performing tasks which are non critical to the product. Finally, in other prior art tutorial systems wherein a demonstration mode is provided, no provision is made for selectively controlling the duration of the automated control sequence. Typically, the demonstration sequence encompasses a predetermined number of input steps.

The foregoing disadvantages of prior art tutorial systems stem in part from limitations inherent in single task operating systems and in user interface software that provides only limited control functionality. Recent advances in software technology offer opportunities to create tutorial products with better user interfaces and more sophisticated program control without undue product complexity. The OS/2.TM. operating system from IBM Corporation provides a multi-tasking environment wherein multiple products can be run concurrently within the operating system. The OS/2.TM. operating system includes a set of programming resources referred to as the application program interface (API). The API in turn provides a subset of support routines collectively referred to as the Presentation Manager.TM. API, which allows applications to run in rectangular subdivisions of the display called windows. Each windowed application can share the screen with other windowed applications. Each includes a graphics-based user interface to present visual controls for managing, via mouse and keyboard input, the application and files installed and running under OS/2. Each window further includes a display area for outputting application generated text and graphics. The OS/2.TM. operating system also provides a message exchange network which permits applications to communicate with each other via message passing protocols.

Accordingly, there exists in an improved computing environment a need to provide an online tutorial system that is operable in conjunction with a software product of interest. This need offers a unique opportunity to improve upon prior art tutorial systems by offering characteristics and features not provided by the tutorial systems noted above. The challenge for software developers is how to use these facilities to present information effectively.

SUMMARY OF THE INVENTION

The present invention is directed to a computer implemented tutorial system that supports direct user interaction with a software product concurrently executing with the tutorial. The tutorial system controls the resources of a data processing device to present tutorial lesson information, monitor user input and provide input assistance upon request. In a preferred implementation of the invention, the data processing device includes an instruction processing unit or CPU, a data storage resource, an input system for receiving input from a user via a mouse or keyboard, and an output system having a video display.

The tutorial system includes a display initialization system for generating a tutorial display window in a first portion of the video display and product display window in a second portion of the display. The tutorial system further includes a tutorial presentation system for controlling the presentation of tutorial information in the tutorial display window in response to user input requests. Tutorial information is presented by the presentation system through a series of linked information display panels including lesson panels, step panels and concept panels. Each lesson panel contains overview information and a menu of step selections. The lesson panels are linked sequentially to other lesson panels. They are also linked hierarchically to step panels listed in the lesson panel menu such that the step panels may be selectively activated from within an associated lesson panel. Each step panel sequentially lists and describes one or more user input actions for controlling the product to be learned. Each step panel is also linked sequentially to other step panels, which may be selectively activated from within an active step panel. A third category of information display is provided by a plurality of concept panels which are linked to associated lesson panels and have a parallel relationship therewith. The information presentation system includes a control system responsive to mouse and keyboard inputs for selectively displaying lesson, step and concept panels.

In a further aspect of the invention, the tutorial system includes an input monitoring system for preventing erroneous input from reaching the concurrently executing software product. The monitoring system utilizes a lesson control file containing input actions corresponding to actions described in the step panels of the information presentation system. These actions are arranged hierarchically and identified by a lesson, step and action numbers. The monitoring system compares user inputs with expected input actions defined in the lesson control file. Upon a match, a message containing the appropriate input is allowed to reach the product. If a mismatch occurs, an error message is generated. The monitoring system may also include one or more lookup tables containing input actions which the user could take that are not critical to the product. Such actions would include controlling the information presentation system or performing noncritical actions within the product itself, such as window sizing and scrolling, or looking at pull down menus and other product features. These functions should not be inhibited by the tutorial monitoring system.

In a still further aspect of the invention, the tutorial system includes a user assistance system for selectively driving the product to perform the actions of a lesson. The user assistance system utilizes the lesson control file to send messages to the product corresponding to input actions defined by the lesson control file. Because the lesson control file is structured hierarchically, the user can selectively drive the product to perform one or more actions, one or more steps or an entire lesson. These actions can be requested from the display panels of the information presentation system, which include appropriate command icons that may be activated by mouse or keyboard input.

BRIEF DESCRIPTION OF THE DRAWING

The foregoing and other features, objects and advantages of the invention will be apparent from the following detailed description when considered in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram showing an interactive tutorial system constructed in accordance with the present invention;

FIG. 2 is a diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;

FIG. 3 is another diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;

FIG. 4 is another diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;

FIG. 5 is another diagrammatic illustration of a screen display containing lesson information generated by the tutorial system of FIG. 1;

FIG. 6 is a block diagram showing the control of lesson information presentation in the tutorial system of FIG. 1;

FIG. 7 is a table showing selected command types and associated parameters from a lesson control file utilized by the tutorial system of FIG. 1;

FIG. 8 is a block diagram showing a lesson control table data structure utilized by the tutorial system of FIG. 1;

FIG. 9 is a block diagram showing message flow during the user input monitoring function performed by the tutorial system of FIG. 1;

FIG. 10a is a first portion of a diagram showing logic flow during the user input monitoring function performed by the tutorial system of FIG. 1;

FIG. 10b is a second portion of a diagram showing logic flow during the user input monitoring function performed by the tutorial system of FIG. 1;

FIG. 11 is a diagram showing message flow during the user assistance function performed by the tutorial system of FIG. 1;

FIG. 12a is a first portion of a diagram showing logic flow during the user assistance function performed by the tutorial system of FIG. 1; and

FIG. 12b is a second portion of a diagram showing logic flow during the user assistance function performed by the tutorial system of FIG. 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

OVERVIEW

The invention will now be described in detail in relation to a preferred embodiment and implementation thereof which are exemplary in nature and descriptively specific as disclosed. As is customary, it will be understood that no limitation of the scope of the invention is thereby intended, and that the invention encompasses such alterations and further modifications in the illustrated device, and such further applications of the principles of the invention illustrated herein, as would normally occur to persons skilled in the art to which the invention relates.

Thus, with reference now to FIG. 1 there is illustrated diagrammatically a data processing system 10 which may be conventionally embodied as one of the IBM family of personal computers, including the IBM Personal System/2.TM. and the Personal Computer AT.TM., among others. The data processing system 10 includes an instruction processing unit ("Processor") or CPU 12, a data storage resource 14, an input system for receiving input from a user via a keyboard 16 or mouse input device 18, and an output system for generating output images on a video display 20. Stored within the data storage resource 14 are a series of machine readable instruction sets for providing an interactive online tutorial system. The tutorial system includes a tutorial control module 30 which utilizes a lesson control file 32, a lesson display file 34 and an information presentation system 35 to provide tutorial instructions in the use of one or more products 36, 38 and 40. The tutorial control module 30 also permits the user to perform additional tasks 42, 44 and 46 which are unrelated to the products 36, 38 and 40. The products 36, 38 and 40 represent interactive software applications which are concurrently executing with the interactive online tutorial system. Such products could include software tools intended for concurrent use in order to perform some higher task. In that case, the tutorial would provide instruction in the concurrent use of the products. The tasks 42, 44 and 46 represent other products concurrently running under the operating system which are not being taught by the tutorial.

The tutorial system performs three major functions: information presentation, monitoring and demonstration assistance or "show-me". In the preferred embodiment, the tutorial system operates in the environment of a multi-tasking operating system running on the data processing device 10. The OS/2.TM. operating system from IBM is preferred. It provides a multi-tasking, graphical and windowing environment which allows the tutorial system to operate concurrently with one or more products to be learned. In this multi-tasking environment, lesson information can be presented in one portion of the display 20 while the products can be displayed in another portion of the display. These display portions are conventionally known as windows. To provide this windowed environment, a set of OS/2 programming resources referred as the application program interface (API) may be advantageously utilized. In particular, a subset of API support routines collectively referred as the Presentation Manager.TM. API is invoked. The OS/2.TM. operating system and its various API resources, including the Presentation Manager.TM. API, have been extensively documented (see, e.g., IBM Programming Guide, Operating System/2 Programming Tools and Information, Version 1.2 (September 1989)).

Persons skilled in the art will appreciate that the OS/2.TM. operating system and its Presentation Manager.TM. API provide a multi-tasking environment wherein one or more applications can operate concurrently within their own windows. A multi-tasking operating system such as the OS/2.TM. operating system is to be distinguished from a single-task operating system. In single-task operating systems, programs cannot be executed concurrently in a protected mode wherein data integrity is maintained between programs. In single-task systems, processes sharing computer resources must be operated as co-routines. A co-route is subroutine which, when called again after an execution, resumes at the return point of its previous execution. In contrast, multi-tasking provides a mode of operation that employs concurrent or interleaved execution of two or more tasks by a single processor such that processes take place within common processor resources.

In the OS/2.TM. operating system, there are three levels of multi-tasking: sessions, processes and threads. A session is the top-level object in the multi-tasking hierarchy. A session usually consists of a process, a logical display screen, and a logical input device. The OS/2.TM. operating system can run several sessions concurrently and users can switch between them. The session with which the user interacts is called the foreground session. All other sessions continue to run but receive no input from the user. A process is an executing application plus the resources it uses. A thread is an executable unit contained in a process. Processes and threads can both run concurrently. Thus, at all levels of multi-tasking, concurrent program execution is provided and there is no requirement for co-routining as in single-task operating systems.

In the present invention, a tutorial program and one or more application programs to be learned are run concurrently in separate Presentation Manager.TM. processes. Advantageously, the Presentation Manager.TM. API supplies several window classes that have a standard appearance. In addition, developers can register their own window classes. In either case, Presentation Manager.TM. resources are provided for generating display windows automatically so that the application developer is freed from the task of writing window display code. These resources also include a subset library of routines, collectively referred to as the Information Presentation Facility (IPF) for generating application-related help information windows.

As is well known, a Presentation Manager.TM. application can create several windows of any class, each with its own data, and arrange the windows on the screen like papers on a desk top. Several Presentation Manager.TM. applications can be run concurrently with the windows of each application sharing the screen with the windows of other applications. These windows can overlap, with overlying windows obscuring parts of underlying, overlapped windows. Users direct input to visible active windows from a mouse or keyboard input device. Each window thus includes visual controls and data entry areas to facilitate the input function.

User input is directed to applications associated with input windows by the OS/2.TM. operating system in the form of messages, which are a fundamental part of the OS/2.TM. operating system. Presentation Manager.TM. applications use messages to communicate with each other and with the operating system. These messages are passed through a system message queue. Each application also has an input message queue, and the application message queue is identified by a window "handle". Sources of events that cause a message to be sent to an application are several. As indicated, the OS/2.TM. operating system directs messages to an application in response to a mouse or keyboard input to the application window. In other cases, the OS/2.TM. operating system itself, in managing the application windows on the screen, sends messages to the windows. Events can also occur in an application to which another part of the same application should respond. For example, an application can send itself a message to repaint the contents of a window which has been changed as a result of user input. Finally, applications communicate with each other via messages.

In order to support message-based processing, each Presentation Manager.TM. application is structured to utilize a main procedure and a window procedure. The main procedure initializes operating system resources, creates an application message queue, registers and creates the window(s) of the application, creates a message-processing loop to get messages from the input queue and send them to the window procedure to be processed, and upon program termination, terminates operating system resources used by the application. The window procedure processes every message in which the application is interested and takes appropriate action. If necessary, the window procedure also calls system-provided default window procedures to deal with messages in the which the application is not interested. These messages are returned to the system message queue, or may be directed to another application's input queue or window procedure.

The foregoing features of the OS/2.TM. operating system and Presentation Manager.TM. API are exploited to significant advantage in the preferred embodiment of the present invention. In accordance therewith, a tutorial system has been developed for providing instruction in the use of a software product known as AD/Cycle--The Integrated Reasoning Shell.TM., or TIRs. The TIRS.TM. product is an expert system program which creates knowledge applications for a variety of uses such as banking, finance, etc. The tutorial system developed for TIRS gives novice users hands-on experience in developing knowledge applications using TIRS. The tutorial conforms with IBM's Systems Application Architecture.TM. Common User Access or CUA standard for the presentation of display information and user input. The tutorial was written as a Presentation Manager.TM. application. It utilizes the above-referenced multi-tasking, graphical and windowing environment of OS/2 in presenting lesson information to users. Tutorial lessons are displayed in the tutorial's own task window tiled with the TIRS product window(s). Users can view step-by-step instructions in the tutorial lessons and at the same time interact with TIRS to try out these instructions.

The tutorial uses the OS/2.TM. Information Presentation Facility for the authoring and presentation of lesson information, although no limitation in scope of the invention is intended thereby. Other commercial information presentation facilities could also be used. Alternatively, customized information displays could be created. In addition, other tools such as multimedia presentation formats providing audio and video instruction could be utilized as would all be apparent to persons skilled in the art in light of the teachings herein. The OS/2.TM. Information Presentation Facility provides a programming tool for the implementation of a help interface. Using IPF, an interface window can be readily developed that provides not only general help for application windows, but also contextual help for fields within windows. The Information Presentation Facility allows software developers to author their own help panels using an IPF tag language. The IPF tag language includes text to be displayed in a help panel together with commands that define relationships between different portions of the help information text. Help panels can be written by the developer in the IPF tag language source code and compiled by an IPF compiler. IPF provides standard window graphics objects for displaying the help text and allowing users to control the presentation of information.

Each help panel represents a separate text unit having its own panel identifier. Advantageously, the IPF tag language allows developers to insert hypertext or hypergraphic links between help panels, or between a help panel and a smaller footnote panel. Moreover, hypertext objects can be defined which cause messages to be generated when selected. These features are all utilized to advantage by the tutorial system described herein. Each of the lesson display files 34 shown in FIG. 1 represents an IPF help panel created using the IPF tag language. The IPF lesson display files 34 contain lesson information. The tutorial system inputs the lesson display files and adapts and controls the Information Presentation Facility to present lesson information according to the tutorial's specifications.

The tutorial is integrated with the product insofar as the two applications communicate with each other through a message passing scheme. As indicated, OS/2 conveys information between concurrently running applications in the form of messages. Relatedly, the tutorial passes messages directly to the product's main window. In an alternative embodiment, messages are passed through dynamic data exchange (DDE), a standard OS/2.TM. interprocess communications protocol. Through DDE communications, the tutorial sends messages requesting the product to perform certain actions.

The tutorial monitors what users are doing in the product by intercepting messages to the product in the