趙學孔+龍世榮
摘 要:集開源與免費優(yōu)勢于一體的Moodle在線教學平臺因功能強大而受到眾多研究者與實踐者青睞。然而,Moodle功能的多樣化給許多新手教師造成了操作負荷?;诖?,文章提出了支持常規(guī)課程編排需求的“課程設計向?qū)А辈寮慕鉀Q方案,該插件具有便于操作、可移植等優(yōu)勢,以期為廣大Moodle教師用戶設計課程提供便捷。
關鍵詞:Moodle;課程設計;向?qū)Р寮?/p>
中圖分類號:G434 文獻標志碼:A 文章編號:1673-8454(2017)02-0094-03
Moodle作為一款著名的開源免費在線教學平臺,其在建構(gòu)主義教育理論基礎上整合了許多新興的社會性軟件,如Blog、Wiki。此外,該平臺遵循廣泛的標準協(xié)議,允許用戶在遵循GNU GPL協(xié)議的基礎上根據(jù)自己的個性化需求自行設計開發(fā)功能插件。正是這些優(yōu)越性,使得Moodle在我國各級各類學校的教學實踐中得到廣泛應用。
一、問題的提出
Moodle功能比較齊全,支持用戶管理、課程管理以及平臺管理三大模塊30余項功能,基本能滿足學生、課程教師、系統(tǒng)管理員的需求。然而,在實踐應用中,其往往也給許多教師帶來了不便:首先,教師添加資源和活動時須頻繁打開“打開編輯功能”選項,影響了課程編輯的效率;其次,平臺中的“添加資源和活動”列表菜單選項所對應的含義及功能很可能成為許多新手教師的棘手問題;另外,教學中需要用到的課程簡介、教學目標要求、教學重點難點、課時安排、考核方式等一些基本課程信息,雖然也可通過Moodle現(xiàn)有的功能實現(xiàn)(如標簽、網(wǎng)頁),但對于初學者來說還需經(jīng)過反復的測試練習才能體會到這些功能。
事實上,教師應該把大部分時間精力投入在教學設計與教學內(nèi)容上,若其將過多的時間花費在平臺操作上,平臺或許變成了教師的負荷,這樣的教學也未必取得好的效果?;诖耍狙芯刻岢鯩oodle課程設計向?qū)Чδ懿寮?,旨在為廣大Moodle教師用戶設計課程提供便捷,同時也為Moodle插件開發(fā)實踐者提供參考借鑒。
二、Moodle平臺下課程設計向?qū)Р寮脑O計
1.設計思路與原則
課程設計向?qū)Р寮赏ㄟ^接口整合、擴展開發(fā)的設計思路來實現(xiàn)。教師用戶登錄Moodle平臺后,可通過該插件來添加課程公告、編寫課程信息、添加教學大綱、添加作業(yè)、上傳課件資料、編寫作業(yè)、添加討論區(qū)等。對于上述Moodle平臺已經(jīng)具有的部分功能(如作業(yè)、討論區(qū)等),本插件通過相應的接口調(diào)用即可實現(xiàn)清晰的導航。而對于平臺不具有的功能,如添加課程信息、教學大綱等,則需要在原有基礎上擴展開發(fā)來實現(xiàn)。在此,本研究將Claroline平臺導航清晰、操作簡捷等特點融入本插件模型的設計中。
插件設計需要遵循如下原則:①遵循Moodle平臺的協(xié)議規(guī)范(如GNU GPL協(xié)議等)以及接口標準;②具有移植性、可擴展性。插件能在任何裝有Moodle平臺的機器上自動安裝使用,并且數(shù)據(jù)信息不會因Moodle平臺的擴充、升級而丟失;③實用性。注重從網(wǎng)絡教學的實際需求出發(fā)來對插件功能進行設計;④易操作性。插件的界面、互動性等方面的設計注重用戶體驗。
2.功能結(jié)構(gòu)設計
根據(jù)常規(guī)網(wǎng)絡教學的需求,課程設計向?qū)Р寮С终n程公告、課程簡介、教學大綱、課程計劃、課程講義、教學視頻等11項功能,其整體功能結(jié)構(gòu)如圖1所示。
“課程公告”用于對課程動態(tài)信息的添加與編輯,該選項繼承了Moodle中“新聞討論區(qū)”的接口;“課程簡介”用于描述課程的基本信息,包括內(nèi)容簡介、課程類型、授課教師、總學時以及課程學分等;“教學大綱”用于動態(tài)編輯與更新課程教學大綱,并可支持自動生成教學大綱表單的功能;“課程計劃”為學生學習課程內(nèi)容與進度安排提供依據(jù);“課程講義”支持教師上傳課件資源包,繼承了“連接文件和站點”接口;“教學視頻”提供教師上傳教學錄像文件,它既可作為學生的復習教程,也可為學生提供自學教程;“課程作業(yè)”和“在線考試”都作為學生課程學習的評價依據(jù),分別繼承了Moodle平臺中“作業(yè)”和“測驗”接口;“學習論壇”、“小組協(xié)作”以及“聊天答疑”為師生間、學生間的交流互動提供了平臺,分別繼承了“討論區(qū)”、“Wiki”和“聊天”接口。
3.數(shù)據(jù)庫設計
依據(jù)上述“課程設計向?qū)А辈寮墓δ苄枨?,在對Moodle平臺現(xiàn)有數(shù)據(jù)表分析基礎上需要擴展部分數(shù)據(jù)表。由圖1可知,該插件涉及到課程公告表、課程簡介表、教學大綱表、課程講義表、教學視頻表、在線考試表等。其中,在線考試、學習論壇、小組協(xié)作、聊天答疑數(shù)據(jù)表在原Moodle中已存在,因此我們需要創(chuàng)建其他幾個數(shù)據(jù)表。在此,我們僅以課程簡介表mdl_course_info和教學大綱表mdl_course_syllabus為例描述其表結(jié)構(gòu),分別如表1和表2所示。
其中,id是表的主鍵,course_id課程編號是外鍵,通過Moodle平臺中的全局變量$COURSE->ID自動獲取。
三、Moodle平臺下課程設計向?qū)Р寮募夹g實現(xiàn)
1.開發(fā)環(huán)境與開發(fā)工具
由于Moodle平臺主要采用PHP語言編程,數(shù)據(jù)庫則采用了MySQL,因此本插件的開發(fā)主要基于WAMP環(huán)境(即Windows+Apache+MySQL+PHP),以便其能更好地繼承與移植。WAMP是一組常用來搭建動態(tài)網(wǎng)站或者服務器的開源軟件的集合,其組成部分都是獨立的程序,但因為常被放在一起使用,擁有了越來越高的兼容性,共同組成了一個強大的Web應用程序平臺。開發(fā)工具主要使用Dreamweaver工具,該工具最大的特點是支持可視化編程,具有編程導向功能。
2.主要技術及關鍵代碼
鑒于Moodle的協(xié)議標準及擴展接口定義規(guī)范,我們采用了面向?qū)ο蟮木幊趟枷?,通過調(diào)用Moodle類庫中的函數(shù)來實現(xiàn)本插件開發(fā)。本例中插件的開發(fā)主要用到的關鍵技術包括定義接口、XML動態(tài)生成數(shù)據(jù)庫表和創(chuàng)建語言包。
(1)定義接口
插件能在任何Moodle平臺下移植并自行安裝運行的前提條件是它必須符合Moodle已定義好的接口規(guī)范,而該接口規(guī)范則是通過調(diào)用Moodle類庫里面block.php內(nèi)定義的upgrade_blocks_plugins()函數(shù)實現(xiàn)的。本例實現(xiàn)方法如下:
第一步,在moodle/blocks文件目錄下創(chuàng)建course_guide文件夾,并在該文件夾下創(chuàng)建三個子文件夾,分別命名為db、pix和lang(db用來存放數(shù)據(jù)庫更新文件、pix用來存放向?qū)D標文件、lang用來存放語言包)。
第二步,在course_guide文件夾中創(chuàng)建block_course_guide.php文件(說明:此文件需以“block+文件夾名”來命名,其中block是插件文件標示符)。
第三步,在block_course_guide.php文件中創(chuàng)建block_course_guide接口類,該類通過繼承父類block_base或block_list中的get_content()函數(shù)來實現(xiàn)頁面內(nèi)容的顯示。實現(xiàn)的關鍵代碼如下:
class block_course_guide extends block_list {
//繼承block_list類
function init() {$this->title = get_string('course_guide'); //初始化}
function get_content() {
//判斷用戶權限,如果是教師用戶則可以編輯
if (!has_capability('moodle/course:update', $currentcontext)) {
$this->content = ''; return $this->content; }
$this->content->items[]='
…}
}
(2)XML定義數(shù)據(jù)庫表
數(shù)據(jù)庫表的安裝接口是通過blocklib.php文件內(nèi)定義的upgrade_blocks_plugins()函數(shù)來實現(xiàn)的。通過調(diào)用該函數(shù)可以在MySQL數(shù)據(jù)庫中自動創(chuàng)建數(shù)據(jù)表,而非人為來創(chuàng)建,增加了插件移植的靈活性。實現(xiàn)方法如下:
第一步,在db文件夾下創(chuàng)建一個XML文件和兩個PHP文件,分別命名為install.xml、mysql.php和upgrade.php。其中XML文件用于定義數(shù)據(jù)庫表的結(jié)構(gòu),mysql文件用于進行數(shù)據(jù)庫更新的初始化工作,upgrade文件提供數(shù)據(jù)庫操作的接口并執(zhí)行XML文件。
第二步,在XML文件中定義數(shù)據(jù)庫表,其關鍵代碼如下:
//設置主鍵
第三步,在upgrade文件中通過調(diào)用$table=new XMLDBTable('mdl_course_info')函數(shù)和$table=new XMLDBTable('mdl_course_syllabus')函數(shù)來執(zhí)行XML中定義的兩個數(shù)據(jù)庫表。 (3)創(chuàng)建語言包 Moodle平臺界面語言一般通過調(diào)用lang語言包中的文件來實現(xiàn),對語言的定義需遵循如下規(guī)則:“$string['參數(shù)']='文字';”語句用來定義文字,“get_string(‘參數(shù));”語句則輸出定義的內(nèi)容。 在本實例中,語言包的創(chuàng)建大致分為三步:首先需要在blocks/course_guide/lang文件目錄下面創(chuàng)建文件夾并命名為zh_cn_utf8;然后在zh_cn_utf8文件夾中創(chuàng)建block_course_guide.php;之后在block_course_guide.php文件中定義向?qū)е酗@示的中文漢字,如“課程公告”和“課程簡介”的定義語句分別為“$string['course_bulletin']='課程公告';”和“$string['course_description']='課程簡介';”。 3.實現(xiàn)效果 通過上述的設計開發(fā),課程設計向?qū)Р寮膶崿F(xiàn)效果如圖2左側(cè)所示,教師用戶單擊插件中菜單導航選項即可進入相應的編輯頁面。因文章篇幅有限,在此僅以“課程簡介”為例,其編輯頁面效果如圖2右側(cè)所示。 四、結(jié)束語 當前Moodle開源教學平臺在我國許多中小學以及部分高校廣泛應用,并取得了較好效果。針對教師用戶操作負荷問題,本研究通過對Moodle平臺現(xiàn)有功能梳理與重組,擴展開發(fā)了“課程設計向?qū)А惫δ懿寮錇榻處熅庉嬚n程提供便捷,進而在一定程度上提高了備課效率。文章對課程設計向?qū)Чδ懿寮拈_發(fā)過程和關鍵技術進行了闡述,以期能為相關研究者提供參考借鑒。 參考文獻: [1]Moodles developer documen[DB/OL]. http://docs.moodle.org/en/Developer_documentation. [2]Moodle官網(wǎng).XMLDB解析[DB/OL]. http://docs.moodle.org./en/Development:XMLDB_introduction. [3]Claroline官網(wǎng)[DB/OL].http://www.claroline.net. (編輯:魯利瑞) 客服熱線:400-656-5456??客服專線:010-56265043??電子郵箱:longyuankf@126.com 電信與信息服務業(yè)務經(jīng)營許可證:京icp證060024號 Dragonsource.com Inc. All Rights Reserved