前言
2004年是一個e-Learning標準的重要里程碑,ADL於1月30號終於推出令人期待的SCORM 2004的最新版本規範,SCORM 2004也就是眾所周知的SCORM 1.3,就規範內容而言,其中可以歸納出三個最大的不同點,分別是:
一、 imsmanifest.xml檔案中加入sequencing語法:除了原先在SCORM 1.2規範中所提供的教材架構及教材實體檔案連結等資訊外,為了串連各個教材單元,增加了Sequencing的語法,這些語法和SCORM 1.2所規範的語法並不衝突,而是以SCORM 1.2之語法為基礎再外加於其上,不論SCORM 1.2或SCORM 2004規範皆是以XML為實作方式,為了區別SCORM 1.2與SCORM 2004中新增的sequencing語法,因此在imsmanfiest.xml檔案中以imsss之名稱空間作為區別。
二、 在學習元件(Sharable Content Object, 簡稱SCO)中,SCORM 1.2 RTE(Run Time Environment)定義了8個API(Application Programming Interface)做為SCO與平台之間的溝通的管道,在SCORM 1.2 API採用AICC的CMI001規範,但在SCORM 2004 API部分改採IEEE P1481.11.2之標準,簡而言之API的名稱在SCORM 2004規範中,有做部分的更動。
三、 在學習元件(SCO)中,除了在第二點說明中API有所更動,Data model有部分的更動,在SCORM 1.2中,Data model是採用AICC CMI001之規範,在SCORM 2004中Data model改採IEEE P1484.11.1,
以下將簡述其差異。
壹、SCORM 2004加入Sequencing語法
在SCORM 1.2規範中每個課程必須包含一個imsmanifest.xml檔案,在這個檔案之中,包含兩大類資訊:
n 教材架構資訊:定義教材章節資訊,意即教材內容綱要(table of content),包含各章節名稱及其章節層級架構。
n 教材實體檔案連結資訊:定義各章節所連結之實體檔案。
SCORM 2004之教材中亦必須包含一個imsmanifest.xml檔案,除了承襲SCORM 1.2之兩大類資訊外,增加了sequencing資訊,用來描述各章節之間的串連關係,因此第一點最大不同點在於imsmanifest.xml檔案中,為了提供sequencing資訊,增加了許多的sequencing標籤,這些新增的標籤需由程式設計師編寫,IT程式設計師需依照教學設計師所設計的章節流程,轉換成符合SCORM 2004之語法,在SCORM 2004規範中提供了8大類語法,分列如下:
一、Control Mode:設定教材章節之流程
二、Sequencing Rules:設定各個教材章節之條件(Condition)及行為(Action)
三、Rollup Rules:描述子章節與父章節之學習狀態之間的關係
四、Auxiliary Resource:教材輔助教材
五、Objectives:設定章節之學習目標
六、Limit Conditions:設計章節之閱讀限制條件
七、Randomization Controls:設定教材章節是否隨機出現
八、Delivery Controls:設定是否記錄章節之學習狀態
在這8大類中,又包含了許多不同的屬性(Attribute)及元素(Element)在內,以下簡介這8大類的內容,其由各元素的介紹將另有專文介紹。
這8大類的語法,就是教學設計師所可以使用的工具,比如當教學設計師在教材中需要有一個章是課堂測驗,而在測驗時,教學設計師希望學習者只能一題一題的往下答題,一旦答案送出後就不能回到之前的問題做答,這時教學設計師可以將Control Mode中的forwardOnly屬性設為true,所以在回饋到imsmanifest.xml的語法設定如下述Example 1。
Example 1: <item identifer=”Exam”> <imsss:sequencing> <imsss:controlMode forwardOnly=”true”/> </imsss:sequencing> </item> |
承Example 1之設計,若教學設計師希望學習者測驗次數只能一次,所以就可以應用limitConditions中的設定,將可閱讀次數設定為1,如此學習者就只能進入該測試一次,其sequencing語法設定如Example 2
Example 2: <item identifer=”Exam”> <imsss:sequencing> <imsss:controlMode forwardOnly=”true”/> <imsss:limitConditions attemptLimit=”1”/> </imsss:sequencing> </item> |
由上述兩個例子可以不難看出,sequencing語法影響有兩個面向。
n 教材部分:依教學設計師的設計,程式設計師在imsmanifest.xml檔案必須在每個<item>元素中加入sequencing的語法。
n 平台部分:學習管理平台必須要解譯在imsmanifest.xml所設定的各種sequencing語法,再依學員的學習狀態提供學員所需之學習內容。
貳、API的差異
在SCORM 1.2 RTE中提供了8個API(Application Programming Interface),如下表,其主要作為數位教材與平台之間資料溝通的橋樑,每個API的功能各異。
並由表一可以清楚得知,SCORM 2004與SCORM 1.2所提供的API總數皆為8個,而SCORM 2004將各個API的名字做了部分變動,以下就各個API做簡短的描述。
n Initialize:建立學習物件與平台之間的資料傳輸管道。
n Terminate:結束學習物件與平台之間的資料傳輸管道。
n GetValue:取得學員之學習資訊。
n SetValue:儲存學員之學習資訊。
n Commit:將所有暫存學習資訊資料全數儲存至學習平台。
n GetLastError:取得錯誤代碼。
n GetErrorString:由錯誤代碼取得錯誤之解釋。
n GetDiagnositic:取得錯誤的處理方式。
表一、SCORM 1.2與SCORM 2004 規範API之比較表
| | SCORM 1.2 | SCORM 2004 |
| Session Methods | LMSInitailize() | Initialize() |
LMSFinish() | Terminate() |
| Data-transfer Methods | LMSGetValue() | GetValue() |
| LMSSetValue() | SetValue() |
| LMSCommit() | Commit() |
| Support Method | LMSGetLastError() | GetLastError() |
| LMSGetErrorString() | GetErrorString() |
| LMSGetDiagnostic() | GetDiagnostic() |
參、Data model的差異
在SCORM RTE(Run Time Environment)的標準裡有兩大重點,一是API,一是Data model,學過程式設計的朋友應該可以很快了解,API就像是function,而data model就像是function中傳遞的參數,以exportData(parameterA, parameterB)為例,其中exportData就是function名稱,就是SCORM所說的API;而parameterA及parameterB就是所謂的data model。
在data model變動的幅度不大,SCORM 2004的所訂定的data model與SCORM 1.2所訂的data model大致相同,但名稱做了部分修改,其對應關係如下表二所列。
表二、SCORM 1.2與SCORM 2004規範之data model對應表
| SCORM 2004 Data model | 與SCORM 1.2Data model之對應關係 |
| |
| Cmi.comments_from_learner._children | 新增 |
Cmi.comments_from_learner._count | 新增 |
| Cmi.comments_from_learner.n.comment | 新增 |
| Cmi.comments_from_learner.n.location | 新增 |
| Cmi.comments_from_learner.n.date_time | 新增 |
| |
| Cmi.comments_from_lms._children | 新增 |
| Cmi.comments_from_lms._count | 新增 |
| Cmi.comments_from_lms.n.comment | 新增 |
| Cmi.comments_from_lms.n.location | 新增 |
| Cmi.comments_from_lms.n.date_time | 新增 |
| | |