Combining Self-explanation Strategy and Ontology on Programming Feedback System

碩士 === 國立成功大學 === 工程科學系 === 104 === Nowadays, computer programming is an important skill and ability for almost all the, especially engineering, fields. Prior researches show that programming also realizes problem solving process, so learning programming can also boost problem solving ability. Some...

Full description

Bibliographic Details
Main Authors: Cheng-WeiYen, 顏丞緯
Other Authors: Tzone-I Wang
Format: Others
Language:zh-TW
Published: 2015
Online Access:http://ndltd.ncl.edu.tw/handle/u2hyg2
Description
Summary:碩士 === 國立成功大學 === 工程科學系 === 104 === Nowadays, computer programming is an important skill and ability for almost all the, especially engineering, fields. Prior researches show that programming also realizes problem solving process, so learning programming can also boost problem solving ability. Some researches use self-explanation strategy to improve problem solving process, which contain the “understanding and defining the problem” and the ”planning the solution” levels. The self-explanation, facilitating combining new information with known conceptual models and generating inferences on solutions, can help completing the two levels of the problem solving process. A self-explanation shows what you think or inference on the concept of an entity generated by an activity you are engaging in. Without proper prior knowledge, a self-explanation may generate errors and result in constructing error concepts if proper guidance were not given. Error concepts surely will become obstacles in further knowledge constructions. To help programmer to gain solid sound concepts of a programming language and boost their problem solving ability, this study constructs a programming environment with self-explanations and feedbacks for the popular engineering language C++. An assisted programming system from a previous research is extended with a self-explanation strategy, which, when a programmer gets a compilation error, gives extended examples to the programmer and asks for a self-explanation on the inference of the error. Using an algorithm developed in this study, the system compares the self-explanation string from the programmer and some base strings, established by programing experts for the possible explanations on the error, and analyzes the correctness of the string and possible misconceptions in it. Based on the analyzing result, the system tries to provide proper learning material and program examples as feedbacks, which are to correct the misconceptions. This study constructs ontology of C++ programming concepts hierarchy with instances of possible misconceptions and their proper feedbacks. The possible misconceptions are collected from actual programming practices in some pilot experiments involving programmers of college students. The final experiment involves 13 college students who use the system for actual programming. The system records all of student activities on their programming practices, analyzes all the self-explanations recorded, and reaches an average accuracy of 84.7% after the programming experts verify the results. All the schemes and algorithms developed in this study forms a methodology for establishing system with self-explanation learning strategy in other fields.