Title: Run Time
1Run Time
- E-learning SCORM standard
2bookshelf SCORM
SCORM_1.2_Overview.doc
SCORM_1.2_CAM.doc
SCORM_1.2_RunTimeEnv.doc
3contributors
- Key Contributing Editors (ADL)
- Ron BallJeff KrinockWilliam CaponeLori
MorealliJeff FallsDouglas PetersonDexter
FletcherJonathan PoltrackAlan HoberneyChris
SnyderPaul JesukiewiczSchawn ThroppKirk
JohnsonBryce WalatMary KraulandJerry West - Partial List of Contributors
- Alliance of Remote Instructional Authoring
Distribution - Networks for Europe (ARIADNE) (http//www.ariadne
-eu.org/) - Erik Duval
- Eddy Forte
- Florence Haenny
- Ken Warkentyne
- Aviation Industry CBT (Computer-Based Training)
Committee (AICC) (http//www.aicc.org/) - Jack Hyde
- Bill McDonald
- Anne Montgomery
- Institute of Electrical and Electronics Engineers
(IEEE)Learning Technology Standards Committee
(LTSC) (http//ltsc.ieee.org/) - Mike Fore
- Wayne Hodgins
- IMS Global Learning Consortium, Inc.
(http//www.imsglobal.org/) - Thor Anderson
- Steve Griffin
4Run Time Environment
LMS
utente
Materiale didattico standard
5Run Time Environment
LMS
Materiale didattico standard
6overview
- Scopo di SCORM è linteroperabilità dei
materiali didattici su diverse piattaforme (
Learning Management Systems, LMS). - perchè ciò possa avvenire, ci devono essere
- un metodo comune per avviare i materiali
didattici, Launch - un metodo comune per comunicare con la
piattaforma Application Program Interface (API)
e - Un linguaggio predefinito che sia la base delle
comunicazioni. Data Model
7(No Transcript)
8Launch
- E responsabilità dellLMS, in base alla content
structure, lanciare la giusta risorsa (Asset o
SCO) - In SCORM 1.2 non è definito rigidamente il
meccanismo gerarchico di lancio può essere
fornito un elenco di link riferiti ad ogni
risorsa (At this time the SCORM does not address
the standardization of sequencing and navigation
between learning resources) - SCORM 1.3 simple sequencing
9Requisiti del lancio Asset
Data model
API
launch
- È sufficiente che siano lanciati attraverso il
protocollo HTTP, - non è richiesta comunicazione con lLMS (no API)
10Requisiti del lancio SCO
Data model
API
launch
- Può essere lanciato un solo SCO alla volta
- Uno SCO non può lanciare un altro SCO
- Lo SCO può solo essere lanciato dallLMS
- LLMS deve lanciare lo SCO in una finestra o in
un frame dellLMS che deve esporre le API come
oggetto DOM - E responsabilità dello SCO cercare
ricorsivamente lAPI Adapter e quindi iniziare la
comuniczione
11API
- Le API sono un set predefinito di funzioni su cui
lo SCO può fare affidamento - Un API adapter è un insieme di software che
espone queste funzioni allo SCO - Non è responsabilità degli autori di materiali
sapere come sono costruite le API, ma solo quella
di usarle - Un materiale didattico, attraverso le API, può
leggere e scrivere dati - La comunicazione è sempre iniziata dallo SCO
12Tipi di funzioni
- Execution State
- LMSInitialize()
- LMSFinish.
- State Management
- LMSGetLastError()
- LMSGetErrorString(errornumber)
- LMSGetDiagnostic(parameter)
- Data Transfer
- LMSGetValue(data model element)
- LMSSetValue(data model element, value)
- LMSCommit("").
13Esempio di funzione LMSInitialize
- Description This function indicates to the API
Adapter that the SCO is going to communicate with
the LMS. It allows the LMS to handle LMS
specific initialization issues. It is a
requirement of the SCO that it call this function
before calling any other API functions. - Syntax LMSInitialize(parameter)
- Parameter "" An empty string must be passed for
conformance to this standard. Values other than
"" are reserved for future extensions. - Return Value String representing a boolean.
- "true" result indicates that the
LMSInitialize("") was successful - "false" result indicates that the
LMSInitialize("") was unsuccessful - If a return value of "false" is returned, then
this signifies to the SCO that the LMS is in an
unknown state and that any additional API calls
will not be processed by the LMS. - Example
- var result LMSInitialize("")
- if (result "false")
-
- // Do some error handling
-
- else
-
- // continue with the execution of the SCO
-
- The SCO tells the API Adapter that the content
wants to establish communication with the LMS. A
typical return value is "true".
14API Transizioni di stato
SCO Lanciato Da LMS
inizializzato
LMSInitialize()
LMSFinish()
finito
Non inizializzato
- Lo SCO può chiamare
- LMSGetValue
- LMSSetValue
- LMSGetLastError
- LMSGetErrorString
- LMSGetDiagnositc
- LMSCommit
- LMSFinish
- Solo se lLMS restituisce false lo SCO può
chiamare - LMSGetLastError
- LMSGetErrorString
- LMSGetDiagnositc
Responsabilità dello SCO trovare le API e
lanciare LMSinitialize
15Esempi error code usage
(continua)
16API adapter resonsabilità dellLMS
- L LMS deve lanciare lo SCO in una finestra o
frame che siano dipendenti (figli) della finestra
dell LMS che contiene lAPI Adapter. - LAPI Adapter deve essere fornito dall LMS.
- Lunico meccanismo di interazione supportato è
attraverso chiamate ECMAScript (JavaScript). - L API Adapter deve essere disponibile tramite
oggetto DOM con nome API.
17API adapter resonsabilità dello SCO
- Cercare le API
- Chiamare, al minimo, le funzioni LMSinitialize()
e LMSfinish()
18Data Model
- Lo scopo è fornire a differenti SCO la
possibilità di comunicare in modo comune verso le
piattaforme (es. punteggio ottenuto) - E espandibile in futuro verranno inseriti nuovi
valori - Si basa su AICC CMI Data Model (ridotto)
19Data Model regole per i nomi
- La prima parte del nome indica il modello di
riferimento (CMI nel nostro caso) - Questo permette future implementazioni
- Reserved keyword
- Precedute da _underscore
- _version, _children, _count
- Tutte le matrici sono a partire da 0
- Tutti i nomi sono case sensitive
- Ogni SCO ha accesso solo ai propri dati, non a
quelli di altri SCO
20Data Model elementi
- Alcuni obbligatori, altri opzionali
- Tutti gli elementi obbligatori devono essere
supportati dallLMS - Tutti gli elementi sono opzionali per gli SCO
- Lo SCO è obbligato solo a chiamare
LMSInitialize() e LMSfinish(), non sono obbligati
a leggere (LMSGetValue()) o scrivere
(LMSSetValue()) dati - Nota di SCORM gli SCO possono essere piccoli
(very, very small) e non essere progettati per
comunicare nel dettaglio. Tuttavia, se devono
comunicare, devono poterlo fare in qualsiasi LMS
allo stesso modo
21cmi.core obbligatori per ogni LMS
- cmi.core_children per determinare quali elementi
del core sono supportati dalla piattaforma - cmi.core.student_id per identificare
univocamente uno studente - cmi.core.student_name student official name
- cmi.core.lesson_location identifica lultima
posizione dello studente - cmi.core.credit indica se lo studente sta usando
lo SCO per avere crediti (sì/no) - cmi.core.lesson_status passed, completed,
failed, incomplete, browsed, not attempted - cmi.core.entry indica se lo studente è gia stato
in questo SCO (ab initio, resume) - cmi.core.score._childrenper determinare quale
score children è supportato dallLMS - cmi.core.score.raw a 0 al primo accesso, poi
viene incrementato - cmi.core.score.max il massimo punteggio
ottenibile - cmi.core.score.min il minimo puntggio ottenibile
- cmi.core.total_time tempo totale passato dallo
studente sulla lezione - cmi.core.lesson_mode indica tre modalità di
utilizzo al lancio browse, normal, review - cmi.core.exit indica la ragione per cui lo
studente è uscito dallo SCO (timeout, suspend,
logout) - cmi.core.session_time tempo passato dallo
studente nella corrente sessione
22SCO
LMS
- Scelta dello SCO da lanciare, in base a
- Richiesta dellutente
- Automatica
- Si usano le informazioni di content structure
allinterno del content aggregation
Ricerca delle API
Chiamata LMSInitialize()
opzionale
Chiamata LMSLaunch_data(), se supportata dallo
SCO
- Analisi di cmi.core.lesson_mode
- è prevista la scelta da parte dellutente?
- opportuni cambiamenti a cmi.core.lesson_mode
Chiamata LMSGetValue(cmi.core.entry) per
riportare lo studente nellultima posizione
Inizializzazione di cmi.core.entry
Chiamata LMSGetValue(cmi.core.lesson_mode) per
identificare la modalità duso della lezione
Lancio dello SCO
- Messa a disposizione delle API
- LMSInitialize
- LMSGetValue
- LMSSetValue
- LMSGetLastError
- LMSGetErrorString
- LMSGetDiagnositc
- LMSCommit
- LMSFinish
Chiamata LMSSetValue() con qualsiasi dato si
voglia registrare
API Data Model
Chiamata LMSCommit()
Chiamata LMSFinish()
Settaggio mastery score
23(No Transcript)