1. An interactive training system for training a person to use a preselected computer program, comprising: (a) a computer subsystem including CPU means for executing computer programs, input means for entering data into said system, and display means for displaying the results of executing a computer program in said CPU; (b) means for loading said preselected computer program in said computer subsystem; and (c) tutor means comprising a second distinct computer program resident in said computer subsystem for training said person to use said preselected computer program while said computer subsystem runs said preselected computer program, wherein said second distinct computer program operates as a coroutine to said preselected computer program, said tutor means including: a courseware database for defining a tutorial for training a person to use said preselected computer program, including data structures for defining, in accordance with the contextual circumstances in the running of said preselected computer program, (a) criteria for determining whether said input data is to be processed by said preselected computer program, and (b) tutorial messages to be displayed on said display means in response to said input data; interrupt means for interrupting the flow of data from said input means to said preselected computer program so that said input data can be compared with said courseware database criteria, monitor means for interpreting and manipulating said input data, selectively generating tutorial messages in reponse to said input data, and selectively allowing a subset of said input data to be processed by said preselected computer program; said interpreting, manipulating, generating and allowing functions being dynamically determined in accordance with predefined criteria in said courseware database dependent on the contextual circumstances in the running of said preselected computer program, and display control means for separately displaying said tutorial messages and the output from said preselected computer program so that said person can distinguish tutorial messages from normal output from said preselected computer program; wherein the content and flow of said tutorial is defined by said data structures in said courseware database.