7.6 Using CBA ItemBuilder Items in SCORM Packages (with xAPI)

The repository fastib2scorm can be used as a tool to convert CBA ItemBuilder projects/tasks into SCORM packages that can then be integrated into Learning Management Systems (LMS). Single projects/tasks and linear sequences of projects/tasks are supported. The generated SCORM components can be used, for example, to embed CBA ItemBuilder items into moodle.

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_status is reported as completed, otherwise either incomplete is reported (if any user interaction with the SCORM content were recorded) or not 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) or cmi.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) or cmi.total_time (2004 2nd, 3rd, 4th). The time of the last session is reported as cmi.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).

TABLE 7.1: Data Reported by all SCORM Components with CBA ItemBuilder Tasks
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, a cmi.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.raw
    • cmi.core.score.max
    • cmi.core.score.min
  • Success:
    • cmi.success_status
    • cmi.core.credit
    • cmi.core.lesson_status
TABLE 7.2: Data Reported by SCORM Components With Scoring
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 object part:
{
  "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 result part:
{
  "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 result part:
{
  "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"
}

  1. 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.↩︎