Is there a limit to AICC course length

Morning all,

We are currently testing publishing our courses using AICC (rather than SCORM), due to issue with running Java on a number of our machines.

The course open and run perfectly via our Oracle+OLM LMS, but don't bookmark, so therefore can't be resumed.

We are looking into this using the relay.php workaround, as we are using a separate content server, which I know is a known issue.

However, my questions is around course completion - Our test content (6-8 slides) works just fine, with the course being marked as “complete” by the LMS. The full course (100 or so slides) always shows as “incomplete”.

Does anyone know if there is a maximum file size / course length that AICC can support? We don't have these issues with the same content tracking via SCORM.

At the moment we are stuck with the choice of...

a) Use SCORM, but deal with dozen of support calls regarding Java settings (and no access via iPads)

b) Use AICC, which can be accessed on everything, but can't resume or track completion.

Any ideas / advice / help would be greatly appreciated.

19 Replies
Justin Grenier

Good Morning, Paul.

Storyline does not impose a limit on the length of AICC courses, and I'm not aware of a limit built into the AICC specification. If you'd like to attempt to troubleshoot the communication that happens between your content and your LMS, I would recommend enabling LMS Debug Mode.

In addition, I wanted to add some information related to some of your other statements:

  • You said that you are testing your courses using AICC due to issues running Java an a number of your machines, but no version of Storyline's published output requires Java.
  • You said that if you use SCORM, you will have to deal with no access via iPad, but our support for iPads is the same across both SCORM and AICC.

Please let us know if you need anything else, and have a great day!

Gerry Wasiluk

I'd also review this article concerning resume data: http://www.articulate.com/support/storyline/exceeding-scorm-suspend-data-limits

On very long courses, you may exceed the resume limit for AICC and then strange things could happen--like bookmarking not working correctly.

If an AICC course gets too long, you may run into resume data limits.

If possible, try publishing to SCORM 2004 3rd or 4th Edition.

If your course is long, and you have to stay in AICC, you may want to look at doing the course in multi-modules (i.e., one course with multiple lessons)--if your LMS supports multi-modules.

Or divide your course into separate, smaller courses.

Paul Westlake

Afternoon guys - Thank to both for the replies.

Firstly, to clarify our issue with Java... Our LMS uses Java to start SCORM content, hence the issue - AICC uses HTML calls instead, so works just fine.

I have had a look through the Configuration.js file in the LMS folder of published content, and see that there are a number of AICC timeout options towards the end of the file.

Could these need adjusting?

Thanks, as ever, for the help and advice!

Gerry Wasiluk

Gerry Wasiluk said:

I'd also review this article concerning resume data: http://www.articulate.com/support/storyline/exceeding-scorm-suspend-data-limits

On very long courses, you may exceed the resume limit for AICC and then strange things could happen--like bookmarking not working correctly.

If an AICC course gets too long, you may run into resume data limits.

If possible, try publishing to SCORM 2004 3rd or 4th Edition.

If your course is long, and you have to stay in AICC, you may want to look at doing the course in multi-modules (i.e., one course with multiple lessons)--if your LMS supports multi-modules.

Or divide your course into separate, smaller courses.

Paul Westlake

AICC completion status is working correctly now, but only by breaking the original course (110 slides, around 400 layers) into smaller chunks.

Is there a known 'maximum' number of slides that we should be working towards when authoring in Storyline for AICC use?

Thanks for the help and advice so far.

Justin Grenier

Good Morning, Paul.

The suspend data is based on how much information the course needs to "remember" when it resumes. So, 2 slides with 100 variables, 50 objects with multiple states, and a quiz question on each slide could cause our suspend data to exceed AICC limits. On the flip side, 400 very simple slides could also cause you to exceed AICC limits.

In summary, there is no specific limit in terms of slide numbers.

Good luck with your project!

Brian Caudill

Here is what the actual AICC documentation has to say about Suspend Data

"CMI Guidelines for Interoperability : AICC"
ORIGINAL RELEASE DATE 25-Oct-93
Revision 4.0 release 16-Aug-2004

Suspend Data
Value Format: A string of up to 4096 characters in length located in the
“[Core_Lesson]” group. The string format is free-form with the following
restrictions:
· Square brackets “[ ]” are not allowed.
· Leading and trailing whitespace (carriage-returns, tabs, spaces)
are not included.
· Embedded whitespace is allowed and must be included
(See Data Type CMIString4096INI for more detail)

Added to this, Articulate knows that this is an issue and has not done anything about it because you will find this comment in their code "need to check for character limits here 4096 characters". But as you can see from the code below there is no check. This code was extracted from the output folder /lms/AICCFunctions.js lines 304 - 310.

function AICC_SetDataChunk(strData){
//need to check for character limits here 4096 characters
WriteToDebug("In AICC_SetDataChunk, strData=" + strData );
SetDirtyAICCData();
AICC_Data_Chunk = strData;
return true;
}

Justin Grenier

Thanks for sharing the AICC documentation, Brian.

Just to clarify, are you recommending that Storyline should adhere to these requirements more strictly and truncate all Suspend Data that exceeds 4,096 characters?  If so, I would recommend submitting this Feature Request here.

One of the reasons we choose not to enforce this limit is because some Learning Management Systems choose not to enforce the limit.  For example, Gerry states here that Saba, Totara, and Moodle are all capable of ignoring this limit, and we want to provide the LMS with all of the data it'll take!

Although we provide general recommendations on overcoming Suspend Data limits, I imagine that if Storyline began truncating all Suspend Data that exceeds 4,096 characters, we would effectively prohibit many large courses from resuming properly even if their LMS doesn't enforce the limit.  ...or alternatively, it seems like we'd need to impose restrictions on the number of slides you could add to a course (which would vary depending on the content), but please let me know if I have misunderstood your post.

Thanks!

Brian Caudill

I am suggesting that the output of the Articulate products should be SCORM conformant if that is the claim you make. If you allow the suspend data to go beyond 4096 for AICC/ SCORM 1.2 and beyond 64000 for SCORM 2004 then not all the course that are produced using Articulate products are compliant. This is not just an issue with Storyline, but with Presenter as well.

What I would suggest is 

1) Use a compression algorithm to compress your data so that it is not so long. Something like the JavaScript implementation of LZW or GZip compressor.

2) Warn people when the course is output from an Articulate tool that this may be an issue. Being SCORM experts we get calls about this issue weekly.

3) Understand that you can not reasonably save "everything" the student did in the course using SCORM and only save the page they left off on. That will never overrun the suspend_data for any LMS. 

4) This statement you make on [http://www.articulate.com/support/storyline/exceeding-scorm-suspend-data-limits] "To overcome the unfortunate limits imposed by earlier versions of SCORM" is putting the blame on SCORM when the standard has been published and known since 2001. It is an issue that Articulate needs to adhere to the existing and published standard and not claim that the standard is the issue.

Justin Grenier

I hear you, Brian.  Thanks for clarifying.

...just a couple of quick points:

  • I can confirm that our suspend data is compressed, although I can't speak for the specific method that we're using.
  • Our customers generally expect that a course will remember everything about the learner's progress upon resume, including object states, variable values, interaction results, and more.  It's hard for me to imagine us taking that functionality away.
  • I like your idea of warning the author during publish that their content may exceed suspend data limits, but since suspend data is so dependent on learner behavior, it might be difficult to calculate the size of the suspend data at that time.

Having said that, I understand your position that by allowing suspend data to exceed 4,096 characters in an AICC course, we are breaking the standard.  I don't think I'd be comfortable taking a strong position either way on that, but suffice it to say that that the stance we've arrived at in this article was only taken after significant deliberation.

Your ideas are what shape future products, and our Engineers read every Feature Request.  I see that you did submit your thoughts here, so thank you!

Brian Caudill

"Our customers generally expect that a course will remember everything about the learner's progress upon resume, including object states, variable values, interaction results, and more. It's hard for me to imagine us taking that functionality away." 

If this is the case then what I would do is use a data model element such as objectives to store arrays of data in combination with suspend data since there is no limit on the number of objectives you can store in an LMS. Just an idea.

Brian Caudill

You may also want to consider different scales of suspend data. What I mean my that is different levels of verbosity. 

Level 1: Save everything - warning this may cause issues with some LMSs

Level 2: Save only the last page the student viewed plus quiz scores - this will work all LMSs as long as you have less than X quizzes in your course since you are only storing a few characters for the position and a 1 to 3 characters for the score on each quiz. There would be the possibility to have almost 100 quizzes in a SCO before the lower suspend data limits were over run.

Level 3: Save only the last page the student viewed - this will work in all LMSs because the character string would never exceed about 10 chars max. 

Wendy Bouchard

Hello I just wanted to clarify what the work around in Moodle 2.4 would be for the suspend data limits? I have a course with a large quiz pulled from at least 7 different quiz banks and when a user exits the quiz part way through and wants to resume, although Storyline 2 prompts for resume the scores in Moodle are not updated or do not record the score as the users might exit several times before completing.

I tried publishing to AICC but the course will not even open although this version of moodle supports AICC - I am my wits end here and very frustrated. I am not a techie and have a some knowledge of LMSs but not enough to solve this issue.

Any help or update would be appreciated ASAP

Oh I forgot to mention that I tested in SCORM Cloud and everything works as it was designed to.

Wendy

Justin Wilcox

Hi Wendy. Rustici software has a moodle integration that allows you to use SCORM 2004 content which would likely resolve your issue with the SCORM 1.2 suspend limits. It would also allow you to take advantage of the TinCan API for mobile learning as well. I took a look at moodle's AICC documentation which is really sparse. Most of it redirects to instructions on using SCORM content so I would lean towards looking into using Rustici's moodle integration. The fact that moodle has stopped development on SCORM 2004 doesn't really bode well either. If cost was a factor and you needed to work with what moodle gives you, you could try this from their forums but we cannot vouch that this would work, nor would I be able to verify if this could cause other problems with your moodle install so it would be a use at your own risk and something we would not support.