The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Feelings over The SCORM

1 reply on 1 page. Most recent reply: Nov 12, 2008 6:03 AM by Mark Kamoski

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Jonathan Crossland

Posts: 630
Nickname: jonathanc
Registered: Feb, 2004

Jonathan Crossland is a software architect for Lucid Ocean Ltd
Feelings over The SCORM Posted: May 28, 2006 4:59 PM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Jonathan Crossland.
Original Post: Feelings over The SCORM
Feed Title: Jonathan Crossland Weblog
Feed URL: http://www.jonathancrossland.com/syndication.axd
Feed Description: Design, Frameworks, Patterns and Idioms
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Jonathan Crossland
Latest Posts From Jonathan Crossland Weblog

Advertisement


Some thoughts and ramblings on SCORM.

Beginning of last year I designed and implemented, together with Matt Ball (one of my coders), a Scorm Course Player.

We developed it using the First Version of the SCORM 2004 specifications, and have now moved through the revisions, addendums, and now finally on the 3rd Edition Draft, which we are closing up now.
There are quite a few conformance tests, (on the top of my head, I think there are around 70). and we have probably around 50 of them nailed completely.


Before I get into things, here are some useful links for the SCORM.
SCORM main page (html url)
RSS Issues Feed (xml url)


What is SCORM?
The SCORM tries to specify the platform on which e-learning material can be delivered and tracked. The SCORM attempts to layout rules for course material to follow, the way in which it communicates to an LMS and a set of standard 'commands', data, it can send about itself and the learner.
The SCORM (Sharable Content Object Reference Model), is a composite of specifications, mainly
  • Content Aggregation Model (CAM),
    Think of it as e-learning packaged in a zip file, with an XML Manifest, that describes the content.
  • Run-time Environment (RTE),
    This is in short a specified programming Interface, with a Data Model behind it.
  • Sequencing and Navigation,
    The flow of and rules governing a course. SCORM like to use stranger words like a SCO, or Assets, Activities etc


Our Implementation
We utilized a Javascript Class as a 'Proxy' (GOF) for the API, communicating to a WebService.
We used .NET Reflection to map the API calls to the relevant Data Model (RTE Data Model). This treats all API values and commands as language elements.
The pattern used for this, is one of a customized hybrid + more between an 'Interpreter/Mediator (GOF)' and it made what would have been a large amount of code mapping into a one efficient class.
We created a CAM Object Model, with as much inheritance, reuse, abstract classes as possible to reduce the complexity of the classes.
We designed The Tracking Model as an Object Model which the Learning Management System (LMS) hooks into for events, SCORM tracking and other information regarding the course and player environment.
Then implemented the Sequencing and Navigation based on the SCORM SN psuedo code, which leaves a lot to be desired, but there you have it.


As my intent, was purely to introduce a little of SCORM, and point out the learning curves and such, let me get into that, before I start writing a book.


Suggestions for your implementation
My advice on how to create such a thing would start with Develop the API first and then move to the CAM.

After which, read the specs thoroughly again and again. I found myself needing glasses (almost) after this.

The documentation is vast and as it tries to aleviate ambiguity, it tends to be roundabout and wordy. Often a simple sentence "like make sure you set this flag when that occurs". turns into "the flag, known either as the green flag or the orange flag according to , depending on what eye glass you are wearing, must conform to the value of n otherwise x, when y occurs within the ..."

We could have done without the "extra explanation" in every area, as sometimes they contradicted eachother (more so in the earlier specs).
On the plus side, at least when you went looking for something, it has something to say about it.

Importantly, remember that the architecture will reveal itself within what the specs are saying. Don't go and simply design your code and go for it while reading.
Read first.


My list of concerns/opinions and suggestions for the SCORM
  • It is really too complex in many areas, which will make adoption longer and harder
  • At this stage, it suffers from a classic 'software framework' problem when in the early days of release. What value does it provide? I can do this easily if I do it myself. It is too complicated to 'get started'. etc
  • Perhaps the SCORM conformancy should be reduced to grades A and B, with one being a lot less work than at present.
  • The Sequencing and Navigation is really not worth the weight of the paper. A much easier implementation could be created, with Layers of abstraction. I can't see many courses utilizing the full extent of it anyway.
  • A simple set of class Interfaces (written in java, c#, vb.net etc) would be helpful for the current SN psuedo code. Better yet, use the Template Method (GOF) for defining it and we can fill in the implementation.
  • I think, that the CAM is going to promote larger sets of learning material rather than smaller e-learning objects, unless a different way is found to package and disperse learning.
  • The API with the CMI, is not just old-school, but bad old-school. It needs to move with the technology that matters, Web Services, UDDI, AJAX, a proper defined behaviour with interfaces
  • The Tracking model needs to be better defined for real world use. An extension once again is needed to really make tracking a vital aspect. Tracking after all, could be made seamless from content to LMS via set API. 'What' is sent defined by the content, expecting the content to document it for the LMS. Now anything could be set without effecting CMI, Existing Tracking or SN.
  • A lot of profesional courseware monitor their own stats or are custom tweaked for an LMS. This will still continue for a long time yet.
  • The worth of SCORM is a long way still from being realized
  • The specs, sample code and testing environments, everything is written in Java, I don not see any software design patterns, anything familiar. An increase in adoption can be made by defining a real 'software framework'.
  • The objectives for SCORM needs to be reviewed and enhanced.



Read: Feelings over The SCORM


Mark Kamoski

Posts: 1
Nickname: mkamoski
Registered: Nov, 2008

Re: Feelings over The SCORM Posted: Nov 12, 2008 6:03 AM
Reply to this message Reply
Your excellent post is most appreciated. As of now, do you have any updates to add?

I am looking for .NET SCORM-compliant solution. So far, the best .NET SCORM software that I have been able to find is BGI's commercial product at http://www.brisingergroup.com/ and there are SharePoint extensions at http://www.codeplex.com/SLK/ but I am still looking.

Do you know of any other .NET-based SCORM-compliant software?

Please advise.

Thank you.

-- Mark Kamoski

Flat View: This topic has 1 reply on 1 page
Topic: I'm a Xbox Previous Topic   Next Topic Topic: Visual Studio 2010 and .NET Framework 4 Plans Unveiled

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use