CCE Theses and Dissertations


Prolog in Computer-Based Learning: A General Purpose Interface for Overcoming Learning Blocks

Date of Award


Document Type


Degree Name

Doctor of Science in Information Science


Center for Computer and Information Sciences


John A. Scigliano

Committee Member

John A. Fornshell

Committee Member

Barry Centini


This Major Field Project Report describes the design and development of a computer-based tutorial program coded in Prolog. The purpose of this application was to solve a problem related to unanticipated blocks to effective learning experienced by students in the Doctor of Arts in Learning and Technology at Nova University. These blocks were associated with assignments involving the Prolog computer language. Students encountered tasks that required knowledge of the Prolog language to complete assignments but they had no previous experience with programming in logic. A tutorial program was conceived as an instructional intervention to remediate this deficiency. Design criteria and performance criteria were developed. Use of off-the-shelf programs as prototypes reduced the coding task after the internal logic had been ver1fied by testing a model of the software coded in Prolog. The software was written in Prolog and was accessible online for students to use and examine. This software uses the Prolog language to teach itself. The final tutorial application design parameters reflect both the intended operational environment, the Nova University Unix (tm) system and resident C-Prolog Interpreter. This tutorial program model serves as an example of an operational deli very system for a tutorial instructional system. Specific problems are addressed in the code for the program, screen clearing, interactive components of the language and design of expert systems. Because the Prolog language does not provide system dependent capability such as clearing the screen the UNIX system was accessed to provide this function. Prolog is a database language that describes the problem being addressed and is a member of the family of declarative computer languages. The Prolog database contains facts and rules that evaluate the information in the database. A Prolog database is both information and source code containing instructions to be executed at run-time. Fortunately, Prolog contains a built-in predicate that reads the Keyboard and makes possible real-time interaction with students. Although Prolog is a declarative language, it is also procedural and this capability provided for development of expert systems that controlled and evaluated the input of students. The tutorial content and conceptual design represent a functional prototype and is not intended to stand as a paradigm of Prolog coding or program design. Source code for this software was divided into frames. Each frame was supported by an expert system that processed student input or used a set of rules to direct branching decisions. Documentation for the program, both internal (source code) and external (on-line), should enable student comprehension of the driving source code. Students were able to access the source code by selecting menu options that printed the rules and database facts to the screen for each tutorial frame and also the entire program. Remark statements embedded in the source code. These were statements explained what each expert system controlled and identified branching destinations. Source code for this software served two purposes. F1rst it operated as the database of facts and rule and provided input facilities for the program at run-time. Second the code presented on request a functional example of Prolog code. The program menu provided options for downloading of the source code or portions of it. Design criteria for the program was stated in terms of performance expectations. These statements were used to evaluate the attainment of performance goals. The performance of the tutorial program was evaluated and the results are presented. This report also contains a UNIX "man" system entry file prepared for the program and also a user’s manual. A structured walk through explains the purpose and function of each Prolog coded frame. Syntax and branching is described where appropriate in the walk through.

This document is currently not available here.

  Link to NovaCat