Abstract |
Syntax error correction is an essential part of the debugging process, yet only few give to this part an attention. In most laboratory setting, it is the role of the teachers to assist their students while doing activities. However, based on our experience, considering the large number of students in a class, it may seem difficult for teachers to assist their students one-by-one given the time constraints. This gives us the motivation to address the need to aid novice learners by developing an interactive pedagogical agent.
This paper presents the design and development of a pedagogical agent named JEPPY. It is embedded as a plugin in an open-source programming environment, Code::Blocks. The overall design architecture is based on the principles of an agent-based learning environment but is contextualized in the domain of syntax-error correction. It is composed of the compilation behavior module, communication module and the domain module. In the compilation behavior module, JEPPY was designed to look at the compile-edit actions of the novice learners. In this case, we used the Error Quotient (EQ) developed by Matthew Jadud. To implement the EQ, the following tasks were done: capture error messages and line numbers of the errors produced by the compiler, capture the lines and the changes being made, and finally score each of these compile-edit sequences. EQ score of 0.3 and above was used as threshold from a range of 0.0 to 1.0, with 1.0 indicating successive failures to correct error. The threshold allows the agent to appear as frequent as possible for testing purposes.
The domain module was implemented independently from Code::Blocks using CLIPS. This contains the rules in if-then format. The if-part contains the error and the then-part contains the help which is either a filename or a string. The separation of rules from the control allows anybody to independently modify existing rules or add a new rule without doing any changes from the control. The help file for each error can be written separately using any html file editor.
The communication module is responsible for providing an interaction medium between the learner and the agent. This module contains the embodiment of JEPPY which was implemented using the JAVA programming language. When EQ score reach certain threshold due to a certain error, JEPPY will pop-up offering help. When help is accepted, a rule-based engine matches the error with a rule in the module containing help on that error. Help is in the form of hint and example.
In every logging process was the time-stamping of events including the interaction of the learner to the embodied agent and the help provided by the agent. This mechanism allows us to trace and validate the critical part of the result, that is, from computing EQ in real-time up to providing help. To test its performance, JEPPY was put to a test in an actual laboratory session with eighteen (18) participants who are students enrolled in an introductory computer programming course in the Computer Studies Department of ²ÝÝ®ÊÓƵ¹ÙÍø-Main. Source codes, which when compiled produce cascading errors, were given to be corrected initiating interaction. The participants were given questionnaire prior to the test for us to assess whether they are really novice learners. After the test, participants were given a questionnaire to assess their experience in doing the tasks with the presence of JEPPY. This allows us to elicit responses for the improvement of the agent. |