We have implemented simple LMS based on Basic Web Player which is part of SharePoint Learning Kit. Now we are looking for way to be able to set SCORM in read only, eg for teacher review or parent.
Is there any SCORM data model option or options which can be set to disable it's content for editing?
You don't simply develop a SCORM API
I have been in the process of developing a LMS-RTE and a SCO for roughly a year of constant refinements and extensions. The quintessential truth I have learned is that almost everybody does a terrible job.
The SCORM standard is, at best, a little loose... Any feature present in the SCO <-> RTE interactions must be mirrored on both sides. If the LMS-Vendor ads a review feature every SCO has to implement it too. There is no way to force behavior on the SCO from the LMS side, since too many fields are optional. Even worse there is no way to automatically inspect a SCO and determine if a certain field was used and the SCO behaved as expected.
So theoretically cmi.mode preset to review should do the trick, but almost every content vendor I have encountered ignores this setting. I think everything you can get out of here is the answer: Yes it's possible, but only if the SCO supports this feature.
I personally found found logging of SCO <-> RTE communication the best solution to determine wich behavior the SCO could possibly be capable of. If you log all get and all set requests to different logs and log wich properties are touched by the SCO, you will get a idea of what the SCO can do.
I think you can use cmi.mode data model element. Could you explain more, please?
Related
I've a couple training courses that I sometimes provide to clients. They are both a few text pages + 20-25 videos + a link out to take an exam in my LMS.
My preference has always been to provide embed links to the videos, as it allows us to easily push out updates. Then the client embeds that in their own LMS / training package (however they want). But two clients are requesting the courses are delivered in a SCORM package to be delivered on their LMS.
I'm familiar with the authoring tools like Captivate and Storyline Articulate. I'm not a huge fan as they feel like canned powerpoints. I'm also not sure that's what the client wants.
Two questions:
(1) My understanding is I can package a SCORM file manually. How does that content present itself when put into an LMS? Would it present slide-by-slide in a single panel (similar to how I see storyline work) or is it distributed based on how the LMS is set-up?
(2) Would doing it manually be advantageous in any way?
Couple things to watch out for -
Simply zipping your content folder with a imsmanifest.xml maybe not put the files in the root of the zip like the LMS may possibly expect. Instead you end up with folder/imsmanifest.xml vs /imsmanifest.xml. Something to watch out for, but some LMS's do not care.
You can manually edit the imsmanifest.xml, but I'd work to validate it. Performing this task in editors that do not provide feedback can lead to validation issues.
Content Packaging is part of it, but the LMS may have its own subset of additional options like how to launch the content (popup, new window/tab, or in a IFRAME). They may have additional scoring/attempts and other settings outside of what the SCORM CAM provides.
Aside from familiarizing yourself with the IMS Manifest format and the above cautionary items you can do do this without to many hiccups.
There is a packager on https://cybercussion.com if you'd like to demo that after you have prepared your Shareable Content Object.
GL
I'm developing Flash module with AS3 now. I need to package it with SCORM 1.2.
I want to track percentage of the user when accessing my flash module. My flash module consist of single file that loads swfs. Let's say I should loads 10 swfs. When the user load 1-5, i hope it tracked as 50%.
Is it possible to do with SCORM 1.2?
I'm fairly familiar with flash but new to SCORM. I've stumble upon the Philip Hutchison's tutorials and several SCORM 1.2 document for from ADL for several days. So far haven't manage a success.
Since SO doesn't allow someone with as little rep as I to comment and ask for clarification, I'm going to have to go by assumption for some of this. The short answer is no. However, it depends what you plan to do with that progress percentage in the end.
If it is to be used in some sort of report or display within an LMS, you'll need to use an official element for just such a thing, and hope your LMS can use it. Unfortunately, SCORM 1.2 won't cut it for you there. In SCORM 2004, however, you can utilize the "cmi.progress_measure" element. See section 4.2.18 in the SCORM 2004 4th Edition RTE specification. Note: It is common to see completion percentage in an LMS related to multi-SCO packages, where the percentage of completed SCO's within a package is displayed - especially in the case of SCORM 1.2.
If the requirement is to simply store the current slide number or total number of slides viewed for the sole purpose of having this percentage value available to the SCO itself, you can simply store and retrieve this value using the "cmi.suspend_data" element in either 1.2 or 2004.
Now, using Flash's ExternalInterface to communicate between Flash and Javascript is a different question entirely. And so is how to utilize the SCORM API once you have the rest in place. Again, I cannot comment to request clarification, so I cannot say for certain what the question is exactly.
Some SCO set the cmi.objectives.XXx. Other content does not. If I look inside the imsmanifest.xml files, does it tells me if the SCO is setting the cmi.objectives.
No, you can only tell what objectives the content is going to report by waiting for them to come in during runtime. In SCORM 2004, you can look to see if any objectives are defined in the manifest, but the content is still free to report additional objectives.
The best way to find the list of objectives reported by the content is probably to run it through SCORM Cloud and then either look at the debug log or the registration state to see what was reported.
We want a LMS(coded in ASP.NET/vb.net) which is able to import SCORM packages & display it to learner for viewing content. I am totally new to SCORM and have been shifted to this project. I want to know how can I access SCORM Assessment object's (Test) result, like Learner ID, passed/fail, time.
Can you please guide me what will I need to implement in ASP.NET code to accomplish my goal ?
Task that I have done so far is,
Reading a manifest zip file, unzipping the file and get all information from the file(content name,description,items and launching page) and when user clicks on a particular course a pop up window is launching the page.
I eagerly want to know what I can do next to communicate with the LMS with the APIs. Shall I need to develop my own LMS to get the result,If there is a quiz which is running, all I need to know is the no of questions attempted by the user, whether the user is pass or fail and I need to store all information in the database for individual user so that I can review the result afterwards.
So the task remaining.
Tracking mechanism to deliver the content.
SCORM/LMS sequencing engine that controls the navigation between parts of SCORM conformant course.
Please help.
SLK at codeplex provides a good starting point. However, if you are truly wanting to provide an in-house written SCORM play that is fully compliant, you have a major task ahead of you. In essence there are three party you need to fully develop:
CAM - the unzipping process, which it sounds like you have already achieved.
RTE - the javascript host for SCORM, providing the 8 specified methods. Behind this you also need to implement the SCORM object model, which SLC does help with. If you have implemented all of this, then there should be data entries on the data model that indicate completion etc.
SN - the sequencing and navigation processing. This is significantly the most complex part. I am still in the process of trying to implement this, using SLC, and it is hard. It is the completion of this that will potentially give you more information that will enable you to know what has been done.
it is also worth looking at scorm.com, who are a consultancy, but provide a lot of useful information about the scorm standard.
That is true. SCORM is one of these stadarts where you can implement as little as possible. But you will need some of Javascript with a Backend-Script (JSON to the rescue) so you can track the scorm data, and save it your database.
But let me tell you this: This is the easiest task! Making your own course-creator is a whole other beast.
I am working on a design spec for a new application that will be heavily workflow driven.
Before I re-invent the wheel, is there a decent lightweight workflow engine that plugs into ASP.NET already around?
Basically, I'm looking for something that handles moving through a defined set of workflow pages while handling state management automatically.
If this isn't around already, I'll definitely try to abstract the engine from my app and put it on codeplex, as it would be really handy.
Any suggestions?
Note: .NET 2.0, so no WWF, though I think WWF is overkill for my needs.
EDIT: Seems like there is a legitimate need for this, and there isn't a product out there...So I might build this.
Here is what I'm picturing:
Custom Page class called WebFlowPage
All WebFlowPage's are registered in a Workflow mapper.
Each WebFlowPage has some form of state object.
A HttpHandler handles picking the appropriate WebFlowPage based upon the workflow, and populating it from the state object.
Is the workflow dynamic, or static?
If the workflows are simple, you could roll your own workflow engine.
In certain situations, it can be fairly simple, and just a couple of data tables to handle the rules, processing and state.
Alot of workflow engines are built for large scale processing (credit card applications, for example). For small scale, you should at least consider your own, which would eliminate the overhead and dependency of/on an engine.
Not sure exactly what you wish to do here, but Ra-Ajax can easily keep state at least if you want your solution ajaxified...
For reference purposes you might want to check out the Ajax Calendar sample or even the (banalistically implemented) Ajax Wizard sample. It surely beats the hell out of doing it with JavaScript...
And every time you "do something" you're in "server-land" which means you can store temporaries all the time as you wish...
The project is LGPL
(PS!
Yes I do work with it)
Building a custom workflow engine is not trivial, although it may seem simple at first. We've tried that. It depends a lot on the complexity of the logic you need it to cover.
Given the current state of the Windows Workflow Foundation and the lack of another framework that abstracts the workflow concepts, I would choose WF if you need complex logic, asynchronous handling or branches in your workflows.
Tracking your state through the workflow can be accomplished by carrying some kind of xml payload or storing the state in a database,
If your workflow is actually a sequential set of forms that need to be filled in by the user, tracking the steps and guiding the user to the next step can be accomplished with some simple custom solution.
You could take a look at the InRule engine too.
Also, there is nxBRE.
These too are mostly used for business rules.
InRule is proprietary, whereas nxBRE supports RuleML (the defacto standard).
You might need to make your own implementation for the pages, and use the rule engine as the "structure".
At this moment, I know that Sharepoint 2007 supports page workflows (using WF), but this would imply using .NET Framework 3 and deployng sharepoint.
My suggestion would be to use whatever you find more light and easier to use.
I think the term "workflow" is very open to interpretation. I have been working lately with a type of workflow that is very different from what you seem to be describing. Mine is a state machine based workflow where the state of a particular record determines what actions a user can take to move the record to the next step in the business process. So "workflow" in this instance means how the record flows from one state to another until it is finally completed.
Your usage of workflow seems to have more to do with moving a user from one page to another in a linear multi-step process, which is a completely different use case (correct me if I'm wrong). So before coming up with a general purpose "workflow" engine that anyone could use, I would recommend defining a little bit better exactly what types of situations this system would handle.
I've been using this for a few months http://objectflow.codeplex.com. Not asp specific but it may fit your needs
While browsing the web for some workflow & BPM resources, I found the following project: NetBPM. Unfortunately, the project seems to be stopped.
I don't think there is a workflow engine that will automatically handle state for you, but if you are moving through a set of pages like a process such as checkout on an ecommerce site, perhaps the ASP.NET wizard control could help you?
There are few workflow options. "Aspose" and "Skelta" are the offers I´m evaluating.
Fábio
you can use WorkFlow Engine, just read the document and run the Demo.
all of the features you need for a dynamic workflow engine they added in there.