7.6 Using CBA ItemBuilder Items in SCORM Packages (with xAPI)
Assessment content embedded into Learning Management Systems (LMS) can become Open Educational Resources. Open standards, such as the Sharable Content Object Reference Model (SCORM) described how content can be packaged into a transferable ZIP-archives, called Package Interchange Format to be used in different LMS that support SCORM.
Flavors of SCORM-Packages created by the fastib2scorm-converter
- SCORM 1.2
- SCORM 2004
7.6.1 Prepare CBA ItemBuilder Project Files for fastib2scorm-Converter
To create a SCORM packages with CBA ItemBuilder Project Files, the fastib2scorm can be used. It allows creating SCORM packages with either single or multiple Project Files. As a necessary prerequisite, one or multiple Tasks must be defined within each Project Files. If multiple Project Files are used, an alphabetical order is used. The same applies to the order of Tasks, if within one CBA ItemBuilder Project File multiple Tasks are defined.
7.6.2 Generating SCORM Packages using fastib2scorm-Converter
The converter fastib2scorm is provided as a Github project template that contains a so-called CI/CD worker (i.e., Github actions, see also 7.4.2). Using the converter requires an account at github.com. After creating an account and log-in to your profile, navigate to the repository fastib2scorm and push the button ‘Use this template’ (see also Figure 7.2 above for the similar approach used for the fastib2pci-converter).
7.6.3 General Data Provided to the LMS
SCORM packages that consist of a single CBA ItemBuilder task or a linear sequence of tasks automatically return the information summarized in Table 7.1 to the Learning Management System (LMS) without further configuration:
Completion: If all tasks in a SCORM component are administered, the
cmi.completion_statusis reported ascompleted, otherwise eitherincompleteis reported (if any user interaction with the SCORM content were recorded) ornot attempted(if the SCORM component was loaded, but no interactions were recorded).Recent Task: If a SCORM component is created with multiple CBA ItemBuilder Tasks, the recent Task name is reported as
cmi.core.lesson_location(1.1 / 1.2) orcmi.location(2004 2st, 3nd, 4th) . If a SCORM component is resumed, the component is continued with this Task.Progress: If multiple CBA ItemBuilder Tasks are combined as SCORM component, the progress (i.e., the number of already completed Tasks) is reported as
cmi.progress_measure(2004 2nd, 3rd, 4th).Total Time and Session Time: The total time a SCORM component was used (accumulated across multiple visits) is reported as
cmi.core.total_time(1.1 / 1.2) orcmi.total_time(2004 2nd, 3rd, 4th). The time of the last session is reported ascmi.session_time(2004 2nd, 3rd, 4th).Suspend Data: The snapshot of started CBA ItemBuilder Tasks are required to resume the Tasks. If possible (i.e., if feasible within the restrictions of the SCORM format definition) the (compressed) JSON-Snapshot is provided as
cmi.suspend_data. Note that the max size varies across SCROM versions (1.1 / 1.2: 4096 characters; 2004 2nd edition: 4000 characters; 2004 3rd / 4th edition: 64000 characters).
| Data Model | Description | Versions |
|---|---|---|
cmi.completion_status |
Completion status, i.e., completed, incomplete, not attempted, unknown |
(all) |
cmi.core.lesson_location |
Recent Task, i.e., the name of the last visited CBA ItemBuilder Project / Task used to resume | (1.1 / 1.2) |
cmi.location |
(see cmi.core.lesson_location) |
(2004 2st, 3nd, 4th) |
cmi.progress_measure |
Value between 0 (0% and) and 1 (100%) indicating the progress within the component | (2004 2nd, 3rd, 4th) |
cmi.core.total_time |
Accumulated total time | (1.1 / 1.2) |
cmi.total_time |
(see cmi.total_time) |
(2004 2nd, 3rd, 4th) |
cmi.session_time |
Time of the last session | (2004 2nd, 3rd, 4th) |
cmi.suspend_data |
JSON string to restore tasks states | (all, but varying size limits) |
Not supported yet: cmi.core.exit |
Exit status, i.e., time-out, suspend, logout |
(1.1 / 1.2) |
Not supported yet: cmi.exit |
(see cmi.core.exit) |
(2004 2nd, 3rd, 4th) |
Not supported yet: cmi.core.entry |
First attempt ab-initio or resume |
(1.1 / 1.2) |
Not supported yet: cmi.entry |
(see cmi.core.entry) |
(2004 2nd, 3rd, 4th) |
7.6.4 Report Scoring Results Provided by CBA ItemBuilder Tasks to the LMS
The CBA ItemBuilder scoring (see Chapter 5) consists of a list of Classes, each providing one active hit (or miss) at a time, and optionally a string or numeric result (called Result-Text). Additionally, scoring is provided in the form of variables with values.
- CBA ItemBuilder Scoring: Raw results as provided by the CBA ItemBuilder Tasks are converted to the
cmi.interactions-structure, defined in the SCORM standard, using the fields. For each class and each variable, acmi.interactions-entry is created with a unique key (id) and a value (learner_response).
Classes:
id: {Project-Name}.{TaskName}.{ClassName}
learner_response: Hitname | ResultText
Variables:91
id: {Project-Name}.{TaskName}.{VariableName}learner_response: Type | VariableValue
7.6.5 Mapping of Scoring Result to Indicate Success
The transmission of results-data from SCORM packages embedded in learning management systems in the form of cmi.interactions is sufficient to make all data available to the LMS for later use. However, it is not sufficient to report the results in a way, that the LMS can understand and feedback to teachers or course administrators. For that purpose, an additional mapping of the raw results to correct responses / incorrect responses is required, so that raw scores, success and credits can be derived.
TODO: We need to define a codebook structure for that purpose.
- Raw Score:
cmi.core.score.rawcmi.core.score.maxcmi.core.score.min
- Success:
cmi.success_statuscmi.core.creditcmi.core.lesson_status
| Data Model | Description | Versions |
|---|---|---|
cmi.success_status |
… | (all) |
| … | … | … |
7.6.6 Trace-Data using xAPI-Statements
Additional behavioral data gathered inside of SCORM package using the CBA ItemBuilder runtime can be stored using xAPI statements. The following statements are provided by default, storing the data provided by the CBA ItemBuilder runtime (see section 7.2.9):
- Traces (Log-Data) : JSON messages informing about log events inside the CBA ItemBuilder Tasks are provided as single xAPI statements, with the data provided in the
objectpart:
{
"actor": { "mbox": "mailto:user@example.com","name": "User Name" },
"verb": { "id": "https://example.com/verbs/logged", "display": { "en": "logged" } },
"object": {
"id": "http://example.com/system/events/123456",
"definition": {
"name": {
"en": "CBA ItemBuilder Event Log"
},
"description": {
"en": "Logged a CBA ItemBuilder event"
}
"data": "... JSON data provided by the runtime ..."
}
},
"timestamp": "2023-07-25T10:30:00Z"
}- Scoring Results : JSON messages containing the scoring results of CBA ItemBuilder Tasks are provided as xAPI statements, with the data provided in the
resultpart:
{
"actor": { "mbox": "mailto:user@example.com","name": "User Name" },
"verb": { "id": "https://example.com/verbs/experienced", "display": { "en": "experienced" } },
"object": {
"id": "http://example.com/project-file/task",
"definition": {
"name": {
"en": "CBA ItemBuilder Project Name"
},
"description": {
"en": "User Name experienced Project Name / TaskName."
}
"result": {
"extensions": {
"https://xapi.itembuilder.de/extensions/itemscore": {
... ItemScore JSON ...
}
}
}
}
},
"timestamp": "2023-07-25T10:30:00Z"
}- Snapshot : JSON messages containing the complete restore data of CBA ItemBuilder Tasks are provided as xAPI statements, with the data provided in the
resultpart:
{
"actor": { "mbox": "mailto:user@example.com","name": "User Name" },
"verb": { "id": "https://example.com/verbs/experienced", "display": { "en": "experienced" } },
"object": {
"id": "http://example.com/project-file/task",
"definition": {
"name": {
"en": "CBA ItemBuilder Project Name"
},
"description": {
"en": "User Name experienced Project Name / TaskName."
}
"result": {
"extensions": {
"https://xapi.itembuilder.de/extensions/snapshot": {
... Snapshot JSON ...
}
}
}
}
},
"timestamp": "2023-07-25T10:30:00Z"
}Note: Variables are supported starting with CBA ItemBuilder 10.0 (enhanced in 10.4) and it is expected that variable names and class names are unique.↩︎