This paper describes a hypothetical computer program capable of emulating the behavior of a human tutor. Such a program must, ideally, display a number of characteristics. It must be mixed-initiative, meaning that either student or tutor may initiate an interaction. It must be capable of understanding natural language input and generating natural language output. It must be highly knowledgeable
... [Show full abstract] about its subject matter, and generative in order to be able to answer unanticipated questions. Finally, the system must be flexible enough to detect the needs of a student and alter its teaching strategy so as to best meet those needs. The first part of the paper discusses what the major parts of the system would be, the functions each part would carry out, and the means by which they interact. The goal is to develop a general system that can be used with a number of different teaching strategies. The second part of the paper analyzes the Socratic teaching method in order to determine the requirements for implementation within the system.