• 沒有找到結果。

Chapter 4. Knowledge Constructing

4.2 Programming Model-Tracing

eachers in programming teaching, that is, problem decomposition process which is used for decomposing the problems into

In this section, we explain mainly model tracing process for t

sub-problems. We can recognize what kind of knowledge elements are needed by tracing the models in order to well define the learning path of students. Model tracing is based on an idea of analyzing student cognitive process by reconstructing, step by step, process of making conclusions during a problem solving. This diagnostic technique is called Model-Tracing.

Previous researches have been built for algebra word problem solving and algebra equation solving [14]. Our purpose focuses on how to recommend some adaptation learning concepts or objects to students. To make this kind of tracing work, both experts’ correct knowledge and students’ incorrect knowledge should be available.

„

Phase 1: Frame-based Visual Basic Constructing

Figure 4.7: Phase 1—Frame-based Visual Basic constructing

In general, ontology representation is appropriate for knowledge modeling. There are researches to expand the domain knowledge acquisition bottleneck for Intelligent Tutoring Systems (ITS) [44]; moreover, previous researches have attempted to develop an authoring system that acquires knowledge for procedural as well as nonprocedural domains [46]. Those researches proved that have existed some difficulty in getting the domain knowledge. We propose an authoring tool for the model of problem-solving with the help of a given VB ontology, and which is the basis of domain experts constructing Model-Tracing tutoring system. This phase includes three main processes which consist of process 1: related Knowledge Class modeling, process 2: Frame-based knowledge representation and process 3:

tracing possible problem-solving path.

The first process is used for allowing teachers input and descript the quiz of programming, find related knowledge classes in order to analyze the components of quiz by decomposing the whole problems into sub-problems, including two sub-processes: (1) The VB ontology is given by domain experts. (2) Any of teachers can input the VB quiz. And that decomposes related knowledge classes from a quiz. The second process is used to form Frame-based knowledge structure and filling in attributes, including three sub-processes: (3) Check whether there are similar quizzes or not. (4) Assemble divided KCs into the model of possible problem-solving, and that add/modify/delete the frames by knowledge engineer (KE), if necessary. (5) Fill in the Frames with correct or incorrect concepts And the last process is used to verify facts of frames to trace possible problem solving path and generate rules, including two sub-processes: (6) Tracing possible problem-solving path. (7) Generate rules or erroneous rules for inference.

The common expert system has an inference engine in order to make decisions based on known facts and the rule bases contained in the problem modeling component and the Frame-based knowledge. We demonstrate the architecture of Model-Tracing using either Frame-based or Rule-based knowledge representation. This tracing technique has enabled us to pick up every student’s actions and that has brought us to more precise evaluation of students’ knowledge, we demonstrate the architecture of phase 1 is shown in Figure 4.7. All detailed description of what we define the functionality of each process will be depicted in the next paragraph.

Process 1: Related Knowledge Class modeling

In this process, we aim to let teachers input or upgrade their quiz of Visual Basic.

Therefore, the purpose of this process is to gather required Knowledge Class (KC) when quiz

is created, and must refer to a given domain ontology. And required KCs have to be arranged orderly by requests of the quiz, as shown in Figure 4.8. So the production of the modeling will be useful to fill in the attributes of each KC at the next process. Besides, it must be confirmed whether the quiz is similar to one or more of predefined others in quizzes repository when teachers want to create a lot of quizzes. Because the program of quiz may be executed many times at different troubleshooting during student’s learning. If the quiz has found similarly in quizzes repository, the teacher may upgrade the learning contents of quiz in order to more adaptable to programming learning, or create a new quiz directly. We call above sub-process under the name of Patterns Finder.

Figure 4.8: Related Knowledge Class Modeling

The content of quiz is another consideration. As for learning contents display, it takes into consideration most programmers’ experiences; that is, they develop skills included learning the syntax and semantics of a programming language. All of these skills are essential to carry out the tasks of program development. These are cognitive tasks related to language and require knowledge of the syntax and semantics of the programming language [2][32]. In a word, we must set up an environment such as an authoring tool if possible, which can make the quiz easily for teachers. In following process, we just mention this Frames modeling method, but the tool will remain at the future work.

Process 2: Frame-based knowledge representation

In this process, we aim to construct well all relevant Frames before inference. According to the previous definition of the frame and the meaning of the current quiz may structure the hierarchical models for possible solution. And then domain expert fills in the value of slots, such as the stepwise value of the For/Next repetition structure. Following that situation of quiz, we can insert into the procedural attachment of the relevant slots, for example using if-needed or if-added inducting a procedure call. Hence, the slots value stands for the facts and the rules generation. That rule-based knowledge must be constructed by teachers and stored into knowledge base. Those knowledge acquisition processes are shown as below.

„ Frame-based Knowledge Acquisition process:

Figure 4.9: Frame-based knowledge acquisition process

Knowledge acquisition is about extracting knowledge from sources of expertise. The above attributes of For/Next come from interviewing the domain expert and construct following the syntactical of For/Next repetition structure in VB language. The main goal of knowledge acquisition is to create a knowledge base; the quality of the knowledge base will depend upon the skills of the knowledge engineer as this person plays a major part in the process of knowledge acquisition. As we know, knowledge is hard-earned, and therefore we have to use it well.

Table 4.1 presents an example for Frame-based knowledge representation in VB programming language. Teachers should fill in those slots value with predefined keywords in accordance with the given slots of the Frame. So that these value of slots will be used for the facts of inference engine. This description is as tabled below.

Table 4.1: A generic frame for Repetition structure

Slots Slots value

Name Repetition structure

Specification of A problem of VB structures

Types (For/Next, While/Wend, Do/Loop While, Do

While/ Loop, Do/Loop Until, Do Until/ Loop) The number of executing the loop body (at least once, Dependence on condition) Stepwise position of a control counting

loops

(on the loop condition, inside the loop body) The position of initial value of the loop

counter statement

on the loop condition, before the loop body The body of control structure (required, optional)

The position of control condition (at the beginning of the loop before the body of loop, at the ending of the loop after the body of loop)

Regarding early programming language, a frame may be analogous to a record structure in a high-level language such as Pascal or an atom with its property list in LISP. Due to OOP proceeding, a frame may be similar to a structure or an object, such as repetition structure of VB, or a string object of JAVA. The slots and slot fillers of a frame are corresponding to the fields and values of a structure. A frame is basically a group of slots and fillers (slots value) that defines a stereotypical object [27]. The utility of frames lies in hierarchical frame systems and inheritance. It looks like Frame-based knowledge ontology as shown in Figure 4.3. By using frames in the slot fillers and inheritance, very powerful knowledge representation systems can be built. In particular, Frame-based expert system is very useful for representing causal knowledge because their information is organized by cause and effect. By contrast, rule-based expert systems generally rely on unorganized knowledge that is not causal [27].Table 4.2 explains the slots 1 to 8 are the For/Next attributes inheriting the slots of repetition structure. The slots 9 to 14 are new attributes for the For/Next slots as follows.

Table 4.2 specifies how the For/Next frame is to be used. The a-problem-of and is-a relations are used in Example 4.3 and Example 4.4 to show how these frames are hierarchically related. Table 4.1 is a generic frame whereas that of Table 4.2 is a specific frame because it is an instance of For/Next frame. We have adopted the convention here that the a-kind-of (a-problem-of) relation is generic and is-a relation is specific. Frame systems are designed so more generic frames at the top of the hierarchy. It is assumed that frames can be customized for specific cases by modifying the default cases and creating more specific frames. For instance, Table 4.1, we give a generic frame for repetition structure of the VB program which can generate six specific frames. Frames attempts to model real-world objects by using generic knowledge for the majority of an object’s attributes and specific knowledge for special cases.

In above “Stepwise value of a control counting loops” field, we have given a condition using “If-added” type to determine which statement comes into existence. The if-added type is run for procedures to be executed when a value is to be added to a slot. Slot fillers may also contain relations, as in the specialization of slots [27]. The following table is shown in the one type of repetition structure, i.e. For/Next structure inherits the parent frame which is Repetition structure. Therefore, the slots of For/Next came from both parent frame and itself frame. Table 4.2 explains the slots 1 to 8 are the For/Next attributes inheriting the slots of repetition structure. The slots 9 to 14 are new attributes for the For/Next slots as follows.

Table 4.2: Frame-based knowledge for For/Next repetition structure (Table 4.1 inheritance)

Slots Slots value

1. Name For/Next

2. Specification of A problem of Repetition structure

3. Types (Single For/Next, Nested For/Next)

4. The number of execution the loop body at least once and Dependence on condition 5. Stepwise position of a control counting

loops

on the loop condition

6. Position of initial value of a control counting loops

on the loop condition

7. Body of control structure optional

8. Position of control condition at beginning of the loop before the body of loop

9. Starting value of a control counting loops (Integer numeric) on the loop condition 10. Ending value of a control counting loops (Integer numeric) on the loop condition 11. Stepwise status of a control counting loops (Upwards, downwards)

12. Stepwise value of a control counting loops (positive/negative Integer numeric) [If-added:

{if starting value is greater than the ending value

then (counting downwards have a negative increment )

else (counting upwards have a positive increment) }]

13. Position of initial value of the loop counter statement

On the loop condition

14. Terminating a Loop “Next” keyword with (variable name)

Table 4.3: Frame-based knowledge for Nested For/Next repetition structure (Table 4.2 inheritance)

Slots Slots value

1. Name Nested For/Next

2. Specification of Is a For/Next

3. The number of executing the loop body at least once and Dependence on condition 4. Stepwise position of a control counting

loops

on the loop condition 5. Position of initial value of a control

counting loops

on the loop condition 6. Body of control structure optional

7. Position of control condition beginning of the loop before the body of loop 8. Starting value of a control counting loops (Integer numeric) on the loop condition 9. Ending value of a control counting loops (Integer numeric) on the loop condition 10. Stepwise status of a control counting

loops

(Upwards, downwards) 11. Stepwise value of a control counting

loops

(positive/negative Integer numeric) [If-added:

{if starting value is greater than the ending value then (counting downwards have a negative

increment )

else (counting upwards have a positive increment) }]

12. Position of initial value of the loop counter statement

On the loop condition

13. Terminating a Loop “Next” keyword with (loop counter name) 14. The number of loop counter (integer numeric) [If-added: call procedure

change_counter_number()]

15. The number of remained loop counter [If-added: call procedure loop_counter_minus()]

[If-added: {if terminating exist then

{if the number of loop counter more than one then (to other Nested For/Next)

else (to other Single For/Next) }}]

16. Body of control structure including return control

If-added:

{if the number of remained loop counter more than one and The number of loop counter is not equal the number of original loop counter then (return to previous Nested For/Next) }]

17. Body of control structure including other contents

20. The data type of loop counter Restrited only (Integer) type 21. The relationship between control loop

counters

(dependent/independent)

[If-added:{if Inside value of loop counter is dependent on outside loop counter then call Procedure Relationship_Loop_Counter() }]

Table 4.3 explains the slots 1 to 14 are the Nested For/Next attributes inheriting For/Next slots. The slots 15 to 21 are new attributes for the Nested For/Next slots. We attempt listing possible attributes of the Nested For/Next to treat them as slots of the field, and the slot value of the field must be filled in by given possible value or condition. Those setting value came from domain experts. Student answers the slots value of structure according to quiz requirements during learning, and then system will map the correct slots value with student’s answer to pick up possible errors. Table 4.3 is shown in one type of For/Next repetition structure. Those slots of attributes in Nested For/Next child frame consist of two parts: the one is new attributes of itself, the other is to inherit attributes of For/Next parent frame. Figure 4.10 explains each required KC for this quiz is corresponding to each pre-defined frame. All attributes of a KC must be filled in frame with correct slots value.

Figure 4.10: Required Frames with correct solution

In Nested For/Next frame, the domain expert has to determine the relationship between control loop counters. There are two possible relations: Dependence and Independence. This slot is given a “If-added” procedure type to be executed as follows:

[If-added:

{ If Inside value of loop counter is dependent on outside loop counter Then call Procedure Relationship_Loop_Counter( ) }]

Table 4.4: Procedure attachment for For/Next repetition structure

When “If” condition is true, i.e. inside value of loop counter dependences on outside loop counter, we have to consider Table 4.4 should be added to fill the source code of the quiz in the frame. On the contrary, we consider another quiz with control loop counter independence as shown in the following Example.

Example 4.5: The sample quiz with independent control loop counters.

For this quiz, the inside loop condition and the outside loop condition is irrelevant.

Therefore, for the structure of the program, domain experts have to define relation between slots except that derive slots value from lots of attributes. Organization of frames matches the learning situation.

Hence, in Figure 4.11, we give an example for acquiring knowledge of both Bubble sort and Selection sort using the Frame-based knowledge of the elementary programming, (e.g. the program of two dimension (2D) arrays). Both sorting programs need the Nested For/Next structure. Reusing already modeling frames can save time and effort. Besides, the mostly contribution is knowledge sharing.

Figure 4.11: An example of reusing Frame-based knowledge

Quiz 2: Input a 9x9 multiplication table.

Solution:

F o r i = 1 To 9 F o r j = 1 To 9

M ( i , j ) = i * j N e x t j

N e x t i

In this thesis, we employ the Frame-based knowledge representation, which needs the knowledge engineers create some frames about the domain, where experts go straight into putting their knowledge into the slots value of frame. The correct or incorrect value matches the student’s answers is corresponding to the features of Model-Tracing. Moreover, we still need a translator tool which can transfer the Frame-based knowledge into a knowledge base.

Here we do not mention how to construct the translator. We focus on how to use these values of slots in the facts of inference and commonly are used as the problem-solving basis;

however the translator tool will remain at the future work. How to define and fill in a frame is an important consideration for our work, so we will give an example for interpreting this whole process later.

Process 3: Tracing possible problem-solving path

In this process, we aim to trace the possible path of problem-sloving models in order to find the incorrect programs while students may make, and then fill in the facts and rules.

These important cognitive outcomes of this stage included intellectual skills, demonstrated by the ability to apply knowledge, and the diagnostic analysis of errors. In this thesis, we do not mention how to construct out of this VB Ontology but applied to the model tracing of VB programming language. A definition of a Model-Tracing of quiz is defined as follows:

Definition 4.3: Model-Tracing of Quiz.

M: = (Quiz , C , Ec , H, End ), a model of quiz of VB program is a 4-tuple symbol which consists of:

Quiz: denotes the root of solution path in structures of VB program.

C: denotes the concepts of matched knowledge class of VB ontology into the correct solution path.

Ec: denotes the concepts of matched or mismatched knowledge class of VB ontology into the incorrect solution path.

H: a model hierarchy which is a directed relation HC×Ec. End: denotes ending of program structures.

Example 4.6: Model-Tracing template

Figure 4.12: The Model-tracing of possible problem-solving path

In this example, in Figure 4.12, the node C stands for assembling concepts of the quiz and the node Ec means possible error concepts of the quiz. The student learns a quiz which will cause the correct or incorrect learning path. Hence, the teacher has to construct model-tracing of each quiz previously.

Mostly tutoring systems just focus on either Model-Tracing approach or Frame-based knowledge representation, but we combine both in this thesis. The key point is to give the student for a help while learning programming. We have known from literatures that the

ontology teaching systems are used for employing the concepts of the model tracing as well [46]. For example, previous researches were like LISP Intelligent Tutoring System (LISPITS) [14] which teaches how to program using the LISP programming language, algebraic functions [3], and Demonstr8 [9] which is an authoring tool for building Model-Tracing tutors for arithmetic, etc. Those tutoring systems aim to perform an exhaustive the problem-solving procedure which is used for obtaining the correct solution. That's exactly what we expected.

We explain how to develop the models of quiz, i.e. the source code should be partitioned off into several parts. Previous Figure 4.2 graphically has depicted the VB Ontology citation, which is used for constructing the domain ontology and is the key reference for tracing the student’s source code. Previous Figure 4.1 is shown in Model-Tracing templates; hence, we divided the practical modeling operation into two actions. The first action is Quiz modeling and the other is Problem tracing.

This process aims to provide a correct solution path for the specific quiz. However, those

This process aims to provide a correct solution path for the specific quiz. However, those

相關文件