This chapter of the ActiveMath describes the usage and creation of books and groupings for course-generation.
What should a table of contents (TOC) for ActiveMath look like:
The most important points are:
<ref> elements on the same level as
<omgroup> elements.<omgroup> that has a description needs an id attributeMore details: Start with the typical OMDoc stuff:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE omdoc SYSTEM "../dtd/activemath.dtd">
<omdoc id="put_some_Id_here">
Start the table of content and give it a title and description
<omgroup id="put_ID_of_TOC_here">
<metadata>
<Title xml:lang="en">Content for course generation</Title>
<Title xml:lang="de">Inhalte für Kursgenerierung</Title>
<Description xml:lang="en">This is content that illustrates course generation.</Description>
<Creator role="aut">Carsten Ullrich</Creator>
</metadata>
Think of this as the cover of a real book.
Now start with the content. Think of this as the chapters of a book. It`s ok to have only a single chapter:
<omgroup id="grouping_course_generation1">
<metadata>
<Title xml:lang="en">Section for Definition Def1</Title>
<Creator role="aut">Carsten Ullrich</Creator>
<Description xml:lang="en">Here, the definition def1 is explained.</Description>
</metadata>
<ref xref="def1" />
</omgroup>
In the above example, the chapter contains a reference. Alternatively,
you could put one or several <omgroup>s there. Think of them as
sections and subsections. The bottom <omgroup>s need to reference to
actual learning objects (use the <ref> element for this).
Do not put <ref> and <omgroup> elements at the same level. Instead
create a proper <omgroup> for the <ref>s.
Do not forget to add identifiers to each <omgroup>.
A table of content can also be used for course generation. The course
generation uses concepts (definitions and assertions) as a
basis. Hence, it discards examples and exercises occuring in the table
of content. Therefore, if you wish to use a table of content for
course generation, make sure that every bottom <omgroup> element
contains a least one reference to a concept.
Be aware that the course generation selects concepts of the learning context of the learner. This means that you can put references for definitions that define the same symbol, but which are for different learning contexts. The course generator will select the appropriate one. If there isn’t any, then the course generation can not be started.
Formal:
TOC -> <omdoc> <omgroup> SECTION </omgroup> </omdoc>
SECTION -> OMGS | REFS
OMGS -> <omgroup> SECTION </omgroup> OMGS
REFS -> <ref>+
You can mix prerecorded book with dynamically selected elements, i.e, OMDoc exercises and examples that are selected depending on the current competencies of the learner.
Use one of the following tasks:
illustrateWithSingleExample!
trainWithSingleExercise!
train!
illustrate!
The first two insert a single example or exercise resp. The other two tasks insert several examples/exercises. The selection happens according to the pedagogical knowledge as formalized in the course generator.
Such dynamic tasks can be inserted in the omdoc/oqmath source code representing a table of content using jedit for instance, or using the assembly tool. If you insert them manually, it’ easy as the format of a dynamic item is quite intuitive:
<dynamic-item type="dynamicTask" servicename="tutorialControl"
queryname="trainWithSingleExercise!">
<ref xref="theory_of_exercises/def_exercise"/>
</dynamic-item>
The important parts are queryname (the task name) and the xref attribute that references the concept on which the task is to be applied. You can easily retrieve the value needed for the xref attribute by copying the the link of an item in a book, which yield something like: http://localhost:8080/ActiveMath2/search/show.cmd?id=mbase://LeAMcalculus/deriv/defnormal You need the part behind “id”: mbase://LeAMcalculus/deriv/defnormal You can retrieve it within the “more” tab of the additional information in the search view of an item.
You insert that dynamic-item into the table of content just like any other reference.