SCORM Compliance and Testing

How to Export Blackboard Course Content to SCORM

Posted in SCORM Compliance and Testing, eLearning Development, eLearning How To on July 23rd, 2009 by Stephen Johnson – Be the first to comment

Migrating Content from Blackboard to SCORM-Compliant Course Packages

Do you need help migrating your content out of Blackboard? Contact the author, Steve Johnson, and he’ll gladly help you convert your content to SCORM, CD/DVD, stand-alone web server, or any other format you need.

Blackboard Migration

So you are thinking about performing a Blackboard migration and are not sure how to start. You are not alone. Many online trainers/educators now choose to create course content using a 3rd party course authoring tool or otherwise outside of the Learning Management System (LMS) to avoid having their content trapped in a proprietary system. While creating courses within an LMS like Blackboard may seem a quick and easy solution, what happens if you decide to switch to another LMS or want to deploy your content in other environments? Even if you wish stick with Blackboard, it may be worthwhile for you to convert your content to SCORM and re-import it back into the LMS. This way your content will not only become portable, it will also be more easily navigated by your students and have a superior look and feel tailored to your organization logo and branding.

The Blackboard LMS Course Export-Archive Tool

Blackboard offers a course archive/export tool, but this only allows you to back-up courses to the Blackboard specification and can only easily be added back into Blackboard. This feature is NOT designed for users to easily get their content out of Blackboard and into an alternative LMS. When you think about it, LMS providers have a vested interest in customers building content within their LMS so that it is harder to migrate away from them at a future date. The more your content is tied to a specific system, the fewer options your company to evaluate alternative solutions. With the changing LMS landscape and evolving technologies, you should be positioned to take advantage of competitive innovations, price reductions, and the like, without your content holding you back.

Converting Blackboard Archive Courses to SCORM

Where there is a will, there is a way! LearningDeveloper.com recently performed a Blackboard content conversion whereby they imported Blackboard Zip files  into a SCORM-compliant package. Because the exported files from Blackboard are “strongly-typed”,  Learning Developer developed a custom content conversion tool that imports the pictures and text from Blackboard courses into to an HTML/XML schema that complies with SCORM.  So now, the course content is wrapped up nicely in a stand-alone course “viewer” that includes a full table of contents, next/back buttons, glossary tool, support for in-line interactivities (e.g. Flash, Captivate, etc.) and more!

Solving The “Blackboard to Moodle” Issue

The Blackboard Moodle dilemma is one that many organizations face, especially for those who have authored all of their content within Blackboard. A solid Blackboard Export feature is dramatically lacking since it does not allow one to perform a simple Export Blackboard Courseto SCORM feature. So users who wish to even consider migrating to Moodle are faced with a lengthy and sometimes costly conversion scenario. The best way to solve this issue is to have a detailed Blackboard Migration plan that details how you will export blackboard coursesinto a format that is easily imported into any SCORM-compliant LMS including Moodle. 

Also note that there is a Moodle-based Blackboard course import tool that you can use. If this article is too technical for you, then we can help you perform the tasks described and move your content that way. However – note that converting courses to SCORM is a much cleaner approach that opens up many opportunities for you beyond just a Moodle migration. 

Rather than tackle this endeavour on your own and recreate the wheel, I invite you to contact me directly and learn how we have solved this issue time and time again for clients around the world.

Feel free to contact Learning Developer at sjohnson at LearningDeveloper.com if you need to have your content migrated out of Blackboard and converted into portable SCORM-compliant packages. And remember – going forward: Always author your courses outside of the LMS if there is even the remotest of chances that your content may outlive your LMS vendor relationship.

Frequently Used SCORM API Methods

Posted in SCORM Compliance and Testing on December 15th, 2008 by Stephen Johnson – Be the first to comment

SCORM Data Transfer Overview

If you are experiencing challenges with your SCORM-compliant course, then you may need to bring in an outside consultant. If that is the case, understanding some of the fundamental SCORM API methods may help you understand the information that your consultant shares with you. Click the “Ask the eLearning Experts” tab, input  your SCORM question/issue, and you will receive either an answer to your problem or a listing of SCORM consultants who specialize in exactly what you require.

 The SCORM specification has defined a minimum set of methods within the API that enable communication between the content that has been created (the SCO) and the target system from which the content will be accessed and tracked (the Learning Management System).

 The following methods are accessed by the SCO via JavaScript code with the syntax of:

objectname.methodname(argument(s)) – where…

  • objectname references the API
  • methodname is the method being used (see below)
  • argument(s) are the data passed to the method.

SCORM 2004 (1.3) API Methods:

Initialize - Initializes communication with the LMS. No other API methods should be called by the SCO until Initialize has been successfully called. returnValue = API_1484_11.Initialize(”"); When completed, the resulting returnValue will contain “true” if the method was successful, “false” if it was not.

GetValue - Retrieves data from the LMS for use in the SCO. The SCO must pass the data element that it is requesting as an argument. returnValue = API_1484_11.GetValue(”cmi.score.raw”); When completed, the resulting returnValue will contain the score that is retrieved from the LMS.

SetValue - Passes data from the SCO to the LMS. The data is retained and may be retrieved during the user session, but is not saved to the LMS until Commit is invoked. The SCO must indicate the data element and its value that is to be saved as arguments. returnValue = API_1484_11.SetValue(”cmi.score.raw”, “98″); When completed, the resulting returnValue will contain “true” if the method was successful, “false” if it was not.

Terminate - Terminates communication with the LMS. No other API methods should be called by the SCO afterTerminate has been successfully called. returnValue = API_1484_11.Terminate(”"); When completed, the resulting returnValue will contain “true” if the method was successful, “false” if it was not.

Commit - Saves the data that has been sent to the LMS via SetValue calls. If a SCO exits without invoking Commit, none of the learner’s data is saved to the LMS. Commit is implicitly invoked by the API when Terminate is called. returnValue = API_1484_11.Commit(”"); When completed, the resulting returnValue will contain “true” if the method was successful, “false” if it was not.

GetLastError – Retrieves the last numeric error code that occurred in the API as a result of invoking these methods. returnValue = API_1484_11.GetLastError(); When completed, the resulting returnValue will contain the code corresponding to the last error that occurred.

GetErrorString – Retrieves the text description corresponding to the error code provided. returnValue = API_1484_11.GetErrorString(errorCode); returnValue = API_1484_11.GetErrorString(122); When completed in either case, the resulting returnValue will contain a text description of the error corresponding to the error Code that was provided.

GetDiagnostic – Exists for LMS specific use. Returns a diagnostic text description based on the parameter that is passed as an argument. returnValue = API.GetDiagnostic(”diagnostic text”); When completed, the resulting returnValue will contain the text of the diagnostic information.