基于开源Moodle平台的课程设计向导插件的设计与实现
2017-03-15赵学孔龙世荣
赵学孔+龙世荣
摘 要:集开源与免费优势于一体的Moodle在线教学平台因功能强大而受到众多研究者与实践者青睐。然而,Moodle功能的多样化给许多新手教师造成了操作负荷。基于此,文章提出了支持常规课程编排需求的“课程设计向导”插件的解决方案,该插件具有便于操作、可移植等优势,以期为广大Moodle教师用户设计课程提供便捷。
关键词:Moodle;课程设计;向导插件
中图分类号:G434 文献标志码:A 文章编号:1673-8454(2017)02-0094-03
Moodle作为一款著名的开源免费在线教学平台,其在建构主义教育理论基础上整合了许多新兴的社会性软件,如Blog、Wiki。此外,该平台遵循广泛的标准协议,允许用户在遵循GNU GPL协议的基础上根据自己的个性化需求自行设计开发功能插件。正是这些优越性,使得Moodle在我国各级各类学校的教学实践中得到广泛应用。
一、问题的提出
Moodle功能比较齐全,支持用户管理、课程管理以及平台管理三大模块30余项功能,基本能满足学生、课程教师、系统管理员的需求。然而,在实践应用中,其往往也给许多教师带来了不便:首先,教师添加资源和活动时须频繁打开“打开编辑功能”选项,影响了课程编辑的效率;其次,平台中的“添加资源和活动”列表菜单选项所对应的含义及功能很可能成为许多新手教师的棘手问题;另外,教学中需要用到的课程简介、教学目标要求、教学重点难点、课时安排、考核方式等一些基本课程信息,虽然也可通过Moodle现有的功能实现(如标签、网页),但对于初学者来说还需经过反复的测试练习才能体会到这些功能。
事实上,教师应该把大部分时间精力投入在教学设计与教学内容上,若其将过多的时间花费在平台操作上,平台或许变成了教师的负荷,这样的教学也未必取得好的效果。基于此,本研究提出Moodle课程设计向导功能插件,旨在为广大Moodle教师用户设计课程提供便捷,同时也为Moodle插件开发实践者提供参考借鉴。
二、Moodle平台下课程设计向导插件的设计
1.设计思路与原则
课程设计向导插件可通过接口整合、扩展开发的设计思路来实现。教师用户登录Moodle平台后,可通过该插件来添加课程公告、编写课程信息、添加教学大纲、添加作业、上传课件资料、编写作业、添加讨论区等。对于上述Moodle平台已经具有的部分功能(如作业、讨论区等),本插件通过相应的接口调用即可实现清晰的导航。而对于平台不具有的功能,如添加课程信息、教学大纲等,则需要在原有基础上扩展开发来实现。在此,本研究将Claroline平台导航清晰、操作简捷等特点融入本插件模型的设计中。
插件设计需要遵循如下原则:①遵循Moodle平台的协议规范(如GNU GPL协议等)以及接口标准;②具有移植性、可扩展性。插件能在任何装有Moodle平台的机器上自动安装使用,并且数据信息不会因Moodle平台的擴充、升级而丢失;③实用性。注重从网络教学的实际需求出发来对插件功能进行设计;④易操作性。插件的界面、互动性等方面的设计注重用户体验。
2.功能结构设计
根据常规网络教学的需求,课程设计向导插件支持课程公告、课程简介、教学大纲、课程计划、课程讲义、教学视频等11项功能,其整体功能结构如图1所示。
“课程公告”用于对课程动态信息的添加与编辑,该选项继承了Moodle中“新闻讨论区”的接口;“课程简介”用于描述课程的基本信息,包括内容简介、课程类型、授课教师、总学时以及课程学分等;“教学大纲”用于动态编辑与更新课程教学大纲,并可支持自动生成教学大纲表单的功能;“课程计划”为学生学习课程内容与进度安排提供依据;“课程讲义”支持教师上传课件资源包,继承了“连接文件和站点”接口;“教学视频”提供教师上传教学录像文件,它既可作为学生的复习教程,也可为学生提供自学教程;“课程作业”和“在线考试”都作为学生课程学习的评价依据,分别继承了Moodle平台中“作业”和“测验”接口;“学习论坛”、“小组协作”以及“聊天答疑”为师生间、学生间的交流互动提供了平台,分别继承了“讨论区”、“Wiki”和“聊天”接口。
3.数据库设计
依据上述“课程设计向导”插件的功能需求,在对Moodle平台现有数据表分析基础上需要扩展部分数据表。由图1可知,该插件涉及到课程公告表、课程简介表、教学大纲表、课程讲义表、教学视频表、在线考试表等。其中,在线考试、学习论坛、小组协作、聊天答疑数据表在原Moodle中已存在,因此我们需要创建其他几个数据表。在此,我们仅以课程简介表mdl_course_info和教学大纲表mdl_course_syllabus为例描述其表结构,分别如表1和表2所示。
其中,id是表的主键,course_id课程编号是外键,通过Moodle平台中的全局变量$COURSE->ID自动获取。
三、Moodle平台下课程设计向导插件的技术实现
1.开发环境与开发工具
由于Moodle平台主要采用PHP语言编程,数据库则采用了MySQL,因此本插件的开发主要基于WAMP环境(即Windows+Apache+MySQL+PHP),以便其能更好地继承与移植。WAMP是一组常用来搭建动态网站或者服务器的开源软件的集合,其组成部分都是独立的程序,但因为常被放在一起使用,拥有了越来越高的兼容性,共同组成了一个强大的Web应用程序平台。开发工具主要使用Dreamweaver工具,该工具最大的特点是支持可视化编程,具有编程导向功能。
2.主要技术及关键代码
鉴于Moodle的协议标准及扩展接口定义规范,我们采用了面向对象的编程思想,通过调用Moodle类库中的函数来实现本插件开发。本例中插件的开发主要用到的关键技术包括定义接口、XML动态生成数据库表和创建语言包。
(1)定义接口
插件能在任何Moodle平台下移植并自行安装运行的前提条件是它必须符合Moodle已定义好的接口规范,而该接口规范则是通过调用Moodle类库里面block.php内定义的upgrade_blocks_plugins()函数实现的。本例实现方法如下:
第一步,在moodle/blocks文件目录下创建course_guide文件夹,并在该文件夹下创建三个子文件夹,分别命名为db、pix和lang(db用来存放数据库更新文件、pix用来存放向导图标文件、lang用来存放语言包)。
第二步,在course_guide文件夹中创建block_course_guide.php文件(说明:此文件需以“block+文件夹名”来命名,其中block是插件文件标示符)。
第三步,在block_course_guide.php文件中创建block_course_guide接口类,该类通过继承父類block_base或block_list中的get_content()函数来实现页面内容的显示。实现的关键代码如下:
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定义数据库表
数据库表的安装接口是通过blocklib.php文件内定义的upgrade_blocks_plugins()函数来实现的。通过调用该函数可以在MySQL数据库中自动创建数据表,而非人为来创建,增加了插件移植的灵活性。实现方法如下:
第一步,在db文件夹下创建一个XML文件和两个PHP文件,分别命名为install.xml、mysql.php和upgrade.php。其中XML文件用于定义数据库表的结构,mysql文件用于进行数据库更新的初始化工作,upgrade文件提供数据库操作的接口并执行XML文件。
第二步,在XML文件中定义数据库表,其关键代码如下:
//设置主键
第三步,在upgrade文件中通过调用$table=new XMLDBTable('mdl_course_info')函数和$table=new XMLDBTable('mdl_course_syllabus')函数来执行XML中定义的两个数据库表。 (3)创建语言包 Moodle平台界面语言一般通过调用lang语言包中的文件来实现,对语言的定义需遵循如下规则:“$string['参数']='文字';”语句用来定义文字,“get_string(‘参数);”语句则输出定义的内容。 在本实例中,语言包的创建大致分为三步:首先需要在blocks/course_guide/lang文件目录下面创建文件夹并命名为zh_cn_utf8;然后在zh_cn_utf8文件夹中创建block_course_guide.php;之后在block_course_guide.php文件中定义向导中显示的中文汉字,如“课程公告”和“课程简介”的定义语句分别为“$string['course_bulletin']='课程公告';”和“$string['course_description']='课程简介';”。 3.实现效果 通过上述的设计开发,课程设计向导插件的实现效果如图2左侧所示,教师用户单击插件中菜单导航选项即可进入相应的编辑页面。因文章篇幅有限,在此仅以“课程简介”为例,其编辑页面效果如图2右侧所示。 四、结束语 当前Moodle开源教学平台在我国许多中小学以及部分高校广泛应用,并取得了较好效果。针对教师用户操作负荷问题,本研究通过对Moodle平台现有功能梳理与重组,扩展开发了“课程设计向导”功能插件,其为教师编辑课程提供便捷,进而在一定程度上提高了备课效率。文章对课程设计向导功能插件的开发过程和关键技术进行了阐述,以期能为相关研究者提供参考借鉴。 参考文献: [1]Moodles developer documen[DB/OL]. http://docs.moodle.org/en/Developer_documentation. [2]Moodle官网.XMLDB解析[DB/OL]. http://docs.moodle.org./en/Development:XMLDB_introduction. [3]Claroline官网[DB/OL].http://www.claroline.net. (编辑:鲁利瑞) 客服热线:400-656-5456 客服专线:010-56265043 电子邮箱:longyuankf@126.com 电信与信息服务业务经营许可证:京icp证060024号 Dragonsource.com Inc. All Rights Reserved