Feature Wiki

Information about planned and released features

Tabs

generic import / export of learning progress for scorm modules

1 Requirements

Importing learning progress into scorm-modules is very important in the following scenarios:

  • platform-migration (e.g. moodle->ilias) with existing learning data (especially completed learning modules)
  • exchanging (equivalent) scorm-modules with incompatible scorm manifest (especially data about completed modules)
  • manually changing learning progress (especially setting a user to "completed" if he has provided proven his knowledge by another mean)
The goal is to have an import + export function for scorm modules which supports the most basic and generic states of a scorm module: "completed", "in_progress", "failed" and "unattempted" - but not neccessarily detailed protocol data to allow cross-compatibility between even the most different scorm modules! It is then advised to use this import only with "review mode" enabled as this will protect an imported state with "incomplete" protocol data.
 
The Problem:
The current implementation "import of scorm protocol data" is buggy and can lead to duplicate and inconsistent DB-entries (ut_lp_marks?) and sometimes misses to throw learning progress events. Also the naming is misleading, because it is not possible to import all protocol data (only the generic part whether the scorm module has been completed). Its not in good shape although its quite important for ILIAS.
 
The following changes are suggested to improve this feature:
- The Feature is renamed import / export of learning status (instead of protocol data) to clarify the meaning
 
- The import will set the status only for SCOs which determine the overall SCORM learning progress
 
- The progress status (=completed) will be set as follows
a) lesson_status=passed   (SCORM 1.2)
b) success_status=passed + completion_status=completed  (SCORM 2004)
 
- Contrary to the current implementation, existing data for SCOs which fulfill the import-goal will not be changed anymore
 
- For SCOs where above criteria are not fulfilled, existing data is deleted and replaced with data with the imported constraints. This avoids confusion for situations that learning modules calculate learning states based on suspend data (which will be explicitly deleted). If no data was present before, it will be created.
 
- Duplicate entries (-> current bug in the import routine) will not occur anymore. If no duplicates are present, it is possible to set an index, which should improve performance.
 
- The import not only supports setting the progress to "completed" (as before), but also "in_progress", "failed" and "unattempted". In case of "unattempted" the counter for attempts is reset to 0. In case of empty progress column the value "completed" will be assumed.
 
- The progress status of export and import will not be characterized by a number, but a string (see above) - case-insenstive.
 
- Backwards compatibility: Existing exports have to be importable in the old format. To recognize the old format it is checked whether there is a "number" instead of "string" in the status column.
 
- The columns in the csv-files for import / export will be:
- username
- Title, Firstname, Surname (in one field - ignored on import)
- eMail-Adress (ignored on import)
- Status
- Attempts
- Time spent in seconds
- percentage_completed
- first_access
- last_access
- last_status_change (set to current date on import)
 
- The import will trigger events to update course learning progress, etc.
 
Not supported:
- SCORM-Offline-Mode
- SCORES

2 Additional Information

  • Idea / concept: Uwe Kohnle
  • Funding: Krohne
  • Maintainer: Uwe Kohnle Internetlehrer
  • Implementation of the feature is done by Uwe Kohnle
  • Tested by / status: Helge Steinhoff (Qualitus)

3 Discussion

Florian Suittenpointner, 2014-08-25:
In my view, it is a little confusing that this feature mingles terms from the ILIAS learning progress ('in progress', 'not attempted' a.s.o.) and the original SCORM variables.
And as a second aspect to clarify the concept, I would prefer not to talk about "learning status" as this term doesn't exist in either of both worlds.
And as an administrator, I would like to know what I'm dealing with.

JF 16 Mar 2015: We support the "simple" version of this idea (using values of sahs_user, not all detailed protocol data) and schedule it for ILIAS 5.1.

4 Implementation

This option is usually used to manipulate tracking data and learning progress of SCORM learning modules und should be used carefully! Reasons to manipulate tracking data could be:

  • a new version of a SCORM Learning Module is available and the learning progress of users who had experienced the older version should be preserved
  • users could prove, that they have the expected knowledge connected with the Learning Module so that it is not necessary to experience the Learning Module to get a necessary learning progress
  • due to interrupted internet connection or system damages the achieved learning progress could not be stored.
To use the feature it is necessary to activate Activate Protocol Data (Administration >> Learning Resources). If you do not want to see the user names and logins for the often very detailed SCORM Protocol Data deactivate the option which allows to export user data (Administration >> Learning Resources). Nevertheless you can find users by last name with the filter.

A basic feature, available also in previous ILIAS versions is the export of data for example to use in Excel. You can select specific users or all users.

Please display the screenshot above! The relevant columns for import are marked red. Please note, that there are newer export options for tracking data (By User, By Chapter) which show much more data.
To understand the way of manipulating data please look at the column percentageCompletedSCOs which is marked blue. The details for SCOs are displayed in the next screenshot.

Please display the screenhot above and look at the marked columns and the status.
Only one SCO was passed and no SCO had been completed without having a success_status 'failed'. But why there was a value of 25 in the previous screenshot for percentageCompletedSCOs? Because for the learning progress 4 SCOs were marked as relevant for learning progress. But only 3 SCOs were experienced by the user.

Now i want to manipulate tracking data. If you only want to set to ILIAS learning progress status 'trac_completed' you just need the columns LearningModuleId and user (respectively 'login' if you have activated the option which allows to export user data - see above). Make sure, that colums in the csv-file to import are separated by semicolons.

After the import of the csv-file several changes are made. If you have marked certain SCOs as relevant for the learning progress, the tracking data for all of these SCOs are manipulated except those which have a success_status 'passed' or which have a completion_status 'completed' without having a success_status 'failed'.
Changes for tracking data only affect completion_status, success_status and suspend_data because many WBTs reconstruct data using suspend_data and there are only few rules regarding suspend_data.
If there are no data for SCOs, which are marked as relevant for learning progress, data are supplemented.

As a result, tracking data and learning progress consistent.

Tipp: As noted above, many SCORM learning modules use suspend_data to reconstruct data for learners. That's why the completion_status could be changed to incomplete by the SCO at the next visit of the learner. Therefore it is often useful to have selected at 'Settings' of the learning module at 'Lock Tracking Status Once it is Established' the option 'keep tracking data if achieved status is completed or passed'.

Test Cases

Test cases completed at {date} by Suittenpointner, Florian [suittenpointner]

  • SCORM 2004:
    • C6537: Protokolldaten exportieren
    • C6538: Export personenbezogener Daten verhindern
    • C6539: Manipulierte Protokolldaten importieren (Status ‚Bearbeitet‘)
    • C6540: Manipulierte Protokolldaten importieren (Status ‚Noch nicht begonnen‘)
    • C6541: Import von Protokolldaten aus alter Version
    • C6542: Import von Protokolldaten mit persönlichen Daten bei nicht erlaubtem Export von persönlicher Daten
    • C6543: Import von Protokolldaten ohne persönliche Daten bei erlaubtem Export von persönlicher Daten
  • SCORM 1.2:
    • C6537: Protokolldaten exportieren
    • C6538: Export personenbezogener Daten verhindern
    • C6539: Manipulierte Protokolldaten importieren (Status ‚Bearbeitet‘)
    • C6540: Manipulierte Protokolldaten importieren (Status ‚Noch nicht begonnen‘)
    • C6541: Import von Protokolldaten aus alter Version
    • C6542: Import von Protokolldaten mit persönlichen Daten bei nicht erlaubtem Export von persönlicher Daten
    • C6543: Import von Protokolldaten ohne persönliche Daten bei erlaubtem Export von persönlicher Daten

Approval

Tested successfully and approved at 22.08.2014 by .

Last edited: 4. Jul 2016, 10:34, Kohnle, Uwe [ukohnle]