This paper regards a project whose design objective was a synthesis of two perspectives on the use of computers in education. Computers may be used to educate, and people may be educated to use computers. Socrates is a project in the area of expert systems development. It was designed to be a workable tool in the field of abnormal psychology, but the educational setting was prominent during the design process. The tool chosen for development was a diagnostic expert system capable of producing a valid, reliable diagnosis on Axes I and III of the American Psychiatric Association's Diagnostic and Statistical Manual, Third Edition (DSM-III) of alcohol-use related maladaptive behavior patterns. The development of Socrates was approached using some of the perspectives that software engineers bring to the development of complex software systems. However, using algorithmic tools to solve a problem that is answerable only through heuristics renders those tools less useful. The system, implemented in PROLOG, was constructed from complex functional representations of data. Data flow diagrams (DFDs) tended to distort the exact picture of the system's functioning. If we simply rename the tool "Logical Instantiation Diagram" (LID), the psychological limitations of DFD's are eliminated since there is no longer any demand to adhere to DFD convention. Naturally, a project of this complexity involves the programmers very deeply in the implementation environment. PROLOG was studied as an applicative programming language, and yet it was discovered that it is possible to force procedurality onto PROLOG. The bridge between learning about expert system development and integrating the domain of a particular system is knowledge engineering. Here the emphasis is not on specialized programming techniques, but on the programmer's ability to reason inside the problem domain and to communicate that reasoning through the language at hand, be it LFD's actual PROLOG code, or the code of some other computer language. The knowledge engineer will come to recognize ways of thinking that are perhaps not included in a traditional programming discipline. Socrates is more than a project in expert system design; it is a study of learning. The project progressed from difficulties in representing ambiguous situations unambiguously to the recognition that the chief domain document is flawed inherently, as is any system which applies a finite number of classifications to an infinite number of possibilities. We propose Socrates as a model of liberal arts education. As a study of knowledge engineering it unites two distinct disciplines in a program of joint discovery. In working on Socrates we were able to develop specific ideas about the nature of our implementation, we made observations about the environment in which we were working, and finally, we were able to generalize the tools used in other areas of software development adapting them effectively to our own uses.
Read full abstract