LIQRARY Michigan State University MSU LIBRARIES RETURNING MATERIALS: Place in book drop to remove this checkout from your record. FINES will be charged if book is returned after the date stamped below. 16m ‘25 i593 USING HIS TECHNIQUES WITHIN INSTRUCTIONAL PROGRAMS: DATA FLOW DIAGRAMS To DESIGN INSTRUCTION and EXPERT SYSTEMS TO DELIVER EXPERTISE by Mary Jane Garrett A DISSERTATION Submitted to Michigan State University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY Department of Counseling, Educational Psychology, and Special Education 1988 ABSTRACT USING MIS TECHNIQUES WITHIN INSTRUCTIONAL PROGRAMS: DATA FLOW DIAGRAMS TO DESIGN INSTRUCTION and EXPERT SYSTEMS To DELIVER EXPERTISE by Mary Jane Garrett This dissertation discussed the increased need for efficient and effective instruction of high level intellec- tual skills. It was noted that learning theories and in- structional design theories had been developed that dealt with cognitive processing, but that the tools currently used by instructional designers did not readily facilitate the teaching of cognitive processes. Problems with a current design technique were discussed, and a need was determined for instructional design techniques that permit developers to apply learning and instructional theories more effective- ly, especially in the indicated problem areas. It was noted that business and industry had also been affected by the Information Age. The use of data flow diagrams in instructional design was demonstrated and the following advantages were found: (a) they help to locate the points in the learning process where teachers' help may be needed for students to master the cognitive task; (b) they show the type and position of information needed for each process within the instructional system; (c) they aid in analyzing the cognitive skill to be taught, identifying the cognitive processes for higher order thinking skills, and presenting the cognitive skill as a whole; (d) they show the interrelationships among topics and processes of instruction at various levels from course to lesson; and (e) they provide a convenient way to explain a course to inter- ested, content-area-naive, parties. The use of expert systems to deliver expertise was discussed. The limitations of expert systems and the dif- ferences between expert systems developed for industry and instruction were discussed. The steps necessary to develop an expert system for the delivery of expertise within in- structional programs was discussed and an example of the development of an expert system to help students learn to debug computer programs was given. Finally some cautions about the use of expert systems as a part of instruction were presented. ACKNOWLEDGMENTS I wish to express my appreciation to Dr. Lawrence Alexander, chairman of my Doctoral Committee, for his en- couragement and understanding. His counsel and judgement were most influential in my years at Michigan State Univer- sity, and his interpretation of often confusing policies and practices was critical in the completion of my degree. The amount of time he willingly devoted to the advancement of my knowledge in instructional design and cognitive psychology was staggering. I wish there were some way to repay him for his kindness other than remembering his generosity when working with my students. I wish also to express my gratitude to Dr. Paul Slocum, Dr. Robert Poland, and Dr. Richard McLeod, members of my committee, who took time from their extremely busy schedules to attend meetings, review papers, and offer advice. I feel special gratitude to Dr. Dale Davis, from the University of Michigan, Flint, for being willing to provide expertise in Management Information Systems, providing support in my approach to the topic, and for being part of my committee at Michigan State University. Two additional members of Michigan State University's faculty have more than earned my gratitude: Dr. Joe Byers and Dr. Stephen Yelon. Neither of these dedicated profes- sors had any obligation to provide support for me in the completion of my program, yet Dr. Byers' door was also open for some friendly advice and Dr. Yelon even reviewed por- tions of my dissertation and made numerous suggestions for improvements. I am also grateful to two former colleagues, Frank Gregory and Paul Heavilin, who not only provided encourage- ment and emotional support, but also proofread papers and offered constructive criticism. Also, without the willing- ness of Pat Gilbert to allow me to adjust my school schedule to attend classes at Michigan State University, my advanced education would have remained a dream. Finally no words can express my indebtedness to my parents, Andrew and Irma Tesner, whose love and confidence in me gave me the desire to learn more, and my children, Patrick and Paula Garrett, whose willingness to often "do without their Mother" made this endeavor possible. ii TABLE OF CONTENTS Chapter LIST OF FIGURES O O O O O O O O O O O O O O O O O O O O 1 STATEMENT OF THE PROBLEM AND THE PURPOSE OF THIS 2 3 RESEARCH . . . . . . . . . . . . . . RESEARCH QUESTIONS . . . . . . . . . . Broad Questions to be Addressed . Specific questions to be answered SCOPE AND LIMITATION OF THIS RESEARCH OVERVIEW OF THE DISSERTATION . . . . . PROBLEMS WITH THE CURRENT INSTRUCTIONAL ANALYSIS TECHNIQUES . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . The Development of the Michigan Department of Education' 3 Data Processing Curriculum Guide Needs assessment . . . . . . . . . . . . . . Analysis and formulation of the program's goals and objectives . . . . . . . . . . Occupational and (d) learning task analysis Design of the course '. . . . . . . . . . . . Implementation and evaluation . . . . . . . . Inadequate Consideration for need for Expertise and Knowledge . . . . . . . . . . . . . . . . Insufficient Focus on Information . . . . . . . . Limitations created by expressing cognitive skills in a task format . . . . . . . . . . . . . . Lack of Consideration for the Interrelationships Among Topics of Instruction . . . . . . . . . Lack of Convenient Ways to Explain a Course to Interested, Content-Area-Naive, Parties . . . Summary and Conclusion . . . . . . . . . . . . . . A Possible Source of Instructional Analysis and Design Tools . . . . . . . . . . . . . . . . INSTRUCTIONAL DESIGN USING DATA FLOW DIAGRAMS . . . Introduction . . . . . . . . . . . . . . . . . Instructional Analysis and Design Using data flow diagrams . . . . . . . ._. . . . . . . . . . Data Flow Diagrams in Management Information Systems . . . . . . . . . . . . . . . . . . . An Example of Data Flow Diagrams in Instructional Design . . . . . . . . . . . . . . . . . . . iii Page .vii \OQmUIUlH 11 13 15 15 17 17 17 20 23 25 26 27 29 30 32 32 32 36 39 4 EXPERT SYSTEMS . . . . . . . Using data flow diagrams to Design Interactive Video Courseware . . . . . . . . . . . . . . Advantages of the Use of data flow diagrams . . . Data flow diagrams help locate the points in the learning process where help may be needed . . . . . . . . . . . . . . . . . Data flow diagrams show the type and position of information needed for processes within the instruction . . . . . . . . . Data flow diagrams aid in analyzing the cognitive skill to be taught . . . . . . Data flow diagrams show the interrelation- ships among topics and processes of instruction . . . . . . . . . . . . . . Data flow diagrams provide a convenient way to explain a course to interested, con- tent-area-naive, parties . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . Introduction . . . . . . . Definitions . . . . . . . Classes of Expert Systems . Limitations of Expert Systems . . Reasons for Developing Expert Systems and Examples . . . . . . . . . . . . . . Expert systems could be developed for codification, replication and distribution of expertise . . . . . . . Expert systems could be developed for combining expertise from many sources . Expert systems could be developed to amplify expertise and thus produce dramatic gains in productivity or in the creation of new tasks, products, and services . . Expert systems could be developed to avoid significant costs in wasted resources and capital . . . . . . . . . . . . Expert systems could be developed to generate complementary streams of revenue . . . . Expert systems could be developed to solve a variety of problems that are mainly tractable . . . . . . . . . . . . . . Examples that Illustrate Use for Expert Systems in Education . . . . . . . . . . . . . . . The Theoretical Potential for the Use of Expert Systems in Education . . . . . . . . . The theoretical body of knowledge of expert systems . . . . . . . . . The theoretical body of knowledge of learning theory . . . . . . . . . . . . . . . . . iv 53 57 57 58 59 60 61 61 64 64 65 66 68 72 73 74 74 75 76 76 78 83 83 85 Guidelines for Selecting Points for Expert System Usage . . . . . . . . . . . . . . . . Guidelines for Selecting Points for Expert System Usage in Instruction . . . . . . . . . . . . Business versus instructional use . . . . . . A specific example from vocational data processing . . . . . . . . . . . . . Steps in Developing an Expert System in Business . The Use of Shells in Developing Expert Systems . . Steps in Developing an Expert System in Instruction In developing an expert system, the purpose must be kept clearly in mind . . . . . . Major steps of development . . . . . . . . . Developing an Expert System for Debugging Programs Within the Vocational Data Processing Program . . . . . . . . . . . . . . . . Introduction and first two steps . . . Selecting a shell . . . . . . . . . . . Locating expertise and creating the mle base . . . . . . . . . . . Creating a prototype . . . . . Testing the expert system . . . Monitoring the expert system . 5 DISCUSSION AND RECOMMENDATIONS . . . Summary of the Research Reported Recommendations . . . . . . . . . Cautions . . . . . . . . . . . . . GLOSSARY OF TERMS IN THIS DISSERTATION . . . . . . . . APPENDIX A . . . . . . . . . . CURRENT INSTRUCTIONAL SYSTEMS AND DEVELOPMENTS FIVE INSTRUCTIONAL SYSTEMS MODELS . . . . . . Core Elements Andrews/Goodson Tasks . . Stages of Instructional Design . . . . . Courseware Design Model . . . . . . . . . Michigan State University Instructional Systems Procedure Model . . . . . . . . . . . Information Relationships Among Learning System Design Procedures. Data Entry Task . . . . . . . . . Computer Operations Task . . . Computer Programming Task . . . . . . . . . . CURRICULUM WORKSHEET . . . . . . . . . . . . . . . Duty No. CP Task No. 2 . . . . . . . . . Duty No. CP Task No. 5 . . . . . . . . . Duty No. C? Task No. 11 . . . . . . . . Duty No. CP Task No. 15 . . . . . . . . 87 91 91 92 94 96 98 98 98 102 102 103 104 104 105 112 114 114 121 126 127 131 131 132 132 133 134 136 137 138 140 143 146 146 150 154 158 APPENDIX B . . . . . . . . . . . . . . . . . . . . . DATA FLOW DIAGRAMS FOR DEVELOPING A COMPUTER PROGRAM . . . . . . . . . . . . . . . . . . . Designing a Computer Program . . . . . . . . Define the Problem 1.0 . . . . . . . . . . . Define specific outputs 2.0 . . . . . . . . . Define specific inputs 3.0 . . . . Define processing sequence and detailed process 4.0 . . . . . . . . . . . . . . Represent process specifications graphically SOO O O O O O O O O O O O O O O O O O O Develop program detail code 6.0 . . . . Test program 7.0 . . . . . . . . . . . . . . . Debug Program 8.0 . . . . . . Evaluate Program 9.0 . . . . . . . . . . . . . APPENDIX C O O O O O O O O O O O O O O O O O O AN EXPERT SYSTEM AID TO DEBUGGING BASIC PROGRAMS . APPENDIX D O O O O O O O O O O O O O O O O O O O O O O Checklist for Data Flow Diagrams in Instructional Des ign O O O O O O O O O O O O O O O O O O O APPENDIX E O O O O O O O O O O O O O O O O O O O O O O Data flow diagrams for a part of a veterinary medicine course '. . . . . . . . . . . . . . ; PAIN AND ITS TREATMENT IN VETERINARY MEDICINE 1. 0 .. . . . . . . PAIN AND ITS CONSEQUENCES 1.1 . SPECIFIC RESPONSES TO PAIN 1.1.4 TYPES OF PAIN CONTROL 1.2 . . . OPIATES AND OPIATE RECEPTORS 1.3 . AGONIST/ANTAGONIST AND NARCOTIC DRUGS 1.4 . INSTRUCTIONAL DICTIONARY . .'. . . . . . . . . . Methods of Controling Pain in Veterinary Medicine . . . . . . . . . . . . . . . . APPEND I X F O O O O O O O O O O O O O O O O O PROCEDURES FOR DESIGNING AND DEVELOPING INTERACTIVE VIDEO INSTRUCTION . . . . . . . . List of References . . . . . . . . . . . . . . . . . . General References . . . . . . . . . . . . . . . . vi 162 162 164 166 167 168 169 170 172 173 174 175 176 176 216 216 219 220 220 221 222 223 224 225 226 226 235 235 240 248 Figure 1: Figure 2: analys Figure 3: LIST OF FIGURES Instructional Systems Model . . is process . . . . . . . . . . Overview of the occupational/task Relationships Between Occupational Analysis and Program and Course Development Figure 4: Commonly used symbols in data flow diagrams . . . . . . . . . . . . . Figure 5: Analysis of the Vocational Data Processing Program: An Overview of the System . . . . . . . . . . . . . . . . Figure 6: Designing a Computer Program . . Figure 7: Define the problem 1. 0 . . . . . Figure 8: Determine type of output 1. 2 . . Figure 9: Method of Controlling Pain in Veterinary Medicine . . . . . . . . . Figure 10: Figure 11: Tasks Figure 12: Figure 13: Figure 14: Debug Program 8. 0 . . . . . . Comparison of Core Elements and Common Stages of Instructional Design Courseware Design Model . . . Michigan State University Instructional Systems Procedure Model . Figure 15: Information Relationships Among Learning System Design Procedures. . Figure 6: Figure 7: Figure 16: Figure 17: Figure 18: Designing a Computer Program . Define the Problem 1.0 . . . . Define specific outputs 2.0 . Define specific inputs 3.0 . Define processing sequence and detailed process 4.0 . . . . . . . . Represent process specifications graphically 5.0 . . . . . . . . . . . Figure 19: Figure 20: Figure 21: Figure 10: Figure 22: Figure 23: Figure 24: Figure 25: Figure 26: Figure 27: Figure 28: DRUGS Develop program detail code 6.0 Test program 7.0 . . . . . . . Debug Program 8. 0 Evaluate Program 9. 0 . . . . . PAIN AND ITS TREATMENT IN VETERINARY MEDICINE 1O 0 O O O O O O O O O O O O PAIN AND ITS CONSEQUENCES 1.1 . SPECIFIC RESPONSES TO PAIN 1.1.4. TYPES OF PAIN CONTROL 1.2 . . . OPIATES AND OPIATE RECEPTORS 1.3. AGONIST/ANTAGONIST AND NARCOTIC 104 O O O O O O O O O O O O O O vii 16 18 38 41 46 50 52 54 93 132 133 134 136 137 164 166 167 168 169 170 172 173 174 175 220 221 222 223 224 .225 CHAPTER 1 STATEMENT OF THE PROBLEM AND THE PURPOSE OF THIS STUDY With the advent of the Information Age new knowledge is being produced at an ever increasing rate. Consequently, efficient and effective education is becoming increasingly important as a means for communicating this new knowledge. This has placed an added burden on teachers who are expected to teach more content at higher skill levels. In addition, schools are expected to provide instruction in sex, drugs and careers, areas that, in the past, were never their responsibility. To meet these demands, educators need better tools and techniques for planning and delivering instruction. Resnick (1963, p. 439) suggests "Programmed instruction offers a means of coping with the universally acknowledged teacher overload". Reigeluth (1983) states that if we can develop highly effective instructional re- sources, then we can free some of the teacher's time to work on the social, psychological, emotional, and moral develop- ment of our children and prepare them better for living in the Information Age. Business has an analogous problem as a consequence of our entry into the Information Age, viz, to manage more information, in more areas, at a higher level of application so that not only are day-to-day transactions processed, but 2 all levels of management are supplied with information and supported in the use of technological tools for decision making. To alleviate these problems, industry has adopted the techniques of Management Information Systems (MIS), a branch of computer science/data processing that is concerned with the organization and coordination of information. MIS has developed two techniques to deal with the need for better planning of information systems and more effi- cient delivery of organized information. These are struc- tured design methodology, such as data flow diagrams, and expert systems. Structured design methodology uses systems concepts to analyze and describe an information system as functional subsystems and to define the boundaries of and interfaces between each subsystem. Expert systems are com- puter programs that simulate the cognitive processes of a human expert. Because both education and business systems have simi- lar problems, involving efficient handling of large amounts of information, it is reasonable to inquire whether MIS techniques of data flow diagrams and expert systems might be used profitably in education. Perelman (1987) comments that recent changes in instruction have been facilitated by the use of advanced information technology to design, manage, and deliver instruction. However, adaptation and transfer ‘of techniques from other fields to the field of instruction 3 should not be done without careful consideration of the unique constraints in the field of education. Although current instructional design techniques apply well to the teaching of learning objectives, such as know- ledge, comprehension, and application, from the lower levels of Bloom's (1950) taxonomy, they do not apply well to the teaching of higher level cognitive skills, such as analysis, synthesis, and evaluation. In addition, current design techniques have several problems that a designer of instruc— tion should consider when attempting to improve instruction: (a) inadequate consideration for need for expertise and knowledge, (b) insufficient focus on needed information, (c) limitations created by expressing cognitive skills in a task format, (d) lack of consideration for the interrelation- ships among topics and processes in the instruction, and (e) lack of convenient ways to explain a course to interested, content-area-naive, parties. The tools used in designing instructional systems affect the efficiency of the instruc- tion produced. Instructional design tools need to be ana- lyzed and improved. These problems are discussed in more detail in Chapter II. The purpose of this dissertation is to investigate the adaptability of M18 techniques to the design of instruc- ‘tional systems. Two MIS techniques, data flow diagrams and 'expert systems, are examined to determine the potential utility of these techniques in the design and delivery of 4 instructional systems. To examine this potential utility, a demonstration is provided of how they might be used in a particular instructional system, namely teaching programming in a secondary level vocational data processing course. A second demonstration of the use of data flow diagrams in the design of an interactive video course on pain control in veterinary medicine is also made. 1). 2). 3). 4). 5). QUESTIONS CONSIDERED IN THIS STUDY t' s o Addr s Might the MIS design tool, data flow diagrams, be used to provide information about the relationships between major chunks of instruction, that is courses, units, chapters, and lessons: or the major cognitive processes within the chunks? Might the MIS design tool, data flow diagrams, indicate what information might be needed by students at various points of instructional programs? How might the use of data flow diagrams to design MIS systems be modified to use data flow diagrams to design instructional systems? When the objective is to teach complex cognitive processes such as problem solving, might data flow diagrams indicate specific points in an instructional program where individualized expert help might be provided by an expert system? How might the MIS techniques for the development and use of expert systems be modified to use these tech- niques for the development of expert systems for in- struction? Specific questions to be answered How might the use of data flow diagrams in the design of a particular secondary vocational data processing course provide information about the relationships between major chunks of instruction, that is courses, units, chapters, and lessons; or the major cognitive processes within the chunks? How might data flow diagrams used to design a particu- lar secondary vocational data processing course indi- cate what information might be needed by students at various points of the instructional program? How was the use of data flow diagrams to design MIS systems modified to use data flow diagrams to design a particular data processing course? How might data flow diagrams, used to design a particu- lar instructional program to teach the problem solving skill, computer programming, indicate potential points in the instruction where expert systems might be used to provide students with expert help? How were steps used to develop MIS expert systems modified to develop an expert system to help teach students in the data processing course how to debug Basic computer programs? SCOPE AND LIMITATION OF THIS STUDY This feasibility study will seek to demonstrate: (a) that data flow diagrams might be used in instructional design to provide information that is useful in the anal- ysis, design, and development of instruction: (b) that data flow diagrams might indicate where expert systems may be appropriate in an instructional program involving the teach- ing of higher order intellectual skills: and (c) that expert systems might be used to deliver expert instruction for secondary students. To show that these benefits are pos- sible, specific examples using a vocational data processing program and an interactive video course on pain control in veterinary medicine were developed. The study presented in this paper has four major limit- ations: First, only two examples of the use of data flow diagrams were presented and only one expert system was developed. The limitations of generalizations from one or two examples is obvious. The two demonstrations presented involved computer applications. Since the tools used in the instructional design were adapted from the field of computer science, the question of the influence of common domain specific characteristics must be raised. Third, the study was concerned with feasibility. There was no attempt to test empirically the efficiency of the use of data flow diagrams or the effectiveness or generalizability of the 8 specific expert system designed. Fourth, only the develop- ment of a data processing curriculum was examined to deter- mine the problems with instruction developed with the limi- tations of the current instructional design and analysis tools. These issues will be left for additional study. OVERVIEW OF THE DISSERTATION This dissertation is concerned with the feasibility of transferring system design techniques from MIS to the design of instructional systems. It does not involve any empirical test of these techniques. Consequently, the format differs from the format followed by the typical empirical research dissertation. First, the inadequacies of current instruc- tional design techniques used to develop the State of Michi- gan's Vocational Data Processing Curriculum Guide are pre- sented. Then each of the two techniques from MIS that are being considered for transfer to instructional design are presented, along with a demonstration of how each might be used in the design of instruction. A discussion of the modifications that this researcher found necessary to trans- fer the techniques to the instructional design of the two systems considered and the benefits of the techniques when used in those instructional designs are presented. Specifi- cally: Chapter 2 discusses the problems with the current in- structional system analysis and design techniques that were found when the development of a data processing curriculum was examined. Chapter 3 describes the MIS structured design tech- nique, data flow diagrams, indicates how they are used in information systems design, and demonstrates how they might 10 be used to design a vocational data processing instructional system. In addition, a brief summary is given of the use of data flow diagrams in the design of instructional courseware using interactive video. A demonstration is presented of the use of data flow diagrams in the development of inter- active video courseware for pain relief in veterinary medi- cine. Chapter 4 describes the MIS delivery technique, expert systems, indicates the different types of expert systems and their uses, and indicates how expert systems are developed and used by industry. Then the business use of expert sys- tems is contrasted with potential instructional usage and the design and development of an expert system for use in a vocational data processing instructional system is demon- strated. Chapter 5 presents the conclusions and suggestions for further study. A Glossary of terms used may be found before the appen- dices. CHAPTER 2 PROBLEMS WITH THE CURRENT INSTRUCTIONAL ANALYSIS TECHNIQUES W Education has always sought to provide effective and efficient instruction, but with the entry of our society into the Information Age, pressure increased for education to communicate new knowledge at higher levels and increasing rates. Instruction, according to R. Gagne (1985), deals with the deliberate arrangement of events in the learner's environment for the purpose of making learning happen effec- tively. Therefore, to meet the instructional challenges of the Information Age, educators must develop efficient and effective ways of arranging the instructional events in the learner's environment, including those events that will lead to the development of higher order thinking skills. Efficient instruction is dependent not only on the sophistication of underlying theories, but also on the tech- nology for applying these theories. Although behavioral learning theories predominated in American educational psychology for most of this century, in recent years learn- ing theories incorporating cognitive theories have been developed. These theories provide descriptions of effective instruction that include information processing and higher order thinking skills (Ausubel, 1968: Bruner, 1960; 11 12 R. Gagne, 1985). Instructional design, the technology that applies learning theory to instruction, has also shifted from a behavioral science orientation, where the emphasis was to promote a student's overt performance by the manipu- lation of stimulus materials, to cognitive science orienta- tion, where the emphasis is to promote cognitive processing (Merrill, Kowallis & Wilson, 1981). Currently there are several good instructional design theories that include techniques for dealing with higher order intellectual skills (Collins & Stevens, 1983; Gagne & Briggs, 1979; Landa, 1982; Merrill, 1983: Reigeluth, 1983; Reigeluth & Stein, 1983: Scandura, 1983). Since good learning and instructional design theories exist, the problems encountered in attempting to design efficient instruction appear to lie not in the theories, but in the tools and techniques developed to apply those theories. As Merrill, Kowallis and Wilson (1981) noted, ”models for the development of instruction are surprisingly lacking in prescriptions that suggest how to execute the various steps in the model" (P. 300). To examine more clearly the limitations of the tools used by current instructional design techniques, this chap- ter discusses the development of the Michigan Department of Education's Data_2rgQgggipg_gg;;igglum_§uig§ using an in- structional systems model modified for vocational courses. As a vocational data processing instructor in Michigan, this 13 researcher took part in the development of the Curriculum Guide. After discussing the process of developing the Guide, selected portions of the curriculum produced are examined and the following problems are discussed: (a) inadequate consideration for need for expertise and know- ledge, (b) insufficient focus on needed information, (c) limitations created by expressing cognitive skills in a task format, (d) lack of consideration for the interrelation- ships among topics and processes in the instruction, and (e) lack of convenient ways to explain a course to interested, content-area-naive, parties. Finally this chapter discusses a possible source of instructional analysis and design tools and techniques that may alleviate these problems. ,- a; - opuen of e tic f... u-.. u'! 9 _1- . on's s'n r ' u u Gu The development of the Michigan Department of Educa- tion's Dutu Processing Qurriculuu Guide is described by the Instructional Systems Model shown in Figure 1. Note that the main components in that model are (a) needs assessment, (b) analysis and formulation of the program's goals and objectives, (c) occupational analysis, (d) analysis and formulation of learning tasks, (e) design of the course, and (f) implementation and evaluation. To indicate that the Instructional System's Model is typical of current 14 .82.. 2533 3:28:38. 1. 8:2... :8 a .80 : 352.8 S 3325 38:03.12. 58. 5.8: Sm S 8.83. Eon; 2:33 I 833.26 Eodmam 5:333 3:333 233m- Tucson—o3 283m co—doadms ._2 $5832 _ 2.52ng 6 323°: o>_..oEo:< l— —clozo~_comuo imvaaouo $6386 38:63.2. 96 9:58.. B I‘fl .95 a 8:023 coSoo—mm acoucou mmmsou th no 2053 — .50.? «:9: _ mxmok 9:62: a 338 - , - 3 5335582.”. 23.. 9:58.. s 8:02:28. 3 33:92: 8832.3 59: .o E95834 mxm..._~.02m3awm... mmwuomm —Il mEEBEE , 91.53%. m.w>....50 1T: mEmZuk50 “.0 Ezra: ...<..:z. mmooogm o-ma—oc< xmot—oco—uooaooo 0.: .0 £03.32”. ”N 9:5: :8: Sm 202.13.0me nos. zo.k.. 2.. .o .135. a maze... 5.30:3 3:2... .6. 8.8.6.9.“. .2522. . mm 3.32. .0. 8.3.6.2.. .9520... . 3... .536 .8380 “£0.53. EEO 33800 a 2.... 8:33.... Steam 5 ._....m 2.8 . on 353.8 s as... c. 2...... 2.8 . cm 8323.... 8.32.0“. as {Sage . as £0.3an0 .0 0.0... m5 30.8.68... .0 3.2.3283: . 8.. a 2a.... as. 8.86 . 8 9.8.5.3.... . am am . ram 23 2a .3332 . mm «3.52.0 8.2.600 . Om «dim Em. 2.2.... 8.. . 2 issues... . an. .926... ecu 83.25 5 55%.... .o 22. . E ram. ea .8803? . mm .8580 . 0.. 3.3 Smashes mdxw 5.1.5 j 5 .26.... 5 mm ascm «859.60 .0 9... Eco ace .6 0.0... a“... do 3230...... e6 am 9...: 8. 82:25 .6802“. o.~ o... .3 8 ... 8 23.. 3.3.50 wk e; 2....» a... 3m 42 Once the goals and course components were established, they were represented in a data flow diagram. [See Figure 5]. Note that at this overview design stage, no attempt was made to identify specific information needed or the sources of that information since the diagram would then be so complex that it would no longer be a useful tool. Also note that the numbers used to label the processes served only as a means for linking each process to the more detailed data flow diagram that might be made of that process. Although in MIS the process labels normally designate processing sequence, when this researcher developed the data flow diagrams included in Figures 5 through 29, the numeric process labels were not used to indicate a fixed sequence. The course overview diagram shown in Figure 5 can be used to_show the interrelationships between the course goals and the major course components. For example, by looking only at the major symbols, that is the external entities and the processes, one can see that the major goals of the course are to prepare a student for a job or for higher education. One can also see that there are five major components in the system. Note that using data flow diagrams, all the information that would be available to the designer using the current technology is still available to the designer. However, notice the additional information that this diagram pro- vides: (a) there are prerequisite skills for each of the 43 five major components of the course; (b) the job skills of teamwork and following standards are a part of each of the other four components; (0) there are computer operations skills, job skills, programming prerequisites, and business application and data entry skills that are inputs into the programming process; (d) the choice of work or school after completing the course is a matter of personal preference. To follow the format of the use of data flow diagrams in MIS, a further explanation of the related information in the form of an instructional dictionary should now be devel- oped for each point where information is passed from one item to another on the data flow diagram. For example, the prerequisite programming skill, "understanding elementary algebraic concepts", would be listed in the instructional dictionary as containing the following components: (a) understanding the concept variable; (b) knowing the symbols for and the usage of the relational operators (less than, greater than, equal, greater than or equal, less than or equal, and not equal); (c) knowing the symbols for arith- metic operations (+, -, /,*, ), and ‘); (d) knowing the rules of order for arithmetic operations: (e) knowing how to solve simple algebraic equations with one unknown; and (f) knowing how to use scientific notation for numbers. The complete instructional dictionary has not been included in this example for the sake of brevity. In prac- tice, this researcher would include elements in an 44 instructional dictionary only if the target teachers had some question about the element. For example, most educat- ors interested in teaching computer programming at the secondary level probably have very similar concepts of what ”understanding of elementary algebraic concepts” means and the designer would probably not define the term. However, if parents, students, or even counselors wanted clarifica- tion, the design tool provides a mechanism for more precise specification, and the designer would be able to add this level of detail to the design without altering the existing structure. One of the greatest strengths of a data flow diagram design tool is the hierarchical nature of its development. The designer can proceed to the lowest level and specify the smallest fact needed as a part of the instructional package, or can stop at a much higher level if that level is suf- ficient for the instructional program to be developed and implemented. The next step in the development process, after the components of the course are identified, is to analyze each of the components of the course and to construct data flow diagrams for each. For the sake of brevity and simplicity, we will focus only on the programming component. Program- ming was selected since it entails higher order thinking skills of problem solving. 45 mm0ooum :3ocxco anumoun 00um09 0900 9009 00000ooum Owufio0nm 0Hu0uwuo sowunsH0>0 ofiuuo0mm munBuOH usmuso Hon moasm mumsuou Hausa now 00Hsm mswu0u0mo you m0~om muouu0 :uu3 amumoum 00u00smu0 mswmm0ooum m0wm0u0uum asa>aom amanoum 50Hnoum m:o«umo«u«00mm 000ooum coauwcam00 000ooum B0Hnoum uouu0 Emumoum muouu0 cowumoauao0nm mm0ooum msofiumowuwo0om usnuso coau0ahousH 000002 :Oaunsuousw ocflmmwz mods» 00000004 uouu0 Hwofimoq AD QB 08 mm 0% 0% HM h“ 3% mm mm mm 2m an ac H2 H2 000004 “0 musmflm muc0a0umum non msofiunowuaommm usmsH a0anoum usonw coaumaMOMCH 00M00c0um owsmmuo msofiumofiuwo0mm wm0ooum no sowunus0m0um0u Ownmmuo Emumoum 00umsH0>m 0>Huo0finsm 0wu0uauo sowuwsa0>m msofiumowuwo0m0 mm0ooum osfiumwxm mumfiuou usouso oswumfixm. mumauou Hausa mcflumwxm coaumus0m0ummu ofinmmnm msaumwxm 0000 mswumwxm 00am0umuum mm0ooum meu0o meowum0sv onwmosnmo :owumsuousw mswoosn0o 0m00~30sx manuduomam mm0ooua HH0u0o m0u00cmum onw0ou m0asu 0000 amumoum 00000 sofiuwofiuwo0mm sowuomuuoo muomu 0:0 manuwuomad mb mH mH m0 MU >m mm mm Om Hm 0m 0m mo 00 HQ 40 mo m0 av 00 h< 5.020 856.8 a 9.20.80 .0 0000.. \l/ 46 - a 0.0 _.|um.l' 000.000 . 60.020 6030.0 \ j\\\\.V 0.00.0..m m :00: 0... 50.8... _ 2.2.20... 8:22...._ 8 .2.» L #1. a.8 0.... a... 9. 00.0000. . um 60.020 _ co..m.00o 7.0 mm 00500020 0.2 _:0 n5 00.00006 40.. . 0.0 8 20.33 88 22.... -2. 5.2.0. 22.50 ..0.00 8 050000 .01? 0...0000 60.020 0.. 0 00.0.60 05.00 .0 .. 0 a .0 :0 o... 0. o... _! 0 n .0 o.._ 3— 0.... \mm m. . 0000 05.0.0.0 _ 20— 03000.0 2.00.200. W. ..w~.0<0 6030.0 00.00090 9000— opog 8 00000 00000000 0:. . Canada“. 5 5:82.. 2...... gm. c.0020: 00:20.00— 00 _ . 0 g 05.00 00 . o.m 0.? o w . 0< . - .2 - . mm .0 200 . 00:20.00— 00—.— ..o..0...000.00m 000000 . 6030.0 _ 0200.0 05.0.3 00 emacm 00 0.0 000.6 0000.;ocv._~0 , , - 8 00.0 00.0 . . N 00.00006 02.02.000.000 0200.0 00 0.000080 F0 47 A learning objective of programming instruction may be stated as follows: given a problem not previously seen, the student will design and produce a program that meets all the given conditions of the problem and follows the course programming standards for both design and production. The evaluation of the performance of the objective is consistent with standards used by actual data processing shops. These are given to the students and demonstrated. The course programming standards are uniform throughout the entire course, but more detail is added to the standards as the course progresses. The next step in system design is to break programming skill into its component parts or tasks. Figure 6 shows an overview level of a data flow diagram for the component skills needed for designing a computer program. Once again note that the major symbols indicate that there are nine major components in the designing of a computer program. These are: (a) define the problem, (b) define the specific outputs, (c) define specific inputs, (d) define processing sequence and detail process, (e) represent process specifi- cations graphically, (f) develop program detail code, (g) test the program, (h) debug the program if there are errors, (1) evaluate the program. With this data flow diagram, all the design information that is available with current analysis techniques is avail- able. However, in addition, more information is readily 48 available. For example, there are 16 different types of information the programmer will need, some more than once. Expert problem solver, expert debugger, and user/problem designer are entities external to the programmer's problem solving process that contribute to the programmer's design and development of the program. As can be seen from the numerous arrows between processes, some of the processes are interrelated. For example, the arrows from 2.0, 3.0, 5.0, and 8.0 respectively pass to process 6.0 the information: output specifications, input specifications, process speci- fications and graphic representation of process specifica- tions, and correction specifications. In addition proces- ses are interrelated in that several information stores provide information to more than one processes. For ex- ample, D4 and D5 both provide information to processes 2.0 and 3.0; and D3 provides information to 1.0, 6.0, and 8.0. The data flow diagram also shows that the program design process is not linear, but contains loops as shown by arrows from process 4.0 to process 5.0 and from 5.0 to 4.0 as well as the arrow from 8.0 to 4.0 and 8.0 to 6.0. Although the additional information provided by the overview of the instruction might be enough so that the instruction could be implemented without further analysis, this is unlikely. This researcher would anticipate the need to provide at least one more level of diagrams to clarify the instructional needs for each of the major processes. 49 muwoouuuum aoanoum 00H5u 00H mmwmmuuuum usammmooum smanoum a0uuoun no 0000050 sewgwsfiumo 050050 amanoum soduwsfiu00 u50:« amunoum maazuauoma0 0000000 0000000000 050050 u5005o 05on0 scaQ0EMOu0H mm mm mm mm 0m ‘9 mo 00 0:0000 .0 005mw0 :o«u0ahousa 00000z nodu0auousw madam“: mmmooua 05000 sowu0suousH mmwmmu0uum 050sH amanoum 05000 sowu0suousH cofiu0fiuousH 0000000 0 0H00Hu0>0 95msw 05000 sofiu0suowsH msoaufiusoo Hoaommm 05000 sawu0suoucH coauwswum0 mmooouq amanoum ma.g»..om.. H2 H2 EH mH mH 2H HH UH m0 50 0... 2500.00 ml... wZEwo K mmDGE :0:m_00< 0. E0520 ._.. -mwwD n: T006225 0>:_:moo_ NOA— - Z_ — 0000.305.— 5 = m. 50:. ‘ \ 00 00 003 .l 00 05.5200 0% n. 00 00:030m O0 :95 00 0:0 00 05000090 , O0. 00 0:050:00 00 : 0. w a 00.050 <0 .9800 <0 0E5_:om_ 5050 E0390 :0 056.0000 00 056.000 .0 0.0 00 m; 90 00 003. 000050 0.? 90 058.20 0.000 N... .2 .2 z - 7060086 02::000 _ No _ .0200 _ 5030.0 _ 0000.30:x_ E _ 03:203. 080.0000 — 844 0.00.6 51 Each of the processes shown at this level is analyzed to determine the component tasks and the relationships among them. Then a data flow diagram is developed for the next lower level for each process. Figure 7 shows the data flow diagram for process 1.0, define the problem. Note that there are no data stores or external entities on this level that were not on the previous level. However, the use of those stores is shown in more detail. In addi- tion, the role of the individualized instruction in the computer program design process can be more readily seen. This researcher believes this level of detail would be sufficient for developers to develop instructional materials or for teachers to design the lessons to teach students how to define the problem, especially if an instructional dic- tionary were also developed. However to determine whether even more detail is needed, the designer would present the design to the developer or instructor for evaluation. Figure 8 shows the data flow diagram that resulted from another analysis and design level for process 1.2, determine the type of output. Again, note that the data flow diagram not only shows what is necessary to complete a task, it also shows how each subtask, or component, is related to all the other components. It shows not only where information is needed, but separates the information into different types, which, according to Gagne (1977), is important to the devel- opment of the final lesson. 52 0.. 5.5.. .o a... 2......28 a 0.50... 0:02:50 50.00 58600 . 00 3.02....» 9.3.8 80.8... . 0.. c.0320 . 00 6030.0 .0 000050 . 00 0:0...530 50.3 5030.0 . O0 :0.......00 00... .0050 . 00 3.05.2... 8.3.2 . =2 32...... 5.32.. 530 5.05.2... . ._. 5.85.0.5 . 2. 20.25.00 50.00 b.5oc<0>..00.0.:. . = 55...... 5...... 5.08.0 . 00 2.2.2:... 8......3 593 .23 . 0.. 0.. 50.00 00w..m<0.0 0:3...00 9N... 8 _ _ __ .. 00.000: 0.063: _.d...00 TI|II|I 2.2.00 .. 3.8.... ._. 30.3.0 .33.... : , .0082 E 00:08.. b08500 om 9:80 . . 8.000 00 0. 00...... m 03:00 .838 an 06:06 & OC—wflo & a z... 2.. E 3.... , 03.0.02 00:20.0... —.3 _.I|_.L1| 3:203 6030.0 :00: _ 33.8.... _ «a z. Tau-.26 05.0000 _ .0 Z 00.. . 0.. 2.... 3.2.3.... 8.3.... 3.... .33 .6030... 0... .330...» 5.06.2... 32.6.0 .0200 0.0320 .3000 0.... 8.02 mu... . pa; 0.... .50... 00.5 000.... “0.02 53 This level-by-level analysis and design should continue until the point where the person who actually develops or implements the lesson for the task has as much information as is needed to create or teach the lesson. The set of data flow diagrams developed for experienced teachers would probably not need to show as many levels as a set of data flow diagrams developed for inexperienced teachers. If the experience level of the target teachers is not known or the instruction is designed for teachers of varying degrees of experience, the instruction should be designed to the lowest level that may be needed by the target teachers. Appendix B contains the complete example of using data flow diagrams to analyze and design the programming portion of the vocational data processing class to the second level. d flow ia rams to si n active V'deo C u se- EQLQ The preceding sections of the chapter demonstrated how data flow diagrams could provide useful information when the technique was used to design a course including problem solving in computer programming. Data flow diagrams could also provide useful information when used to design interac- tive video courseware. Figure 9 shows the first level data flow diagram this researcher's design group developed for an interactive video course for teaching the role of pain and its control in veterinary medicine. Although the course was 54 name! 1 2 a 10550:: amon- mu amon- ,, am 1 . M m 3 w A [37.4 among] ’1 82A! ATTITUOES . .A M11100 F 31.3] FACTS J a] FACTS | [34 news 4 c2 ca 31.0] cow's cl 001ng Q] WIS P3 <1;an Dir“ y Worm Pmmonsmm In calving w m W1: 1.3 wz 1s.1o.21.22.2¢.2s.27.2a.29.31.32 m: 2.3.0.3m.47.62 ‘ m: a. 10.14 W5: 1.2 [342me In! we: a _ m m 1 0‘23-270300330380‘20“ - m: s . to [an haunsowmmmes 3.", some we ”1251702443020 12.19 M: P 1.: F1: P 162 A2 a 1.2 F2: 3 1.0 A3: 0 1 F3: u 1.7 01: 9102 P1 91.14 02 91-44 92: P 10 A9990- ca: u 1.20 93: u 14 PHATE m Funk WWWPMNWW 55 still under development at the time of the writing of this dissertation, the data flow diagrams had been presented to the client who not only approved of their accuracy, but indicated approval of the level-by-level design approach by saying "I can see the whole course now, layer by layer," and "I knew where I wanted to go with this material, but now I feel as if I have been given a road map showing me how to get there". In addition, the menus that will be used to control the presentations have been developed from the data flow diagrams and an estimate of the amount of time neces- sary to the complete the project has been make. Note the different kinds of information that are pro- vided at the first level data flow diagram. [See Figure 9]. The diagram shows that learners can enter the course at any of the four major course processes. The first three proces- ses are designed to add to the learner's knowledge base, while the fourth process requires that the learners use their knowledge bases, along with cognitive strategies and reference materials, to solve problems. The information that the learners will process in order to add to the their knowledge bases is separated into attitudes, facts, con- cepts, and principles since each of these major types of information needs to be presented to learners using dif- ferent instructional techniques (Gagne, 1985; Gropper, 1983: Landa, 1982; Reigeluth & Stein, 1983; Scandura, 1983). If the course is to have learner control of the pace and 56 sequence, the instruction will need to provide learners access to information from the previous sections. In the first level data flow diagram shown in Figure 9, the infor- mation that is presented in one section and then used to build the knowledge in another section is shown by the connecting arrows. For example, note that arrow W4 between 81.0, stored principles from process 1, and process 2, shows that principles 8, 10, 11, 12, 13, and 14 are presented in the process 1, PAIN, but the learner will also need those principles to process information presented in process 2, BUTORPHANOL. By using this data flow diagram, the developer of the instruction knows where the courseware must be able to either branch back to previous information or provide the previously presented information in a different format. The principles represented by W4 are listed in the instructional dictionary for the course in Appendix E. Since information provided by the first level data flow diagram includes the number of major processes, the number of.instructional events of each type, and the number of links between sections that must be provided, it can be used by the instructional designer to make rough estimates of the cost and time necessary to develop the course. However, sophisticated estimates of development costs can not be made until the content expert provides information as to the importance and difficulty of each event in the instructional dictionary. 57 Appendix E contains the data flow diagrams for the first section of the course, Pain, and the instructional dictionary for the section. When the course is authored, each of the processes from the data flow diagrams will become a menu selection for the course. Appendix F contains the procedures developed by the CAI group at Michigan State University for using data flow diagrams to develop interac- tive video courseware. The complete process, including the relationship between the instructional dictionary and the developmental worksheets is being readied for separate publication and will be available in the future. f e o a a f a s The preceding chapter presented several problems with the current instructional design techniques. In the preced- ing sections of this chapter, data flow diagrams were dis- cussed and a demonstration was made of their use in instruc- tional design and analysis. In this section we will focus on the advantages of using this technique. Qete flex diagzams help locete the peints in the leezh- ing pteeese whete help hay be heeded. In the data flow diagram developed for computer programming, three external entities, expert problem solver, expert debugger, and user/- problem designer, contributed to the process of the design and development of the program that solves the problem. These entities indicated the points of the process where 58 students often need help when they are learning to program computers. Even an inexperienced teacher using this data flow diagram would be able to determine where special effort may be required to help students learn to program properly. By using symbols to designate information sources within the instructional system that are different from the symbols used for information sources outside the system, data flow diagrams make it easy to see points where teachers should consider making expert help available for their students. Qete flow diaggggs show the type and positipn pf integ- WMW- Since the data flow diagrams provide graphic indications of the points within the instruction where information is needed and, if necessary, the instructional dictionary shows spe- cifically what is needed, it is easier for teachers to pro- vide students with the information during the instructional process instead of requiring students to know the informa- tion before they attempt the task. In addition, teachers have a concrete way of determining what media would be most appropriate for presenting the information to the students. The potential of existing instructional packages to meet students' instructional needs could be measured by comparing the information the packages deliver to the information the instructional dictionary specified. Hamreus (1968) stated that if the instructional technologist is to get maximum use from media in improving learning outcomes, he must be able 59 to determine how, what, and when media can most effectively be employed. By focusing on the information and sequencing, data flow diagrams can help designers and teachers determine where some of the teaching might be relegated to self-paced, programmed, and computer aided instruction. 1. a o. . -- .u: .fd ' .1: ,. 1- ..,' 'v- :.f te_he_tepght. By stressing which data, information, and strategies are needed at different points of the process, data flow diagrams help the instructional designer focus on all the information and interrelationships as a complete skill. This allows the designer, developer, and instructor to work at a higher cognitive level. Compare the informa- tion about the programming process provided by the data flow diagram in Figure 6 with the task list on computer program- ming provided in Appendix A. Using the data flow diagram, even inexperienced teachers could see the part each of the tasks in computer programming played in making up the com- plete cognitive skill, yet they could also see the entire, complete task as an organized whole. Thus they would be more likely to present the instruction to their students as a complete cognitive processes, not merely a collection of behaviorally oriented tasks. Derry (1984) pointed out that in teaching cognitive strategies, there must be a taxonomy of curriculum-relevant component strategies. The data flow diagram can be a tool to help the instructional designer see the taxonomy of 60 strategies and also see where those strategies are needed in the instructional program. Therefore the probability is in- creased that those strategies will be correctly addressed by the instructional program and will be deve10ped by the student. Higher level thinking skills are represented by data flow diagrams by focusing on goals, information, and needed expertise instead of focusing on specific tasks that make up the skill. By examining the different levels of the pro- cess, the instructional designer can see where cognitive strategies or diagnostic knowledge are required. ow ia a s show e t a ' s ' am tepiee end pzoeesses of instppctipp. When data flow dia- grams are used to design the instruction, even inexperienced teachers can become more aware of sequencing alternatives in the presentation of the components. In the discussion of Figure 6, the specific ways that the data flow diagram showed the interrelationships among the topics and processes of instruction were indicated. Since the graphical repre- sentation of the instruction system produced with data flow diagrams contains lines showing the passing of information between components, it is easy to see interrelationships among components of the system, to identify components that require the same information, and to note any necessary se- quencing of components. 61 1. a _ow -°.- .us 9 ov'd— a ., e e - . -.- .f, o- :< . - 0: -- co - -. :;-1-iv- 9-_ '-=. One of the strengths of data flow diagrams stems from the graphic nature of its representation. Polhemus (1987) states that the use of graphics provides a very efficient medium for exchange of information because graphics are easily explain- ed, have strong impact, and permit multiple dimensions to be displayed concurrently. Using data flow diagrams to represent a system graphi- cally allows even a relatively inexperienced person to recognize the critical elements of the instructional design. Thus more of the stakeholders in the instructional program could have a better understanding of courses designed using data flow diagrams. Since the design provides multiple levels of representation of the system, each level provides an advanced organizer for the following level. In addition, since data flow diagrams show one complete level of a system at a time, an examination of the system could range from looking at the first level for an overview of the entire system to carefully analyzing the lowest level of a module for a detailed analysis of the components, depending on the needs or desires of the person using the data flow diagrams. Summary In this chapter the purpose, conditions, methods, and outcomes of instructional analysis and design using data 62 flow diagrams were discussed. The use of data flow diagrams in Management Information Systems was reviewed. The in- structional analysis and design of a vocational data proces- sing course using data flow diagrams was developed using the techniques that were presented in Appendix D. Where ap- propriate, the results were compared to the results from Chapter 2. Figure 10 summarizes the major differences. An example was presented of an instructional design using data flow diagrams for an interactive video course in veterinary medicine. The response of the client and the strengths of the technique were discussed. Finally, the advantages of the use of data flow diagrams in instructional analysis and design were discussed. The following advantages were noted: (a) the location of the expertise needed by students to learn higher order thinking skills is presented; (b) the type and position of information needed for each process within the instructional system is indicated; (c) the com- ponents of the cognitive processes for higher order thinking skills are presented as a whole; (d) the interrelationships among topics and processes of instruction are graphically shown at as many levels as are needed; and (e) a convenient way to explain a course to interested, content-area-naive, parties is available. Thus, using data flow diagrams to analyze and design an instructional process provides more information in a readily usable form than the current systems design technology. In 63 addition, since the symbols used to designate information sources within the system are different from the symbols used to designate information sources outside the system, data flow diagrams also indicate points where expert systems could be of use to deliver needed information. Expert sys- tems will be discussed in the next chapter. Information about the teaching of programming provided by the Qutpic- ulum_§uids tasks that make up pro- gramming Figure 10: Qurrigulum Quid: Information about the teaching of programming provided by data Flow diagrams the processes that make up pro- gramming the points within the instruc- tional program where students may need expert help the type and location of information needed within the instructional program a presentation of the cognitive skill as an organized whole the interrelationships among the processes a convenient way to explain the course to content-area-naive stake holders compared to Data Flow Diagrams CHAPTER 4 EXPERT SYSTEMS IDEIQQHQLiQB In the preceding chapter the use of data flow diagrams for instructional design was discussed. It was demonstrated that data flow diagrams not only emphasize information, processes, and interrelationships, but also show points in the instructional program where individualized expert help may be needed by typical students. In this chapter the use of expert systems to provide that help is discussed, fol- lowed by a discussion of some concerns educators might have when considering the use of expert systems within instruc- tional programs. First, expert systems are defined and their use by business and industry is discussed. Next, the limitations of expert systems are discussed, followed by a discussion of some reasons for developing expert systems, despite their limitations. Examples are presented of expert systems that have proven to be valuable within instructional programs. Then the theoretical potential for the use of expert systems in education is discussed, followed by a discussion of steps involved in developing expert systems in both business and education. Finally, an example of the development of an 64 65 expert system within a vocational data processing program is discussed. Mining); Expert systems are computer programs that make the expertise of an experienced worker available to a novice. An expert system consists of three parts: (a) a knowledge base composed of production rules, semantic networks, frames, relational database, and inference rules: (b) an inference engine, which consists of the procedures that generate the consequences, conclusions or decisions from the existing knowledge; and (c) a working memory, which is a temporary storage area to hold the immediately relevant portions of the knowledge base, the user's responses, and the current inference. An expert system must also have an user interface, a way of communicating with the user (Boose, 1986; Hayes-Roth, Waterman, & Lenat, 1983). One of the simplest types of expert systems to develop is the production-rule system. F. Hayes-Roth (1985) cites many advantages to using rule-based systems. First, since they incorporate practical human knowledge in conditional if-then rules, it is possible to develop production-rule systems to help supply novices with the expertise of ex- perienced workers in any situation where the expertise could be expressed by algorithms. Second, since the skill neces- sary to design production-rule systems increases in direct 66 proportion to the size of the knowledge bases, relatively inexperienced programmers could develop small systems con- taining the most critical rules and then add the more com- plex rules as their programming skills improve and they gain more knowledge about the content area. Third, by determin- ing the best sequence of rules to execute, selecting rele- vant rules, and then combining the results in appropriate ways, production-rule systems could solve a wide range of complex problems. In addition, production-rule systems could help the novice understand the rules the expert used by explaining their conclusions, retracing their lines of reasoning, and translating the logic of each rule employed into natural language. Since production-rule expert systems are relatively simple to develop, but still have many advantages, the development of this kind of expert system should be con- sidered in situations where the expertise needed could be expressed in a production-rule format. 2W When considering the development of expert systems, it is important to realize that not all expert systems are designed to do the same type of tasks. Expert systems are applicable to three generic classes of problems: analysis, synthesis, and a combination of analysis and synthesis (Hayes-Roth, Waterman, & Lenat, 1983). 67 The simplest class consists of analysis problems. Analysis problems require classifying a set of objects based on their features. Typical expert systems designed to solve analysis problems classify items, provide help in debugging processes, aid in deriving diagnosis, identify unknown items, or aid in the interpretation of output from some system. Currently most of the cost effective expert systems used by businesses are designed to solve analysis problems (McCorduck, 1987). More complex than analysis problems are problems of synthesis. Synthesis problems are generative problems in which a solution must be built up from component parts. Typical expert systems designed to solve synthesis problems determine the configuration of systems, design systems, and develop plans for courses of action. Although production- rule expert systems that are capable of forward chaining have been developed to solve synthesis problems, most pro- duction-rule expert systems solve analysis problems. The most complex problems for which expert systems are used consist of a combination of analysis and synthesis. Typical expert systems designed to solve combination prob- lems are used for command and control, making management decisions, monitoring complex physical processes, predicting future events based on current and past events, and deter- mining components needing repair. 68 In developing expert systems, it is important that the type of expert system chosen to solve the problem matches the class of the problem. For example, if the problem involves synthesis, an expert system that could only do backward chaining, working from the goal toward the given data, could not possibly solve the problem. A general heuristic for planning the development of an expert system is that the more complex the class of problem, the more resources will be required to develop the expert system. Limitetiehs of Expert Systems The discussion of the limitations of expert systems in this chapter is not designed to be either detailed or ex- haustive. Rather the intention is to provide some insight into the problems that may occur with the use of expert systems. A detailed discussion of the limitations of expert systems and the concerns that potential developers of expert systems should consider is provided by Hayes-Roth, Waterman, and Lenat (1983). To be effective, expert systems must contain a substan- tial amount of domain expertise organized for efficient search (Klahr & Waterman, 1986). To model the thinking of experts, expert systems must be able to use heuristics, that is, rule-of-thumb knowledge that enables experts to make educated guesses when necessary, and to deal with incomplete or inconsistent information (Boose, 1986). 69 Expert systems must be able to contain the problem- solving knowledge of the expert, whatever its form or degree of complexity (Hayes-Roth, 1985). For example, doctors doing a diagnosis of a patient must not only classify symp- toms of the patient, but must also infer the most probable cause of those symptoms. Experts in the area of finance must not only know what types of investments are available, they must also have preferred strategies for reducing the risk of the investment. They must know how to eliminate the uncertainty of the effects of future events. Expert repair persons must not only know how to repair the product, they must also know the likeliest places to look for relevant information about the cause of the problem. In general, experts in all fields must observe events and make specific inferences based on the observations. In addition they make abstractions from which they form gener- alizations and categorizations (Hayes—Roth, 1985). Larkin, HcDermott, D. Simon, and H. Simon (1980) provide an example from solving algebra problems. Suppose the problem A board was sawed into two pieces. One piece was one-third as long as the whole board. It was exceeded in length by the second piece by 4 feet. How long was the board before it was out (p. 207)? was given to both novice and expert algebraic problem solvers. The typical novice sets up the equation x/3 + (x/3 +4) = x and solves for the value of x. However, the expert problem solver almost immediately states that the 70 answer is 12. If pressed to explain the reasoning used, the expert will note that if one piece was 1/3 of the board, the other piece 2/3 of the board. Since the second piece, 2/3 of the board, was the length of the first (1/3 of the board) plus 4 feet, 1/3 third of the board was 4 feet long and the entire board was 3 times 4 or 12 feet long. Thus by making abstractions, generalizations, and categorizations instead of following the ”rules for solving word problems”, the expert could almost instantly "see" the answer while the novice was still attempting to express the problem using mathematical symbols. Experts used the formal "rules for solving word problems" only when they could not "see" rela- tionships within the problem that readily lead to the solution. Thus, experts not only know many ways to reach a desired goal such as the solution to an algebraic problem, they also know which ways are necessary and sufficient conditions for goal achievement under the given conditions (Hayes-Roth, 1985). One of the most complex types of knowledge that experts possess is the knowledge of the limitations of their know- ledge (Hayes-Roth, 1985). For example, expert doctors not only know how to make diagnosis and inference of probable cause, they also know when to tell the patient to seek the advice of a specialist, an even more knowledgeable expert. From the preceding discussion it could be seen that the expertise possessed by experts could represent a wide range 71 of complexity of many different types of knowledge. As noted by B. Hayes-Roth (1985), the difficulty of modeling many of those forms of knowledge within an expert system is obvious. In addition to difficulty of modeling many types of knowledge possessed by experts, most expert systems have other limitations (Hayes-Roth, Waterman, & Lenat, 1983). Although many expert systems could list the rules used by the system to reach the solution, most could not explain their results in a manner suited to the particular audience using the expert system. The novice then could not get the same benefit from the answer provided by the expert system that could be obtained from a human expert-even if they both provided identical solutions. This may limit the usefulness of the expert system as a training tool. Also, human experts learn from their experiences. Most expert systems could not learn from the problems they solve, stretch their own rules, or restructure their knowledge (Hayes-Roth, Waterman, & Lenat, 1983). Thus, most expert systems could not improve their performance. To improve the performance of the expert system, a human expert must deter- mine what changes must be made and the expert system pro- grammer must then modify the system. Perhaps the greatest limitation of expert systems stems from their lack of self knowledge (Boose, 1986). Expert systems are not able to determine the relevance of their knowledge to the current 72 problem and they can not degrade gracefully at problem boundaries. Thus it is quite likely that a novice, giving an expert system a problem that was not the type for which the system was developed, might still get a plausible solu- tion that was very much in error. This could, of course, cause many problems for the novice. The final limitation to be considered stems from the inability of expert systems to engage in the higher levels of reasoning (Boose, 1986). Expert systems could not reason about space and time, or reason from underlying problem domain principles, or reason analogically. These higher order reasoning abilities are currently only produced by human experts. ev o n d xam Despite their limitations, there are many situations in which it is useful to develop expert systems (Boose, 1986). Within the business environment, expert systems may be developed to help the replacement worker when experts re- tire, taking their knowledge with them. In some areas, such as determining the best configuration for a computer net- work, expertise may be scarce or not available. Often when experts are available, their expertise may be very expensive to obtain. When expertise is scarce, an expert system may help to deliver a product or service in a more timely manner than would be done by a human expert, because the human 73 expert is not always immediately available. One of the most common reasons for developing an expert system is that experts, being human beings with human limitations, are not always consistent (Boose, 1986). HcCorduck (1987) has researched the current uses and effectiveness of expert systems in business. She visited companies in both Japan and the United States and only considered systems that were actually being used. She cited numerous examples of large productivity gains or cost reduc- tions effected by the use of expert systems. She summarized the information she had gathered in six good reasons for developing and implementing expert systems: 1. e o e o dif' at nd 'str butio o 'se. If the expertise of a key person is captured in an expert system, the reason- ing is coded in a systematic manner that will give consis- tently identical output for identical input. The expert's reasoning could then be used by more than one decision maker in more than one geographical area. Examples of this effective use of expert systems are: (a) Nippon Kokan Steel developed an expert system to "clone" their best blast furnace controller and allow inexperienced controllers to use his experience: (b) Dupont offered early retirement to experienced workers to cut costs only to discover that they needed their expertise! The experts were brought back and expert systems were developed to nOt only 74 recapture that lost expertise, but also to increase its continuity in the company; (c) Texas Instrument was able to keep an old and ”temperamental" machine running by develop- ing an expert system to help the repair persons quickly to repair the machine when it broke down. 2. t e s cou d dev 0 ed for mbin'n expe1tiee_fitem_mehy_epnzeee. It is not uncommon for busi- ness decisions to require input from more than one expert. If an expert system is developed to aid in the decision making, it could include the expertise of more than one expert in both its knowledge base and its inference engine. Thus the combination of the experts' reasoning could be used without the difficulty of assembling all the experts in one place. Examples of this effective use of expert systems: (a) Digital Equipment Corporation developed the EXpert CONfigur- ation system EXCON to determine computer configurations. They also used EXCEL to help salespersons to present the product more effectively. DEC estimated that the use of these two systems provided an annual savings of $25,000,000. (b) Kajima Construction Co. developed an expert system to determine how to sink the pylons for their construction projects. The expert system not only saves $200,000 per year, but also improves the quality of the work. B-ExWMeumio—W :: 2!! -9 9 01- e 0.2m: _ -a 15 _n °r°duc iv: 0 :1 75 the greetieh of new tasks, prpddcts, end services. Almost all experts in business are called upon to provide expertise at a variety of levels. If an expert system could be built to provide expertise at some lower levels, a resident expert might have more time to use his expertise at a higher lev- els. This, in turn would increase the expert's productivity and allow more time for work with new developments. Examples of this effective use of expert systems: (a) Cannon used expert systems to set up simulation runs to test new camera lens. As a result, one person now could do in two weeks the design testing that in the past took several experts months of work. (b) Arthur Anderson developed expert systems to help with the auditing of financial sys- tems, allowing high level consultants to aid in more consul- tations. (c) American Express developed an expert system that could authorize credit limits in under 90 seconds based on information in 13 different data basses. It is estimated that the use of this expert system saved American Express millions of dollars in credit card fraud each year and also reduced the time pressure on workers when making credit decisions. 4. Expert systems eould be developed to avoid signifi- s w sted esources ca a . Texas InStru- ments developed an expert system to help engineers prepare presentations for documenting capital investment procedures. This new system took one twelfth of the time of the previous 76 system and saved the company an estimated 500,000 dollars annually. 5. s ems on v d t e e com- 3 ea evenue. In Japan, a bank developed an expert system for investment portfolios that analyzed the customer profile and recommended investments based not only on current and projected market trends, but also on the personal philosophy of the investor. The pleased investors spoke so highly of the investment service that customers without investment portfolios started using the bank because it was perceived as modern and good. Three hundred thousand yen was added to the average amount invested with the bank annually. 6. s d so v - WW. Dupont developed a system that helped local managers to determine how to pay taxes across different geographical regions. Because the tax codes are readily available, this was not a difficult task, but was so time consuming that managers often took the easiest options, even when other options might have been more cost effective. With the expert system, it is estimat- ed that the corporation saved $2,000,000 per year. IBM developed an expert system that greatly increased the pro- ductivity of their engineers by helping them complete the documentation required. Another expert system used by IBM, which had a very high payoff in cost savings, helped move 77 capital equipment from one geographical region to another. These expert systems solved problems that were more a matter of expertise in knowing what was wanted than expertise in higher order thinking skills. Such tractable problems tend to consistently have high returns on investment when expert systems are developed to solve them. The use of expert systems by business continues to grow. Coopers & Lybrand of New York recently surveyed the Nation's leading insurance companies and found that 65 per cent of the companies are either currently using or are developing expert systems, twice as many as were using expert systems a year ago. David Shpilberg, their head of Decision Support Services, says "insurers are realizing that expert systems technology offers a way to harness knowledge efficiently in an industry that is extremely knowledge- intensive" ("Insurance embraces”, 1988, p. 39). The reasons for developing expert systems in the busi- ness environment also apply for developing expert systems within the educational environment. Yazzdani (1987) pointed out that after an expert system has been developed, the line of reasoning, knowledge, and organization of the expert could made available for observation by trainees. In school, the expertise of the teacher is continually avail— able, but it must be allocated among many students within a limited time period. By providing students another source of expertise, the computer program, not only is the 78 available time teachers have to work with students, a scarce resource, increased, but students have access to the exper- tise whenever they need it during the learning process. {JLP :: 1.. Il tat U - . .10- — ‘11: 1 0.- -. .- As in business, instruction is knowledge intensive, and the development of instructional technology has shown a steady advancement in the level of skills that could be taught using technology. The evolution of present-day teaching programs consists of: (a) Pressy's linear frames (1926), (b) Crowder's scrambled textbooks or branching frames (1962), (c) adaptive systems that branch based on a history of responses, and (d) generative systems that use algorithms to generate problems and answers (Gable & Page, 1980). At present, specialized programs designed specifi- cally for education that use artificial intelligence and expert systems to aid in student acquisition of some ele- ments of an expert's knowledge, could be added to the list. Currently several intelligent tutorial systems are being used primarily as experimental vehicles in instruction (Sleeman & Brown, 1982). Two examples that use artificial intelligence in the instructional process are SOPHIE, which is an operational intelligent computer aided instructional (ICAI) system designed to provide tutoring in the domain of electronic troubleshooting, and BUGGY, which is an instruc- tional game that helps students and inexperienced teachers 79 understand the student's misconceptions in mathematics, by analyzing errors the student is making (Suppes, 1979). SOPHIE provides students with simulations in electronic troubleshooting. Students could enter a board configuration and the measure of energy to be applied to the board into SOPHIE and SOPHIE will tell them what output will result. Students could "experiment" with different board configura- tions and energy inputs without the risk of damaging the board components and without expending the large amounts of time required physically to construct the boards. In addi- tion, SOPHIE could present students with boards that have "bugs” in them and require the student to determine what component is malfunctioning. Students could use different inputs or even change components on the board as they seek to find the causes of the malfunctions. Students using SOPHIE took less time to gain a higher level of expertise in troubleshooting electronic circuits than students who worked only with actual circuits. BUGGY trains student teachers to examine surface mani- festations of students misconceptions in mathematics and use the results of that examination to determine the deep-struc- ture misconceptions in a student's knowledge. When BUGGY was used with students, the students began to study and understand the underlying procedural skill instead of merely performing the behavioral operation (Brown & Burton, 1978). 80 Such programs as BUGGY and SOPHIE come closer to in- structing students with a degree of the skill of a good teacher than the mere branching capabilities of programed instruction. One of the most important of these skills is the teacher's ability to synthesize an accurate "picture," or model, of a student's misconceptions from the meager evidence inherent in the student's errors. If instructional programs are designed to provide the student with the expert help that teachers normally supply, they will also need to be designed to respond appropriately to errors that students make. As one example of such an instructional program, Sebrechts, Shooler, LaClaire and Soloway (1987) created a computer-based expert system called GIDE which interprets students' statistical errors. GIDE is a goal-driven diag- nostic system that analyzes answers to statistical problems and presents that analysis in a form that is designed to be used by the student to improve performance in working that type of problem. Currently, it could evaluate a student's solution to a statistical problem specifically requiring a repeated-measures T test. Testing showed that the program was capable of interpreting over 90% of the student solu- tions and print out a report of the "bugs", that is, errors in computation or solution approach. In comparing the expert system to the work of teaching assistants, the GIDE program was found to do a consistently better job than the 81 T.A.'s in identifying all the areas of error in the solu- tion. Although teaching assistants ”interpreted” all the solutions, over 10% of the solutions graded by the teaching assistants fell into the category of "I do not understand what you were attempting to do" as the T.A.'s evaluation. One of the fastest areas of growth in the development of expert systems is the use of expert system shells. Shells are expert systems for which the inference engine has been designed, but the knowledge base and the rules are left blank so that applications could be developed by entering the domain specific application knowledge base and rules. Lee (1987) reported the use of an expert shell written in the PROLOG computer language to help students learn con- cepts, think analytically, and test ideas. The shell creat- ed a versatile way for the students to explore knowledge about number theory, or other subjects, and encouraged students to learn actively and to think logically. Lee taught the students to program the domain they were explor- ing using PROLOG and then to see what other information was true, given the information that they placed in the domain. Unfortunately, the fact that the students must have communi- cated with the expert system using PROLOG decreased the usefulness of the system as an instructional tool, since learning to use this complex language effectively took a substantial amount of time. 82 Expert systems are also being designed to teach problem solving skills. Many areas addressed by emerging technology in the area of expert systems are those very areas defined as important areas of problem solving (Newell & Simon, 1972). For example, consider this information processing definition of problem solving by Anderson (1985, pp.198-199) which states: Problem solving is defined as a behavior directed toward achieving a goal. Problem solving involves decomposing the original goal into subgoals and these into subgoals until subgoals are reached that can be achieved by direct action...Problem solving can be conceived of as a search of a problem space. The problem space consists of physical states or knowledge states that are achievable by the problem solver. The problem-solving task involves finding a sequence of operators to transform the initial state into a goal state, in which the goal is achieved...The working-backward method for problem solving involves breaking a goal into a set of subgoals whose solutions logically imply solutions of the original goal...The knowledge underlying problem solving can be formalized as a set of productions that specify actions that will achieve goals under particular conditions. Boose (1986); Hayes-Roth, F. Hayes-Roth (1985); and Waterman, & Lenat (1983); all described expert systems that use proposition-rules to make available to novices the domain specific problem-solving knowledge of an expert. Many of these systems use backward chaining and most provide explanations to the user as to the reasoning used by the system. O'Shea and Self (1983) observed that expert systems could be used for imparting knowledge from an expert in a 83 field to a large number of trainees. Waterman (1986) stated the diagnostic function of a human tutor seems ready to be attacked with the well-established methodology of expert systems. 1- ,-. - a_ '0 en a for - s: o oe ; en: .n mm In addition to the four examples of how expert systems are being used in educational research and a look at how expert systems could be useful in problem solving, it is equally important to note that the theoretical body of knowledge of expert systems also supports their potential use in the instructional environment. eti bod o kn w ed e of e . Wensley (1987) pointed out that there are two broad fun- ctions for expert systems: expert replacement and user support. But the potential function of the expert system as a training tool should not be overlooked. Our current method of training experts, extensive experience under apprenticeship, has not changed in centuries. With expert systems, the experience of an expert is imbedded in the system. Thus the novice should be able to use the system and gain expert experience at an accelerated rate (Abdol- mohammadi, 1987; Wensley, 1987). Thus while replacing an expert or providing user support, the expert system could also provide training for a novice to become an expert. 84 As regards the support function, Wensley suggests the following uses that would be applicable to education: First, expert systems could serve as an ”intelligent assis- tant" to experts to check their conclusions. If the con- clusions arrived at by the expert are different from the conclusions produced by the expert system, the human expert is alerted to double check the reasoning by which the con- clusion was reached. Second, expert systems could be used to investigate, expand, and develop expertise. The process of developing an expert system requires that the expert or team of experts analyze their expertise closely and actually determine how that expertise is applied. In the process of developing the expert system, experts often expand their expertise and develop expertise at a higher level. As an added benefit, the experts might be able to spend less time checking their conclusions, leaving them more time to work on more dif- ficult problems. As a third support function, expert systems could provide users with advice. For example, IBM's expert system that aided in troubleshooting customer complaints provided advice to the troubleshooting consultant as to probable cause and remediation. The expert consultant then used the expert system's recommendation as one of the factors to be considered when giving advice to the customer. 85 Lastly, expert systems could serve in a support func- tion by being one of a set of learning tools to help develop expertise in a domain. For example, an expert system devel- oped to help students correct errors in a computer program could not only help the student learn to correct the errors, it could also show students the steps that an expert uses when correcting the errors. In summary, the theoretical body of knowledge of expert systems indicates that a broad function of expert systems is to provide user support. In the discussion of the user support function of expert systems it was noted that they help in the development of expertise, provide checks for conclusions, provide insight into expertise, and provide ad- vice. Note that most of these ”user” support functions are similar to the types of support systems that good teachers provide in an educational environment. Thus, the theoreti- cal body of knowledge concerning the use of expert systems supports their potential use in the instructional environ- ment. e ' bod w e of l a i theo . According to cognitive psychologists, the study of higher order thinking skills must include both the observable actions of students and their cognitive processes (Anderson, 1985: Ausubel, 1968: Mayer, 1987). For example, how stu- dents perceive and reason about the subject matter domain in which they are learning must be considered along with what 86 they are learning. Experts and novices differ in their cognitive processes. Experts do not simply have more knowl- edge than novices, they structure the knowledge differently and apply their knowledge using different problem-solving strategies (Anderson, 1985). Both Ausubel (1968) and Bruner (1960) stressed the importance of structuring the subject matter in instruction. Keravnou and Johnson (1986) noted that expert systems include the structure of the body of knowledge and the domain strategies. Thus, expert systems not only contain the knowledge of an expert, but also the higher order rules by which that knowledge is manipulated by the expert. Therefore, it is reasonable to attempt to use an expert system within an instructional program to train novices to develop both the expert's knowledge and under- standing of the structure of the subject matter. The body of knowledge of inexperienced problem-solvers is relatively unstructured. As a person gains experience in problem-solving in the knowledge domain, he gradually im- poses more structure on this knowledge. The structure re- flects the strategies and heuristics which have been demon- strated as effective by experience. On the other hand, experienced and competent problem-solvers have a knowledge structure and a set of compatible problem-solving heuris- tics. They have structured their factual knowledge in the most efficient and effective way for the subject matter domain. 87 Therefore, the potential use expert systems in educa- tion is supported by the theoretical body of knowledge about learning theory because expert systems contain both the knowledge of a domain expert and the heuristics that a domain expert would use to search the knowledge base for the correct solution to a problem. Thus, a properly designed expert system might enable novices to structure their knowl- edge bases in a more effective and efficient manner and decrease the amount of experience that a novice would need to become an expert. Gpidelines for Selecting Bolpts fp; Expert System Usage Since developing an expert system as a learning tool or for another purpose takes time, requires additional soft- ware, and restricts the use of the computers for other purposes, before an attempt is made to develop an expert system, it should be determined that the expertise repre- sented in the expert system fills a need in the complete process for which an expert system could be developed. In industry or business, locating the point in the process where an expert system could be used is not conceptually complex: use and organizational chart to locate an expert within the process and determine whether the expert's con- tribution could be increased or replaced by an expert sys- tem. However, Bosse (1986), presented several points that 88 should be considered in the actual application of this principle: 1. The end user of the expert system should be an apprentice in the same field who would take three to five years to become an expert. Since expert systems contain the structured knowledge of the expert, they also use the spe- cial vocabulary of the domain expert. Since this special- ized vocabulary is often meaningless jargon to people with little or no knowledge of the field, it is necessary that the users of the expert system already have some experience with the subject matter domain before using the expert system. Also, if training the novice is not a lengthy process taking years to complete, it would be more cost effective to merely train the novice than to develop and use an expert system as an aid to learning to be an expert. 2. There should be someone who knows how to solve the problem already. Expert systems capture the expertise of an expert. If there is no existing expert, there is no source for obtaining the expertise to place in the system. 3. The problem should not require team effort or more than a single expert who could currently solve the problem. Although expert systems could be developed to hold the expertise of more than one expert, such systems are very complex. A team approach to solving a problem may be used when the problem is so ill-defined that it requires a group effort to determine what is needed to solve the problem. As 89 a rule, the development of an expert system should not be attempted unless the problem is well defined and sufficient- ly limited so that a single expert could solve it. 4. The expert should be available to consult with users. Expert systems, even extremely well constructed systems, are computer programs and thus severely limited in their ability to communicate with human beings. As users work with the expert system, their skill will increase in using the system, but there will be many times when the inexperienced user will not be able to determine what input to give to the expert system. Contact with the expert is, therefore, essential, to provide the support that only a human expert could give to a novice. 5. There should be a clear justification, based on monetary, liability, or safety considerations, for develop- ing an expert system. Expert systems should not be built simply because the expert is available. The development of an expert system should meet the same cost-benefit criteria that other projects must meet. 6. The expert should be available for a sufficient period of time during development and testing of the expert system. If the developer of the expert system does not have sufficient access to the expert, the information extracted from the expert will probably be incomplete and improperly structured. In addition, during the testing stages of the 90 system, there will need to be frequent comparisons of the output of the expert system with the output of the expert. 7. The expert should have a collection of real cases readily available. Such cases are necessary for both the development and testing of the expert system because an expert's expertise often is difficult to capture. If the developer could observe the expert solving real cases, the developer could gain insight into the expert's problem solv- ing tactics. Also, the alpha testing of a system requires many cases to test all aspects of the system. Chaturvedi (1987) takes a structured approach to the problem of selecting points in processes to develop expert systems. He proposes two broad categories of problems with which expert systems could be used: (a) those that could be solved with an analysis approach, in which a complex problem could be successively broken down into a number of subprob- lems until the subproblems could be solved directly: and (b) those that could be solved with a synthesis approach, in which the system starts with solutions to subproblems and combines those solutions to get a solution to the complex problem. Analysis is used for problems such as classification, interpretation, evaluation, assessment or diagnosis. Ex- amples of the types of problems requiring synthesis are design problems and program construction problems. The primary problem with the synthesis approach is that it is 91 necessary to search through all possible paths, which could become explosively large in number as the number of starting subproblems increases even slightly. Consequently solutions for problems involving synthesis must involve heuristics. Current expert system technology has had very limited success with solving problems involving synthesis. Such solutions rely very heavily on estimations and the mathe- matics of probabilities and combinations. Currently there are no mathematical rules for combining the probabilities of events which are not independent. Until there are, there probably will not be many successes with systems requiring synthesis. .. 1e: o_ : e tin- 'oints . 'go- ; en :a-- n W v 'nst . Researchers such as Boose (1986), Chaturvedi (1987), and Davis (1987) provide criteria for determining where the use of an expert system would be beneficial within the business environment. How- ever, there is currently little research on where the use of expert systems is appropriate within the instructional environment. In business the function of the expert is to reach some goal. In education the function of teachers, as experts, is to help students reach some goal, not to reach the goal for them. As Perelman (1987) points out, in educa- tion the student must do the work. Thus, subject matter 92 expertise must be integrated into the instructional program to aid students to arrive at solutions, not to provide solutions. Such integration could be done by analyzing the instructional task to determine both where and what type of expertise is needed. A specific exemple from voeatiohel data ptocessing. In the previous chapter it was shown how the analysis technique of data flow diagrams might help the instructional designer determine the points within the instructional system at which an expert system might be useful. By looking at successive levels of the analysis, the characteristics of the expert system could be determined. For example, the overview of the instructional unit for teaching students to design a computer program, [see Figure 6], indicated three points at which an expert might have input into the system: (a) in defining the problem; (b) in defining the processing sequence and detail process; and (c) in debugging the program. The more detailed analysis shown in Figures 7 and 8 indicated that expert systems for the first two points would be synthesis systems or a combination of analysis and synthesis. Since synthesis systems are very difficult to develop and have been shown in the past to be of only limited success, it seemed that an attempt to devel- op either of these two systems would not have been desira- ble. 93 000.5.0m Btw . _1‘ .0 000.8 0.00 _0 on. _ 0.2.0.05. 00010.0... _ no _ .w .0: m 0005000.. 0. 00.5.0w . 0.6.0.00 .000 .0200. .o 00.... . 0.. .000 0005000. .o 00.... . .F 0.0.5 - xw .000 000000. 0. 00.5.8 . .5 00.20000 .000 20000.0 . mm 0.000 0...... E0590 . m0 .900 0005000.. . m... .000 .0203 . w. .000 .0200. .0 000.0000 - .5 0.0.00.0 o. 02.00000 . 00 .000 0000000. .0 00:00 . ..o .000 .0200. .0 00:00 . mo 0.0 0.0.8... 0300 ... 0020... 0.00 . .do 00 0.00 00.0.. 000 0000 500000.00 0.. 0.0. ".300 0020.0 0000 00: 0.0 0.0.0 0.00 ”0.02 _ 0.0:w 0005000.. — 0.001— 065. 0005000.. 7.00m 0005000.. .0 000500 000 .0. 002.5 _ 00$ NI; / GE‘stuOO .26 5...". 0005000.. 00030.”... .0 00:00 , .0 00 h .6 00.00.00 _ .. 0 00.60.00 md r 0.0 \ 9.0.. O .0200. 000.2580 v.00 - .0:w .0060. .0. 000.00 _..00 _ w. .25 .0 00>... «.0 w.— . . . .o..w 4 .0: w .0200. .0203 ‘IIII .0 00: Oc=oo B QC_E.O~GD 0.0 u. .0 w.. — .o..w .0200. 7.00 94 However, the third point, shown in Figure 11, indicated an analytic system involving classification and diagnostic skills. Therefore, it was decided to develop an expert system designed to aid or replace the expert debugger. Before describing the steps in developing an expert system for the instructional program, the process of developing such a system in business will be described in order to provide a context. e o ' x Several experts in the area of expert systems have stated the steps necessary to develop an expert system (Boose, 1986; Buchanan & Shortliffe, 1984: Hayes-Roth, Waterman, & Lenat (1983); Tanimoto, 1987). Although the approach of each of these experts is different, there is general agreement among them as regards the basic steps. These are: (a) Identify and clearly define the problem that the expert system is to solve; (b) locate existing experts that could be assigned to provide the expertise in solving the problem; (c) develop the knowledge base and the rules for applying the knowledge base; (d) develop a prototype of the expert system; (e) alpha test the prototype using actual cases; (f) make any modifications necessary to the prototype until it appears to produce consistently the same solutions as those produced by the human experts; (9) document and field test the system; (h) iterate through 95 steps (a) - (g) as often as necessary; (i) release the system for general use. f Shells in evelo E e S stem The many complex steps in the development of an expert system cause most developers to attempt to simplify the process by the use of an expert system shell. A shell for an expert system refers to all the system's procedures but not the application-specific knowledge: for example, the procedures for accessing the knowledge and procedures that generate the consequences, conclusions or decisions from the existing knowledge base (Tanimoto, 1987). Shells are used for rapid prototyping and could facilitate the construction of knowledge bases. However work of formulating the knowl- edge requires extensive interactive dialogues between a knowledge-base building tool and one or more human experts. Waterman (1986) listed many of the commercially available shells and explained the differences in the way they were designed. Because of the complexity of analyzing and obtaining expertise, most developmental experts agree that if there is an expert shell available that will meet the requirements for the system to be designed, that shell is the best choice for developing the expert system. Ruth (1987) suggested that two good shells for instructional systems are EXUS and FIRST CLASS because both are goal driven, rule-based shells 96 with backward and forward chaining. Boose (1986) provided a relatively simple description of this type of expert system. In a simple goal driven backward chaining system, the user picks a goal, with or without the help of the system. The inference engine looks through all the rules that lead to that goal and queries the user about the most direct rules leading to that goal. This process is repeated until the truth of the goal is established. In a simple data driven forward chaining system, the user gives the system certain facts and the system draws whatever conclusions that it could from those facts. The queries to the user are based on the traits or attributes characteristic of the given problem domain which are stored in the knowledge base. Also stored in the knowledge base are appropriate goals, the heuristics of what to query, and the desired sequencing. This information is loaded into the expert system shell through the cooperative efforts of the knowledge engineer and the domain expert. The knowledge engineer must not only elicit rules from the expert, he must also determine all the traits of the propositions and their characteristics as well as the accompanying control informa- tion. Potential sources of expert knowledge for the expert system include human experts, textbooks, data bases, ex- amples, case studies, and personal experience. The transfer of knowledge from human experts to knowledge bases is called 97 expertise transfer. The knowledge transferred consists of facts, procedures, and judgmental rules in the problem domain. In some situations, it may be difficult to obtain knowledge from experts because their explanations may be in terms of idealized verbal descriptions. Also much expertise seems to be compiled in heuristics that are accumulated over the years and it may be difficult for experts to talk about these compiled patterns. In such situations, knowledge extraction techniques may be necessary. A detailed discussion of knowledge extraction tech- niques was presented by Waterman (1985) from Clancey (1981) and reported by Boose (1986). They are summarized as fol- lows: (a) observe the expert as he actually solves problems on the job; (b) talk to the expert about the problem and what he is doing as he solves it; (c) develop an extensive description of the problem, with or without the help of the expert, and have the expert react to and improve the des- cription; (d) do a detailed task analysis of the problem; (e) develop a prototype of the system and refine it until the expert and the user agree that it produces the same results as the expert; (f) examine the system objectively to determine whether there are any weaknesses, and (g) validate the system by comparing the system's results with the ex- pert's results in existing documented cases, or by having other outside experts use the system and compare its results 98 with the results they would produce for the same problem input. Host of these techniques are usually needed when an expert system is to be developed for a complex problem. e n evelo 'n an E ert s n ns ct' 1p geyeloping an expert syspgm, the puppose must bg Lgpt_glgazly_in_mipd. As discussed previously, the purpose of an expert system in the instructional environment is to provide students with the expertise of an expert so that students could both accomplish some task requiring expertise and could also acquire the expertise of the expert. Thus, an expert system in instruction must not only provide the student with expertise, but also with an understanding of the structure of the knowledge of the expert and the heuris- tics used by the expert. At any point in the use of the system, the student should not only be able to query the system to find what knowledge is necessary, but also to find why it is necessary, and how it fits into the whole problem. ngjg: spepg pf developmenp. Drawing from the steps used by business to develop expert systems and considering the unique needs of instruction, this researcher proposes the following steps in the development of an expert system. First, the steps will be described generally and then they will be applied specifically to the Vocational Data Proces- sing course. 99 1. Select the point in the instructional program where an expert system might be of use. Using an analytical technique such as data flow diagrams, determine the points in the instructional program at which the student may need individualized expertise. Carefully examine the charac- teristics of the students who will use the system and ana- lyze the instructional program to determine the points where expertise is likely to be needed. These points are the points where an expert system is likely to be effective. 2. Determine if the problem is appropriate for the use of an expert system. Determine if the expertise needed by the student requires analysis, that is classification, debugging, diagnosis, identification, or interpretation. As discussed earlier, expert systems from the analysis class are the simplest systems to develop and proposition-rule expert systems are the simplest types of analysis systems to develop. Because of the time and cost constraints of a typical instructional program, educators should be wary of attempting to design an instructional expert system that is not from the analysis class and proposition-rule based. If an attempt is made to develop a complex expert system, the costs are likely to be very high and the success is less likely. 3. Select an appropriate shell for the expert system. As previously stated, the shell should have procedures for accessing the knowledge base and inference procedures that 100 are appropriate for the intended application. Appropriate- ness of shells is estimated by comparing existing applica- tions using the shells with the task for which the expert system is being developed. The more characteristics the systems have in common, such as type of analysis, structure of the subject matter, apparent heuristics for accessing the knowledge base, the more likely it is that the shell is appropriate. Because of time and cost constraints of a typical instructional program, developers should be wary of attempting to design an instructional expert system for which there is not an appropriate shell. Expert systems could be developed most efficiently if access and inference procedures already exist. 4. Establish sources for the expertise to be loaded into the expert system. Locate available reference mater- ials which indicate how to perform the task under considera- tion. Also locate at least one expert instructor who has extensive successful experience with providing expert help to students attempting to learn the task under considera- tion, and who is willing to spend time working in the devel- opment of the expert system. If more than one expert is to be used, and if there is likely to be disagreement as to how to do the task, determine in advance the criteria to be used to determine which advice to follow. Be certain that the expert agrees as to the correctness of any reference materials that may be used as a guide. 101 However, if the expert differs from the reference material, follow the advice of the expert. If the expertise of a human expert is loaded into the expert system, the expert system is most likely to provide the type of instructional support that the human instructor would give. 5. Create the rule base. Work with the expert and the reference materials to construct the rule-base in the if- then format. Not only should the expert be asked, but, if possible, the expert should be observed actually instructing students in the task. Experts often do not know, or could not tell, the heuristics that they use in performing a complex task or instructing students in that task. By observing the expert, comparing the expert's actions to the reference materials and the expert's stated rules, and querying the expert on the actual instructional content, the rule base of the expert system is much more likely to be accurate. 6. Create a prototype of the system and test it for programming errors. Once the system has been programmed and modified until there are no syntax errors, test the program by having the expert run the program to see if the expert agrees with the instructional aids provided by the system, and make any changes the expert recommends. Then ask anoth- er expert to test the system. Discuss the recommendations of the second expert with the developmental expert. 102 When the developmental expert approves of the system, test it on a representative sample of the target students who will be using the system and correct any problems that they may have with the user interface. Check to see that the results that the students get from the expert system are the same as the results that the expert said they should get. When the system appears to be working properly, test the system, comparing the outcome with a control group receiving instruction from the expert. Make any necessary adjustments to the system. By prototyping, testing, and modifying the system, the expert system is most likely to be effective as an instructional aid. 7. Continue to monitor the expert system. Use the system with additional students and add rules or modify existing rules as indicated. The design of expert systems is rarely considered to be finished because the situations for which they were designed tend to change over time. Therefore, there should be periodic reviews built into the use of expert systems in instruction so that the systems will be kept current. W. The steps in the development of an expert system within instruction could be more clearly seen in their application to the program 103 debugging example. Having determined where in the instruc- tional program expertise was necessary (see Figures 6-8,11) and having determined that the expertise needed to aid the student in learning to debug computer programs was an an- alytic, diagnostic system (see A_§pggifig_gxamplg_fppm ypggtipnal data pzoggssipg within the section gpigglipg§_fpg . z ,. -. m; . .g-e - -._. n _ s to 0,) the next step was to find a shell that would be both reason- ably priced and effective. t n s e . Since the objective of the system was to help the user to debug computer programs as an expert would, it was necessary to find a shell that would permit the designer to use production rules that followed closely the top down, goal driven, breath-first problem solving techniques used by an expert programmer (Anderson, 1985). The top down, goal driven approach is represented by back— ward chaining. Therefore, the shell to be chosen needed to be capable of backward chaining and be able to group choices into logical arrangements similar to the breath first tech- niques used by expert programmers. In addition, the shell had to allow explanations as to the reasoning behind the choices, because the objective was not only for students to be able to debug like an expert debugs, but also to under- stand the line of reasoning involved so that the knowledge gained would be properly structured. . 104 Considering these requirements, this researcher chose the shell INSIGHT, published by Level Five Research, which was reCommended by Blaisdell (1985). Although INSIGHT was limited to only backward chaining, it was reasonably priced and met all other necessary requirements. Also Level Five Research was willing to give permission to use an education- al version of the program for testing with no additional cost. nd at s . The goals and rules were determined by this researcher with the aid of IBM's basic manual, and with the aid of a student from a vocational data processing course who had graduated at the top of the class. The functions of subject matter content expert and expert vocational data processing in- structor were performed by this researcher. Three major goals within the area of logical errors and fifteen major goals within the area of language errors were identified. The production-rules were based on the expertise of this researcher. Czeatipg a prototype. A prototype was developed by this researcher and the graduate student in about forty hours of programming time. The prototype was initially tested for appropriateness by two graduate students who were very competent programmers. Subgoals were added as soon as the primary goals were working properly. The prototype was modified as new points were noted. An additional ten hours 105 were needed to test and modify the system. After the system was tested with students, the final count was sixty-eight goals. The rules were grouped so that related goals would appear on the same screen and multiple possibilities as to the error conditions would also be displayed on one screen. To make the system as useful as possible for students, the system was loaded into the background of the computer's memory as students programmed in the foreground. If stu- dents encountered problems for which help was desired, they switched to the background expert system, found the desired help, and switched back to the foreground programming ses- sion to correct the error. Igstipg_phg_gxpg;p_§y§pgp. The prototype was tested with secondary vocational data processing students who were learning to develop programs using the BASIC programming language. Before going to the computer room, students used Input-Process-Output sheets, layout sheets, and program flowcharts to design their programs. In a typical computer session, the student placed a system disk containing the expert system, Double Dos, which is a program which parti- tions computer memory and permits more than one program to run on the same computer concurrently, and BASIC into the system drive of an IBM compatible computer and turned on the computer. The auto—execute file on the disk loaded Double Dos. The Double Dos program partitioned the computer's 106 memory so one part contained 250,000 bytes of memory and the other portion contained whatever additional memory the computer had available. Double Dos then loaded the expert system into the 250,000 byte portion of the memory and made that portion inactive, or background. Double Dos loaded BASIC into the other portion of the computer's memory, made that portion active, set the switch between memory portions to be the combination of the ALT and ESC key, executed BASIC so that the ready prompt was displayed, and turned control of the computer over to the student. This entire process took approximately one and one-half minutes. Loading BASIC directly took the typical student approximately one minute. If students were continuing from earlier computer ses- sions, they would load their existing BASIC program and con- tinue their work. If students were starting new programs, they would start typing a new program into the computer. When students reached the point where they were ready to test their programs, they typed RUN, causing one of three actions to occur: (a) the program ran as the student an- ticipated: (b) the program ran, but did not run as the student anticipated: or (c) the program would not run. To clarify the interface between the student and the expert system, two examples of how a student might interact with this expert system are given. The first example will be of a logical error and the second example will be of a syntax error . Ci t}. th 107 1. Having entered a portion of the program to test, the student typed RUN and pressed enter. However, instead of running properly, the program continued to execute and did not stop. Being inexperienced and not knowing how to handle this problem, the student activated the expert system by pressing ALT and ESC together, a key combination the student often used in other computer classwork to change between applications. The student was asked by the expert system to indicate whether the problem was a logic error or a language error. For each question the expert system asked, there were expand screens that could give the student more information. These expand screens could be activated from a menu of func- tion keys that always appeared at the bottom of the stu- dent's screen. In addition, for each question the student could indicate that the answer to the question was not known, and the expert system would then ask a series of questions to help the student answer the question. For this example, the student either indicated direct- ly, or by answering a series of determining questions, that the error was a logic error. The expert system then dis- played information about logic errors and their typical causes. The student was asked to indicate whether or not the program stopped. In this case the student indicated that the program did not stop. The expert system asked if the program had a menu or used the KEYWORD INPUT. If the 108 student indicated that there was no menu and INPUT was used, the expert system displayed information about the use of the INPUT statement and the function of trip data. Then the expert system asked the student if the trip data check was the line of code immediately following the INPUT line. If the student indicated that it was not, a screen was dis- played that explained the function of the check for a trip data and provided two examples of the proper use of trip data. The student was then told a logic error in which the program did not stop had occurred and to correct the error by checking for trip data input. If the student indicated that there was a trip record in the program, the expert system displayed two screens explaining the use of GO TO statements and explained how to use the trace function to locate the line numbers that were being executed in a loop. The student was then told that a logic error in which the program does not stop had occurred and to correct the error by changing the GO TO statement. Having been told the probable cause of the error, given examples of the proper use of the KEYWORD causing the error, and told how to correct the error, the student pressed the ALT and ESC key together and returned to the basic program, which was still running. The student then made the correc- tion suggested by the expert system and executed the program again. 109 2. Having entered a portion of the program to test, the student typed RUN and pressed enter. However, instead of running properly, the program executed for a short time and then printed the message "out of data in line xxx." The student followed the same procedures followed by the student in example 1, except that for this example, the student either indicated directly, or by answering a series deter- mining questions, that the error was a language error. The expert system then displayed information about language errors and their typical causes. The student was given a list of language errors and asked to indicate the one given by the program in error. In this case, the student selected the out of data error. The computer then displayed a screen containing an explanation of the six most common programming mistakes that could cause this error. The expert system then asked the student to indicate which of these six errors had caused the error message. If the student selected an error, two screens were displayed which explained the func- tion of the READ statement and how to check for trip data. Examples were provided of the proper use of READ and DATA statements or of matching the DATA and READ variables. The student was then told that a language error in which an out of data message had occurred and to correct the error for whichever of the six methods the student had indicated caused the problem. 110 If the student indicated that the cause of the out of data error was not known, the expert system displayed two screens that explained the characteristics of the six most common programming mistakes that could cause this error. The expert system then asked the student a series of ques- tions that helped determine which specific error had caused the problem.. For example, first it asked if there was a check for trip data after the READ statement. Although trip data was explained on the screen that described the most probable cause of the out of data error, expand screens were available so that if the student asked for help, the term trip data would be explained and several examples of the proper use of trip data with a READ would be given. If the student indicated that there was a check for trip data, the expert system asked the student if the trip data were in the DATA statement. If the student indicated that trip data were in the DATA statement, the expert system asked the student if the value of the data in the check trip data statement matched the value of the data in the DATA state- ment. If the student indicated that it did, the expert system asked the student if the trip data were being as- signed to the same variable that was being used in the trip data check. If the student indicated that it was, the expert system asked the student if for every variable in the READ statement there was a value in the data statement. If the student indicated that there was, the expert system 111 asked the student if the variables in the READ statement matched the data in the DATA statement. If the answers to any of the above questions would have been no, the error would have been located and the expert system would have displayed a screen telling the student how to correct that particular error. The student would then have been told that a language error in which there was an out of data message had occurred and to correct the error by whichever of the six methods the student had indicated caused the problem. Having been told the probable cause of the error, given examples of the proper use of the KEYWORD causing the error, and told how to correct the error, the student pressed the ALT and ESC key together and returned to the basic program. The student then made the correction suggested by the expert system and executed the program again. However, if the student indicated that the last ques- tion to be asked did not indicate the error, the student was told that a language error in which there was an out of data message had occurred but that the expert system could not determine the correction for the error. The student could then ask the expert system what reason it had for asking all the questions. The expert system would then step through each of the inference rules the system had used and list the goal to which it was directed. In this example the explana- tion would be: The question "the program runs is true or 112 false" was asked to determine that ”the error belongs to language errors." The list of possible syntax errors was presented to determine that "the error was out of data". The question "the error is no check for trip data after the READ” was asked to determine "correct error by checking for trip data after the Read." The question "the error is no trip data in the Data statements" was asked to determine ”correct error by adding trip data to DATA statements". This display of the questions asked and the conclusion that would have been given if the answer had been no would con- tinue until all the questions asked by the system had been displayed. Then the expert system would have printed "the information provided was not sufficient to reach a conclu- sion." The student would have gone through this presenta- tion of questions and their possible conclusions to see if the answer given had been incorrect or if the cause of the error could be determined by merely using the expert sys- tem's line of reasoning. If the student could not determine the error after asking the expert system to explain its reasoning, the student would need to ask a human expert for help.- 0 n h ex e s . As students used the system, some situations occurred for which the expert system did not have rules or where the rules were unclear. In such situations, new rules were added or existing rules modified. The final system required seventy-two rules. In addition, 113 several points were discovered where the students did not understand the system's questions and needed more informa- tion. Expand screens were made available for these more complex situations. Displays were added for each goal and subgoal, that explained the rationale underlying the solu- tion. The modifications took approximately ten additional hours of programming time, making the total programming hours approximately sixty. A printout of latest version of the expert system is given in Appendix C. CHAPTER FIVE DISCUSSION AND RECOMMENDATIONS Spmmazy pf the Study Reported This dissertation discussed the increased need for efficient and effective instruction of high level intellec- tual skills in order to meet the challenges of the Informa- tion Age. It was noted that learning theories and instruc— tional design theories had been developed that dealt with cognitive processing, but that the tools currently used by instructional designers did not readily facilitate the teaching of cognitive processes. Several specific problems with one current design technique were identified and dis- cussed. These were: (a) inadequate consideration for need for expertise and knowledge, (b) insufficient focus on needed information, (c) limitations created by expressing cognitive skills in a task format, (d) lack of consider- ation for the interrelationships among topics and processes in the instruction, and (e) lack of convenient ways to explain a course to interested, content-area-naive, parties. Thus, the conclusion was reached that there is a need for instructional design techniques that permit developers to apply learning and instructional theories more effectively, especially in the indicated problem areas. 114 115 Next it was noted that business and industry had also been affected by the Information Age. The suggestion was made that data flow diagrams and expert systems, two tools and techniques developed by HIS to handle information, might also be of use within instructional design. The broad questions were addressed within the discussion of the spe- cific questions. The five questions about the use of these tools were addressed as follows: 1. How might the use of data flow diagrams in the design of a particular secondary vocational data processing course provide information about the relationships between major chunks of instruction, that is courses, units, chap- ters, and lessons: or the major cognitive processes within the chunks? By using data flow diagrams to develop part of the design of a secondary vocational data processing course and examining several levels of the design, the answer was determined that data flow diagrams indicated the passing of information between the units of instruction and processes within the programming unit as well as indicating the se- quencing among the units and processes. This information was not available in the Michigan Vocational Data Processing Curriculum Guide designed using current design techniques. Before attempting to address the first broad question, part of a set of data flow diagrams used to design an inter- active video unit for veterinary medicine was examined. It was noted that the data flow diagram of the entire course 116 structure showed that three units of the course would add to the students' knowledge bases, while a fourth unit would require students to access information from their knowledge bases. In addition, it showed that information developed in some units of the course was needed in other units. Thus it showed some of the ways that the units were interrelated. After examining these two demonstrations in which data flow diagrams were used to design very different types of instruction, the answer for the first broad question was determined: the MIS design tool, data flow diagrams, might provide information in the instructional design process. 2. How might data flow diagrams used to design a particular secondary vocational data processing course indicate what information might be needed by students at various points of the instructional program? The data flow diagrams that were developed to answer the first specific question also indi- cated the location and various types of information that might be needed by students for each of the major processes and also indicated where the same information was needed for more than one process. When the data flow diagrams for the design of the veterinary medicine courseware were examined they provided: a structure that corresponded to the presentation format used in instruction developed for interactive video: a graphic representation of points where the instruction needed to provide opportunities for remediation: a way of 117 classifying the instructional events as attitudes, facts, concepts, and principles for appropriate presentation for- mats: and the data necessary to estimate the potential cost of developing the system. After examining these two demonstrations in which data flow diagrams were used to design very different types of instruction, the answer for the second broad question was determined: the MIS design tool data flow diagrams could indicate what information might be needed by students at various points of the instructional program. In addition, data flow diagrams could provide information that might be used to develop interactive video courseware. 3. How was the use of data flow diagrams to design HIS systems modified to use data flow diagrams to design a particular data processing course? To use the data flow diagram technique to design the course this researcher modified the technique to use: (a) the shadowed square to indicate points that were dependent on the individual stu- dents: (b) the rounded rectangle to indicate points where the students organize, interpret, or transform information; and (c) rectangles to show internally stored information as well as external stores. In addition, this researcher did not use the instructional dictionary if the information it contained was probably known to the developer or teacher. The third broad question was discussed in the context of how data flow diagrams were used in business and how they 118 might be used in instructional design. One modification that might be made is that the symbols used in business to show activities that were not directly a part of the infor- mation system might be used in instruction to show points that are dependent on the individual students or where expert help might be needed. A second possible modification might be that the data dictionary used by business is always developed to show the specific details about the informa- tion, but the instructional dictionary might not always be used. For example where the need for cognitive strategies was shown in the design of the instruction for the cognitive skill programming, the instructional dictionary was not used, but the dictionary was very important when it con- tained the specific instructional events that were a part of the interactive video course in pain control. A third possible modification might be that when the purpose of the instruction is to use interactive video courseware to add to students' knowledge bases, the information stores might not be grouped by topic, but might be grouped by type of in- structional events to facilitate the development of the presentation modules and to estimate developmental costs. 4. How might data flow diagrams used to design a particular instructional program to teach the problem sol- ving skill, computer programming, indicate potential points in the instruction where expert systems might be used to provide students with expert help? Through the development 119 and examination of data flow diagrams for the problem solv- ing skill, computer programming, the answer was determined that points in the instructional program were indicated where expert systems might be used to provide the expert help needed by the students. From this example the answer to the fourth broad question was determined: when the objective is to teach complex cognitive processes such as problem solving, data flow diagrams might indicate points in an instructional program where individualized expert help typically might be provided. I Having discussed the use of data flow diagram in in- structional design, the second tool from business, expert systems, was examined to address the fifth specific ques- tion: 5. How were steps used to develop HIS expert systems modified to develop an expert system to help teach students in the data processing course how to debug BASIC computer programs? After discussing several examples of expert systems in both business and education, the differences between expert systems designed for businesses and expert systems designed for instruction were discussed. The steps required to develop expert systems in business were dis- cussed and a specific example of the development of an expert system for debugging BASIC computer programs was pre- sented. The development of this expert system took seven steps: select the point in the instructional program where 120 an expert system might be of use: determine if the problem is appropriate for the use of an expert system: select an appropriate shell for the expert system: establish sources for the expertise to be loaded into the expert system: create the rule base: create a prototype of the system and test it for programming errors: and continue to monitor the expert system. By comparing the development steps of this expert system for debugging to the general steps for developing an expert system for business, the answer to the fifth broad question was determined. The development of the expert system used as a tool within an instructional program might be different from the development of an expert system for business use in several ways: 1. In business applications, the problem is clearly defined and the expert is located as the first steps. In instruction, the need for expert help is not as discernable and the first steps are to locate the need and see if the problem is appropriate for the use of an expert system. 2. In business applications, expert systems are built using whatever techniques the developers think are appro- priate. In instruction, the financial constraints suggest the selection of an expert shell for typical classroom usage. 3. In business, expert systems can be built that have extensive knowledge bases and rules for applying the 121 knowledge. In instruction, financial and time constraints might limit the development of expert systems to systems that can be built from rule bases. 4. In business, the expert system must be extensively tested and documented before being released for general use. In instruction, the expert system supplements rather than replaces the expert teacher so that the testing process might be less extensive before the system is used. 5. In business, the expert system is released for use. In instruction, continued monitoring of the system might be established to keep the system current. W Despite the limitations to this study, it was demon- strated that an instructional developer can examine and improve the tools and techniques currently used to design instructional systems. The discussion and examples pre- sented suggested that data flow diagrams and expert systems might provide some improvement. Several areas of study might prove to be beneficial. One of the greatest research needs in this area is to determine the impact of data flow diagrams and expert systems in a wide variety of instruc- tional systems, especially in those that do not involve com- puters. Specifically: 1. Do data flow diagrams provide equally useful information for more structured subject matter areas than 122 for less structured subject matter areas: for example, mathematics/science, on the one hand, versus language arts and the social sciences on the other hand? 2. Do data flow diagrams provide useful information to teachers of different levels of subject matter experience and expertise? 3. Do data flow diagrams provide useful information for instruction for students of different grade levels? 4. Can teachers with limited experience with systems analysis techniques use data flow diagrams without extensive training in their use? 5. Can instructional designers with limited experience with systems analysis techniques develop data flow diagrams without extensive training in their use? 6. Will the information provided in data flow diagrams enable teachers to determine appropriate media for the‘ delivery of the instructional events? 7. Will non-instructional stakeholders understand data flow diagrams of instructional programs? If so, will their understanding depend on the subject matter content or with their familiarity with the subject matter content? 8. Will inexperienced teachers teach higher order cognitive skills more effectively if they are given data flow diagrams of the known processes that compose these skills than if they are given only conventional information 123 about the skills, such as task lists and lists of objec- tives? 9. Will students that are provided help by an expert system learn to do the task as well as students that are provided help by a human expert? Will there be an interac- tion with grade level? 10. Will students want to get help from an expert system or will they want their help to come from a person? 11. Will students using expert systems learn the pro- cesses involved in a higher order cognitive skill in addi- tion to demonstrating the behavioral manifestation of the skill? 12. When applied to different subject matter areas, will data flow diagrams indicate points at which students require help? 13. Will expert systems provide help in diagnostic areas less structured than computer program debugging, for example in debugging an English composition or a history report? A second major area for additional study concerns the effectiveness and efficiency of the data flow diagram tech- nique in instructional design and of the expert system as an instructional delivery tool. Specifically: I. Will the extra time needed to develop data flow diagrams as a part of instructional design improve the instruction sufficiently to justify the additional cost? 124 2. How effective and efficient is the use of data flow diagrams to design instructional systems compared to other HIS structured system design techniques (Davis & Olson, 1985) such as top-down design with stepwise refinements (graphically illustrated with hierarchy charts), Structured Analysis and Design Technique (SADT), and Hierarchy-Input- Process-Output (HIPO), or with the new Computer Aided Soft- ware Engineering techniques (CASE)? 3. Will teachers use data flow diagrams to make in- structional decisions? 4. Will providing students with expert systems be cost effective? If it costs more to provide students with expert systems than it did to provide them with competent tutors, would there be any advantages to using expert systems? 5. Would parents, administrators, teachers, and stu- dents be willing to accept the "expertise" of a machine? 6. Would teachers feel threatened by the use of expert systems to teach higher order thinking skills? The use of data flow diagrams in the design of inter- active video instruction seems especially promising, but many questions still require more study. Specifically: 1. Will data flow diagrams consistently show where access to previously presented materials needs to be made? 2. Will the instructional designer be able to make estimates of the cost and time necessary to develop the courseware from the data flow diagrams? 125 3. Will the developer be able to maintain the flow of the instruction when the instructional dictionary treats each instructional event independently? 4. Will such factors as the importance and difficulty for each instructional event provide specific information about the time, cost, and most appropriate media to use in developing the courseware? 5. Will experienced designers, developers, and authors be able to use the data flow diagrams effectively when designing interactive video courseware? The discussion of problems with current instructional design techniques was primarily based on the curriculum produced by one technique in one subject area. More in- structional design and development systems need to be ex- amined to see if other systems have problems similar to the ones found in the development of the data processing cur- riculum. One of the unanticipated findings of this study in the use of data flow diagrams was that the instructional dic- tionary was different for the two examples given, which represent the design of different types of instruction, which represented different cognitive processes. If the same flexible design tool were used for a variety of in- structional design problems and the differences among the different designs were studied, perhaps some insights into different cognitive processes might be found.‘ Many 126 different types of courses need to be designed using data flow diagrams and the results compared to see if there are any observable differences in the data flow diagrams that suggest possible differences in cognitive processing. Eugene Even if expert systems prove to be efficient and effec- tive instructional tools, their use still should be care— fully researched. Wensley (1987) pointed out that there are psychological as well as cognitive characteristics of ex- perts. Expert systems currently can only attempt to model the cognitive characteristics. Adams & Hamm (1987) stated: expert systems work, but they miss much of the subtle, experience-based wisdom of human experts even as they allow for acquisition of some elements of an expert's knowledge. Unfortunately, the best expert systems that could be made within instructional budgets give only a mechanistic rule- governed simulation of the lowest stage of an expert's cognitive skill. Anything approaching higher levels of human thought is still on the technological horizon. GLOSSARY GLOSSARY OF TERMS IN THIS DISSERTATION Agricultural Age - a period of time in which the economy is built on the growing of food and the majority of the workers have jobs working on farms. Alpha testing: preliminary testing of a computer program by the developers of the program. Alpha testing is designed to find any cases that are not properly addressed by the system so that the system can be modified to handle all possible cases. Artificial intelligence (AI) - a field of study that uses computers to model the information processing characteristics of humans. Authoring - the process of writing instructional computer recognizable code using a language specifically designed for the development of instructional materials. Backward chaining: working from the goal toward the given data. Breath-first problem solving technique: a technique where a computer programmer finishes programming portions of a program that are similar to portions of programs previously done before even starting other portions of the program which may be less familiar. Chunk: A collection of interrelated facts, concepts, prin- ciples, attitudes, images, sounds, and feelings that can be manipulated cognitively as a single unit. "A maximal familiar substructure of the stimulus (Simon, 1981, p. 80). "any configuration that is familiar to the subject and can be recognized by him (Simon & Newell, 1972, pp. 780-781). Computer aided instruction (CAI) - any instruction that uses a computer for the delivery of the instruction. (see programed instruction) Data flow diagrams - A manner of graphically documenting the flow of data and the procedures used within an information system using four symbols to show: (1) source or destination of data, (2) flow of data, (3) processes which transform flows of data, and (4) storage of data. 127 128 Debugging - in computer programming, the correction of logical or syntactic errors in a computer program or system. In problem solving, the process of locating and correcting errors in a solution. Expertise transfer is the transfer of knowledge from human experts to expert system knowledge bases. Expert system - a computer program that simulates the cognitive processes of a human expert. Expert systems are an applied form of artificial intelligence. Expert System Shells: expert systems for which the inference engine has been designed, but the knowledge base and the rules are left blank so that applications can be developed by entering the domain specific application knowledge base and rules. Forward chaining: a method of problem solving that starts with the given or input and moves toward the goal. Heuristics: rule-of-thumb knowledge that enables experts to make educated guesses when necessary, and to deal with incomplete or inconsistent information (Boose, 1986). If-then or if-then-else format: Rules in the form of proposition, truth inference, negation inference. For example: If the program runs, the error is an error in logic else the error is a language error. Industrial Age - a period of time in which the economy is built on the production of goods and a majority of the workers have jobs directly involved with the production of goods. Inference engine: procedures that generate the consequences, conclusions or decisions from the existing knowledge base. Information Age - a period of time in which the economy is based primarily on information processing and a majority of the workers have technical, managerial, and clerical jobs. Information system - a system to organize data in a meaningful fashion to produce information. The basic model consists of input, process, storage, and output, but in recent years distribution has come to be considered a part of the system. (see Management Information Systems) 129 Instructional Design - see instructional systems design. Instructional Systems Design: the total set of procedures that are followed in planning, developing, implementing, and evaluating instruction. The procedures are derived from knowledge of human learning relevant for instruction and from the results of empirical data obtained during tryouts of preplanned instruction. (Aronson & Briggs, 1983, p. 99) Intelligent Computer Aided Instruction (ICAI)- a form of computer aided instruction where the characteristics of human tutoring are incorporated into the program allowing instruction to adjust to different individual student aptitudes. (see computer aided instruction) Knowledge base: production rules, semantic networks, frames, relational database and inference rules critical to a specific domain application. Loading an expert system shell: The process on entering the knowledge base and rules into a computer program that already has developed procedures for accessing the knowledge base and applying the rules. Natural language is a language that has developed over time as part of the process of human interaction. Management information systems (MIS) - a branch of computer science/data processing concerned with the organization and coordination of the information owned by a company so that not only are day-to-day transactions processed, but all levels of management are supplied with information and supported in the use of technological tools for decision making. Problem solving - a higher order intellectual skill consisting of the ability to make decisions or choices by using multiple pieces of information. Production-rule expert system: a relatively simple expert system that consists of productions and rules in the IF...THEN...Else format. Programed instruction - instruction designed to present learning in a step/sequence order, accompanied by reinforcement. In recent years, programed instruction has often implied drill and practice types of computer aided instruction. 130 Prototyping: a method of development of computer programs or systems that avoids extensive analysis and design phases in development by creating working models of the program or system. These models are tested and expanded or modified until the complete system is finished. This technique is usually significantly faster than any other design techniques but risk omission of important functions that were not considered during initial development. Usually systems built by the prototype method require frequent modification after installation. Prototype: a working model of a system based on information about the functions of the system. It is the product of prototyping. Rule-base: the collection of rules that indicate how decisions are made or conclusions are reached in a subject matter domain. Shell: See Expert System Shell Structured design methodology - the use of systems concepts to decompose an information system into functional subsystems and to define the boundaries and interfaces of each subsystem. Technological society - a society where the use of technology has a major role in the performance of routine activities. User interface: a way of communicating with the user. In expert systems, the user interface should close to the user's natural language. Working memory: for an expert system, a temporary storage area to hold the immediately relevant portions of the knowledge base, the user's responses, and the current inference. APPENDIX A APPENDIX A CURRENT INSTRUCTIONAL SYSTEMS AND DEVELOPMENTS This appendix contains: Five Task task instructional systems models: Core Elements Andrews/Goodson Tasks (page 132) Stages of Instructional Design (page 133) Courseware Design Model (page 134) Michigan State University Instructional Systems Procedure Model (page 136) Information Relationships Among Learning System Design Procedures. (page 137) lists from the WW: Data Entry tasks (page 138) Computer Operations tasks (page 140) Computer Programming tasks (page 143) worksheets from the Guide: CP-2 (page 146) CP-S (page 150) CP-ll (page 154) CP-lS (page 158) 131 FIVE INSTRUCTIONAL SYSTEMS MODELS Core Elements Andrews/Goodson Tasks Determine learner needs Assessment of need, problem identification occupational analysis, competence, or training requirements Characterization of learner population Determine goals and objectives Formulation of broad goals and detailed subgoals stated in observable terms Analysis of goals and subgoals for types of skills/learning required Sequencing of goals and subgoals to facilitate learning Construct assessment Development of pretest and post-test procedures Matching goals and subgoals Design/select delivery approaches Formulation of instructional strategy to match subject-matter and learner requirements Selection of media to implement strategies Development of courseware based on strategies Consideration of alternative solutions to -instruction Try-out instructional system Empirical try-out of courseware with learner population, diagnosis of learning and courseware failures, and revision of courseware based on diagnosis Install and maintain system Formulation of system and environmental descriptions and identification of constraints Development of materials and procedures for installing, maintaining, and periodically repairing the instructional program Costing instructional program Richey (1986,p 96) and Andrews and Goodson (1980) Figure 12: Comparison of Core Elements and Common Tasks 132 10. 11. 12. 13.. 14. 15. Stages of Instructional Design Assessment of needs, goals, and priorities Assessment of resources and constraints, and selection of a delivery system Identification of curriculum and course scope and se- quence Determination of gross structure of courses Determination of sequence of unit and specific objectives Definition of performance objectives Analysis of objectives for sequencing of enablers Preparation of assessments of learner performance Designing lessons and materials: (a) instructional events: (b) media: (c) prescriptions (utilizing ap- propriate conditions of learning) Development of media, materials, activities Formative evaluation Field tests and revisions Instructor training Summative evaluation Diffusion and operational installation Briggs and Wager (1981, 5) Figure 13: Stages of Instructional Design 133 134 C. .05... h :_ 00...... 020 .000: 00.000 0.230.000 .0. 0.00.. + 0.00.... 00.0.03. + cO—uoa—o>o 03.05.30 puke—Lot 0.2.0.00. £80.00. 0.0.00.0 0.0.... 00.00.00 + .000: :2. 00. .0280 zo.h(:.<>u\.km£0o.u>uo H._. 0.03.0 0.00. 00.000 é 3.2.0.02. - t 0.00.... 00.0.00... . 0.0.00 0.0.00 . 00.000 0.0 00.0.00. :00000 000 .0030. 00.0000 00.0000 V - 0.0... 00.0.00... . . 0.20200.u>u0 oz.zz00 00.000 0000.00000 5.00.503 0.00000 00.0.00. 5.0 5.00.0 00.30030 .5333”: 00.0.8.5 00.0.00. 000.0 5.003.000 00.00.03. .0 60.00.00. .00 00.0.5.0 35.53.00... 3.05.0. 5:53.000 05.500 00000< 5.0 00.00.. 00.300080 35.00.0300. 5.0 5.003.000 00.0 5.03.05 0:05.90. .0 0.300. 05 63303.0 69.5.0 00 0.00.5 2.0.0 5.00303 05.00.90. 0.00.05 .05 5.00.500... 0.00. 00.0.8.5 00.0.00. .0030 35.03.00... 055.9... 5 5.000 .m .5.00:.0>o .05 003000.30 3 0.0080000 00.300005 .530200... 05.00.00. ace 5.000 0.00.000 5.00:0.0 05.0000 00330.30 3.000 30.05 .05 00.5000 .0 ._.no 3 0.0090000 0.00000 00.0.00. .0 5.030.. £555.50 050300 .0 «5.0000000 2.0.0 .26 05.00.90. 05.0.3.0... .0... 000.500.. 020.0830 05.0 5.0.3.000 30.3.0.3 .n .5.u0..00oo 50000 00.0.00. .05 05.0.0. 3 0.00500 60.30030 .5355... .3000 000.5 .05 8.5000 .05... 5.03.000 3.0.00.0. 5.0-0.5.. .05 000.5000 03.0 .300... 0003.... 0.00.05 5.0-30.0 05.0.00 0.30 30.00005 00.500. 3.... .05 00.50 .N 5.0 5.0-30>. 00..0000.00. 000 00.00.00.00 00.3.0000... 15.03.00... 5.5.000 000.000.00 00.0..0 00. 00.0..00 .000... 0. 5.006.000. 55 .8000 .00.... 20.00.00.55- ..0...0.0 0.05 05.030 .00.... "00.5.3. 0.3.50 . all 0.2.0.050 5 5.000.... 00.5 0...... 0...... 3 a)... . no 000.3000. 005 500... . on 000.3000. 02! 00.0080 .0. 0.2.5.. 5.00.0.3... 50000 .0 03000 05.50 00.5000 .. 0.53.0 5 .000 DE-l DE-2 DE-3 DE-4 DE-lO DE-ll Data Entry Task Ifléh Manipulate switches, keys and levers using a knowledge of the device operations to activate a data entry device. Manipulate switches, keys and levers using a knowledge of the device operations to de- activate a data entry device. Analyze device malfunctions using a knowledge of the device operations to identify the cause of the malfunction as to whether it can be corrected by the operator or is to be reported to a service firm. Manipulate switches, keys and levers using a knowledge of the device operations to correct malfunctions on a data entry device. Manipulate switches, keys and levers using a knowledge of the device operations to execute standard service functions, such as changing ribbons, cleaning screens, emptying chips and other such services. Manipulate switches, keys and levers using a knowledge of the specific device to create a program to control record format operations such as skipping and duplicating. Manipulate switches, keys and levers using a knowledge of the specific device to load a program to control record format operations such as skipping and duplicating. Manipulate switches, keys and levers using a knowledge of the specific device to load media onto or into a device for keying data. Manipulate switches, keys and levers using a knowledge of the specific device to select a program format for a specific record. Manipulate switches, keys and levers using a knowledge of the specific device to enter data onto a media. 138 DE-12 DE-13 DE-14 DE-lS DE-16 DE-17 DE-18 DE-19 139 Isfik Manipulate switches, keys and levers using a knowledge of the specific device to verify by machine the data previously entered into a media by a keying device. Analyze a data field using a knowledge of media coding to verify visually the data previously entered onto a media by a keying device. Manipulate switches, keys and levers using a knowledge of the specific device to duplicate data from one record to another. Manipulate switches, keys and levers using a knowledge of the specific device to update data contained in an existing record. Write job information using a knowledge of recording procedures to create a log of com- pleted work. Analyze written descriptions in technical manuals using a knowledge of the device to resolve problems with device operations. Place media in a storage area using a knowledge of storage techniques to maintain a media file library in a logical sequence. Place media in protective containers using a knowledge of media storage techniques to store media. CO-l CO-Z CO-3 CO-4 CO-S CO-6 CO-7 C0-8 CO-9 CO-lO Computer Operations Task 11515 Arrange a group of jobs to be executed on a computer using a knowledge of computer system performance to minimize the operational steps and overall run time. Analyze operating instructions using a know- ledge of media used with a specific system to obtain the media needed for a specific job to be executed on the computer. Read operation instructions using a knowledge of computer operations procedures to identify the sequence of steps to be performed in completing a specific job on the computer. Inform persons who are assuming your duties of the status of operations using a knowledge of computer console operations and messages to maintain uninterrupted operations. Analyze operation instructions using a know- ledge of peripheral equipment to identify the media to be used with a specific job. Analyze operating instructions using a know- ledge of peripheral equipment to identify the media to be used with a specific job. Place media in a storage area using a knowledge of storage techniques to maintain a media file library in a logical sequence. Manipulate protective containers using a knowledge of data storage techniques to store media in containers. Manipulate switches and keys on a computer console using a knowledge of computer console operations to power up and initialize a com- puter system. Manipulate switches and keys on a computer console using a knowledge of operating system commands for a specific system to reassign control functions such as priorities and memory allocations. 140 CO-ll CO-12 CO-13 CO-14 CO-15 CO-16 CO-17 C0-18 CO-19 CO-ZO 141 Ififik Manipulate switches and keys on peripheral devices using a knowledge of specific devices to load media onto the device. Select job control commands using a knowledge of job control language to run a specific job on a computer system. Analyze messages produced on a console using a knowledge of messages produced by a specific operating system to identify the status of a job being processed by a computer. Analyze written descriptions in technical manuals using a knowledge of a specific job control language to interpret descriptions of job control statements for a specific computer system. Compare computer produced output to a job description sample using a knowledge of com- puter media output to verify the accuracy of a computer run. Write information in a log using a knowledge of computer operations to record information about completed jobs. Analyze machine generated output using a knowledge of computer operations to identify the cause of processing errors. Manipulate switches and keys on a computer console using a knowledge of a specific operat- ing system to restart a program execution in which an abnormal halt has occurred. Manipulate levers, keys and switches on media devices using a knowledge of the specific devices to adjust operating performance of the device. Write information on labels using a knowledge of cataloging descriptions to identify specific media as to the data entry thy contain. C0-21 C0-22 C0-23 CO-24 CO-25 142 11001: Manipulate levers, switches and keys on media devices using a knowledge of the specific device to complete routine servicing normally performed by the operator. Interpret device performance indicators using a knowledge of the specific device to identify a machine malfunction. Report verbally or in writing the malfunction of a device using a knowledge of the reporting procedure to notify service firms of the malfunction. Analyze operating instructions using a know- ledge of back-up and restorations procedures to identify files that need back-up. Interpret system performance using a knowledge of system performance to identify system performance inefficiencies. CP-l CP-2 CP-3 CP-4 CP-S CP-6 CP-7 CP-8 CP-9 Computer Programming Task Task Analyze a program request using a knowledge of programming techniques to prepare an estimate of the time involved in preparing an executing a computer program. Analyze a program request containing‘specifi- cations using a knowledge of data processing equipment and techniques to prepare program documentation that describe the parameters necessary to produce the desired output. Analyze program specifications using a know- ledge of file organizational types to prepare file specifications to be described in the program. Analyze program specifications using a know- ledge of data characteristics to identify specific data characteristics to be described in the program. Analyze program specifications using a know- ledge of programming techniques to construct a guide to code the logical steps of a program. Analyze written descriptions in technical manuals using a knowledge of a specific language to interpret descriptions of language statements and operating characteristics of a specific computer system. Write language statements using a knowledge of the specific language and program documents to produce a source program coded in a specific language. Review a source program using a knowledge of the specific language to identify coding errors within the source program prior to compilation. Key source statements into a device using a knowledge of the device to produce computer readable source statements. 143 CP-lO CP-ll CP-12 CP-13 CP-14 CP-15 CP-16 CP-17 CP-18 CP-19 CP-ZO 144 I§§B Write job control statements using a knowledge of job control language and the specific operating systems to produce the instructions necessary to compile a source program into an object program. Analyze error notation produced by a computer using a knowledge of the specific language to identify syntax errors in the source program. Write source statements using a knowledge of the specific language and an error notation listing to produce corrected statements in a source program. Design data using a knowledge of data charac- teristics to test the logical correctness of a program. Write job control statements using a knowledge of job control language and the specific operating system to produce the instructions necessary to execute an object program. Analyze output data produced by an object program using a knowledge of the test data to identify logical errors in the program. Write source statements using a knowledge of the specific language and output test data to produce a corrected logical sequence in a source program. Analyze output of a test run with a user using a knowledge of the program requirements to obtain approval that the program is producing the desired results. Write user instructions using a knowledge of the program logic and specifications to produce a user's manual. Collect program listings, test data, and other specified documents using a knowledge of documentation to produce documentation of the design, coding and operation of the program. Analyze program documentation using a knowledge of programming techniques to produce a list of coding changes to a computer program. Task Ho. CP-21 145 1:383 Write operating instructions using a knowledge of the program logic and specifications to produce an operations manual. CURRICULUM WORKSHEET Duty No. CP Task No. 2 Duty: Performing Activities Related to Computer Programming Task: Analyze a program request containing specifications using a knowledge of data processing equipment and techniques to prepare program documentation that describe the parameters necessary to produce the desired output. Pre-Test (Same as Achievement Indicators): The learner: 1. Analyze the program request to determine des- cription of input/output data and major proces- sing parameters 2. Prepared a written general description of the input files, output files and major processing parameters and/or logic References 0 Resources: See Bibliography Nos. 1, 8, 9, 10, 11, 12, 13, 14, and 19 at end of section. 146 Duty/task Number CP-2 BTUDENT LEARNING ACTIVITIES TEACHER ACTIVITIES 1. Participate in a class discussion on how to ana- lyze a program request to determine description in- put/output data and major processing parameters. Analyze a program re- quest. Prepare a written general description of input/out- put files and major pro- cessing parameters and/or logic. Read assignments and handouts to understand how to accomplish the task. Use a flowcharting tem- plate and flowcharting instructions to correctly flowchart a program re- quest. Student can describe the files necessary to pro- duce the desired output. 147 Take the class through a simple program re- quest showing them how to write a general description of the in- put and output files and major processing parameters and/or log- 1c. Assign readings and/or handouts to accomplish this task. Assign readings and/or handouts to teach sys- tem flowcharting. Provide flowcharting templates. Describe the input Files. Describe the output files. Hand out a sample nar- rative to the class. Duty/Task Number CP-2 TOOLS AND/OR EQUIPMENT CONDITIONS Central processing unit (CPU) capable of COBOL, RPG, and BASIC or access to a time- sharing computer. Cathode Ray Tubes (CRT) devices for input and output. Printer -- on-site. An adequate number of work- stations should be available so that one half of the class is involved in hands-on activ- ities at any one time. Other off-line data entry equipment: key-to-tape, key- to-diskette (floppy disk), key-to-card. The activity of writing general descriptions for input/output files and ma- jor processing parameters could be accomplished most any place. These are the kind of activities students should be involved in when they can't get on a work- station. Criteria: Competence in the task will be recognized when to program documentation describes the data and logic necessary to prepare file specifications, data characteristics and a logic guide for the program. 148 Duty/Task Number CP-2 Post-Test Q931_§t§;gm§n§_£1 - You will produce documentation that describes the parameters necessary to produce a desired output. Esrfgrmanss_gbisstixs_il - Given a program request. You will demonstrate the following tasks: (a) analyze the input/output request and (b) prepare a written description of the input, output, and required processing. Performance will be accepted when documentation describes the data and logic completely, enabling the file specifications to be written without error. Bvaluation/reedback 149 CURRICULUM WORKSHEET Duty No. CP Task No. 5 Duty: Performing Activities Related to Computer Programming Task: Analyze program specifications using a knowledge of programming techniques to construct a guide to code the logical steps of a program. Pre-Test (Same as Achievement Indicators): The learner: l. Analyze the specifications to determine the organization of the logic necessary to produce the desired output. 2. Prepared a guide to the logical structure of the program by constructing a design document accepted by the industry. RCIOIODCOE & Resources: See Bibliography Nos. 10, 11, 12, 13, 14, 15, and 19 at end of section. Reference Manuals 150 Duty/task Number CP-5 STUDENT LEARNING ACTIVITIES TEACHER ACTIVITIES 1. Student can read the text material. 2. Student can diagram (flowchart) problems. 3. Student can write the logic steps in an orderly fashion (IOP chart). 4. Students can exchange logic guides and check for each others errors. 5. Participate in.a class discussion about program flowcharting. 6. Write a detailed flowchart. 7. Determine the necessary calculations or proces- sing steps in a program. 8. Determine the logical steps in a program. 151 Explain uses of flow- charting symbols (if used). Explain a situation requiring program to student. Lead a class discus- sion about detailed program flowcharting. Provide sample flow- chart. Provide flowcharting templates. Demonstrate the pro- gramming cycle. Place solution to the problem on chalkboard or overhead projector. Duty/Task Number CP-S TOOLS AND/OR EQUIPMENT CONDITIONS Central processing unit (CPU) capable of COBOL, RPG, and BASIC or access to a time- sharing computer. Cathode Ray Tubes (CRT) devices for input and output. Printer -- on-site. An adequate number of work- stations should be available so that one half of the class is involved in hands-on activ- ities at any one time. Other off-line data entry equipment: key-to-tape, key- to-diskette (floppy disk), key-to-card. Flowcharting template. Overhead projector. Chalkboard. This is an individualized and/or group activity which could be accomplished in or out of the classroom with no equipment needed. An appropriate supply of card layouts and printer spacing charts are necessary. An appropriate supply of flow- charting templates and cod- ing sheets are necessary. Criteria: Competence in the task will be recognized when the design of the logic describes the processing needed to produce the output according to techniques used within the industry. 152 Duty/Task Number CP-S Post-Test §g§1_§;§;gmgnt_11 - You will construct a guide to code the logic steps of the program. W11 - Given a program statement and the necessary tools, the student will construct a guide to code the logic of the problem. Performance will be accepted when the guide correctly describes the logic necessary to solve the problem and is completed according to techniques used within the industry. . Evaluation/Feedback 153 CURRICULUM WORKSHEET Duty No. CP Task No. 11 Duty: Performing Activities Related to Computer Programming Task: Analyze error notation produced by a computer using a knowledge of the specific language to identify syntax errors in the source program. Pre-Test (Same as Achievement Indicators): The learner: l. Matched each error in the error listing with the source statement 2. Noted the nature of the error in the source statement according to the specific language structure References 0 Resources: See Bibliography Nos. 10, 11, 12, 13, 14, and 19 at end of section. Reference Manuals 154 Duty/task Number CP-ll STUDENT LEARNING ACTIVITIES TEACHER ACTIVITIES 1. Know when, where, and how 1. Describe the common to get program diagnos- errors encountered in tics. similar programs and enumerate the possible 2. Participate in a group reasons for the discussion on debugging errors. programs. 2. Help individual stu- 3. ~ Be able to debug a pro- dents find particular- gram without assistance. ly difficult errors. 4. Correctly use available :1. Demonstrate how to debugging tools or de- debug a program. vices. 4. Provide a handout of a program for debugging. 5. Provide and demon- strate whatever debug- ging tools and devices that are available. 155 Duty/Task Number CP—ll TOOLS AND/0R EQUIPMENT CONDITIONS Central processing unit (CPU) A classroom situation capable of COBOL, RPG, and should be available that BASIC or access to a time- allows students the oppor- sharing computer. tunity to identify and cor- rect syntax errors. Refer- Cathode Ray Tubes (CRT) ence manuals and debugging devices for input and output. templates should be avail— able. Printer -- on-site. An adequate number of work- stations should be available so that one half of the class is involved in hands-on activ- ities at any one time. Other off-line data entry equipment: key-to-tape, key- to-diskette (floppy disk), key-to-card. Debug template. Criteria: Competence in the task will be recognized when all errors have been identified as to type. 156 Duty/Task Number CP-ll Post-Test fig;1_§tgtemgnt_11 - You will identify syntax errors in the source program. Performance Objective i; - Given a source listing and an error listing produced by the compiler, you will identify the syntax errors in the source listing. Performance will be accepted when all errors have been identified. Evaluation/Feedback 157 CURRICULUM WORKSHEET Duty No. CP Task No. 15 Duty: Performing Activities Related to Computer Programming Task:l Write source statements using a knowledge of the specific language and output test data to produce a corrected logical sequence in a source program. Pre-Test (Same as Achievement Indicators): The learner: 1. Selected the coding sheets for the specific language 2. Wrote the statements to correct the logical errors using a source listing References 5 Resources: See Bibliography Nos. 10, 11, 12, 13, 14, and 19 at end of section. Reference Manuals 158 Duty/task Number CP-15 STUDENT LEARNING ACTIVITIES TEACHER ACTIVITIES 1. Students can write the 1. Provide handouts to language statements in cover the procedure corrected form, to elim- for correcting a inate the errors. printout. 2. Using system input device 2. Demonstrate techniques to correct errors in the for horizontal and source program. vertical centering. 3. Recompile and execute the :3. Ensure that the stu- job control statements. dent understands why the original state- ments were in error. 159 Duty/Task Number CP-15 TOOLS AND/OR EQUIPMENT CONDITIONS Central processing unit (CPU) capable of COBOL, RPG, and BASIC or access to a time- sharing computer. Cathode Ray Tubes (CRT) devices for input and output. Printer -- on-site. An adequate number of work- stations should be available so that one half of the class is involved in hands-on activ- ities at any one time. Other off-line data entry equipment: key-to-tape, key- to-diskette (floppy disk), key-to-card. Spacing rulers. In a laboratory situation the students will retrieve their printout, proofread for logical errors and cor- rect these errors. Stu- dents should use vertical and horizontal rules dis- cussed in the class. Printer spacing charts should be provided for stu- dent use. Criteria: Competence in the task will be recognized when the object program is error free and executes as des- cribed in the program specifications. 160 Duty/Task Number CP-lS Post-Test anl Statement #1 - You will write corrected source code to eliminate logical errors in your source program. Earfigzmanca Objectiva £1 - Given a source listing with logical errors identified, and an output listing with erroneous data, the student will write the source code correctly to eliminate all errors. Performance will be accepted when the object program produces an output listing with correct data. Evaluation/Feedback 161 APPENDIX B APPENDIX B DATA FLOW DIAGRAMS FOR DEVELOPING A COMPUTER PROGRAM This Appendix contains the data flow diagrams showing the design for the instruction to teach students how to develop computer programs to solve problems. Designing a Computer Program Define the Problem 1.0 Define specific outputs 2.0 Define specific inputs 3.0 Define processing sequence and detailed process 4.0 Represent process specifications graphically 5.0 Develop program detail code 6.0 Test program 7.0 Debug program 8.0 Evaluate program 9.0 162 (Page (page (page (page (Page (Page (page (page (page (page 164) 166) 167) 168) 169) 170) 172) 173) 174) 175) 153 mmmooum czocxco amumoua cmumma ovum umma mommmoonm Ofiufiommm mfiumuauo cowuwsam>m oaufiommm muoauou pdmuso you mmasm upoanou usmcw you mmasm mcflumummo you moasm muouum auw3 amuaoum mpumccmum vcwmmmooum mmwvmumuum msfi>aom Emanoum amanoum mcoquOAMflomam mmoooum ceauwcwumc mmmooum amanoum hound ficumoum muouum QOfivmofimwommm mmoooum mcofiumowuwommm unauso coauMEuousH umommz cowumauoucw mcammwz moasu mmmsmsmq uouum HMUfivoq AD GE GE mm Um 0% H“ mm 3m mm mm mm in mm m0 H2 H2 Ugommq um musoflm mandamuoum nun mGOHDMOflMfiommm psmcH amanoum usonm coaumauoucH moumocoum owcmwuo mQOfluooamwoQO mmoooum no coflumucommumou owcmmuo acumoum omuosao>m m>fiuomnndm owuouwuo nowuodam>m mcowumowmwommm mmmooum mcwumfixm muoauou usmuso vsaumflxm muoauom Hanna mcwumfixm coaumucmmmummu Desmond mcfiumflxm moon mcwumwxm mmfimmumuum mmoooum Hfimumn mcowumosv mcwmmsnma coaumaM0mcw mnflmmsnma moccasosx manuwuomam mumooum Hfimumn mcumosoum mascoo mmasu mcou schoonm omoou cowumofluaommm coflpomuuoo muomm can wsnufinomaa mh mH mH m0 m0 >m mm mm on Hm OH OH m0 09 HQ do m0 MU m0 00 md 164 _ new SEEaumoi o 5 ‘ .1\\\H\\\1v 528... 359:8 a 2298a a manor. ESooi a Season E292.”— 22:96 :25 F r :3.an .3... 98 38—0 5 as n! _ «tumour—“”980 _mwo mm Emmeuoi mosooooi oc< _30 8 $3235 8.. . o o \ XIII] a “Mme 2. 5:5 3 2:95 ‘ “ fig a i _m ”is“ E 3. m. as _ 3323 o: 3 r . I r o N \ k m.— oooo mczmim _ .5— \ J 0830:. 2.82%. w. _fifio 528:. ”2855 9.58— 32 6 “Meow“? 888cm 2.. o: o _ a 2.085% A on. Canada & e o g .2562 oocfioBm— no o.m 0.? 0.. _ n2 ‘ _z, - h 8 320m accesofl 8: cogczeaom 388 _ so 3:. _ 0235 3.5.6 8 amaze B E :haxm 38.35? h - 8 ‘ 86285 «Em Sam am cozflcommaom 2.320— 8 _ £8805 mo o>Ecmoo_—c .155 mmwwmumuum Emanonm mods“ omH mmwmmumuum mcwmmmooum amanoum Ewumoum uo mmomusm coauwCfiMmo usmuso Emanonm cofiuflcwumo panda Emanoum mfiflcpfluooam mmmoonm mmwmmumuum uzmuso usmuso unonw cowuwsu0mcH mm mm mm mm Om fim mo 00 Gammon "h madman cowuoauoucd Umommz coaumaMOMCH ucwmmaz mmmooum usonm coaumsuoucH mmammumuum unmcH Emanoum unonm coaumsuomcH coauosuoucH monsoon a mannaww>m undue usonm coauMEuoucH mcofiuflccoo Hafiowam usonm cofluwsuoucH cowuficflmmc mmmooum Emanoum mafisufluoua< H2 H2 EH mH mH 2H HH UH m0 166 0. ._.. _[mgmafizw ngcmoo _ No - r $3.32: i. z. / m. 8:268 taco ocm On: mcoEncoo .50on ao_o>oo GEEhGuOD m._, gggée @3222 8:223; no _— 8:993. EoEoi -mwm: 0... 258mm mIk wZEmo K mmDGE n: 5%. r \ E .0 max... A am «58350 a; a ‘ on. 938005 to. \II $5.39 5285 3:520 5930 so a 25 38.8 v; 8 oEEBE dd 28m m... .5. _2 z ; _Imemofizw «2:300 _ m0 _— .o>_om - EoEoE — $8.30ch 5 _ toaxw 167 3250. 59:0 to. 83¢ . “E coEczoo 5930 80305 - 0d 20.80533 59:0 . mo to. 00% 59:0 8235 3.050 A 3. 23.8 9:83 2:8 E mason. cagsfio 59:0 to. 3252 5.3.63» 5&3 2.3.3 . ..._O 32.8.33» .252 52:0 262 . m2 22.8.38» Q. 2.35 . mm N.N ur— ncozmoEoomm ‘ 3 A O: .5— «Potsdam 82.3..8mw4 ‘ , — 9. assem— mo— 168 ad ”5%. 028% 2:8 “3 manor. 23:2 59.. ._o. no.3... . “E 825.8 5%. 5.320. . E 29.8.3.3 5%. . m. 288.53» 3.52 5%. 3oz ._2 . 28.8.:83 3.52 5%. 8.5.3 . _m m. Sea. to“. 8am EoBSd . 953$ >5 aggmo A 233 N. , at 3232:0on ‘ 30.50.:oodm4 A Q. a. ”2856— A; r 9. 3.2.0— 8— 169 n5 3:on 332d toaxm oé 3:83 3.8:: :5 8:26am 9.332: 3:3 ”a. meOE mam r 38.28:. _ «fl 36285 92300 _ 5,— 7233% 93300.5 _ mo _ a 33305 ocm :om_< ._.w _ aw i _ £9.23: $5.32: _ moJ\5' fl 8am , 330.5 3.590 u:< A ma. osnEoo r 0% ‘ 8:253 :_ 3:5 :82... ao_m>oo m6 Al. 2w «0.35% 262 c_5_>> 3339a ucw :oo_< 8:268 v6 _r 0.: \ 330qu 565...: - a: .6295 . km 3805 2:025 . am 3.33.: coocoaoow - 2m 8339: can «82:89: 30533 - (m mEmucmsm msmmoooi - ._.d 2280:6on mmoooi - ma :oEEEo 8299: $39.: - am 3:62: mmoooi . 2d 20:: 5.82383 3805 - ma 32:53.: 3303 mEoEQd - om no.2 326:3 . 5 mcozmoEooam 839a mczflxm - mm 2980:6on $805 .860. .0 82.530 . mo mommoooa oca 255:3? - u< r —.v \ 3382.: 952.6 _ B 3339 m0: 5.. cog—w mmoooi A. a is 952.6 All 838.2 All 283 2m 8338 . MMMMMM dd 2: 170 5:032... xoofixoo o.m 2.82:2: 80.50.33» 382: 539.com now $50.“. «Emacs.» 02:2: 053% . mm 23:...» 02:20 . mo 5.55352 0298: 0...":on . mm 5.5.5332 9:35 . co 20.50503: 332d . 9.. 5:23.... . ..... Soto 5.50502.» 389:. fig . 3.55352 2:33 8.6.3 . cm ”235.» 2:85 . so gem 5:26.“. - “m : :u 5.22533“... 0.580 tap—030E 330:. A 3.260 : 880352". 00.2920 8.5m.— 8— 171 mcowumofimwomam mmmooum xmuchm mcwcoo mmmooum mcowumowuaommm 0000 «Haves mmmooum mnuwvcwum moon mmoooum moon mmmooum mvumocmum usmuso mGOfiHMOHuflommm usmuzo mouwocmum uzmcH mCOflumofiuflommm usmcH 0600 uflvm uamcH xmuchm mcflvoo usmcH mm mm 2m 0m 0m 80 m0 .HH mH NH UH camoma "Hm «Human Davoa Ewumoua no cofiumucwmmummu ownmmuw 0600 mmoooum onwumfixm muoo Humane ocfiumfixm @600 #59:“ mcflumwxm 0600 pacm xmuchm uamuao onwooo xmuchm vcfivoo mcowumofimwommm ceauomuuou amumoum omcoo mCOfiumowuwommm unmuso cmcou mcowumowuwommm Hanna vmcoo muouum spas 0000 mvumvcmum mcwooo 0600 :owuomuuou m0 mm on Hm Om m0 MU av 00 HO HO no 00 725335. 8:222..— no E _ anooéixfl 2o _ nm 858: fi Gagn— in. 88 v.0 0n. 172 300 .85 8 :80 mo 8325a" .30 to _ 8 .0 .otm c. 080 8230 of ””2356. .30 W*JFE o... 38 =38 2.28... 8.28 a maze... I‘ $3.222 3:222... _ no _— 800 gum m. 59... _ $2.332 85.32: _ no _— 0 _ once 9.35 _ o5 _— 5236 02mm... - a... Sun 50... .. 0P Soto 5.; Snack. . ma €255.93 c2530 - <0 ON 6800.6 80.. ”NN meOE 35689... .2. . 0.. 85302.. .6“. . n... as: :2 35.333 - mm 6295 00.3.50 - 20 8960.... 0300 . mo «:3 .coc8E8 8. 2c. :33 :32: :3: mm: 30 .802 m .m cm :9:ch m8: 000. . Baa «wok m5 0 n .wmmcogamw N5 4m... mhfixw w «m <0 38955 cam .23 17. a... ma 850805 40.. o l } I , Smack. .20 06.... E .o 5m E, s: A .20 AIII. .2; 5.32% A 8 w. E a; Emaoi 0.3800 o... 5202.. 038 E 0020.... 5.00 . .00 00 0.0: 00.0.. 05 0:00 50:00.08 8. 0.5 5500 09.0.: :00: 00.. 0.0 0.80 0.00 "0.02 r 0.0..w 03009.0.— mdfl 174 2.0.3.00 .0..0 . .0 00000 0.00 n 00 _ 20.5.0.2 8:10.00 _ an: .0 \IJ a .0..0 .0..0 03039.0. 0339.0. . .0..w .0 8:00 .o 25 / .0 09¢ ‘ 056.200 056.200 m. 056.200 r 0.0 . , v.0 . . .0..0 .0030. .0 00.... . 0.. 0.0.. 030350. . w .0 000300 0 00 J «.0..0 030.300. .0. 5.2.5 «.00 .0. 0.3.5 .0..m .0030. 000 . .0..m . .0..0 03039.0. .0 09¢ . .._. . w .0030. 3.50 . x0 3 . .0..0 0009.0. 0. 00.5.00 . .m .830. llnohll .0 00.... 002.530 .0..0 050000 . mm 05.00 055.200 29.0 5.3 5030.... . mm 0.0 0:0 .0..0 030.300. . m. .0..0 .0030. . m. m. .90 .802 .o 8......8 . .o .20 .803 0.8 5030.0 0. 5:00:00 . no ‘ .0..0 03029.0. .0 00:00 . .o 0.0..w0 1M0 man...0 0 0.00. .0..0 .0030. .0 00:00 . mo 0 0 0.0 00 .0.0 . _Q 00000 0......EE0. 0— 0.0 _ 175 B 00000.0 .0 0000 .0230 000 am , 00.6.0.0 . 0.0 50.02.. 8.8.30 ”00 0000.0 5050 00.0290 . Om 80.020 00.00... . 0... S00. 00.0200 . .0 2.0.00 00:00.03 02.00.00 - 00 500. .0. 0000.0 00:00.30 . ow 0.0.00.0 00.3.0.0 . 0m 50... .0. 0:0...0 00:00.20 . mm .000.00< . 0.0.00.0 . t 00: S050 0000 Q .0230 Q .0230 ‘ 0% 056.800 + GEE.¢~00 APPENDIX C APPENDIX C AN EXPERT SYSTEM AID TO DEBUGGING BASIC PROGRAMS S A M P L E K N O W L E D G E B A S E D E B U G an aid to debugging basic programs .- 0- .- 0- O- 0- O- O- 0- .- 0- O- 0- 0- 0- O. ! TITLE Debugging Aid to basic programs DISPLAY I D E B U G DEBUGGING AID FOR BASIC PROGRAMS Debugging aid to basic programs is a knowledge base designed to guide the introductory basic student through the process of identifying unknown errors in a basic program. Debug will assist the student in: - identifying the type of error in the program - determining the type of language or logical error - determining the cause of the error - determining the solution to the error DEBUG is a prototype system that is restricted in scope to a number of errors commonly made by introductory basic students. 176 177 NEXT without FOR Syntax error RETURN without GOSUB Out of data Illegal function call Undefined line number Subscript out of range Duplicate Definition Division by zero Type Mismatch can't continue Missing operand Device Timeout Device Fault FOR without NEXT Out of paper WHILE without WEND WEND without WHILE Advanced Feature FILE handling ERRORS The data contained in DEBUG has been extracted from the Microsoft Corp. BASIC IBM Personal Computer Hardware Reference Library, and based on the experience of the Shiawassee County Vocational Data Processing Instructor: Mary Garrett. 1 ! THRESHOLD = 60 CONFIDENCE OFF ! 1. The error belongs to Logic errors 1.1 error is program output in error 1.1.1 correct error by reformatting output 1.1.2 correct error by reassigning algorithms 1.1.3 correct error by adding more output lines 1.1.3.1 correct error by adding print lines to condition. 1.1.3.2 correct error by adding total print lines 1.1.4 correct error by adding a GO T0 line 1.2 error is program does not stop 1.2.1 correct error by changing the GO TO 1.2.2 correct error by checking for trip data input 1.2.3 correct error by adding end option to menu 1.3 error is program stops but has no output 1.3.1 correct error by adding print (output) lines 1.3.2 correct error by moving print (output) lines 2. The error belongs to language errors 2.1 NEXT .... FOR error DISPLAY fornext 2.1.1 correct error by matching FOR and NEXT variables 2.1.2 correct error by proper nesting of FOR ...NEXTs 2.1.3 correct error by matching FOR and NEXT statements 2.1.4 correct error by removing GO TO to a line inside the loop 2.1.5 correct error by clearing FOR..NEXT variable Undefined line number DISPLAY undefined line number RETURN without GOSUB DISPLAY RETURN without GOSUB MN UN 2.4 Out of data DISPLAY 2.4.1 correct error READ 2.4.2 correct error statements 2.4.3 correct error 2.4.4 correct error with READ 2.4.5 correct error 2.4.6 correct error READ variables 178 out of data by by by by by by 2.5 can't continue DISPLAY 2.6 Advanced Feature DISPLAY advanced feature 2.7 Subscript out of range DISPLAY subscript out of range checking for trip data after adding trip data to DATA matching check with trip data matching variable in check adding to the trip data matching the DATA with the can't continue 2.7.1 correct error by adding a dimension statement fixing a logic error 2.7.2 correct error by 2.7.3 correct error subscipt 2.7.4 correct error 2.7.5 correct error by by by increasing dimension statement moving the dimension statement fixing a typing error 2.8 Division by zero DISPLAY division by zero 2.9 Duplicate Definition DISPLAY duplicate definition 2.9.1 correct error by removing a definition 2.9.2 correct error by moving a definition 2.9.3 correct error by changing a goto 2.10 Missing operand DISPLAY missing operand 2.11 Type mismatch DISPLAY type mismatch 2.11.1 correct error by putting quotes around a string constant 2.11.2 correct error by putting a $ at the end of a variable name 2.11.3 correct error by changing print using image 2.11.4 correct error by changing variable type in a function 2.11.5 correct error by converting a type 2.11.5.1 convert a string to number DISPLAY string to number 2.11.5.2 convert a number to string DISPLAY number to string 2.12 WHILE .... WEND error DISPLAY whilewend 2.12.1 correct error by matching WHILE and WEND statements 2.12.2 correct error by removing GO TO to between WHILE and WEND 2.13 Illegal function call DISPLAY illegal function 2.13.1 correct error by defining PRINT USING image 2.13.2 correct error by changing values in a string function 2.13.2.1 assign a value to string variable in function I ! RULES FOR DETERMINING LOGICAL ! RULE IF THEN AND ELSE AND ! RULE IF AND THEN 1 2.13.3 2.13.4 2.13.5 2.13.6 2.13.7 2.14 Device 2.14.1 2.14.2 2.14.3 2.14.4 2.15 Syntax 2.15.1 2.15.2 2.15.3 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 For determining belongs to 179 2.13.2.2 shorten string length variable in string function correct error by changing argument in a function correct error by changing negative or large subscript correct error by not assigning a negative record number correct error by not raising a negative number to a power correct error by not trying to delete a nonexistent line error or out of paper DISPLAY device error correct error by turning on printer correct error by pressing select button on printer correct printer correct printer error DISPLAY correct error correct error correct error correct error correct error correct error by 2.15.6.1 correct 2.15.6.2 correct USING correct error by using : with message correct error by correctly assigning values correct error by adding a variable after an AND or OR correct error by function error by connecting or replacing cable error by putting paper in the syntax error changing READ and/or DATA adding a space fixing the spelling changing variable name matching parenthesis fixing punctuation error by using , with READ error by using : with PRINT 2.15.6.3 with INPUT adding missing term in a ERROR Logic errors The program runs The error belongs to Logic DISPLAY CHARACTERISTICS OF errors THE LOGIC ERROR The error belongs to language errors DISPLAY CHARACTERISTICS OF THE LANGUAGE ERROR for differentiating Logic error The error belongs to Logic errors the program IS has output error is program output in error RULE IF AND AND THEN RULE IF AND THEN AND RULE IF AND THEN AND RULE IF AND THEN AND RULE IF AND THEN AND ELSE AND RULE IF AND THEN RULE IF AND AND THEN AND RULE IF AND AND THEN AND 180 for differentiating program output in error error is program output in error the program output IS has the correct values the output does not match the planned output correct error by reformatting output for differentiating program output in error error is program output in error the program output IS does not have the correct values correct error by reassigning algorithms DISPLAY algorithms for differentiating program output in error error is program output in error the program output IS some expected output is missing correct error by adding more output lines DISPLAY add print lines to condition for differentiating program output in error error is program output in error the program output IS there is only one line of detail output correct error by adding a GO T0 line DISPLAY add a GO T0 line for differentiating correct error by adding output correct error by adding more output lines the program total lines are not missing correct error by adding print lines to condition DISPLAY add print lines to condition correct error by adding total print lines DISPLAY adding total print lines For differentiating Logic error The error belongs to Logic errors the program IS does not stop error is program does not stop For differentiating program does not stop error is program does not stop the program has a main menu. the menu does not have an end option correct error by adding end option to menu DISPLAY end option to menu For differentiating program does not stop error is program does not stop the program uses INPUT to get new data after the INPUT does not check for trip data correct error by checking for trip data input DISPLAY check for trip data RULE IF AND AND THEN AND 1 RULE IF AND THEN ! RULE IF AND THEN AND ELSE AND I 181 For differentiating program does not stop error is program does not stop the program checks for trip data there is no menu or a menu with an end option correct error by changing the GO TO DISPLAY GO TO For differentiating Logic error The error belongs to Logic errors the program IS no output error is program stops but has no output For differentiating program stops but has no output error is program stops but has no output the program does not have print (output) lines correct error by adding print (output) lines DISPLAY add print lines correct error by moving print (output) lines DISPLAY move print lines 1 RULES FOR DIFFERENTIATING LANGUAGE ERROR ! RULE IF AND THEN AND ! RULE IF AND AND THEN AND ! RULE IF AND AND THEN AND I RULE IF AND AND THEN AND 1 For differentiating NEXT .... FOR error NEXT .... FOR error the lines connecting FOR ... NEXT ARE cross correct error by proper nesting of FOR ...NEXTs DISPLAY prOper nesting of FOR ... NEXTs For differentiating NEXT .... FOR error NEXT .... FOR error the lines connecting FOR ... NEXT ARE do not cross the FOR variable IS does not match connected NEXT variable correct error by matching FOR and NEXT variables DISPLAY match FOR ... NEXT variables For differentiating NEXT .... FOR error NEXT .... FOR error the lines connecting FOR ... NEXT ARE do not cross the FOR variable IS is not connected to a NEXT statement correct error by matching FOR and NEXT statements DISPLAY match FOR and NEXT statements For differentiating NEXT..... FOR error NEXT .... FOR error the lines connecting FOR ... NEXT ARE do not cross the FOR variable IS extra NEXT is connected to the FOR statement correct error by matching FOR and NEXT statements DISPLAY match FOR and NEXT statements RULE IF AND AND AND THEN RULE IF AND AND AND THEN AND RULE IF AND THEN AND RULE IF AND THEN AND RULE IF AND THEN AND RULE IF AND AND RULE IF AND THEN AND 182 For differentiating NEXT .... FOR error NEXT .... FOR error the lines connecting FOR ... NEXT ARE do not cross the FOR variable 18 matches the connected NEXT variable the program has IS a GO TO to a line inside the loop correct error by removing GO TO to a line inside the loop DISPLAY removing branch to inside loop For differentiating NEXT .... FOR error NEXT .... FOR error the lines connecting FOR ... NEXT ARE do not cross the FOR variable IS matches the connected NEXT variable the program has IS no Go TO to a line inside the loop correct error by clearing FOR..NEXT variable DISPLAY clearing FOR..NEXT variable For differentiating Out of data Out of data . the error IS is no check for trip data after the READ correct error by checking for trip data after READ DISPLAY correct Out of Data For differentiating Out of data Out of data the error IS is no trip data in the DATA statements correct error by adding trip data to DATA statements DISPLAY correct Out of Data For differentiating Out of data Out of data the error IS is check for trip data not same as in DATA correct error by matching check with trip data DISPLAY correct Out of Data For differentiating Out of data Out of data the error IS is variable READ is not variable in Check correct error by matching variable in check with READ DISPLAY correct Out of Data For differentiating Out of data Out of data the error IS not enough data after the trip data correct error by adding to the trip data DISPLAY correct Out of Data RULE IF AND THEN AND RULE IF THEN AND RULE IF THEN RULE IF THEN AND RULE AND THEN AND RULE IF AND AND THEN AND RULE AND AND THEN AND AND AND 183 For differentiating Out of Data Out of data the error IS what is being READ doesn't match the DATA correct error by matching the DATA with the READ variables DISPLAY matching the DATA with the READ variables DISPLAY correct Out of Data For advanced feature the error message is advanced feature advanced feature DISPLAY advanced feature For can't continue the error message is can't continue can't continue DISPLAY can't continue FOR undefined line number the error is undefined line number undefined line number DISPLAY undefined line number For differentiating Subscript out of range Subscript out of range there is a dimension statement IS False correct error by adding a dimension statement DISPLAY adding a dimension statement For differentiating Subscript out of range Subscript out of range there is a dimension statement IS True the value of subscript in error < 1 correct error by fixing a logic error DISPLAY subscript out of range by logic error For differentiating Subscript out of range Subscript out of range there is a dimension statement IS True the value of subscript in error > value in the dimension statement correct error by increasing dimension statement subscript or correct error by fixing a logic error DISPLAY picking the value for a dimension statement DISPLAY subscript out of range by logic error RULE IF AND AND AND AND THEN AND AND ! RULE IF AND AND AND THEN ! RULE IF AND AND THEN AND ! RULE IF AND THEN AND AND ! RULE IF AND AND AND 184 For differentiating Subscript out of range Subscript out of range there is a dimension statement IS True the value of subscript in error <= value in the dimension statement DISPLAY typing errors on subscripts the dimensioned variable IS matches the variable in error the dimension is being cleared by a CLEAR or other statement ‘ correct error by moving the dimension statement DISPLAY moving the dimension statement For differentiating Subscript out of range Subscript out of range there is a dimension statement IS True the value of subscript in error <= value in the dimension statement the dimensioned variable IS does not match the variable in error correct error by fixing a typing error For differentiating duplicate definition Duplicate Definition DISPLAY how to find array being defined twice duplicate definition IS caused by an array being defined twice correct error by removing a definition DISPLAY other than removing a definition For differentiating duplicate definition Duplicate Definition duplicate definition IS caused by an OPTION BASE command correct error by moving a definition or correct error by moving the OPTION BASE command DISPLAY moving the OPTION BASE command For differentiating duplicate definition Duplicate Definition duplicate definition IS caused by something else DISPLAY the two other causes of duplicate definition the array was IS set to the default size of 10 before the definition THEN correct error by moving a definition RULE IF AND AND THEN AND RULE IF AND WEND THEN AND RULE IF AND AND THEN RULE IF AND AND THEN AND RULE IF AND THEN RULE IF AND AND THEN AND 185 For differentiating duplicate definition Duplicate Definition duplicate definition IS caused by something else the array was IS not set to the default size of 10 before the definition correct error by changing a goto or some other method For differentiating WHILE .... WEND error WHILE .... WEND error the lines drawn ARE each WHILE does not connect to a correct error by matching WHILE and WEND statements DISPLAY match WHILE and WEND statements For differentiating WHILE .... WEND error WHILE .... WEND error the lines drawn ARE each WHILE connects to a WEND the program has IS a GO TO to a line inside the loop correct error by removing Go To to between WHILE and WEND DISPLAY removing branch to between WHILE and WEND For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS a PRINT USING image the PRINT USING image is not defined correct error by defining PRINT USING image DISPLAY PRINT USING image For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS a string function correct error by changing values in a string function For differentiating Illegal function call DISPLAY illegal function Illegal function call correct error by changing values in a string function the value assigned to the function's string variable is null assign a value to string variable in function DISPLAY value string RULE IF AND AND THEN AND RULE IF AND THEN AND RULE IF AND THEN AND RULE IF AND THEN AND RULE IF AND THEN RULE IF AND THEN AND U 186 For differentiating Illegal function call DISPLAY illegal function Illegal function call correct error by changing values in a string function the value of the length variable in the function is wrong shorten string length variable in string function DISPLAY length string For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS a function other than a string correct error by changing argument in a function DISPLAY argument For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS contains an arrayed variable correct error by changing negative or large subscript DISPLAY negative subscript For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS a GET or PUT statement correct error by not assigning a negative record number DISPLAY GET/PUT For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS a variable raised to a power correct error by not raising a negative number to a power DISPLAY negative power For differentiating Illegal function call DISPLAY illegal function Illegal function call the error line contains IS command to delete a line or lines correct error by not trying to delete a nonexistent line DISPLAY delete line RULE IF AND THEN RULE IF AND THEN RULE AND THEN RULE IF AND THEN AND RULE AND THEN AND RULE IF AND AND THEN RULE IF AND THEN RULE IF AND AND THEN RULE IF AND THEN AND 187 For differentiating Device error Device error or out of paper the printer IS not turned on correct error by turning on printer For differentiating Device error Device error or out of paper the printer IS on, but the select button is not on correct error by pressing select button on printer For differentiating Device error Device error or out of paper the printer IS on and the select button is on correct error by connecting or replacing printer cable For differentiating out of paper Device error or out of paper the printer IS the paper light is on correct error by putting paper in the printer DISPLAY out of paper For differentiating syntax error Syntax error the syntax error is on a DATA statement correct error by changing READ and/or DATA DISPLAY correct DATA syntax error For differentiating syntax error Syntax error DISPLAY a space may be needed. there is no space between two variables/commands correct error by adding a space For differentiating syntax error Syntax error you mistyped the name of a command correct error by fixing the spelling For differentiating syntax error Syntax error DISPLAY keywords can cause syntax errors there is a reserved word in the variable name correct error by changing variable name For differentiating syntax error Syntax~error there is not an equal number of "(" and ")" correct error by matching parenthesis DISPLAY matching parenthesis RULE AND THEN RULE THEN RULE 188 For differentiating syntax error Syntax error error line has READ or PRINT USING or INPUT with message correct error by fixing punctuation For differentiating punctuation errors correct error by fixing punctuation the error line IS has a READ statement correct error by using , with READ DISPLAY using a , with READ For differentiating punctuation errors correct error by fixing punctuation the error line IS has a PRINT USING statement correct error by using ; with PRINT USING DISPLAY using a ; with PRINT USING For differentiating punctuation errors correct error by fixing punctuation the error line IS has an INPUT with message statement correct error by using ; with INPUT with message DISPLAY using a ; with INPUT with message For differentiating syntax error Syntax error there is an expression to the left of an equal sign correct error by correctly assigning values DISPLAY how to correctly assign values For differentiating syntax error Syntax error there is constant to the left of an equal sign correct error by correctly assigning values DISPLAY how to correctly assign values For differentiating syntax error Syntax error the error was on an IF statement DISPLAY how to check AND and OR an AND or OR is missing a value correct error by adding a variable after an AND or OR For differentiating syntax error Syntax error correct error by adding missing term in a function or correct error by other DISPLAY correct syntax error by other 189 RULE For differentiating type mismatch IF Type mismatch AND type of values you are working with IS strings AND you are assigning a constant AND the constant does not have quotes around it THEN correct error by putting quotes around a string constant 1. RU For differentiating type mismatch IF Type mismatch AND type of values you are working with IS strings AND the variable being assigned the string does not end with a $ THEN correct error by putting a $ at the end of a variable name AND DISPLAY put 5 on all ! RULE For differentiating type mismatch IF. Type mismatch AND error was with a PRINT USING THEN correct error by changing PRINT USING image AND DISPLAY correcting PRINT USING image ! RULE 'For differentiating type mismatch IF Type mismatch AND error from function (SWAP, LEFT$, ...) except IF and LET AND type of values you are working with IS numbers THEN correct error by changing variable type in a function AND DISPLAY changing variable type in a function AND DISPLAY number to string ! RULE For differentiating type mismatch IF Type mismatch AND error from function (SWAP, LEFT$, ...) except IF and LET AND type of values you are working with IS strings THEN correct error by changing variable type in a function AND DISPLAY changing variable type in a function AND DISPLAY string to number ! RULE For differentiating type mismatch IF Type mismatch AND error from function (SWAP, LEFT$, ...) except IF and LET - AND type of values you are working with IS mixed THEN correct error by changing variable type in a function AND DISPLAY changing variable type in a function AND DISPLAY string to number AND DISPLAY number to string ! 190 RULE For differentiating type mismatch IF Type mismatch . AND type of values you are working with IS mixed THEN correct error by converting type ! RULE For differentiating converting type IF correct error by converting type AND You are using IS string with numbers THEN convert a string to number AND DISPLAY string to number L RULE For differentiating converting type IF correct error by converting type AND You are using IS number with strings THEN convert a number to string AND DISPLAY number to string ! DISPLAY syntax error A syntax error is what the computer uses to say that it has no better way of describing the error. One of the most common causes of a syntax error is a typing error. Make sure that all commands on the line with the error are correctly spelled. ! DISPLAY matching parenthesis If the number of left parenthesis isn't the same as the number of right ones, then you must find where the extra or missing one is. When nesting commands and subscripted variables it is easy to forget to add a ). Start from the inside and work your way out, writing down the steps on paper if needed. This way you can find where you are missing or have an extra parenthesis. Here is an example: (Y*((3+4)/S(X))/5 (3+4) start from the inside (3+4)/S(X) and work your way out ((3+4)/S(X)) Y*((3+4)/S(X)) (Y*((3+4)/S(X))/5 <-- Missing a right ). We can (Y*((3+4)/S(X)))/5 then add the missing ). ! DISPLAY using a , with READ There are two ways to get syntax error with a READ. One is to just have a READ without specifying what to READ the data into. The other is to use the wrong type of punctuation with the READ command. Here is an example: 10 READ A$;B$;C$ should be 10 READ A$,B$,C$ ! DISPLAY using a 3 with PRINT USING The first value after a PRINT USING statement is the 191 format in the form of a string. The format must be separated from the other values to be printed using a ;. If you use a comma, it will result in a syntax error. Here is an example of the correct way to use PRINT USING: 100 PRINT USING” ####.## \ \":N,A$ or 10 Is = " ####.## \ \" 100 PRINT USING I$;N,A$ I DISPLAY using a : with INPUT with message Whenever you use the INPUT with Message form of INPUT, you must place a : between the message and the first variable that will be input. If you omit the ; or use a comma, the result will be a syntax error. Here is an example of the correct way to use INPUT with a message: 100 INPUT ”what is your age"; A 200 INPUT "Enter starting date , ending date";SD,ED ! DISPLAY how to correctly assign values A common error to beginning students is to place things on the wrong side of the equal sign. Whatever is on the left side of the = is replaced with what is on the right side after being evaluated. You can not normally have a command on the left side of the = with the exception of LET and MIDS. Example: 10 Y + Z = X This will not work. If you switch the left and right sides you will get: 10 X 8 Y + Z and this will cause the computer to replace the old value of X with the sum of Y and 2 when line 10 is executed. You also can not assign a value to a constant. ! DISPLAY how to check AND and OR If you are using AND or OR, then you might be using it incorrectly. Here is an example of how it can be used incorrectly to cause a syntax error: 10 IF AC THEN 100 There must be an expression on both sides of an AND and OR. The line above could be corrected by changing it to: 10 IF AC THEN 100 192 ! DISPLAY correct syntax error by other If none of the other possibilities are true, then you need to look up the command that the error occurred on, and check the syntax of the command. It is also possible that you put two commands on one line without properly separating them with a :. One common mistake is leaving out a term from a command. Here is an example: 100 IF LEFT$(AS) = "Y” THEN 10 This should be corrected as follows: 100 IF LEFT$(A$,1) = "Y" THEN 10 1 DISPLAY correct DATA syntax error A syntax error on a data statement is caused by trying to read a number, when the information on the DATA line contains a non—number. You should first find out the location of the READ statement that is giving the problem. Use TRON/TROFF to help you find it. A common cause of this error, is getting the DATA out of sync with the READ. Check the data statements, and if a string you wish to read contains either a "," or a ":" then enclose that part of the data in quotes. Example: 10 Read T$ 100 DATA "Subject: Computers" ! DISPLAY a space may be needed BASIC requires a space between most variables, keywords and numbers. If you run things together, the computer will not be able to pull them apart and break it down. A space is not needed after a number, and after a special symbol such as <>()=+-*/‘:. Check the line with the error and see if you need a space. Here are a few examples: Incorrect: Minimum spacing: 10 FORA=1TO3 10 FOR A=1TO 3 20 PRINTA;A*A 20 PRINT A;A*A 30 NEXTA 30 NEXT A ! DISPLAY keywords can cause syntax errors Sometimes if you have a reserved word inside of a variable name, it will cause a syntax error. In some instances it is allowable to have a reserved word in a variable name. A reserved word in a variable will give the most trouble if it starts the variable name. Here is the list of all the reserved words in BASIC. variables on the line with the error contains one. 1 ! 193 Check and see if any of the ABS AND ASC ATN AUTO BEEP BLOAD BSAVE CALL CDBL CHAIN CHR$ CINT CIRCLE CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATES DEF DEFDBL DEFINT DEFSNG DEFSTR DELETE DIM DRAW EDIT ELSE END EOF EQV ERASE ERL ERR ERROR EXP FIELD FILES FIX FN FOR FRE GET GOSUB GOTO HEXS IF IMP INKEYS INP INPUT INPUT# INPUTS INSTR INT KEY KILL LEFT$ LEN LET LINE LIST LLIST LOAD LOC LOCATE LOF LOG LPOS LPRINT LSET MERGE MID$ MKD$ MKI$ MKS$ MOD MOTOR NAME NEW NEXT NOT OCT$ OFF ON OPEN OPTION OR OUT PAINT PEEK PEN PLAY POINT POKE POS PRESET PRINT PRINT# PSET PUT RANDOMIZE READ REM RENUM RESET RESTORE RESUME RETURN RIGHTS RND RSET RUN SAVE SCREEN SGN SIN SOUND SPACES SPC( SQR STEP STICK STOP STR$ STRIG STRINGS SWAP SYSTEM TAB( TAN THEN TIME$ TO TROFF TRON USING USR VAL VARPTR VARPTRS WAIT WEND WHILE WIDTH WRITE WRITE# XOR - DISPLAY type mismatch A type mismatch error is caused by trying to use one type variable when the computer is expecting a different type. The two most common errors, are mixing a string with a numeric value, and mixing a numeric value with a string. Another possible cause is trying to SWAP two variables of different type. If you wish to transfer from one type to another, then use the conversion functions VAL and STR$. Here are some examples that will cause this error. Incorrect Correct Assuming A = "JOE" As = "JOE" B$ a A B$ = STR$(A) You want to store the string equivalent of the value in A. A = 3 / C$ A = 3 / VAL(C$) C$ in known to contain a number, and you wish to divide 3 by that num- ber. 194 ! DISPLAY put $ on all You will need to put the s after all string variables. Make sure that you add the $ to all locations where you have string variables in your program. You can also use DEFSTR to make a variable into a string without the s, but if you do this, you must treat the variable as if the variable had a $ at the end of it. ! DISPLAY correcting PRINT USING image A type mismatch error will occur with a PRINT USING if the format doesn't match the type of variables being printed. Check your format, and compare the types that it defines with those of the variables. Also, some characters have special meaning, and if you wish to display them, you must use the _ (underscore) character. First character of a string \n spaces\ A string of n+2 characters & Variable length string field # A digit in a number + beginning or end of ### format - beginning or end of ### format ** fill leading spaces with asterisks $$ floating $ **$ floating $ with leading asterisks AAAA specify exponential format _ (underscore) print next character exactly If you wish to print something like: You have $100.00 dollars! Then your format would be: ”You have $$#####.## dollars_!" ! DISPLAY changing variable type in a function Check the reference manual for the type of values that function expects. Then use the conversion routines VAL and STR$ to convert an incorrect type to the correct type, or use a command that matches the type of variable you want. ! DISPLAY string to number If you have a number in the form of a string, and wish to convert it to a number, then use the function VAL. Here is an example: 10 INPUT"Enter a number":N$ 20 NUMBER = VAL(Ns) 30 PRINT”Number ="; NUMBER ! DISPLAY number to string If you have a number, and wish to convert it to a string, then use the function STR$. Here is an example: 195 10 INPUT"Enter a number": NUMBER 20 NS = STR$(NUMBER) 30 PRINT"Number ="N$ ! DISPLAY CHARACTERISTICS OF THE LOGIC ERROR CHARACTERISTICS OF A LOGIC ERROR The program runs, but the results are not what the programmer planned or the user expected. DISPLAY CHARACTERISTICS OF THE LANGUAGE ERROR CHARACTERISTICS OF THE LANGUAGE ERROR The program does not run, and the computer prints out some sort of error message. I DISPLAY end option to menu A menu should always include an option to end the program. This is usually the last item on the menu. Choosing this option should cause the program to branch to an end routine or a line number containing the word end. I DISPLAY check for trip data In a program that gets its data from input statements, there must be a statement after the input statement to determine if it is time for the program to stop. This is done by comparing the input variable to some predetermined value, called trip data, that signals that the user is through entering data. A typical example is: 100 INPUT"How old are you (enter 0 to end)";X 110 If X = 0 then END If your program uses arrays, make sure your trip check uses the same element of the array as the input. A typical example is: 100 PRINT"Enter 0 to end" 110 PRINT"what is the cost of item"X;:INPUT C(X) 120 If C(X) = 0 then 200 :'processing begins at line 200 196 ! DISPLAY GO TO Go TO statements that go to a line number smaller than the line number of the Go TO statement may set up an endless loop. GO TO statements that go to a line number smaller than the line number of the GO To statement should go to a line number that: 1). Is an INPUT statement 2). Is a read statement 3). Is an EOF(#) statement 4). Is a Menu statement 5). GET # statement If one of these is not the destination of the GO TO statement, determine which of the above is the proper destination for your GO TO statement and change the line number to match that line number. If you can not find the GO T0 line that is causing the problem, type TRON (TRace ON) and then run your program. Each time the computer runs a line of your program, the line number will appear on the screen. Watch for repeating patterns of line numbers. These will show you where your program is looping. The GO TO that is causing the problem will be one of those numbers (usually the largest). Press CTRL BREAK to stop the program and change the GO TO so it goes to one of the five possible destinations given on the previous page. You will probably want to type TROFF (TRace OFF) to turn off the appearance of the line numbers. If the program still does not stop, repeat the use of TRON to find the new loop and correct it. ! DISPLAY add print lines to condition If some of the detail output (prints each time you get a new set of input data) does not print even though some does, the most likely cause is that you have IF...THEN statements for handling some of the input data in different ways and that one or more of those routines do not have the print (output) statements as part of the routine. If you can not find the routine that is missing the print (output) statements, type TRON (TRace ON) and then run your program. Each time the computer runs a line of your program, the line number will appear on the screen. Watch for repeating patterns of line numbers that include the input data lines but do not produce output. These will show you where your program is looping without printing the output. Add the print line to the loop before it goes back to get more data. Type TROFF (TRace OFF) before running the program again. 197 If the line numbers go by too fast to read, you may find it useful to hold down the CTRL and SHIFT keys and press the PRTSC key to print all the output to the screen to the printer. This will make it easier for you to follow the TRON line number output. Press the three keys again to stop sending the output to the printer. If your program uses arrays and is missing some of the output, check to see if you are incrementing (adding a value to) the loop parameter (the variable following the FOR and the NEXT). ,This will cause the output to skip some lines as the variable is incremented by both the program code and the NEXT statement. ! DISPLAY adding total print lines After the trip data has been reached, the program should print the total lines before it ends. The easiest way to do this is to change the trip data check line so that instead of ending it will go to a line number which is higher than any of the other program lines and print the total line before ending. For example 100 If X = 0 then 900 900 Print"the total XXXXXXX iS”TOTAL 910 END ! DISPLAY add print lines Locate the line that contains Go To the line that inputs the data to be processed. Add a line before the GO T0 line that prints the detail output (out put each time data is input). If you can not find the GO T0 line, type TRON (TRace ON) and then run your program. Each time the computer runs a line of your program, the line number will appear on the screen. Watch for repeating patterns of line numbers that include the input data lines but do not produce output. These will show you where your program is looping without printing the output. Add the print line to the loop before it goes back to get more data. Type TROFF (TRace OFF) before running the program again. 1 DISPLAY move print lines Locate the line that prints your output. Locate the line that has the GO To the line that inputs the data to be 198 processed. Move the PRINT line to the line before the GO T0 line. Delete it from its old line number. If you can not find the GO T0 line, type TRON (TRace ON) and then run your program. Each time the computer runs a line of your program, the line number will appear on the screen. Watch for repeating patterns of line numbers that include the input data lines but do not produce output. These will show you where your program is looping without printing the output. Move the print line to the loop before it goes back to get more data. Type TROFF (TRace OFF) before running the program again. ! DISPLAY add a GO T0 line After a program prints the output line, it must go back to the get input data line to continue processing until all the input data is processed. Locate the line that prints the output and add a line following it that contains GO To and the line number of the input line. This makes a loop that allows the program to get the input and print the output until all the input is processed. ! DISPLAY Algorithms Algorithms are rules or formulae used to determine values. For example: 200 AREA = 3.1416 * RADIUS * 2 is the Algorithm for determining the area of a circle. If your format (layout) of the output is correct, but the numbers are wrong, the most likely cause is that one or more of the algorithms are wrong. When looking for incorrect algorithms, be certain that you check for variable names that you have spelled wrong. For example: 199 RADUS = DIAMETER/2 200 AREA = 3.1416 * RADIUS * 2 will give an AREA of zero since the RADUS and RADIUS are different variables. 1 DISPLAY fornext Before you attempt to determine the cause of the error, list your program on paper. Draw a line from each FOR statement to its Next statement. Use this listing to answer the questions that follow. 199 ——--100 FOR X = 1 TO 20 -——-100 FOR X = 1 TO 20 [:150 FOR Y = 3 TO 15 -150 FOR Y = 3 TO 15 200 NEXT Y 200 NEXT X '——-235 NEXT X b—235 NEXT Y ! DISPLAY proper nesting of FOR ... NEXTs When a FOR ... Next loop occurs within another FOR ... NEXT loop, you must be careful that the loops are nicely nested. For example: NICELY NESTED IMPROPER NESTING '———100 FOR X = 1 TO 20 '———100 FOR X = 1 TO 20 [:150 FOR Y = 3 TO 15 r—150 FOR Y = 3 TO 15 200 NEXT Y 200 NEXT X -——235 NEXT X “—235 NEXT Y If the lines cross, as in the example of IMPROPER NESTING, change the code so that they are NICELY NESTED. ! DISPLAY match FOR ... NEXT variables Every FOR variable name = start value TO end value must have EXACTLY one NEXT variable name. There are two common violations of this rule: CHANGED VARIABLE NAME TWO NEXT STATEMENTS 100 FOR X = 1 TO 20 100 FOR X = 1 TO 20 150 IF Z=W THEN NEXT X 235 NEXT Z 235 NEXT X If you have changed variable names, change code so the FOR and NEXT both have the same variable name. Although some versions of BASIC allow you to have TWO NEXT statements, IBM version 2.0 -3.2 do not. Change your program so the IF statement is THEN GO To 235 instead of NEXT X. I DISPLAY match FOR and NEXT statements Every FOR variable name = start value To end value must have EXACTLY one NEXT variable name. There are two common violations of this rule: 200 CHANGED VARIABLE NAME TWO NEXT STATEMENTS '———100 FOR X = 1 TO 20 -———100 FOR X = 1 TO 20 . 150 IF Z=W THEN NEXT X '——-235 NEXT Z '———235 NEXT X Although some versions of BASIC allow you to have TWO NEXT statements, IBM version 2.0 -3.2 do not. Change your program so the IF statement is THEN Go To 235 instead of NEXT X. If you have changed variable names, change code so the FOR and NEXT both have the same variable name. ! DISPLAY removing branch to inside loop You must not have a Go T0 line outside of the FOR .. NEXT loop in your program that GOes TO a line inside a FOR ... NEXT loop. The Go To must go to the FOR statement in a loop or not Go To a loop at all. PROPER GO TO A FOR NEXT IMPROPER GO TO A FOR NEXT 100 FOR x = 1 T0 20 100 FOR x = 1 T0 20 . 120 235 NEXT X I35 NEXT x *---400 GO TO 100 400 GO TO 100 If you are not certain if there is a GO To a line number inside the loop, type TRON (TRace ON) and run your program. The line numbers print on the screen as the program runs and you can see if there is a line number outside the loop before the error occurs. Change the GO TO and type TROFF. ! DISPLAY clearing FOR..NEXT variable- Sometimes if you have a very long program, even when you have not changed variable names, have not used improper nesting, or do not have two NEXT statements, you may still get either a FOR without NEXT or Next without FOR error. This can occur when you exit from one FOR ... NEXT loop without clearing the variable and move into a new loop. Eventually, the computer runs out of storage places to indicate where to return. To correct this, Change as shown ORIGINAL CODE CHANGED CODE 100 FOR X = 1 TO 20 100 FOR X = 1 TO 20 150 IF Z = W THEN 310 150 IF Z=W THEN X=21: GO TO 235 -—-235 NEXT X 235 NEXT X 250 IF X > 21 THEN 310 310 0...... 310 ...... 201 ! DISPLAY RETURN without GOSUB The program has reached a RETURN statement without first executing (reaching) a GOSUB. The usual cause of this error is not having an END to your program. Add an END statement before the first line of the subroutine. If the error is not corrected by adding an END statement, type TRON (TRace ON) to display the lines of codes as they are run. When the error appears on the screen, the line numbers of the code run before the error will also appear. ADD either a GO TO to branch back to the input of data statement or an END among the lines of code run before the lines of code that make up the subroutine. Type TROFF (TRace OFF) to restore the program to normal run mode. ! DISPLAY out of data This problem is normally caused by one of six possible error conditions: 1). forgetting to put a check for the Trip Data after the READ statement 2). forgetting to add the trip data after all the normal data to be processed in the DATA statements 3). not having the Trip Data in the data statement match the check following the read 4). Not having the variable in the check after the READ match the variable in the READ statement 5). Reading into more than one variable at a time, and having nothing after the trip data to fill the other variables being read in 6). Having an error in the DATA causing it to no longer match the READ variables Check each of these six and correct any that cause a problem. ! DISPLAY correct Out of Data When using the READ....DATA statements, your program should resemble this code. Correct your code to follow this example: 100 READ X$,Y,Z$ 110 IF X$ = ”END" THEN END 1000 DATA Joe,34,Doctor,BILL,45,Lawyer,SUE,12,student 1010 DATA Frank,39,teacher,Paul,54,teacher aid 1020 DATA END,-99,END 202 Note that the out of data error would occur if 1020 were 1020 DATA end,-99,END since END does not equal end ! DISPLAY matching the DATA with the READ variables You need to first find out how far the DATA matches correctly with the READ. Add some PRINT statements after the READ, then run the program and see at what point incorrect values for DATA start coming up. You can then check the data around the area where the program started reading the incorrect data. Here are some things to look for when checking your DATA: * Two commas next to each other * A comma starting or ending a line * A ":" or a ",” as part of a data element you want to read (If you wish to read a : or , then enclose that data element in "quotes." v DISPLAY advanced feature You have chosen an advanced feature such as PAINT or LINE or CIRCLE or COLOR or some other KEY word or expression that can only be used with advanced BASIC. SAVE your program. Type SYSTEM and press enter. You will now be back at the DOS level. Type BASICA (BASIC with Advanced features) and press enter. LOAD your program and run it again. You will not get an Advanced feature error if you are using BASICA. ! DISPLAY can't continue You have typed CONT and the program can not start up again from wherever it had stopped. On IBM basic, you can not press the break key when you are LISTing your program and start it up again by typing CONT. If you want to stop a LIST, hold down the CTRL key and press NUM LOCK. Start up again by pressing ENTER. If you have pressed CTRL Break to look at your program, you must not type a line number or EDIT. If you do, you will not be able to start your program up again by typing CONT. If you try, you will get a can't continue error. To correct a can't continue error, just RUN your program again from the start (type RUN and press enter). ! DISPLAY undefined line number You have a branching statement (Go T0 or GOSUB) that tells the program to branch (Go TO) a line number, but the line number to which it is supposed to go does not exist!!. 203 List your program and find the correct line number. If you are certain you typed in the line to which the program should branch, but it is not there, you should not only type in the line, but you should also check to see if you accidently typed in the wrong line number when you entered the line. Common typing errors for line numbers include typing a 0 for a 9 (or a 9 for a 0): dropping a repeated digit (4000 instead of 40000): and reversing digits (typing a 1223 instead of 1232). If you have typed the line number incorrectly, be certain to remove the incorrect line and retype any lines it may have replaced before you try to run your program again. ! DISPLAY subscript out of range A subscript out of range error can be caused many different things. One cause would be misspelling a function such a LOG(), thus causing the computer to think that you are using a subscripted variable when you wished to use the function. Select the option for a typing error if this is what happened. Some functions, such as TAB require that there is no space between the function name and the "(". A common error is to include a space after the word TAB. If this is what happened, then select the option for a typing error. Without using a dimension (DIM) statement, you imply to computer a DIM variable(10). This will allow you to use any integral value from 0-10 as the subscript, unless if you have "OPTION BASE 1” in your program, which will set the lowest allowable subscript at 1. ! DISPLAY typing errors on subscripts Double check that the variables in the dimension statement are spelled the same, and have the same number of sub- scripts within the (...). If an array was defined as: 10 DIM A(20,20) You would not be able to access A(X), but you could access A(X,Y). If one of the variables is spelled differently, or has a different number of subscripts, then does not match. ! DISPLAY adding a dimension statement If you are using an array, you should include a dimension (DIM) command. The dimension is optional if it is a single subscripted array and will not exceed 10, but it is good programming practice to include one even if the array will not exceed 10. 204 When determining the size to use, for an array which you do not know the maximum subscript needed, it can be set up to be easy to change as follows: 10 LN=20:OPTION BASE l 20 DIM FIRST$(LN),LAST$(LN) 100 N=O:PRINT"Type x,x when finished." 110 N=N+1 : INPUT"Lastname, First":LAST$(N),FIRST$(N) 120 IF LAST$(N)=”X” AND FIRST$(N)-"X” THEN N=N-l:GOTO 200 130 IF N=LN THEN PRINT"Sorry, no more room.":GOTO 200 140 GOTO 110 200 ... The size of the array is determined in the first line. If you decide to change the size of the array, you need only change the value of LN in line 10. OPTION BASE 1 is optional, and it's only advantage is that it saves memory by not allowing you access to element 0 in an array. If you have double or triple subscripted arrays, this can save a large amount of memory. ! DISPLAY picking the value for a dimension statement You need to either increase the value in the dimension statement for the variable that caused the error, or change your program to keep from going outside the range of the dimension statement. Take the following program as an example: 20 DIM FIRST$(20),LAST$(20) 100 N=0:PRINT"Type X,X when finished.” 110 N=N+l : INPUT"Lastname, First":LAST$(N),FIRST$(N) 120 IF LAST$(N)="X” AND FIRST$(N)="X” THEN N=N-1:GOTO 200 140 GOTO 110 200 ... With the above program, if the person tries to enter in 21 names, the computer will respond with a subscript out of range error. However, by adding two lines and changing a third, we will eliminate this problem, as follows: 10 LN=20=OPTION BASE l 20 DIM FIRST$(LN),LAST$(LN) 100 N=0:PRINT"Type X,X when finished.” 110 N=N+1 : INPUT"Lastname, First":LAST$(N),FIRST$(N) 120 IF LAST$(N)="X" AND FIRST$(N)=”X” THEN N=N-l:GOTO 200 130 IF N=LN THEN PRINT"Sorry, no more room.”:GOTO 200 140 GOTO 110 200 ... 205 OPTION BASE 1 is optional, and simply helps to save memory by telling the computer we will not be accessing FIRST$(0), or LAST$(0). The change in line 20 is made so that if the array size ever needs to be changed, it can be changed easily, simply by changing the value of LN in line 10. Line 130 will stop the person from entering too many names, thus keeping N from going outside the bounds of the array. It is also possible that the error may have been caused by some type of logic error. If so, make use of TRON/TROFF and PRINT statements to find out what is causing it to go outside the limit. ! DISPLAY subscript out of range by logic error If your program is trying to access an array element that it should not access to figure out why, here are a few simple steps that you can take to help find the cause of the error. 1. Place a PRINT before each access of the subscript, and print the subscript value, and the contents of the array element if it will help. 2. Place a PRINT after each calculation that is used in calculating the subscript value. This can be useful if you are using some sort of hashing technique, and have an error in your hashing formula. 3. If your program goes through many lines while calculating the value for the subscript, then use TRON and TROFF to turn on and off listing the lines it is accessing. ! DISPLAY moving the dimension statement If your array is shrinking in size, then you probably need to move it. Some commands must be given in a certain order. A CLEAR command will clear out all variables, including any definitions for an array. There are other commands that may cause this to happen such as improper use of the COMMON and CHAIN commands or RUN your program from a line other than the start. Also, make sure that you are not using ERASE to delete the array. If you have a CLEAR statement in your program, make it the first thing to be executed. ! DISPLAY division by zero A division by zero error will not stop execution of a pro- gram in IBM basic. It is there as a warning which the computer displays if you attempt to divide by zero, or raise 0 to a negative exponent. A division by be zero will cause that portion of the expression to be evaluated as machine infinity (+/-). 206 You might want to make sure that there isn't a CLEAR, or other command wiping out the contents of a variable causing you to try and divide by zero. You can also put in a check as in the following program: 10 PRINT"When finished enter -99" 20 INPUT"Number”;NUMBER 30 IF NUMBER = -99 THEN 100 40 TOTAL = TOTAL + NUMBER 50 COUNT = COUNT + 1 60 GOTO 20 100 IF COUNT = 0 THEN PRINT"You did not enter any numbers to average." : GOTO 120 110 PRINT"The average of the numbers is: ”: TOTAL / COUNT 120 END 1 DISPLAY duplicate definition You have tried to redefine the size of an array. There are a number of different possible causes, which include: * The same array is defined in two DIM statements (or the same DIM statement is executed twice.) * The program encounters a DIM statement for an array after the default dimension of 10 is established for that array. * The program sees an OPTION BASE statement after an array has been dimensioned, either by a DIM statement or by default. ! DISPLAY how to find array being defined twice The first thing that I recommend you do is to examine your program and see if you are directly defining the array twice. One way to do this is to save your program in ascii (EXAMPLE: SAVE"PROGRAM”,A) and load it into a text editor. You can then use global search commands and look for the key word DIM. All DIM statements should be near the top of the program (after a CLEAR statement if you have one.) If you are defining the size of an array for many variables, you might have accidently typed in the same variable twice, even on the same line. ! DISPLAY other than removing a definition If you really want to define the array twice (Perhaps to increase the size of the array) you can use the ERASE command to clear out one or more arrays. Remember that, if you do this, the previous contents of the array will be lost (unless you save the array somewhere else.) ! DISPLAY moving the OPTION BASE command Move the OPTION BASE command to the beginning of your program. It must be in front of any DIM statements, or 207 commands that will use arrays. A clear statement will reset it back to the default of OPTION BASE 0. 1 DISPLAY the two other causes of duplicate definition There are two other common causes of a duplicate definition error. One is initializing the array to something before the DIM statement as in the following example: 10 A$(1)="RED”:AS(2)8”BLUE”:A$(3)="GREEN” 20 DIM A$(3) After the computer encounters A$(l)="RED" it notices that it is a new array, and will assign it a default dimension size of 10, and when it reaches line 20 the computer already has it set up for size 10. To solve this sort of problem, move the dimension statement to the beginning of the program. The other common error is shown in the example below: 10 DIM xs(50) 20 CLS 1000 INPUT"Do you wish to run this again?”:Q$ 1010 IF LEFT$(Q$,1)="Y" or LEFT$(Q$,1)="y” THEN 10 If the person decided to redo the program, the computer will encounter the same dimension statement twice. There are a couple of ways that this can be fixed. You only need change either line 10, or line 1010 in this case. You could change line 10 to: 10 CLEAR : DIM xs(50) or change line 1010 to: 1010 IF LEFT$(Q$,1)="Y" or LEFT$(Q$,1)="y" THEN RUN or change line 1010 so it jumps to a point after the DIM. 1010 IF LEFT$(Q$,1)="Y" or LEFT$(Q$,1)="y” THEN 20 ! DISPLAY missing operand You have an expression in your program that is missing an operand. Having a * (multiply) or the OR operator with nothing after it, are common causes for this error. Also some commands like LOCATE and POKE will give this error if you do not supply all of the operands. To fix this error, add the missing operand(s) or fix some sort of typing error that may have caused it. You may need to look up the command or operator in the reference 208 manual. They will have the format of the command and all required operands for that command. I DISPLAY whilewend To attempt to determine the cause of the error, list your program on paper. Draw a line from each WHILE statement to the nearest WEND, starting with the WHILE and WEND that are closest to each other. '———100 WHILE X <= 20 [:150 WHILE Y = 1 AND Z < 10 200 WEND '—-—235 WEND 1 DISPLAY match WHILE and WEND statements Every WHILE expression must have EXACTLY one WEND statement. There are three common causes of this error: MISSING WEND MISSING WHILE TWO WEND STATEMENTS 100 WHILE X = 1 100 100 WHILE X <= 10 . . [—150 IF Z=W THEN WEND 235 235 WEND L—235 WEND If you have left out either a WHILE or a WEND, rewrite the code so that each WHILE matches a WEND. If you have two WEND statements, change your program so the IF statement is THEN GO TO 235 instead of WEND. I DISPLAY removing branch to between WHILE and WEND You must not have a GO T0 line outside of the WHILE...WEND loop in your program that GOes TO a line inside a WHILE .. .. WEND loop. The GO TO must go to the WHILE statement in a loop or not GO TO a loop at all. PROPER GO TO A WHILE....WEND IMPROPER GO TO WHILE..WEND 100 WHILE X = l [-100 WHILE X = 1 : 120. 235 .WEND l"135 WEND '——-400 GO TO 100 ‘———400 GO TO 120 If you are not certain if there is a GO TO a line number inside the loop, type TRON (TRace ON) and run your program. 209 The line numbers print on the screen as the program runs and you can see if there is a line number outside the loop before the error occurs. Change the GO TO and type TROFF. ! DISPLAY illegal function List the line in which the illegal function Call occurred. If the line has a PRINT USING statement, print the image. For Example: 100 PRINT USING Is: X, Y, 2 type ? Is and press enter. If you get a blank line and OK, 15 is not defined! Either add a line defining I$ or move the existing line so that it is ALWAYS executed before the PRINT USING statement. If there is no PRINT USING image or if it is defined, print any other functions (see pages 4-17 thru 4-22 in the IBM BASIC manual) until you find the one that is causing the illegal function Call. If the argument [inside the ()1, is a variable, print that also. For example: 100 Y = SQR(X) ? SQR(X) ILLEGAL FUNCTION CALL ? X -27 ! DISPLAY PRINT USING image Print the image from the PRINT USING image. For Example: 110 PRINT USING IS; X, Y, Z type ? Is “and press enter. OK If you get a blank line and OK, Is is not defined! Either add a line defining IS 109 Is = "##.## ### ###.###" or move the existing line so that it is ALWAYS executed before the PRINT USING statement. Make 200 IS = "##.## ### ###.###” ! 5 IS = "##.## ### ###.###" DISPLAY value string Print the variable in the string function. For example: If 100 X$ = RIGHT$(C$,1) then run the program. When ILLEGAL FUNCTION occurs, print the variable ? C$ OK 210 Change the code so that C5 (or the variable from your program) has a value before line 100. If there is a chance that CS (or the variable from your program) might have no value (might be the null set), make the line 100 IF C$ = "" THEN X$ = "” ELSE X$ = RIGHT$(C$,1) I DISPLAY length string Print the variable in the string function. For example: If 100 X$ = MID$(C$,S,1) then run the program. When ILLEGAL FUNCTION occurs, print the variable ? S'Cs If S<=0 or CS is less than S characters long, you would not be able to find the middle starting with the Sth character! Either the value of CS (or your program's variable) is not being assigned correctly, or the starting position is not being assigned correctly. Change your code so that both of these values are properly assigned. If you are assigning them properly but some of the test data is in error, change the code to test for valid values: 100 IF S<=0 or LEN(C$)4 )2 )3 )2 )3 14 )2 )3 )3 )3 )2 APPENDIX F APPENDIX F PROCEDURES FOR DESIGNING AND DEVELOPING INTERACTIVE VIDEO 1). 2). 3). 4). INSTRUCTION Determine that there is sufficient time to take on a new project. a). b). c). Meet a). b). It there is, check that there are not other pro- jects to which you have future commitment or other projects more worthy to do. If there is not time available, check whether any of the current projects that are less worthy can be temporarily set aside to work on this project. If so, reschedule them, do not just forget them. Do not undertake a project, no matter how worthy, if there will not be sufficient time to do a thorough job with the project. with the potential client Determine his perceived needs, target audience, and project expectations. Explain the CAI groups role (if the project is to be undertaken) and explain, as much as possible, the CAI groups expectations of the client. Collect copies of any relevant resource materials the client may have available for the project (or a working outline of what the course materials will be). Review and organize the data from the client. a). b). c). d). Meet a). b). c). If the need for the project is not readily apparent, do an needs analysis, otherwise merely state the need for the project in instructional format. Reviewing notes from the meeting with the client and at least skimming the materials the client presented, determine the course, major section, and unit goals. Prepare an instructional needs report and an unit level instructional goals outline. Develop a unit level data flow diagram WITHOUT INSTRUCTIONAL EVENT INFORMATION. with the potential client Verify that the materials developed so far are correct. Provide a rough estimate of the amount of time involved with the project. Establish deadline for a go/no go project deci- Sion. 235 5). 6). 7). 8). 9). 236 Using the materials given by the client or meeting with the client or associate, determine the instructional events for each unit. Enter into a word processor with 10/70 margins. Save in ASCII (to end each line with a line feed) with extension .seq. (see Sawyer.seq as an example). a). Course Title b). Section heading c). Unit information (repeat for each unit) 1). Part name (repeat each change in subpart) 2). Subpart name (if applicable) A. lst Instructional event 1). (sequence number) First line 2). indent, rest of lines B. 2nd Instructional event 1). (sequence number) First line 2). indent, rest of the lines C. Etc. Check the instructional events against the source materials. Make sure all were entered. Determine the reference of the instructional event. Determine the type of each instructional event: 1. Attitude 2. Fact 3. Concept 4. Principle Reload the instructional event file with margins 10/80. Add the reference to the first line of each instruc- tional event so that it takes a maximum of 5 spaces and ends at 77. Add the number for the type of instruc- tional event so that it ends at 79. Save in ASCII with extension .iev. Change the names of the files Run Instrdic.bas to create the instructional dictionary. The output should be an ASCII file ending with the extension .dic. Using the instructional dictionary as a guide, (a) complete the Data Flow Diagrams at least to the Part level. Complete a subpart level data flow diagram if: (1) any part appears to have natural subdivisions or (2) any part has more than 15 events and the amount of information presented needs group- ing to aid in both comprehension and recall (b) Indicate instructional events introduced in one section and used in another on the data flow diagram 237 (c) Recheck the instructional dictionary and data flow diagram with the original source of instructional material (1) making any necessary changes (a) omissions of materials (b) sequencing errors (c) misread materials (2) prepare suggestions for the client for changes where materials (a) seem to be missing for good instruction- al flow (b) seem to be redundant (c) seem to be extraneous 10). Meet with the client to (a) verify the work completed: (1) data flow diagram is correct at all desired levels (2) the instructional dictionary is complete (3) the suggestions for client changes need to be made (b) ask client to (1) determine the level of importance and dif- ficulty for each instructional event (leveldir.wp) (2) fill out course and section worksheets (Course.out). (c) Provide followup support for activities in (b) where necessary. 11). When client has completed (b) from 10) (a) Enter the two digit level importance/difficulty number into the data dictionary and save it in ASCII. (b) After changing the names, Run INSTRWRK.BAS. The result will be: (1) filename0.wrk containing all the low level instructional events (2) filenames.wrk containing the medium level instructional events (3) filenamel.wrk containing the high level instructional events. (c) Using the importance/difficulty number as a guide, give the client an estimate of the amount of time the project will take for each of the interested parties. 12). While the client is filling out the instructional events worksheets the authoring should begin for the courseware (a) create Menus from the Data Flow Diagrams (b) (C) (d) 238 (1) Each process symbol should be a menu item (2) Use models from the authoring system Library. set up course introductions (If the video is not developed yet, merely access dummy points on any available disk and change frame numbers when the video is available) program the low level worksheets If possible, start filming video segments from the course and section outlines. 13). Encourage the client to "turn in" the worksheets after each (a) (b) (C) (d) (6) part is completed (or at most, each section). suggest improvements to the client if the materi- als on the worksheets seem in ANY WAY inadequate. Program complete parts whenever possible. (1) Have a member of the staff check it. (2) Make corrections/modifications Have the client ”look over” each part (if pos- sible) as soon as it is developed. (This will not only allow for formative feedback as to how the course is progressing, but will also help to keep the client enthusiastic as he sees concrete prog- ress being made.) make modifications the client thinks important. Verify! Have students from the target audience check each part upon completion for formative feedback. Check any MAJOR recommendations by the student evaluators with the client before programming the "improvements”. 14). Check on the video production (if not completed ear- lier). (a) (b) (C) (d) (e) (f) 15). When (a) (b) (C) Check that the storyboard has all necessary ele- ments for the instruction Check that the storyboard is arranged and organ- ized efficiently Check that all instructional elements were actual- ly taped. If not, schedule taping OR consult with client to modify the instruction Check editing of master video tape Review the final version with the client Repeat (c)-(e) for mastered video disk all the course programming is completed, completely test the course with CAI staff member with little contact with the development of the course. Modify any problem areas. Repeat (a) G (b) as needed. have the client test the program completely at the CAI offices, if possible. 239 (1) Solicit feedback NON-JUDGMENTALLY. Provide information when requested ONLY. (2) Watch for non verbal feedback as the client works through the complete system. Solicit feedback on any areas that appear to be problem areas for the client. 16). When the client is satisfied with the program, two or 17). 13) . 19). 20). 21) . three students from the target student population should run the program while being observed at the CAI offices. (a) Watch for nonverbal feedback as the students work through the complete system. (b) Solicit feedback on any areas that appear to be problem areas for the students AFTER they have finished the complete course. (c) students should also fill out formative evaluation forms that help determine areas that may be im- proved in the courseware. When the improvements suggested by the students are incorporated in the course (if they are considered improvements by the instructional designer and the client), (a) the course should be tested by four or five students from the target student population in the setting that will be used for the target population. (b) Students should fill out formative evaluation forms that help determine areas that may be im- proved in the courseware (c) students should be debriefed, if possible, to see if there are other possible areas of improvement. When the improvements suggested by the students are incorporated in the course (if they are considered improvements by the instructional designer and the client), (a) the course should be ready for target student use (b) continue to monitor the course carefully checking (1) formative evaluation forms (2) summative evaluation forms (3) final tests of student learning. Make any modifications necessary if 17) indicates the need. Ask client to evaluate the performance of your group and the product produced. Use results to improve per- formance on next project. Continue modifications 17 and 18 as long as the course is being used on at least a periodic check schedule. LIST OF REFERENCES List of References Abdolmohammadi, M.J. (1987, Spring). Decision support and expert systems in auditing: A review and research directions. ' research. 173-185. Adams, D.M. & Hamm, M. (1987). Artificial intelligence and instruction: Thinking tools for education. T.H,E, Jggrnal, 15(1), 59-62. Adams, R. & Imhof, H. (1987). Computers in the sciences. Ine_§9_Ruting_T_acber 15(4). 20- Anderson. J- R- (1985)- Q_gaitiYe_RsYChglCSY_and_its impliggrigng (2nd ed. ). New York:W.H. Freeman and Company. Andrews, D. H. and Goodson, L. A. (1980). A comparative analysis of models of instructional design. gggrnal_gr iestrustienal_d_xelepment 3(4). 2-16- Aronson, D.T., & Briggs, L.J. (1983). Contributions of Gagne and Briggs to a prescriptive model of instruction. In C. M. oReigeluth (Ed.). t uct' 1- es 0 ' 2f.:heir.surreat_§_atu§ (pp- 75-100)- New Jersey: Lawrence Erlbaum Associates. Atkinson, R. C. (1976). Adaptive instructional systems: Some attempts to Optimize the learning process. In D. Klehr (ed ). Qgenitiga_and_lnstrustiga. (pp- 81- 108)- Hillsdale, New Jersey: Lawrence Erlbaum Associates, Publishers. Ausubel. D-P- (1968)- Edsentienal_paYshClng1__a gggniriyg_yigy. New York: Holt, Rinehart and Winston. Baker, L., G Brown, A. L. (1984). Metacognitive skills and reading. In D. Pearson (ed. ), gagggggg_gg_;§gging IQEEQIQD (pp. 353- 394). New York: Longman. BanathY. B-H- (1968)- Instrsstienal_sxstem§- Palo Alto, Ca.: Fearon Publishers. 240 241 Bereiter, C. (1985). Toward a solution of the learning ParadOX- BeYieE_2f_Edusatienal_Eesearsh- 55. 201-226- Blaisdell, J. H. (1985, October). Knowledge engineering software supporting delivery of an expert system within the CIS curriculum. In a paper presented to Inf2rmati2n_SYsIsmE_Edusafign_92nfsrenee. Huston. Bloom, B.S., G Broder, L.J. (1950). Ergblgm;§glzing se . An exploratory investigation. Chicago: University of Chicago Press. Boose, J. H. (1986). sysrem design. New York:Elsevier. Briggs, L-J- & Wagner. W-W- (1981)- _Eandbgsk_9f_nzgcedures f2I_the_design_ef_instrustion (2nd ed-)- New Jersey:Educational Technology Publications. Brown, J. S., G Burton, R. R. (1978). Diagnostic models for procedural bugs in basic mathematical skills. In D. F- Walker 8 R D. H8851 ID§EIEQ§iQn§l_§2£§!Q£§- Belmont, Ca.: Wadsworth Publishing Company. Bruner. J-S- (1960)- The_Rrggeas_2f_edusatign- New York: Random House. Buchanan, B.G., & Shortliffe, E.H. (1984). Rulg;fia§gd sxReIt_sYEtemsI__Ine_MYQIN_exReriment§_2f_tbe SIanf9Is_aeaIistic_nresramming_srsisst- Menlo Park, California:Addison-Wesley. Carroll, J. B. (1976). Promoting language skills: The role of instruction. In D. Klahr (ed.), Qggnirign and_ln§rrugrign, (pp. 3-22). Hillsdale, New Jersey: Lawrence Erlbaum Associates, Publishers. Chaturvedi, A.R. (1987, July). Sirgarign;agrigg am wor e s s blem selecti . Paper presented at the North American Conference of the International Business Schools Computer Users Group, Flint, Michigan. Collins, A., & Stevens, A.L. (1983). A cognitive theory of inquiry teaching. In C. M. Reigeluth (Ed.). t ctional—desi n e o s° 'e 9f_fneir_surreat_etatua (pp- 4-361- New Jersey: Lawrence Erlbaum Associates. 242 a si c u . (1983). produced by MSU Curriculum Resource Team. Michigan State University. East Lansing, Michigan: Michigan Department of Education. Davis, G. B., 8 Olson, M. H. (1985). Menngenenr ormat e s- StInsturel_and_nexelsnment- N-Y-: McGraw-Hill Book Company. Davis. L- N- (1987. June)- Seediag_expert_sxstem reennoiegy in industrial eertings. Paper presented at the National Educational Computing Conference, Philadelphia, Pennsylvania. Davis, R.H., Alexander, L.T., & Yelon, S.L. (1974). a in S stem esi n An 0 The I ve 9f Insrrnctien. New York: McGraw-Hill Book Company. Derry. 8- J- (1984. April)- Stratng_Trainiasi_An Lea n' Mode f . Paper presented at Annual Meeting, American Educational Research Association, New Orleans, LA. Gable, A, a Page, C.V. (1980). The use of artificial intelligence techniques in computer-assisted instruction: an overview. In D.F. Walker 3 R.D. Hess. Instrustienal_§2ftware- Belmont. Ca-: Wadsworth Publishing Company. Gagne. E-D- (1985)- IEe_22gnitiYe_P§YChnggY_2f_ssheel leerning. Boston: Little, Brown and Company. Gagne, R.M. (1977). Ihe eendirione er leerning (3rd ed.). New york: Holt, Rienhart, and Winston. Gagne. R-N- (1985)- Iae_22editions_2f_learniag_aad theerY_2f_iastrECtiea- (4th ed-) New York: Holt. Rinehart and Winston. Gagne, R. M. G Briggs, L.J. (1979). Erineiniee_ef a s (2nd ed.). New York: Holt, Rinehart and Winston. Gagne, R.M. & White, R.T. (1978). Memory structures and learning outcomeS- BsYieY_2f_Edusatieaal_Bessarsh1 48- 197-222. Gene. C-. 8 Sarson. T- (1979)- Structured_§Ystem§ s' 018 h . N.Y.: Improved System Technologies Inc. 243 Glaser, R. (1976). Cognitive psychology and instructional design. In D. Klahr (ed.), Qegnirien and_instrustien (pp- 303- 315) Hillsdale, New Jersey: Lawrence Erlbaum Associates, Publishers. Glaser, R. (1984). Education and thinking: The role of knowledge- Amerigan_zex_nelesist 39(2). 93- 104- Glaser, R., & Resnick, L.B. (1972). Instructional peyehology- AnnEQl_I§11£!_QI_R§¥£hQIQQY1 23. 207-276- Gropper, G.L. (1983). A metatheory of instruction: A framework for analyzing and evaluating instructional theories and models. In C. M. Reigeluth (Ed.). ct ona - e n t ° v w ef_their__urrent_sf_tus (pp- 37-53)- New Jersey: Lawrence Erlbaum Associates. Hamreus, D.G. (1968). The Systems Approach to Instructional Development. In Teaching Research, A Division of the Oregon State System of Higher Education. Instrnstienal_leshnglng- Hayes-Roth, B. (1985). A blackboard architecture for control- Artificial_lntelligense. 26. 251-321- Hayes-Roth, F. (1985). Rule-Based systems. C2mmnni9_tieas_2__the_agu 28. 9- Hayes-Roth, F., Waterman, D.A., & Lenat, D.B. (Eds). (1983)- Bailgiag_exnert_§Ystems- Reading. Na: Addison-Wesley. Hayes-Roth, F., Waterman, D.A. & Lenat, D.B. (1983). An overview of expert systems, in F. Hayes-Roth, D. A. Waterman G D.B. Lenat (Eds.). finilging_exnerr eyerene. Reading, Mas.:Addison-Wesley. Hayes-Roth, F., Klahr, P., & Mostow, D.J. (1986). Knowledge acquisition, knowledge programming, and knowledge refinement. in P. Klahr & D.A. Waterman (Eds.). ' . Reading, Massachusetts: Addison-Wesley. Insurance embraces expert systems. (1988, April). neeern foise_1eshnglogY. 33(4). 39- Keravnou, E.T.,& Johnson, L. (1986). gennerenr_exnerr eyerene. London: Koglan Page. 244 Klahr, P., & Waterman, D.A. (1986). Artificial intelligence: a Rand perspective. in P. Klahr G D.A. Waterman (Ede-)- ExRert_aYstems_teghnigaesl_teel§1 gng annlicatione. Reading, Massachusetts: Addison- Wesley Publishing Company. Knirk, F. G. G Gustafson, K.L. (1986). Instrngrionai te2nn912gYI_A_EYatematiQ_ARRr232h_LQ_EdECatien- New York: Holt, Rinehart and Winston. Landa, L.N. (1982). The algo-heuristic theory of instruction. In C. M. Reigeluth (Ed.). Inerrnerignei s theories ode s- v o ' enrrenr_ererge (pp. 163-211). New Jersey: Lawrence Erlbaum Associates. Larkin, J., McDermott, J., Simon, D.P.L & Simon, H.A. (1980). Expert and novice performance in solving physics problems. Sc'e , 208, 185-193. Lee, M.C. (1987). Expert-system based instructional systems. In W.C. Ryan (Ed.), Ergceegings Nationel Egucarionai Computing Conferenge (pp. 139-142). Eugene, Or.: International Council on Computers in Education. Lord. K-W-. Jr- (1983)- QD£_BEYiex_Maanal__A_dete £reeeeeing_nengnggk. New York: Van Nostrand Reinhold Company. Mayer, R.E. (1983). ’ ' m t o . New York: W.H. Freeman and Company. NcCorduck. P- (1987. JulY)- Telling_tne_1rutnl_nainlx- Paper presented at the North American Conference of the International Business Schools Computer Users Group, Flint, Michigan. Merrill, M. D. (1983) Component display theory. In C. M. Reigeluth (Ed. ). Instructionai-design theoriee end m2delaI_aa_2YeIYieY_2f_&heir_surrent_§tatu§ (pp- 279- 333). New Jersey: Lawrence Erlbaum Associates. Merrill, M. D., Kowallis, T., 9 Wilson, B. G. (1991). Instructional Design in Transition. In F. H. Farley & N. J. Gordon (Eds. ), c olo t ° ernre er the Unign (pp. 298- 348). Berkley, Ca.: McCutchan Publishing Corporation. 245 Merrill, P. F. (1978). Hierarchical and informational processing task analysis: A comparison. igurnei or inetrustign_l_dexelenment 1(2). 35-40- Newell. A-. 8 Simon. H-- (1972)- Human_problsm_sglxing- Englewood Cliffs, N.J.: Prentice-Hall. Norman, D.A. (1980). What goes on in the mind of the learner. In W. J. McKeachie (Ed.), Learning, cognition, and college teaching. Ieeching and Learning (No. 2). San Francisco: Jossey- Bass. Olson, D.R. (1973) What is worth knowing and what can be taught. fiehooi Review, 82, 27-43. O'Shea. T- 8 Self. J- (1983)- Learning_and_teasning_with eennnrer_. Harvester Press. Palincsar, A.S., Brown, A.S., & Martin, S. M. (1987). Peer interaction in reading comprehension instruction. Educational_£sYshglegiet. 231-253- Perelman, L.J. (1987). eenggle. An ITTE technology leadership network special report from the institute for the transfer of technology to education of the National School Boards Association. Polhemus. N- (1987 July)- IaIerainYe_CQ_Ester_§reeniC§ rgr Ernigretory Dera Analysis. Presentation at the North American Conference of the International Business Schools Computer Users Group, Flint, Michigan. Ray, R. (1987, Fall Term). In handout for course: a: - .. no voc- '01- - 1 1e . -.u . _--e Michigan: Michigan State University. Reigeluth, C. M. (1983). Instructional design: what is it and why is it?. In C. M. Reigeluth (Ed. ). ctional-desi e de v suLtheir_Current_statu§ (pp- 4-36)- New Jersey: Lawrence Erlbaum Associates. Reigeluth, C.M., G Stein, F.S. (1983) The elaboration theory of instruction. In C. M. Reigeluth (Ed.). s uctional-desi n t 1 v 2f_Iheir_CEIrenI_§tstne (pp- 335-382)- New Jersey: Lawrence Erlbaum Associates. 246 Resnick, L. B. (1963). Programmed instruction and the teaching of complex intellectual skills: Problems and proepectS- E_rYard_EdE_atienal_BeYiew. 33. 439-471- Resnick, L. B. (1973). Hierarchies in children's learning: a symposium- Instrustieaal_§21ease. 2. 311- 323. Resnick, L.B. (1976). Task analysis in Instructional design: Some cases from mathematics. In D. Klahr (ed-1. Qgenitign_and_ln§tragtien1 (pp- 51-80)- Hillsdale, New Jersey: Lawrence Erlbaum Associates, Publishers. Resnick, L. B. (1985). Cognition and instruction: Recent theories of human competence. In B.L. Hammonds (Ed.), ast r ectu se 'e : Vol. 4. Perenglggx_nng learning (pp. 123-186), Washington, DC: American Psychological Association. Resnick. L-B- (1987)- EduCatiou_and_learaiag_t2_tbink- Washington: National Academy Press. Richey, Rita, (1986). h as e: instrnctionai gesign. New York:London/Nichols Publishing. Roblyer, M.D. & Hall, K.A. (1985). st ' ' s deaiga_Qf_EemR2IeI_s2uIseYaIEI__A_Ygrk§hen_bandbeek- Tallahassee, F.: Florida A&M University. Ruth, S.R. (1987, July). c ' ex 0 -- . Paper presented at the North American Conference of the International Business Schools Computer Users Group, Flint, Michigan. Scandura, J.M. (1983). Instructional strategies based on the structural learning theory. In C. M. Reigeluth (Ed. ). nstruc iona -des n t o s' 9YeIYieY_2f_th_ir_surrent_etstss_(pp- 213- 246)- New Jersey: Lawrence Erlbaum Associates. Sebrechts, M., Schooler, L.J., LaClaire, L., & Soloway, E. (1987). Computer-based interpretation of students' statistical errors: a preliminary empirical analysis of GIDE. In W. C. Ryan (Ed. ), Proeeedings NeIi2nal_EQaCaIi2n31.99mnsting_ggmfersase (pp- 143- 148). Eugene, Or.: International Council on Computers in Education. al 247 Simon. H- (1981)- IEe_s2isnses.of_tns_artifigial (2nd ed.). Cambridge, Ma.: MIT Press. Simon. H-A- & Newell, A- (1972)- Human_ergblem_sleing- Englewood Cliffs, New Jersey:Prentice-Hall. Sleeman, D. G Brown, J.S. (1982). Introduction: Intelligent tutoring systems. In D. Sleeman G J. S. Brown (Ede-)- InIelligsnt_tntering_sYstems- N-Y-: Academic Press. Snelbecker, G.E. (1983). Is instructional theory alive and well?. In C. M. Reigeluth (Ed.). nst t n - i theor a d od ° ' gnrrenr status (pp. 437-472). New Jersey: Lawrence Erlbaum Associates. Suppes, P. (1979). Observations about the application of artificial intelligence research to education. In D.F. Walker 8 R.D. Hess, Inerrneriene1_eerrnere. Belmont, Ca.: Wadsworth Publishing Company. Taninoto, S- L- (1987)- The_elements_2f_artificial inreiligenee. Rockville, Maryland: Computer Science Press . Waterman. D-A. (1986)- A_guide_te_exnert_sxstemsl Beeging, M.A.: Addison-Wesley. Waterman, D. A. & Jenkins, B.M. (1986). Developing expert systems to combat international terrorism. In P. Klahr, & D.A. Waterman (Eds.). Ernerr_§yerene reghnignes, rogie, eng anniieerione. Reading, Massachusetts: Addison-Wesley Publishing Company. Wensley, A. (1987, July). eystene. Paper presented at the North American Conference of the International Business Schools Computer Users Group, Flint, Michigan. Yazdani. N- (1987)- Iatelligsnf_tntering_§Y§Eem§1_an gyerxie_. In R. W. Lawler & M. Yazdani (Eds.). Artificial intelligence and education (vol. 1). Norwood, New Jersey: Ablex Publishing. General References American Psychological Association. (1983). Enniigerign lennel (3rd ed.). Menasha, Wisconsin: Banta Company. Jonaesen. 0- H- (ed-)- (1988)- Instrustignal_designs_fgr misreegme_t_r_ce_rse_are u e u w . New Jersey: Lawrence Erlbaum Associates. Hunt. N- (1982)- Ine_uniYeIse_Yithin;_A_neY_ssien2e explgres the human ning. N.Y.: Simon and Schuster. Kulik, J.A, Bangert, R.L., & Williams, G.W. (1983). Effects of computer-based teaching on secondary school students. In D.F. Walker 8 R.D. Hess, Inerrnerienel eerrner_. Belmont, Ca.: Wadsworth Publishing Company. Lenat, D. B. (1984). Computer software for intelligent systems. QPMA Magazine, 67, 24-25. McCorduck. P- (1985)- The_uniYer§el_maghine- N-Y-= McGraw-Hill. Mayer, R. E. (1987). u ' ° ve ennrgngn. Boston: Little-Brown. Michigan State University. (1986). Ine_gregnere_eeneel oLi-e to t - 9 -.. o . u-: ' : 1o 2- - a. dieeerrerions. E. Lansing, Mi.: Michigan State University. Minsky, M. (1986). Seeiery_ej_ning. N.Y.: Simon and Schuster. Quinlan, J. R. (1986). FERNO: A eenriene approach to uncertain inference. In P. Klahr a D.A. Waterman (Ede-)- EzEerI_sYsIem§_teghnignesl_tggl§l_aad enniieerigne. Reading, Massachusetts: Addison-Wesley Publishing Company. Rankin, S. C., 8 Hughes, C. S. (1987). The Rankin- Hughes framework. In C. Canning s K. Bunting (Eds. ). I; ‘ 0.0 1° 1.11 1° :1. 0:; u - u n2Y_22m22ting_Ean_helR- Westland Michigan: MACUL- Umar. A- (1987. JulY)- S9fIYare_§ERngrt_EEYirgamen_§- Paper presented at the North American Conference of the International Business Schools Computer Users Group, Flint, Michigan. 248 Whimbey, A., & Lochhead, J. (1980). Eroblem egiving and egnnreheneion (2nd ed.). Phila.: The Franklin Institute Press. Yen, D. (1987, July). v 0 ma em nnnlieerions of ernert systems. Paper presented at the North American Conference of the Inter national Business Schools Computer Users Group, Flint, Michigan. 249