成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SCORM標(biāo)準(zhǔn)應(yīng)用編程接口(API)和數(shù)據(jù)模型(Data Model)學(xué)習(xí)及總結(jié)

ThinkSNS / 2384人閱讀

摘要:需要對每個(gè)用戶的每個(gè)內(nèi)容對象維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)。并沒有直接和相連,所以是將數(shù)據(jù)由暫存的內(nèi)存中取出。采用實(shí)現(xiàn)的可用進(jìn)行數(shù)據(jù)提交。記錄的完成情況,包括未嘗試未學(xué)習(xí)未完成,已完成。

簡介

SCORM定義了一個(gè)網(wǎng)絡(luò)化學(xué)習(xí)的“內(nèi)容聚合模型”(Content Aggregaion Model)和學(xué)習(xí)對象的“實(shí)時(shí)運(yùn)行環(huán)境”(Run-time Environment)。
簡單說,它是為了滿足對網(wǎng)絡(luò)化學(xué)習(xí)內(nèi)容的高水平要求而設(shè)計(jì)的模型,參考了一系列相關(guān)技術(shù)規(guī)范。
這個(gè)模型由內(nèi)容模型(Content Model)、元數(shù)據(jù)(Meta-data)和內(nèi)容包裝(Content Packaging)三部分組成。
Scorm RTE定義了通用的內(nèi)容對象運(yùn)行機(jī)制,包括Launch、API以及Data Model。
Launch: 定義了內(nèi)容對象的發(fā)布,描述了如何啟動(dòng)一個(gè)Scorm內(nèi)容對象(Asset和SCO兩種),并確立了內(nèi)容對象和LMS之間的通信機(jī)制。
API: 定義了LMS與內(nèi)容對象之間的通信API,使得內(nèi)容對象在需要時(shí)通過API與LMS進(jìn)行交互存取數(shù)據(jù)。API會(huì)將獲得的數(shù)據(jù)模型實(shí)例存儲(chǔ)在用戶端的內(nèi)存中(如一個(gè)JavaScript對象),并在需要時(shí)將該數(shù)據(jù)發(fā)送至LMS平臺(tái)。
Data Model: 描述了跟蹤用戶學(xué)習(xí)通用數(shù)據(jù)模型,即內(nèi)容對象在與LMS進(jìn)行通信時(shí)所依賴的數(shù)據(jù)結(jié)構(gòu),包括用戶的學(xué)習(xí)時(shí)間、完成狀態(tài)、成績等元素。LMS需要對每個(gè)用戶的每個(gè)內(nèi)容對象維護(hù)一個(gè)Data Model數(shù)據(jù)結(jié)構(gòu)。

API提供了內(nèi)容對象與LMS通信的接口,而DM則描述了通信所使用的數(shù)據(jù)模型,API+DM使得內(nèi)容對象在不同的LMS系統(tǒng)中具有了通用性。

更詳細(xì)的介紹請參考scorm百度百科和SCORM維基百科。

下面時(shí)自己查閱資料,歸納整理的SCORM標(biāo)準(zhǔn)中API接口和Data Model參數(shù)詳解,以便各位同行開發(fā)時(shí)查閱使用,也是自己學(xué)習(xí)過程的總結(jié)記錄,不正確之處請大家指正。

應(yīng)用編程接口(API)

在SCORM標(biāo)準(zhǔn)中,SCO(SharableContentObject)是LMS通過SCORMRTE(運(yùn)行時(shí)間環(huán)境)可以跟蹤的最低粒度水平的學(xué)習(xí)資源,它們的通訊由APIAdapter(適配器)來完成。

API定義了八個(gè)主要的function,分別是LMSInitilize、LMSFinish、LMSSetValue、LMSGetValueLMSCommit、LMSGetLastError、LMSGetErrorString、LMSGetDiagnostic,其中LMSGetValueLMSSetValue最為復(fù)雜,也是跟蹤中使用頻率最高的,通訊過程中使用DataModel(數(shù)據(jù)模型)來記錄跟蹤信息。

LMSInitilize

LMSInitilize初始化函數(shù),負(fù)責(zé)在當(dāng)前學(xué)習(xí)的內(nèi)容對象和LMS之間建立通信連接,并從LMS取得該當(dāng)前用戶關(guān)于當(dāng)前內(nèi)容對象的學(xué)習(xí)記錄信息,即整個(gè)DM數(shù)據(jù)結(jié)構(gòu)。內(nèi)容對象在載入時(shí)均會(huì)通過該方法獲得初始運(yùn)行時(shí)數(shù)據(jù)。函數(shù)成功執(zhí)行返回"true”(字符串,非布爾值,下同),否則返回"false”。
當(dāng)學(xué)習(xí)者進(jìn)入開始閱讀一個(gè)SCO時(shí),SCO第一步就是調(diào)用LMSInitialize判斷該學(xué)員之上課記錄,當(dāng)學(xué)員第一次閱讀該門課的該SCO時(shí),LMSInitialize就會(huì)將設(shè)定初值至相關(guān)的環(huán)境變量;若學(xué)習(xí)者并不是第一次閱讀該SCO,LMSInitialize則必須將該學(xué)習(xí)者之前的上課記錄取出,并存入環(huán)境變量中,如此即完成啟動(dòng)SCO之動(dòng)作。

LMSFinish

LMSFinish結(jié)束函數(shù),結(jié)束一個(gè)內(nèi)容對象與LMS的通信連接。內(nèi)容對象在退出前均會(huì)調(diào)用該方法。通常實(shí)現(xiàn)時(shí),該方法會(huì)調(diào)用LMSCommit提交一次最近的數(shù)據(jù)。當(dāng)LMS平臺(tái)在API實(shí)現(xiàn)時(shí),選擇HTTP協(xié)議進(jìn)行無狀態(tài)通信,則該函數(shù)本身將不產(chǎn)生數(shù)據(jù)通信,僅僅是調(diào)用LMSCommit提交一次數(shù)據(jù)。成功執(zhí)行返回"true”,否則返回"false”。
當(dāng)學(xué)習(xí)者閱讀完并要離開一個(gè)SCO時(shí),在結(jié)束時(shí)SCO便會(huì)調(diào)用LMSFinish將環(huán)境變量重設(shè),并判斷該SCO是否在結(jié)束之前己經(jīng)有調(diào)用過LMSCommit將所有記錄回存至LMS,若尚未儲(chǔ)存,則會(huì)自動(dòng)調(diào)用并將所有學(xué)習(xí)者在該SCO的上課記錄回存。

LMSSetValue

LMSSetValue負(fù)責(zé)更新一個(gè)數(shù)據(jù)模型的屬性值。該方法原型為LMSSetValue(element, value),參數(shù)element標(biāo)識(shí)要設(shè)置的屬性,value則是屬性的值。LMSSetValue 是相當(dāng)復(fù)雜的Function,負(fù)責(zé)儲(chǔ)存所有相關(guān)的學(xué)習(xí)記錄,當(dāng)SCO調(diào)用LMSSetValue欲將某個(gè)data model回存時(shí),LMSSetValue第一步先判斷所欲回存之data model,判斷該data model是否可以set(寫入),其次判斷其型別,當(dāng)型別錯(cuò)誤時(shí),記錄其Error Code,當(dāng)型別檢查通過時(shí),則依SCORM1.2 RTE所訂定該data model的處理規(guī)則,并將數(shù)據(jù)存入內(nèi)存中。例如,內(nèi)容對象在需要更改DM的某一屬性值時(shí)會(huì)調(diào)用該函數(shù),如當(dāng)用戶完成學(xué)習(xí)一個(gè)內(nèi)容對象后需將該內(nèi)容對象的cmi.core.lesson_status更新為completed。通常該函數(shù)只是更新客戶端內(nèi)存中該屬性的值,而非直接提交至LMS平臺(tái)。函數(shù)成功執(zhí)行返回"true”,否則返回"false”。

LMSGetValue

LMSGetValue獲取一個(gè)數(shù)據(jù)模型的屬性值。該方法原型為LMSGetValue(element),參數(shù)element,表示屬性名。通常該方法直接從客戶端內(nèi)存中取出所需的值。成功執(zhí)行則返回對應(yīng)的屬性值,否則返回空字符串。當(dāng)SCO調(diào)用LMSGetValue時(shí),LMSSetValue會(huì)先判斷data model是否可以讀取,若不可讀取,則寫入其錯(cuò)誤代碼;若該data model是可以讀取,則進(jìn)取出其值并回傳給SCO。LMSSetValue并沒有直接和receiver相連,所以是將數(shù)據(jù)由暫存的內(nèi)存中取出。

LMSCommit

LMSCommit提交函數(shù),負(fù)責(zé)將客戶端內(nèi)存中目前的RTE數(shù)據(jù)提交至LMS平臺(tái),由平臺(tái)完成最后的分析寫入工作。所以當(dāng)LMSCommit被調(diào)用時(shí),會(huì)將所有之暫存數(shù)據(jù)組成XML文件,再應(yīng)用XMLHTTP對象將數(shù)據(jù)POST到 Receiver,當(dāng)Receiver收到這個(gè)Request時(shí),就會(huì)解譯所傳入之XML文件,再將XML文件中的數(shù)據(jù)直接存入數(shù)據(jù)庫中。采用JS實(shí)現(xiàn)的API可用AJAX進(jìn)行數(shù)據(jù)提交。成功返回"true”,否則返回"false”。

LMSGetLastError

LMSGetLastError獲得錯(cuò)誤碼,當(dāng)內(nèi)容對象調(diào)用API時(shí)返回"false"或產(chǎn)生其他錯(cuò)誤時(shí),可調(diào)用該函數(shù)獲得具體的錯(cuò)誤代碼,API實(shí)現(xiàn)中需要設(shè)置相應(yīng)的錯(cuò)誤碼。

LMSGetErrorString

LMSGetErrorString獲得錯(cuò)誤碼對應(yīng)的字符串說明,參數(shù)為錯(cuò)誤碼。

LMSGetDiagnostic

LMSGetDiagnostic獲得針對當(dāng)前錯(cuò)誤的診斷信息,參數(shù)為錯(cuò)誤碼。

數(shù)據(jù)模型(Data Model)

Scorm1.2 RTE數(shù)據(jù)模型部分定義了跟蹤內(nèi)容對象的數(shù)據(jù)結(jié)構(gòu)。LMS平臺(tái)需要為每個(gè)用戶的每個(gè)內(nèi)容單元維護(hù)一組數(shù)據(jù)模型實(shí)例,該實(shí)例數(shù)據(jù)記錄了該用戶對應(yīng)于該內(nèi)容對象的學(xué)習(xí)狀態(tài)(如分?jǐn)?shù)、進(jìn)度、完成狀態(tài)等)。
DM中所有的屬性均以cmi開頭,以”.“分隔。同時(shí)數(shù)據(jù)模型中定了了三個(gè)關(guān)鍵字:children、_count,保留的關(guān)鍵字受LMS管理,且均為只讀(如使用LMSSetValue設(shè)置_version屬性,則會(huì)返回false,且API應(yīng)在實(shí)現(xiàn)時(shí)將錯(cuò)誤碼置為402)。
version: 標(biāo)識(shí)了LMS平臺(tái)支持的數(shù)據(jù)模型版本,該屬性不可用于數(shù)據(jù)模型元素上(即只能以cmi._version方式獲取)
children:返回某一數(shù)據(jù)模型元素的所有子屬性(元素),以字符串形式返回,并以執(zhí)行的分隔符分隔
_count: 返回一個(gè)數(shù)據(jù)模型元素集合中包含的元素總數(shù),僅用于集合類型的數(shù)據(jù)模型
數(shù)據(jù)模型元素可以分為9類,如下:

cmi.core: 核心數(shù)據(jù),該組中元素屬性LMS必須支持

要求所有的CMI系統(tǒng)都提供的信息,所有SCO在啟動(dòng)運(yùn)行時(shí)都需要這些信息,子數(shù)據(jù)項(xiàng)有:.Student ID(學(xué)生學(xué)號(hào))、.Student Name(學(xué)生姓名)、.Output Mechanism(輸出機(jī)制)、.Lesson Location(課的位置)、.Credit(學(xué)分)、.Lesson Status(課的狀態(tài))、.Entry(入口)、.Information Store(信息存儲(chǔ))、.Score(分?jǐn)?shù))、.Total Time(總時(shí)間)、.Lesson Mode(課的模式);

1. cmi.core.total_time:

這個(gè)參數(shù)是指學(xué)習(xí)本sco用的總時(shí)間,只能讀,不能寫,它由平臺(tái)自動(dòng)累加,而在課程中只需上傳每次學(xué)習(xí)sco的時(shí)間,即回話時(shí)間(cmi.core.session_time),即可。當(dāng)然,在從平臺(tái)讀取數(shù)據(jù)時(shí),還是要取一次的。

var totalTime = doLMSGetValue("cim.core.total_time");
alert("您目前這個(gè)單元的總學(xué)習(xí)時(shí)長時(shí)間是:" + totalTime);

2. cmi.core.score.raw;

這個(gè)參數(shù)是測試成績,可讀可寫。如果不上傳,則為空,在平臺(tái)計(jì)算成績時(shí)就不會(huì)計(jì)算在內(nèi)。如果上傳,則至少為0。有的平臺(tái),要求計(jì)算課程的平均得分,若sco中沒有測試題,不用上傳成績,則最好去掉上傳成績的語句,不讓會(huì)把整個(gè)課程的平均成績拉下來的。

3. cmi.core.lesson_location;

這個(gè)參數(shù)是記錄上次離開sco時(shí)的位置,課件讀取后,可依次進(jìn)入到上次離開的位置,當(dāng)然,這要在課程中做相應(yīng)的設(shè)置才行。
cmi.core.lesson_location的作用,總的來說就只有一個(gè)定位,分開來說有幾種情況,這樣比較好理解。
1、 收藏書簽的功能
在一個(gè)SCO的學(xué)習(xí)中,系統(tǒng)可以提供一個(gè)書簽按鈕來保存他在這個(gè)學(xué)習(xí)過程中所自己設(shè)定的位置。
2、 課程定位的功能
如果在一個(gè)SCO中有多個(gè)學(xué)習(xí)的頁面或者內(nèi)容,可以使用cmi.core.lesson_location來進(jìn)行設(shè)置位置在哪里,快速調(diào)用位置。與收藏的類似。

在同一個(gè)學(xué)習(xí)內(nèi)容中,比如HTM中很多段落的文字,我們可以利用“錨點(diǎn)”來進(jìn)行位置的設(shè)定,達(dá)到學(xué)生進(jìn)入時(shí)的內(nèi)容定位。
如果客戶端(也就是教材)沒有對cmi.core.lesson_location讀寫操作的話,那這個(gè)cmi.core.lesson_location就是空的,定位就是靠exit和entry以及通過launch的動(dòng)作來完成。

4. cmi.core.lesson_status;

記錄sco的完成情況,包括not attempted(未嘗試/未學(xué)習(xí))、incomplete(未完成),completed(已完成)。在平臺(tái)上,課程的進(jìn)度實(shí)際上是(已完成的sco數(shù)/sco總數(shù))×100%。所以若是單sco的課程,就則只有兩種,0%和100%。而sco內(nèi)部的記錄跟平臺(tái)是沒有關(guān)系的。

cmi.core.lesson_staus是專門形容SCO本身的學(xué)習(xí)情況,總共分為下面六種,而這些狀態(tài)由SCO與LMS共同維護(hù)。

passed(通過)
completed(已完成)
browsed(瀏覽)
incomplete(非完成)
failed(失?。?not attempted(未嘗試)

當(dāng)LMS發(fā)行SCO時(shí),必須將學(xué)習(xí)狀態(tài)值初始化為“not attempted”,接著將狀態(tài)的控制權(quán)轉(zhuǎn)移給SCO。至于SCO可以采用不同的策略決定何時(shí)將學(xué)習(xí)狀態(tài)值由“not attempted”轉(zhuǎn)換至“incomplete”,例如:某教師認(rèn)為當(dāng)學(xué)習(xí)者進(jìn)入SCO時(shí),SCO就應(yīng)轉(zhuǎn)換至“incomplete”的狀態(tài),另外可能也有教師認(rèn)為學(xué)習(xí)者必須符合某些條件或執(zhí)行某些操作時(shí),SCO才能轉(zhuǎn)換至“incomplete”的狀態(tài),
這些完全取決于教學(xué)設(shè)計(jì)者的考慮,并沒有任何使用上的限制。教學(xué)設(shè)計(jì)者可以在學(xué)習(xí)者完成此SCO的學(xué)習(xí)時(shí),將學(xué)習(xí)狀態(tài)值轉(zhuǎn)換至“completed”,至于認(rèn)定學(xué)習(xí)者完成學(xué)習(xí)的方式與作法,也是由教學(xué)設(shè)計(jì)者自行決定。而且SCO可以根據(jù)不同的衡量方式將學(xué)習(xí)狀態(tài)值轉(zhuǎn)換至“passed”或者“failed”的狀態(tài)。

雖然SCO可以設(shè)定學(xué)習(xí)狀態(tài)值,但是SCORM并沒有強(qiáng)制規(guī)定SCO必須設(shè)定學(xué)習(xí)狀態(tài)值,因此LMS必須采取下列對應(yīng)的處理方式,維持學(xué)習(xí)狀態(tài)值。

1). 當(dāng)LMS啟動(dòng)SCO時(shí),必須將狀態(tài)初始化為“not attempted”。
2). 當(dāng)LMS收到LMSFinish的命令,但lesson_status的狀態(tài)不是“not attempted”或“incompleted”時(shí),則必須重新檢驗(yàn)其狀態(tài)。
3). 當(dāng)cmi.core.credit的值為“credit”,而且cmi.student_data.mastery_score與cmi.core.score均含有成績時(shí),比較兩者的分?jǐn)?shù)。若mastery_score大于score, 則更改lesson_status的值為“passed”,反之則更改為“failed”。
4). 當(dāng)cmi.core.credit的值為“credit”,但是cmi.student_data.mastery_score沒有成績時(shí),則維持lesson_status的值不變,也就是保留SCO設(shè)定的值。
5). 當(dāng)cmi.core.credit的值為“no-credit”時(shí),而且cmi.core.lesson_mode為 “browse”時(shí),更改其值為“browsed”。
6). 當(dāng)cmi.core.credit的值為“no-credit”時(shí),但是cmi.core.lesson_mode不為“browse”或元素根本不存在時(shí),維持lesson_status的值不變,也就是保留SCO設(shè)定的值。

5. cmi.core.exit

當(dāng)非正常退出時(shí),會(huì)設(shè)置為suspend(懸掛,即暫停的意思),
根據(jù)學(xué)習(xí)時(shí)間的判斷sco的完成狀態(tài),利用學(xué)習(xí)者進(jìn)入該sco學(xué)習(xí)過的學(xué)習(xí)時(shí)間與視頻的時(shí)間長短來進(jìn)行比較,從而達(dá)到來判斷他學(xué)習(xí)時(shí)間是不是符合完成的狀態(tài)判斷,否則為未完成狀態(tài)。
RTE中提供的元素未cmi.core.total_time。

var time=doLMSGetValue( "cmi.core.total_time");
     arr=time.split(":");
     hh=Number(arr[0]);
     mm=Number(arr[1]);
     ss=Number(arr[2]);

     hms=hh*3600+mm*60+ss + currentSeconds;
     alert(hms);

     if (hms>=60){  //這里設(shè)定的時(shí)間60秒,這個(gè)時(shí)間可以自己根據(jù)本節(jié)sco的視頻學(xué)習(xí)時(shí)間需求進(jìn)行更改。
          result = doLMSSetValue("cmi.core.lesson_status", "completed");
     }
     else{
          result = doLMSSetValue("cmi.core.lesson_status", "imcomplete");
     }
cmi.suspend_data: 暫存數(shù)據(jù)

存儲(chǔ)內(nèi)容對象在恢復(fù)時(shí)所需的特定數(shù)據(jù)。
在學(xué)生使用課程過程中產(chǎn)生的信息,這些信息用于下一次繼續(xù)學(xué)習(xí),比如包含課重啟所需要的信息;

cmi.launch_data: 內(nèi)容對象運(yùn)行時(shí)所需的數(shù)據(jù)

在SCO創(chuàng)建時(shí)產(chǎn)生的信息,對SCO啟動(dòng)運(yùn)行要求的說明,SCO啟動(dòng)所需信息的提供,每次啟動(dòng)SCO時(shí)都需要它,通常在SCO交換數(shù)據(jù)中定義;

cmi.comments:

關(guān)于內(nèi)容對象的評(píng)論數(shù)據(jù),一般來自用戶評(píng)論 。
教師設(shè)置的一些評(píng)語信息,在滿足一定條件的時(shí)候,SCO將把這些信息呈現(xiàn)給學(xué)生;

cmi.comments_from_lms:

LMS平臺(tái)對內(nèi)容對象的評(píng)論信息

cmi.objectives:

針對內(nèi)容對象的個(gè)人目標(biāo)集合 。
描述學(xué)生對于SCO中每個(gè)目標(biāo)的完成情況,包括的子數(shù)據(jù)項(xiàng)有:.Id(目標(biāo)編號(hào))、.Score(目標(biāo)得分)、.Status(目標(biāo)狀態(tài));

cmi.student_data:

基于用戶偏好的內(nèi)容對象自定義信息,如運(yùn)行時(shí)間限制 。
而學(xué)生數(shù)據(jù)是在學(xué)生開始課程以后和學(xué)習(xí)課程當(dāng)中,CMI系統(tǒng)所了解的學(xué)生的情況。學(xué)生數(shù)據(jù)為學(xué)生在課程中的表現(xiàn)。包括的子數(shù)據(jù)項(xiàng)有:.Mastery Score(掌握得分)、.Max Time Allowed(最大允許時(shí)間)、.Time Limit Action(限時(shí)反應(yīng));

cmi.student_preference: 針對內(nèi)容對象的用戶偏好設(shè)置

SCO的參數(shù)與選項(xiàng),可通過參數(shù)設(shè)置來調(diào)整SCO的表現(xiàn)與行為,包括的子數(shù)據(jù)項(xiàng)有:.Audio(音頻)、.Language(語言)、.Speed(速度)、.Text(文本)、.Video(視頻),e-Learning 教學(xué)設(shè)計(jì):E-Learning成功保證;

cmi.interactions: 用戶交互信息

學(xué)生通過計(jì)算機(jī)輸入時(shí)產(chǎn)生的可記錄與可識(shí)別的信息,它可以記錄學(xué)習(xí)者與SCO每次交互的詳細(xì)信息,.id(交互編號(hào))、.objectives(交互目標(biāo))、.time(交互時(shí)間)、.type(交互類型)、.correct_responses(正確響應(yīng)次數(shù))、.weighting(交互的權(quán)重)、.student_response(學(xué)生響應(yīng))、.result(交互結(jié)果)、.latency(交互延遲)。

元素取值:

1) model類型:

list[0] = "normal"; //正常

list[1] = "review"; //回顧

list[2] = "browse"; //瀏覽

2) status類型:

list[0] = "passed"; //通過

list[1] = "completed";//完成

list[2] = "failed"; //失敗

list[3] = "incomplete";//未完成

list[4] = "browsed"; //瀏覽

list[5] = "not attempted";//未參加

3) Exit類型:

list[0] = ""; //空,可能是強(qiáng)制退出或是未退出的狀態(tài)

list[1] = "time-out"; //超時(shí)后退出

list[2] = "suspend"; //暫停(非正常退出時(shí)標(biāo)識(shí)為“掛起”狀態(tài))

list[3] = "logout"; //正常退出

4) Credit類型:(學(xué)分)

list[0] = "credit"; //有學(xué)分

list[1] = "no-credit";//無學(xué)分

5) Entry類型: (是否已進(jìn)入)

list[0] = ""; //空(已完成) 有待討論

list[1] = "ab-initio"; //中間

list[2] = "resume"; //重新開始

6) TimeLimitAction類型:時(shí)間界限

list[0] = ""; //空

list[1] = "exit,message"; //退出,反饋信息

list[2] = "exit,no message"; //退出,無反饋信息

list[3] = "continue,message"; //繼續(xù),反饋信息

list[4] = "continue,no message";//繼續(xù),無反饋信息

7) Interaction類型:課件與平臺(tái)產(chǎn)生的交互信息

list[0] = "true-false"; //true or false

list[1] = "choice"; //選擇

list[2] = "fill-in"; //填寫

list[3] = "matching"; //搭配

list[4] = "performance";//性能

list[5] = "likert"; //?

list[6] = "sequencing"; //排序

list[7] = "numeric"; //數(shù)字

8) result類型:結(jié)果

list[0] = "correct"; //正確

list[1] = "wrong"; //錯(cuò)誤

list[2] = "unanticipated";//非正常

list[3] = "neutral"; //中立

數(shù)據(jù)類型

數(shù)據(jù)類型 描述
CMIBlank 空字符串
CMIBoolean bool字符串ture或false
CMIDecimal 帶小數(shù)的數(shù)字
CMIFeedback 描述interaction屬性中的內(nèi)容的結(jié)構(gòu)
CMIIdentifier 字母數(shù)字混合的字符串,不包含空格和非打印字符,不超過255
CMIInteger 整數(shù)(0, 65536)
CMISInteger 有符號(hào)整數(shù)(-32768, 32768)
CMIString255 ASCII字符串,不超過255
CMIString4096 ASCII字符串,不超過4096
CMITime 時(shí)間類型,HH:MM:SS.SS
CMITimespan 時(shí)間間隔,格式同上
CMIVocabulary 單詞表,類似枚舉類型

元素屬性

cmi.core元素屬性:




scorm標(biāo)準(zhǔn)的LMS在客戶端的運(yùn)行機(jī)制

對SCORM課件的學(xué)習(xí)跟蹤是通過LMS和SCORM課件的交互來實(shí)現(xiàn)的。

1.在LMS服務(wù)器端:

(1)LMS首先決定哪一個(gè)SCO將要運(yùn)行,同時(shí)加載DataModel庫;

(2)設(shè)定SCO的運(yùn)行模式,包括預(yù)覽模式、普通模式和復(fù)習(xí)模式,其中預(yù)覽模式只是運(yùn)行課件,而不進(jìn)行學(xué)習(xí)跟蹤;

(3)設(shè)定學(xué)員的學(xué)習(xí)狀態(tài),包括“ab-initio”(初次學(xué)習(xí))、“resume”(再次學(xué)習(xí))和“”(已完成)三種狀態(tài);

(4)加載并運(yùn)行SCO;

(5)通過APIAdapter實(shí)現(xiàn)LMS與SCORM課件的交互,完成數(shù)據(jù)模型的讀寫操作。

2.在LMS客戶端:

(1)運(yùn)行SCORMAPIAdapter;

(2)調(diào)用API初始化函數(shù);

(3)加載課件SCO初始化數(shù)據(jù);

(4)獲取DataModel中的用戶ID和用戶姓名;

(5)獲取DataModel中cmi.core.lesson_status值,即當(dāng)前用戶對當(dāng)前SCO的學(xué)習(xí)狀態(tài),包括Completed、Incomplete、Passed、Failed等七種狀態(tài);

(6)獲取數(shù)據(jù)模型中的cmi.core.entry值,該值判斷當(dāng)前用戶是否第一次學(xué)習(xí)當(dāng)前SCO。如果值為“ab-initio”,則表示當(dāng)前用戶是首次學(xué)習(xí);如果值為“resume”,則表示用戶是再次學(xué)習(xí)當(dāng)前SCO;

(7)獲取數(shù)據(jù)模型中的cmi.core.lesson_mode值,該值判斷當(dāng)前用戶訪問當(dāng)前SCO的方式,包括Browse(預(yù)覽,不跟蹤學(xué)習(xí))、Normal(跟蹤學(xué)習(xí))、Review(復(fù)習(xí))三種模式;

(8)獲取數(shù)據(jù)模型中的cmi.core.score.raw值,該值用來存放每一個(gè)學(xué)員在每一個(gè)SCO的學(xué)習(xí)過程中所累積的總成績。如果當(dāng)前SCO有評(píng)測就會(huì)記錄當(dāng)前用戶的評(píng)測總成績,沒有就不記錄。LMS可借此DataModel作學(xué)習(xí)者成績分析。如果用戶是初次學(xué)習(xí)當(dāng)前SCO,系統(tǒng)就會(huì)初始化cmi.core.score.raw的值為“”(空值);

(9)獲取數(shù)據(jù)模型中的cmi.core.lesson_location值。LMS借此DataModel記錄每一個(gè)用戶最后一次學(xué)習(xí)哪一個(gè)SCO,以便下一次重新進(jìn)入該課程時(shí)可以直接跳轉(zhuǎn)到上次學(xué)習(xí)位置繼續(xù)學(xué)習(xí),相當(dāng)于書簽的功能;

(10)用戶開始學(xué)習(xí)當(dāng)前SCO,在學(xué)習(xí)過程中會(huì)記錄一系列數(shù)據(jù)模型的值,用于學(xué)習(xí)跟蹤。其中cmi.core.session_time用來記錄每個(gè)學(xué)員每次學(xué)習(xí)的時(shí)間,包括每個(gè)用戶進(jìn)入每個(gè)SCO的停留時(shí)間及訪問的日期。在當(dāng)前用戶結(jié)束對當(dāng)前SCO的學(xué)習(xí)時(shí),LMS則會(huì)記錄cmi.core.total_time的值,cmi.core.total_time表示當(dāng)前用戶對每個(gè)SCO學(xué)習(xí)所花的總時(shí)間;

(11)執(zhí)行LMSCommit(Parameter)接口函數(shù)。該函數(shù)主要是用來提交數(shù)據(jù)模型元素的值,LMSCommit發(fā)生在LMSfinish之前;

(12)執(zhí)行LMSFinish()函數(shù)。當(dāng)用戶學(xué)習(xí)完并要離開一個(gè)SCO時(shí),便會(huì)調(diào)用LMSFinish()。LMSFinish()主要負(fù)責(zé)將環(huán)境變量重設(shè),并判斷該SCO是否在結(jié)束之前己經(jīng)調(diào)用LMSCommit()將所有記錄存儲(chǔ)到LMS。若尚未儲(chǔ)存,則會(huì)自動(dòng)調(diào)用LMSCommit()將當(dāng)前用戶在當(dāng)前SCO的學(xué)習(xí)記錄保存。

參考資料

scorm百度百科
SCORM維基百科
scorm標(biāo)準(zhǔn)的LMS在客戶端的運(yùn)行機(jī)制
Scorm標(biāo)準(zhǔn)學(xué)習(xí)——Scorm RTE API與數(shù)據(jù)模型
SCORM標(biāo)準(zhǔn)及支持SCORM標(biāo)準(zhǔn)學(xué)習(xí)平臺(tái)的設(shè)計(jì)
scorm標(biāo)準(zhǔn)中的cmi.core.lesson_location詳解
scorm1.2標(biāo)準(zhǔn)中的datamodel詳解

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107368.html

相關(guān)文章

  • 全棧開發(fā)自學(xué)路線

    摘要:前言這里筑夢師是一名正在努力學(xué)習(xí)的開發(fā)工程師目前致力于全棧方向的學(xué)習(xí)希望可以和大家一起交流技術(shù)共同進(jìn)步用簡書記錄下自己的學(xué)習(xí)歷程個(gè)人學(xué)習(xí)方法分享本文目錄更新說明目錄學(xué)習(xí)方法學(xué)習(xí)態(tài)度全棧開發(fā)學(xué)習(xí)路線很長知識(shí)拓展很長在這里收取很多人的建議以后決 前言 這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡書記錄下自己的學(xué)習(xí)歷程...

    galaxy_robot 評(píng)論0 收藏0
  • 全棧開發(fā)自學(xué)路線

    摘要:前言這里筑夢師是一名正在努力學(xué)習(xí)的開發(fā)工程師目前致力于全棧方向的學(xué)習(xí)希望可以和大家一起交流技術(shù)共同進(jìn)步用簡書記錄下自己的學(xué)習(xí)歷程個(gè)人學(xué)習(xí)方法分享本文目錄更新說明目錄學(xué)習(xí)方法學(xué)習(xí)態(tài)度全棧開發(fā)學(xué)習(xí)路線很長知識(shí)拓展很長在這里收取很多人的建議以后決 前言 這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡書記錄下自己的學(xué)習(xí)歷程...

    Scorpion 評(píng)論0 收藏0
  • 從懵逼到再入門——JavaEE完整體系架構(gòu)

    摘要:軟件開發(fā)體系架構(gòu)兩層架構(gòu)傳統(tǒng)的客戶服務(wù)器系統(tǒng)僅只簡單地基于兩層體系來構(gòu)建,即客戶端前臺(tái)和企業(yè)信息系統(tǒng)后臺(tái),沒有任何中間件,業(yè)務(wù)邏輯層與表示層或數(shù)據(jù)層混在一起。 showImg(https://segmentfault.com/img/remote/1460000007090113); 理想的建筑師應(yīng)該既是文學(xué)家又是數(shù)字家,他還應(yīng)通曉歷史,熱衷于哲學(xué)研究,精通音樂,懂得醫(yī)藥知識(shí),具有法學(xué)...

    ZweiZhao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<