Applying Answer Set Programming to the Generation of Testing Problems on the Course of Algorithm

碩士 === 國立政治大學 === 資訊科學系 === 106 === During the learning process of a subject, providing abundant test problems to examine or grade students' understanding of studied contents is a common and effective approach. At present the main source of test problems is nothing more than the teacher's...

Full description

Bibliographic Details
Main Authors: Kuo, Chun-Wei, 郭峻瑋
Other Authors: Chen, Cheng-Chia
Format: Others
Language:zh-TW
Published: 2018
Online Access:http://ndltd.ncl.edu.tw/handle/2smyqt
Description
Summary:碩士 === 國立政治大學 === 資訊科學系 === 106 === During the learning process of a subject, providing abundant test problems to examine or grade students' understanding of studied contents is a common and effective approach. At present the main source of test problems is nothing more than the teacher's own design, or test banks provided by booksellers or a third party. However, all these sources have their drawbacks. For instance, it may take too much time for a teacher to manually design all test problems, most sources do not classify problems appropriately and/or lack sufficient number of problems such that it is not easy to select enough questions meeting the need of all tests. The goal of this thesis is to provide a system for the automatic generation of test questions for various algorithms found in the course of algorithm. The considered algorithms include various sorting algorithms, binary search, longest common subsequence, optimal Huffman code, Dijkstra shortest path and minimal spanning tree, etc. In order to produce reliable and valid problem instances enabling the assessment of the students' understanding of the whole tested algorithm, we analyze each considered algorithm and identify some classifying features on problem instances reflecting the spirit of the algorithm. Afterwards, all testing problems are generated and classified according to these features. The core of our system was developed using answer-set programming(ASP). It is a declarative logical programing paradigm employed in many applications and is very suitable for the generation of testing problems. Its generate-define-test programming feature allows us to encode the specification of a test problem together its classifying features as an ASP program from which an ASP solver can generate one or more test problems as its results. Our system also provides a web interface allowing users to select one among many studied algorithms and specify requirements of the desired test problem. The server then accepts these inputs, uses the corresponding ASP program to generate one or more solutions meeting all requirements, and decodes the ASP solutions to generate test problems in textual or graphical format. Finally, it is presented on the user's browser for the user to view or store. Not only can our system generate test problems, but it can also produce solutions to all generated test problems. Moreover, after generating a test problem, our system provides the optional facility to generate multiple problem instances of the same difficulty and testing features. This allows the instructor to offer different sets of test problems to students in an examination and prevent possible cheating or plagiarism.