Within the field of human-computer interaction there has long been interest in developing adaptive automated instruction software to facilitate learning of application programs. This software would monitor a computer user's behavior while using the application program, and then provide optimized and personalized instruction to help the user become more skilled with the application. This form of instruction could be performed by a stand-alone tutoring application, or it could be carried out by special routines built into the application program itself (as with the Microsoft Office Assistant discussed below).