Come si crea un contenuto SCORM?
Da Wikipedia, l'enciclopedia libera.
| Table of contents |
|
2.1 Usare un plug-in di Dreamweaver: lo scorm runtime wrapper |
Una breve introduzione allo standard SCORM ...
Lo scopo di questa pagina è di aiutare a costruire i propri corsi interattivi usando lo standard SCORM in modo che essi possano funzionare su qualsiasi piattaforma compatibile con lo Scorm 1.2 quale Claroline 1.5.
Vi sono diversi livelli di compatibilità dello SCORM 1.2, e quel che viene discusso in questa sede riguarda solo il livello minimo di compatibilità con lo Scorm 1.2.
Un corso interattivo completo compatibile con lo Scorm 1.2 consiste di un file zippato che contiene tutti i file necessari alle diverse lezioni del corso. Alla radice di questo file zippato deve essere presente anche un file molto importante, chiamato imsmanifest.xml. Il corso deve essere organizzato anche in varie « lezioni » o « moduli » (o qualsiasi altra definizione si voglia dare per separare le unità di apprendimento all'interno del corso). Questi sono chiamati SCO' (che significa Sharable Content Object) nello standard SCORM. I due passi importanti che devono essere conosciuti per procedere alla creazione sono:
- Come fare gli SCO.
- Come assemblarli in un unico pacchetto e costruire il file imsmanifest.xml ad essi associato.
Queste due fasi possono essere fatte in modi diversi, e noi cercheremo di spiegare e dare alcuni suggerimenti per poterli fare da soli. Esistono anche alcune soluzioni private (ma in genere alquanto costose) che permettono di fare questi due passi attraverso un editor WYSIWYG che permette di costruire i pacchetti e importare i contenuti come pagine flash o html. Queste le impacchettano e inseriscono il codice in javascript necessario a far funzionare i contenuti come SCO. Consultate la sezione Link a strumenti esistenti di questo articolo per avere maggiori informazioni su questi software.
Costruire i propri SCO
Una singola unità, lezione o modulo in un corso vengono definiti uno SCO (Sharable content object) nel gergo Scorm. Uno SCO può comprendere molte cose diverse: può essere un quiz interattivo oppure delle pagine web in HTML, Flash,... Uno SCO è una entità capace di comunicare con il LMS (Learning managment system) usando alcune funzioni speciali (Javascript, ECMAscript) ben definite nello Scorm. In questo manuale vedremo come costruire alcune entità fondamentali di quel tipo senza dover scrivere alcun codice. Sebbene sia possibile farlo con altre tecnologie noi prenderemo in considerazione solo come trasformare pagine HTML in SCO.
Usare un plug-in di Dreamweaver: lo scorm runtime wrapper
Questa possibilità richiede l'uso di Dreamweaver MX, una demo del programma è disponibile sul sito web di Macromedia: http://www.macromedia.com. Sarà anche necessario installare il plug-in Scorm Runtime Wrapper anch'esso disponibile sul loro sito e freeware. Visitate il sito di Macromedia per capire come effettuare l'installazione. Dopo aver fatto questo aprite le vostre pagine HTML con Dreamweaver.
Trasformare una pagina singola HTML in SCO
Fare un nuovo SCO con una sola pagina HTML è molto facile se si usa il plug-in scorm runtime wrapper. Dopo aver aperto la pagina con Dreamweaver, selezionate i « comandi » menu e poi « SCORM Runtime wrapper ». Dovreste vedere la finestra di pop-up seguente:
screenshot missing
Set Status onLoad: Questa opzione imposta lo stato della lezione (SCO) con il valore selezionato quando la pagina viene caricata. Noi raccomandiamo di impostare lo stato a « Incomplete » come nella cattura di schermo sopra.
L'opzione Trigger for LMSFinish permette di decidere quale evento causerà la fine della lezione. Raccomandiamo di scegliere il pulsante 'Finish lesson' che lo aggiungerà in cima alla vostra pagina HTML, ma potete metterlo ovunque vogliate sulla pagina.
Set Status Based on trigger: Questa opzione permette di decidere quale stato sarà attribuito alla lezione quando essa termina. Raccomandiamo di impostarla come « Complete » come nella cattura di schermo sopra.
Per uno SCO di una sola pagina HTML si raccomanda di non cambiare le opzioni avanzate di default. Le tre caselle dovrebbero rimanere vuote.
Quando avete finito cliccate su OK. Ciò inserirà nella pagina HTML alcune funzioni Javascript usate dallo Scorm. Salvate la pagina, ora questo SCO è pronto per essere messo in un pacchetto. Se per la vostra pagina usate file collegati quali immagini o file Javascript, fate attenzione a usare link relativi nella pagina e usarli anche per la fase di impacchettamento.
Trasformare più pagine HTML in SCO
E' anche possibile costruire uno SCO con più di una pagina HTML. A seconda della definizione dello standard Scorm vi sono molti modi diversi per procedere a questa operazione. Per fare le cose semplici vi mostreremo una soluzione semplice per farlo, usando anche questa volta il plug-in di Dreamweaver e senza dover modificare nulla nel codice Javascript generato con il plug-in. Ma, ovviamente, questo non è l'unico modo per farlo. Supponiamo che avete alcune pagine nella vostra lezione. Ci deve essere una pagina iniziale della lezione. Per questa pagina procedete come nell'ultimo capitolo, ma impostate le opzioni avanzate nel modo seguente:
screenshot missing
Disabilitate l'opzione LMSFinish per la pagina iniziale. Le altre pagine della vostra lezione devono essere normalmente accessibili dalla pagina iniziale. Man mano che l'utente naviga in queste pagine egli arriverà infine a una pagina che finisce la lezione/SCO. Per questo tipo di pagina dovete riutilizzare lo Scorm wrapper e impostare le opzioni come segue:
Spuntate l'opzione avanzata « disable LMSInitialize ». Impostate l'opzione Status Based on Trigger su « Complete ».
Nota. se avete più di una pagina che può essere una pagina finale della lezione, potete impostare stati differenti a seconda del fatto che l'arrivo in questa pagina comporta che l'utente ha completato o non ha completato la lezione. Fate attenzione che dovete avere almeno una pagina di fine che permette all'utente di terminare la lezione con lo stato di « Complete » oppure di « Passed ». Ciò è obbligatorio per fare in modo che lo SCO si comporti correttamente su una qualsiasi piattaforma compatibile SCORM poiché deve essere possibile finire lo SCO correttamente. Per tutte le altre pagine in mezzo (che non iniziano o non finiscono la lezione) NON si deve modificare nulla nel wrapper. Devono rimanere pagine navigabili come normali pagine web.
Quando avete terminato ciò, lo SCO a pagine multiple è pronto ad essere messo in un pacchetto. Fate attenzione a usare solo link relativi tra le pagine e per i file di immagine. Le sottocartelle delle immagini o i file Javascript, per esempio, possono essere usati come sono e non è necessario cambiarli per essere usati nello SCO.
Scrivere le proprie chiamate Javascript allo Javascript per costruire SCO e monitorare le informazioni dell'utente
Se avete familiarità con il codice HTML e Javascript è anche possibile scrivere da sé le interazioni dello SCO. In questo capitolo spiegheremo le caratteristiche principali dello Scorm che dovete conoscere per scrivere i vostri SCO interattivi e daremo alcuni suggerimenti ed esempi.
Usare le funzioni API Javascript
Con lo Scorm, il dialogo tra LMS (Learning Managment System, per esempio il server web come Claroline) compatibile con lo SCORM e lo SCO (le vostre pagine) è fatto in Javascript, usando alcune funzioni specifiche di un oggetto Javascript chiamato API. E' responsabilità dell'LMS per creare questo oggetto e le sue funzioni collegati in Javascript. Ma è responsabilità del vostro SCO trovare questo oggetto e usare le funzioni. Tutto quel che dovete sapere è:
- Come trovare l'oggetto API?
- Quale funzione di questo oggetto usare e per cosa?
Trovare l'oggetto API è piuttosto semplice: potete semplicemente aggiungere il codice Javascript seguente all'inizio della vostra pagina iniziale dello SCO:
<script type="text/javascript" language="JavaScript">
var API = null; /* SCORM API */
/* look up through the frameset hierarchy for the SCORM API */
function findAPI(win)
{
while ((win.API == null) && (win.parent != null) && (win.parent != win))
{
win = win.parent;
}
API = win.API;
}
/* init the SCORM API */
function initAPI(win)
{
/* look for the SCORM API up in the frameset */
findAPI(win);
/* if we still have not found the API, look at the opener and it's frameset */
if ((API == null) && (win.opener != null))
{
findAPI(win.opener);
}
}
</script>
Nota. Potete metterlo anche in un file .js di modo che possa essere riutilizzato per altri SCO.
Poi, modificate l'evento onload in <body> per chiamare questa funzione:
<body onload="initAPI(window)">
Lo SCORM API ora viene usato correttamente per dire all'LMS che lo SCO viene lanciato quando la pagina iniziale viene visitata. Vi sono altre funzioni dello SCORM API che dovete usare:
API.LMSInitialize("")
API.LMSFinish("")
API.LMSGetValue(dataElement)
API.LMSSetValue(dateElement, value)
Esistono altre funzioni negli standard Scorm; fate riferimento al sito web ufficiale dello Scorm per avere maggiori informazioni al riguardo: http://www.adlnet.org.
La funzione LMSInitialize deve essere chiamata quando inizia lo SCO. In effetti, quando l'utente carica la prima pagina dello SCO.
La funzione LMSFinish deve essere chiamata quando finisce lo SCO. Ciò può essere scatenata da un evento onunload dell'ultima pagina dello SCO oppure aggiungendo un pulsante « done » o « end » sull'ultima pagina (o pagine) del vostro SCO. Questa implementazione dipende da voi, ma dovete sapere che ognuno di queste soluzioni hanno una performance migliore o peggiore in alcuni lettori Scorm compatibili, a seconda di come questi implementano il Javascript API.
Vi sono diversi elementi di dati che potete ottenere o impostare usando le funzioni LMSSetValue e LMSGetValue dell'API. Non spiegheremo tutte le funzioni ma vi mostreremo alcune di quelle che riteniamo interessanti per poter tracciare alcune informazioni utili sui progressi dell'utente nei vostri SCO.
Gli elementi API che è possibile usare
elemento cmi.core.score.raw: registra il punteggio dell'utente in questa lezione. Deve essere un valore normalizzato tra 0 e 100. (%)
elemento cmi.core.lesson_status: registra lo stato della lezione di questo utente; i valori permessi sono: passed, failed, completed, incomplete e browsed.
Una buona pratica di utilizzo di questo elemento nel proprio codice Javascripts potrebbe essere: Impostare questo elemento come « browsed » o « incomplete » quando inizia la lezione (nella funzione init, per esempio):
API.LMSSetValue("cmi.core.lesson_status", "incomplete");
Impostarlo come « passed » o « failed » quando l'utente arriva in una delle pagine finali della vostra lezione, a seconda del punteggio che ha ottenuto nei test e nelle domande della lezione.
API.LMSSetValue("cmi.core.lesson_status", "passed");
Daremo due esempi di informazioni di tracciamento che si possono usare piuttosto facilmente nei vostri Javascript. Per ulteriori informazioni sull'elemento di tracciamento usabile con lo standard Scorm fate riferimento alla documentazione ufficiale presso http://www.adlnet.org.
Tracciare il punteggio dell'utente in uno SCO
Supponiamo che la vostra lezione/SCO contenga alcuni esercizi, quiz, ecc. e che il risultato finale sia registrato in una variabile Javascript chiamata totalScore. Potete riferire questo dato al server con l'elemento dati « cmi.core.score.raw ». Quando l'esercizio viene terminato aggiungete la chiamata Javascript
API.LMSSetValue("cmi.core.score.raw",totalScore );
Il posto esatto dove inserire questa chiamata dipende da come avete organizzato le vostre pagine HTML con i quiz. Potrebbe stare sull'evento scatenato quando viene premuto un pulsante « submit » (usando l'evento onClick in Javacript) come pure sull'evento onload dell'ultima pagina del vostro test che mostra le risposte corrette, per esempio. La decisione è solo vostra; tutto quel che dovete sapere è che il punteggio sarà registrato veramente sul server solo quando viene eseguita questa chiamata e che viene fatta una chiamata a LMScommit e/o LMSfinish (ciò dipende molto dal tipo di LMS usato).
Tracciare il tempo trascorso dall'utente in uno SCO
Potreste desiderare di monitorare il tempo impiegato dall'utente nelle vostre lezioni. Qui sotto riportiamo una soluzione in Javascript da usare con lo Scorm:
- Impostate il tempo trascorso dall'utente nella lezione ogni qualvolta viene chiamata la funzione LMSFinish, chiamandola appena prima di LMSsetValue come segue:
var myTime = computeTime();
API.LMSSetValue("cmi.core.session_time",myTime );
API.LMSSetValue("cmi.core.lesson_status", ScormStatus);
API.LMSFinish("");
- Dichiarate le funzioni Javascript seguenti:
function startTimer()
{
startDate = new Date().getTime();
}
function computeTime()
{
var formattedTime = "00:00:00.0";
if ( startDate != 0 )
{
var currentDate = new Date().getTime();
var elapsedSeconds = ( (currentDate - startDate) / 1000 );
formattedTime = convertTotalSeconds( elapsedSeconds );
}
return formattedTime;
}
function convertTotalSeconds(ts)
{
var Sec = (ts % 60);
ts -= Sec;
var tmp = (ts % 3600); //# of seconds in the total # of minutes
ts -= tmp; //# of seconds in the total # of hours
if ( (ts % 3600) != 0 ) var Hour = "00" ;
else var Hour = ""+ (ts / 3600);
if ( (tmp % 60) != 0 ) var Min = "00";
else var Min = ""+(tmp / 60);
Sec=""+Sec
Sec=Sec.substring(0,Sec.indexOf("."))
if (Hour.length < 2)Hour = "0"+Hour;
if (Min.length < 2)Min = "0"+Min;
if (Sec.length <2)Sec = "0"+Sec;
var rtnVal = Hour+":"+Min+":"+Sec;
return rtnVal;
}
La funzione startTimer() deve, in questo caso, essere chiamata all'inizio della lezione (nello stesso momento della funzione LMSinitialize()), quando viene caricata la prima pagina o ogni volta che pensate che la lezione abbia realmente inizio a seconda del contenuto della lezione o del tempo che deve essere conteggiato.
Un esempio completo: un Quiz SCO a pagina singola con tracciamento del punteggio
In preparazione...
Creare il Manifesto SCORM
Un manifesto SCORM è un file in formato XML (imsmanifest.xml) che descrive un corso. Il file manifesto fornisce metadati quali il titolo e la descrizione del corso, la sequenza degli SCO, il nome del file di lancio per ogni SCO e un elenco di tutti i file che compongono il corso. Manifest Maker (http://www.e-learningconsulting.com/products/index.html) è un plug-in gratuito di Dreamweaver che potete usare per creare file manifesto SCORM.
Link a strumenti esistenti
strumenti gratuiti:
- Il Reload Editor e il Reload SCORM player: http://www.reload.ac.uk Questi strumenti sono applicazioni open source in Java:
- Il Reload Editor: questo strumento permette di creare e modificare un file IMS manifest attraverso una interfaccia grafica conveniente al fine di visualizzare il suo contenuto.
- Il Reload SCORM player: Questo strumento permette di visualizzare i pacchetti SCORM 1.2; potete così vedere facilmente il comportamento del contenuto e visualizzare cosa succede con lo SCORM API.
- Il progetto EClass open source (licenza BSD): http://www.eclass.net Questo strumento permette di costruire pacchetti IMS con pagine HTML, ma non ancora con SCORM interattivo e nemmeno come un archivio usabile e uploadabile direttamente in Claroline. Versioni future potrebbero integrare queste opzioni.
- Il progetto eXe: un progetto open source promettente, questo strumento permette di creare contenuti strutturati (percorsi didattici con quiz, ecc.) ed esportarli in formato SCORM. I contenuti esportati sono perfettamente utilizzabili da Claroline. http://exe.cfdl.auckland.ac.nz
altri:
- ReadyGo webcourse builder: http://www.readygo.com permette di creare contenuti SCORM interattivi con html/javascript.
- Un plug-in Dreamweaver gratuito è disponibile presso: e-Learning Course Development Kit (http://www.e-learningconsulting.com/products/index.html) Con esso gli sviluppatori HTML possono creare SCO.
- E-Doceo E-learning maker: http://www.e-doceo.fr Questo strumento permette di costruire contenuti interattivi in Shockwave o Flash che possono essere esportati come pacchetti SCORM.
- Lectora
- ...
