Monday, February 22, 2010

What is AICC and why do I care?

It may not be obvious why anyone should pay attention to an eLearning standard that is falling in popularity, but the AICC isn’t (quite) dead yet, and many corporations still use it – and require it – as their only supported eLearning standard.  The AICC standard is the oldest existing standard in the eLearning industry:  The Aviation Industry CBT Committee (http://www.aicc.org), composed mostly of aircraft builders and aerospace contractors, started laying out a set of guidelines for computer-based training in the early 90s, to facilitate sharing content amongst the member companies without the need for reprogramming.  Once codified, this standard specified how to package and describe courses, as well as including guidelines (suggested and mandatory) on the “behind-the-scenes” order of operation.  With the rise of the internet, the AICC became a leading proponent of standardized online training, enforcing a set of commands and data-fields built on the HTTP backbone known as the HACP (HTTP AICC CMI Protocol).  Before the SCORM standard – which itself incorporates large parts of the AICC’s original specifications – this was one of the few standards that Leaning Management System Vendors supported, and certainly the most prominent.

The AICC HACP model uses form posts – a standard HTTP communication device – to submit course and learner data to an LMS.  The LMS then returns a plain-text response, structured by allowable parameters and field values.  Because of this rigid structure, AICC was tricky to implement for eLearning: course vendors couldn’t make sense of the LMS’s return data without using Flash, Java or other technologies which could process a text response on the fly.  This made it difficult to determine if the course’s calls to the LMS were successful, or to retrieve prior session data (place-in-course, cumulative score, etc.).  Many courses would blindly send post data without paying attention to what the LMS returned.  This in turn created headaches for anyone testing or using these courses.  Even if a vendor or course creator got over these hurdles, the specification was vague in many of its particulars, and as a consequence every vendor implemented it slightly differently.  For example: to mark a learner as “passed”, a course could set its AICC lesson_status variable to “Passed”, “p”, or “pass”.  For both the variable name and the status value, Learning systems often required course vendors to use a specific character case in order to get the data to store properly – even though the AICC itself allowed any of the listed versions.  This meant that anytime vendors created (or integrated) a course for a new LMS, they would need to determine how that particular LMS chose to implement the standard.  This was time-consuming, to say the least.  Over the years, in response to criticism of this and other issues, the AICC standard has become stricter; but given the popularity, ease on more-comprehensive (and web-native) approach of the SCORM standard, AICC has continued to lose ground in the overall eLearning standard arena.  Currently most LMS vendors don’t really support AICC anymore. They maintain their original AICC integrations as part of their offering, but are not longer certified (at my last check there were only 3 systems with current certifications).

So why do you care?  If you work for  a company that uses only SCORM-conformant courseware, you probably don’t (except maybe for the pleasure of knowing the historical context), but there are still a lot of companies out there that have some legacy AICC courses, or even only support AICC. 

One big reason I often hear why companies want to stay with AICC is that AICC doesn’t require the LMS browser window to remain open while the course is running.  With SCORM, the course will often launch in a pop-up window, and this implementation requires that the LMS window persist, open, in order to receive the calls the course makes via its API.  If the user closes the LMS window or changes the page, or if the user’s LMS session times out due to ”inactivity”, the bookmarking or completion data usually won’t be stored in the LMS.  This is not an issue with AICC, because courses using HACP (the AICC communication protocol) submit an HTML form with specific user data that the LMS script can process regardless of the browser’s current condition (i.e., the call is made to the “catch” page on the LMS regardless of whether the original window has remained open).  From a usability standpoint, this is a big plus for AICC.

Although that may not be enough reason for you to cast off SCORM support, when you have thousands of users, it can have a big impact on your support network.  That said, I won’t stop advising that SCORM is the standard to use for eLearning, but I will keep my eye on AICC.  And with the release of the PENS standard (which facilitates deploying content from content tools directly to an LMS), there may be another reason to pay attention to the Aviation Industry CBT Committee.


* I would like to thank Ted Blanchard for contributing to this entry.

Monday, February 15, 2010

What is the big difference between SCORM 1.2 and SCORM 2004?

So what is the big difference between SCORM 1.2 and SCORM 2004?  SCORM 1.2 greatly simplified the effort to deploy eLearning courses to an LMS; but even with this support, it still had tangible areas for improvement, and the ADL made some of those improvements with the release of SCORM 2004.  Since SCORM 2004’s release in January of 2004, it has continued to evolve, with the most recent edition (the 4th Edition) being released March of 2009. 

The specific changes that ADL the SCORM standard with the release of the SCORM 2004 include:
  1. Made changes to the command names:  for an undisclosed reason, the ADL decided to change the acceptable commands that a SCO can make when communicating to the LMS.  Primarily, they dropped the “LMS” prefix from the commands, but they also changed “[LMS]Finish” to “Terminate”.
  2. Mandated previously optional elements of the Run-Time Model:  this means that all LMSes now need to support the elements which were optional in SCORM 1.2 in order to be SCORM 2004 conformant.  Thus, in SCORM 2004, course creators and administrators are guaranteed to have the ability to store data for item analysis (via the Interactions object) or Objective information, whereas in 1.2 that information was only available if the hosting LMS had decided to support these elements.  Unfortunately, the standard does not require the LMS to supply reports for the efficient retrieval of these data, and I have yet to see an LMS that manages this in any usable way.
  3. Added IMS Simple Sequencing rules:  this is the big one.  What it means is that course creators can now define, in the imsmanifest.xml file, the way that the SCOs comprising a course must be structured and displayed by the LMS, and enforce rules about how/when they can be accessed by a learner.  For example, a course can be configured not to allow a user access to SCO #2 until he/she passes SCO #1.  Implementing this complex set of sequencing rules has been a significant hurdle for many LMS vendors in supporting SCORM 2004.

With SCORM 2004 4th Edition, the ADL has added the ability to pass certain data between SCOs.  This means that data stored by one SCO can be retrievable in another SCO.  Using this functionality, course developers will be able to create very complex behavior by using learner actions or responses in one SCO to drive behavior and/or display in other SCO.  This had been one of the main reasons that custom content vendors would often choose to build single-SCO courses: creating sophisticated and effective eLearning relies on having a certain amount of control over course-internal dynamics and display.  Unfortunately the developer community will have to wait a while before starting to leverage these new tools, since no LMS supports SCORM 2004 4th edition yet.

If you are interested in delving deeper into the SCORM standard, you can access all of the SCORM documentation on the ADL site at http://www.adlnet.gov.  Also, you can check to see if your LMS vendor is SCORM certified at http://www.adlnet.gov/Technologies/scorm/Custom%20Pages/Certified%20Products.aspx

* I would like to thank Ted Blanchard for contributing to this entry.

Sunday, February 7, 2010

What is SCORM 1.2?

For an eLearning standard that has been used in the industry for the last ten years, there remains a surprising lack of understanding about what the SCORM standard is, and what it can do for training groups.  With this blog post, I hope to clear up some of this mystery.  I’ll describe SCORM 1.2 and, in a follow up post, describe the differences between SCORM 1.2 and SCORM 2004.

SCORM stands for Shareable Content Object Reference Model; it was created by the US Defense Department’s Advanced Distributed Learning (ADL) Initiative (http://www.adlnet.gov).  While one of the ideals driving the SCORM’s creation was to promote content reusability and thus —more grandiosely – to facilitate the emergence of a “content ecosystem” in which learning professionals could mix and match already existing pieces of content to suit their educational needs, the reality is that the initiative has been more successful at simplifying course “packaging” and structural organization, and standardizing how courses communicate with an LMS, than creating reusable content objects.  To arrive at the SCORM standard, the ADL took the best of several existing learning standards (the airline industry’s AICC structural and communication protocols; the IMS GLC’s packaging standards; certain aspects of the European ARIADNE initiative) and combined them.  It used JavaScript (technically, the more platform-neutral ECMAScript) as the language for communication between the LMS and courses, and set strict standards on storing course/learner information (such as completion, score, time in course, et cetera).  Because of the ease of its implementation, and its more comprehensive and (arguably) web-native approach, the SCORM very quickly beat out AICC as the de facto corporate eLearning course integration standard.

SCORM 1.2 has two primary components:  The Content Aggregation Module and the Run-Time Environment. The Content Aggregation Module defines how courses are required to be packaged in order to be considered SCORM conformant.  A course must be packaged as a single zip file that contains:
  • Course Resources: These are the course’s content files.  They may be in any folder structure and contain any web-deliverable content.
  • imsmanifest.xml:  This is an XML file that contains all the metadata for the course.  It defines values for data elements such as the course title and code, a list of all course resources, a course description, the course structure, a list of course SCOs, a mastery score, and other structural and definitional information.  This file must be at the top level of the zip package and can NOT be in a sub folder.  This document’s structure must conform to an XML schema maintained by the ADL.

(So what is a SCO anyway? A SCO is a Sharable Content Object.  This is the lowest level of learning content contained in a course, and is the basic building block of learning, envisioned by the SCORM’s creators to be able to be re-purposed for any number of different courses.  Each SCO, after course upload, is listed in the LMS-created table of contents, and is tracked separately from the other SCOs in a course.  In order to simplify learner interactions with learning content, however, many course developers choose to make courses consisting of a single SCO, with this SCO containing all of the course content.  This allows greater control over the look and feel of a course’s table of contents or index, as well as over the order in which learners encounter each section of content. )

The Run-Time Environment defines the details of how the SCO can communicate with the LMS.  It specifies what commands must (or can) be called at what point, what acceptable data can be stored in the LMS, and how those data need to be formatted.  For example, the variable field cmi.core.lesson_status (which tracks the status of the course in the LMS) may only be set equal to one of the following values: “passed”, “completed”, “failed”, “incomplete”, “browsed” or “not attempted”.  Attempting to have the course set this field to any other value will cause the LMS to throw an error.  This level of detail is specified for all supported data elements, and extends in some cases to prescribing data type (e.g., “integer” or “text”) and allowable character-length.

The complexity inherent in developing a standard for an industry with multiple vendors and implementers at different levels of conformance and technological sophistication can cause, and has caused, some confusion around its implementation, particularly with regard to the data model.  For example, there was one significant mistake around the data model definitions in the SCORM 1.2 standard: it allowed certain objects in the data model to be optionally supported by a conformant LMS.  This was true for both the Interactions elements (which capture and store information around quiz and assessment questions) and the Objectives elements (which can be used to store learner states – score; completion progress; etc. – for specific course objectives).  Although many LMSes supported these optional elements, many others did not; and a course creator  often wouldn’t be able to tell the level of support for these elements until the course was deployed on the LMS.  This meant that course builders couldn’t guarantee that administrators would be capable of doing, say, question-level item analysis on a course’s assessments or quizzes, even though the courses had been built to accommodate this need.  This issue has been resolved in SCORM 2004.

With the definition of the Run-Time environment and Content Aggregation Model completed, the SCORM 1.2 standard was released.  Due to its straightforwardness and ease of implementation, it has become the most used eLearning standard in the corporate United States.  It counts over 160 “certified conformant” learning products, with 85 of them being Learning Management Systems.

If you are interested in delving deeper into the SCORM standard, you can access all of the SCORM documentation on the ADL site at http://www.adlnet.gov.  Also, you can check to see if your LMS vendor is SCORM certified at http://www.adlnet.gov/Technologies/scorm/Custom%20Pages/Certified%20Products.aspx.

* I would like to thank Ted Blanchard for contributing to this entry.