The pedagogical agent Javy needs domain knwoledge in order to help the user whilst she is solving the exercises. This knowledge is divided in three main parts:
- Conceptual hierarchy: it stores the domain concepts students have to learn.
- Execution graphs: they contain the steps (microinstructions) that must be performed in order to complete the execution of each JVM instruction.
- Scenarios: they are the actual exercises. Each scenario stores the Java program, and the object code.
The conceptual hierarchy contains the domain concepts the students have to learn. The application uses them to perform two tasks:
- User model: the system keeps information about the knowledge the user already has about the specific domain being taught. The user model stores the concepts we can assume she knows, and those that she is learning.
- Exercise database: pedagogical module uses the user model to retrieve the next scenario to be presented to the student. It uses an exercise database which is indexed using the concepts it tests. The system should try to select exercises which exhibit a degree of complexity that is not too great for the learner but is sufficiently complex to be challenging.
Conceptual hierarchy is also used by Javy to generate explanations. Each concept has a description used by Javy when needed. The conceptual hierarchy is, in fact, a kind of concep map where links are used to lead the conversation.
Execution graphs store information about the steps (microinstructions) that have to be executed to complete each JVM instruction. Each graph is related to the concept of the instruction it represents.
Graphs nodes are states and microinstructions are stored in the edges. Each edge is related to the microinstruction concept in the concept hierarchy. Graph edges also store explanations that show why their primitive actions are needed to complete the execution of the JVM instruction. This is useful because the description related to the microinstruction concept explains what they do, but don’t why they are important in a specific situation.
Graphs also store wrong paths and associate with them an explanation indicating why they are incorrect. When the user tries to execute one of such primitive actions, Javy stops her and explains why she is wrong. In case the student expecutes a microinstruction that has no t considered in the graph, Javy also stops her, but he is not able to give her an specific explanation, and he provides a general one.
Execution graphs are also edited using JaCoMOn. Another screenshot is available.
Scenarios are the real exercises. Each scenario stores the Java program, and the object code. The use of the application consists in Javy or the student executing a Java program using the compiled code. Students are supposed to learn how source code is compiled comparing both codes.
Each exercise has a description and a list of all concepts that are tested in it. These concepts are used in the case retrieval when a student starts a new exercise.
Source and object code are related, and marked with explanations in order for Javy to give explanations about how the Java program is compiled.
Scenarios are developed using another authoring tool called JaDe. You can see an screenshot here.
The central part of the knowledge is the conceptual hierarchy. The other parts are related to it, creating a big interconected graph with concepts, microinstructions and both source and object code blocks.
The next diagram shows the whole picture of the knowledge.