Seven tips for creating an unbreakable SCORM course

Thinking Cap Blog | 2023-04-18

Unleash the true potential of SCORM. Overlooking these key features can lead to broken, slow courses and sparse debugging data. Elevate your courses by implementing these essential standards for a seamless, high-performance learning experience.


1. Identify course objectives

You can’t rely on the course’s Suspend Data to determine where the learner has reached in your course; it’s not human-readable anyway. Instead, implement course objectives (cmi.objectives) to identify the key touchpoints of your course and save the learner’s progress through each of them.

Objectives: SCORM's cmi.objectives are data elements designed to articulate specific learning objectives within a course, providing a structured framework for tracking learner progress. By identifying key touchpoints and milestones, cmi.objectives enable more effective monitoring and evaluation of learner achievement throughout the course.

Objectives are human-readable. A good LMS can report on this data, providing more useful insights than the suspend data ever could.

Screenshot of a system access report


2. Send interactions frequently

Sending updates (i.e., cmi.interactions) to the LMS and committing these are essential for both saving progress and debugging course issues.

Commit: SCORM's cmi.interactions are data elements used to capture learner interactions within a SCORM course, such as completing quizzes, submitting answers, or interacting with multimedia content. These interactions provide valuable insights into learner engagement and performance, aiding in-course assessment and feedback mechanisms.

These interactions are sent frequently enough and can provide a better, more human-readable insight into the learner’s progress in the course.

Screenshot of an activity metrics page


3. Commit frequently

Saving the updates to the course by calling Commit will tell the LMS to save the data sent previously, preventing data loss if a learner is cut off mid-way through the course.

Commit: SCORM's commit function saves learner data to the LMS, ensuring that progress and interactions are properly recorded and stored. By invoking the commit function, course developers prevent potential data loss and ensure the integrity of the learner's experience within the SCORM course.

Commits should be triggered frequently, preventing anything a learner has completed since the previous Commit from being lost.

Screenshot of a learning path page


4. Send progress status

When the course is closed, calculate and send the current percentage completed to the LMS (cmi.progress_measure).

Progress Measure: SCORM's cmi.progress_measure is a data element that indicates the current completion percentage for a SCORM course. It allows the LMS to track and display the learner's progress accurately throughout the course, providing valuable feedback on their advancement.

Without this, your LMS can only use a 'best guess' on the percentage of the course completed. It would be much better to display the percentage completed provided by the course outside the course to the learner.

Screenshot of a survey


5. Correctly reference files using the correct case

If your LMS is optimized to deliver content through a content delivery network (CDN), then filenames will be case-sensitive. Any calls you make to your files (e.g., JavaScript, CSS, images, videos, and audio) will need to match the case of the file's name.

Case sensitive: A CDN (Content Delivery Network) is case sensitive because it treats filenames and paths as distinct entities, meaning that variations in capitalization can lead to different file retrievals. This sensitivity ensures accurate file delivery and helps maintain consistency in content distribution across diverse platforms and systems.

Only some LMSs deliver content from a CDN. Therefore, testing packages on platforms like SCORM Cloud may not catch this problem.

Screenshot of an NCPA catalogue page


6. Optimize your media files

Learners rarely need a 4K-quality video for learning. Take the time to optimize your media file sizes, including your images, audio and video files.

Optimization: Optimizing image, video, and audio files involves reducing file sizes without compromising quality and enhancing website performance. Popular tools like Adobe Photoshop for images, HandBrake for videos, and Audacity for audio offer comprehensive features to efficiently optimize media files for web usage.

Just because an LMS can support the importing of SCORM packages larger than a two-hour movie doesn't mean your learners can, especially if they're trying to take the course on a mobile network.

Image of ROI metrics graphs


7. Send Terminate when the course is closed

Add a Close button that triggers a Terminate and call a Terminate after the final section of your course before telling them they have finished the course. This will catch anyone exiting the course midway through it and anyone finishing it. If you don't, you could miss sending the last update and/or the completion status and results.

Terminate: The Terminate method signals to the LMS that content communication is completed for all SCOs. While technically, its call doesn't always signify the user's completion, implementing it judiciously ensures better compatibility and usability, especially when content is ready to be removed from the user.

Course developers often miss these Terminate triggers, which causes learners' progress to not show either their completion or their complete progress.

Screenshot of a certification options

These tips underscore the importance of attention to detail in SCORM course development and highlight the potential benefits of adopting best practices. For those interested in exploring these concepts further and ensuring the creation of robust SCORM courses, discovering more about Thinking Cap, a platform that supports these principles, could be beneficial

Share this article