基于moodle下课程展示平台的设计与开发内容摘要:
2 Moodle 概述 5 的公益性和社会性与自由软件的精神相得益彰, Moodle 社群中除了有开发者,还有大量的教师和学生,来自他们的反馈和建议是 Moodle 茁壮成长的沃土,这是很多商业公司求之不得的宝贵财富,再加上自由软件所共有的免费获取、跨平台支持及优秀的国际特性,促进了 Moodle 的迅速成长。 3 Moodle 结构分析 6 3 Moodle 结构分析 Moodle 的 系统架构 Moodle 平台采用模块化的结构设计和面向对象的开发 方法,从系统架构上说,符合当前流行的三层 B/S 结构,基本实现了数据访问、业务逻辑和用户界面的分离,具有较好的灵活性和可扩展性。 其系统结构如图 31所示。 图 31 系统结构图 从 Moodle 的网络课程结构上看,整个系统由多个学科类别构成。 例如, 计科系教学 等。 对应的某一学科类别中可以包含多门不同的课程,例如,教育 管理学科包括教育评价、学校管理、班级管理等课程。 课程又由版块、资源和活动三个模块构成,如图 32 所示。 3 Moodle 结构分析 7 图 32 Moodle 网络课程系统结构 版块模块:包含 HTML、主菜单、人物 (教师和学生 )、即将发生的事件、显示在线用户、论坛搜索、日历、最新新闻、活动目录、消息 (师生、生生一对一沟通 )、登录、课程管理、显 示课程、课程 \站点描述、 RSS 种子、随机词条 (词汇表 )、 Blog。 Moodle 中所有核心代码和模块代码都是使用 PHP 脚本来编写 , 但是不排除和其他技术整合的可能性 , 特别是在 SOA的构架下 , Service是可以使用很多技术实现的 , PHP 在调用功能模块时 , 可以调用非 PHP 构架的 Service, 当然最终的 HTML 表现还是需要 PHP 来完成。 Moodle 的 课程活动模块 Moodle 平台提供了各种各样的课程活动模块,教师可以根据教学需要选择合适的模块,为教学活动创建互动式环境。 以下是 Moodle 提 供的标准课程活动模块。 作业 (Assignment)模块 3 Moodle 结构分析 8 通过作业模块,教师可以给学生布置一项任务,学生可以将自己的工作成果(任何格式的文件)上传到服务器上。 典型的作业包括论文、项目和报告等。 这一模块使用起来具有很大的灵活性。 选项 (Choice)模块 通过选项模块,教师可以提出一个问题并给出多种不同答案供学生选择。 该模块可以用于引导学生对某一话题进行思考,调查学生对课程的态度等等。 讨论区 (Forum)模块 讨论区模块是最重要的课程活动模块,交流和讨论都在这里进行。 教师可以根据不同的教学目的选择不同的讨论 区类型,还可以设置不同的显示格式以及对张贴的内容进行评分来作为评价的依据。 通过订阅讨论区,学生和教师可以通过电子邮件收到最新的张贴内容。 日志 (Journal)模块 日志模块提供一种重要的反思活动。 教师指定一个开放性的问题引导学生思考和写作,学生可以在一定时间内反复编辑和修改,每个学生所写的内容只有他本人和教师可以看到,教师可以给予反馈。 资源 (Resource)模块 资源模块给教师提供了呈现教学内容和学习资源的途径。 教师上传的文件、在 Moodle 所提供的界面上直接编辑的内容以及网址链接,都可以通过这个 模块呈现。 测试 (Quiz)模块 3 Moodle 结构分析 9 测验模块允许教师设计、编制测验,包括选择题、是非题、匹配题和简答题。 题目分门别类储存于题库中,可以在课程中重复使用,还可以供其它课程使用。 测验可以多次作答,每次作答都是自动打分,教师可以选择是否给予反馈信息或是否显示正确答案。 这个模块包含了评分工具。 调查 (Survey)模块 调查模块提供了一些预设的调查问卷,这些问卷可以用来了解学生的意见、态度等。 目前问卷包括 COLLES 和 ATTLS 两种,它们可以在课程开始前作为诊断摸底工具,在课程结束时作为评价工具。 聊天室 (Chat)模块 聊天室模块允许平顺、实时的文字沟通。 在聊天窗口中可显示大头照,支持 URLs、表情图示、嵌入式的 HTML、图形等。 所有的讨论都会被记录下来以备为日后参考,而且学生也能看到。 工作坊 (Workshop)模块 工作坊模块允许学生之间对作业进行评价,而且教师可以管理并加以评分。 工作坊支持范围相当广泛的评价量表,学生对作业评分时可由教师提供范本。 Moodle 的 主要功能 Moodle 提供了覆盖管理员、教师和学生需要的各种功能,主要功能如下: 管理员功能 管理员的主要任务是搭建支持网上学习的软硬件环境、设置 课程体系,并且确定哪些人可以在允许范围内使用该系统。 管理员又可分为站点管理员和课程管理员。 站点管理员主要负责修改系统配置,维护课程/用户信息,设置站点首页、安装和维护3 Moodle 结构分析 10 功能模块等;课程管理员主要负责创建新课程,设置课程信息和任命教师。 管理员功能如 图 33所示。 图 33 管理员功能 教师 功能 教师又分为主讲教师和 辅导教师。 在指定教师时,如果不赋予教师编辑权限,该教师就是辅导教师。 主讲教师可以编辑课程的资源和组织教学活动;辅导教师具有管理成绩、查看日志、查看学生活动报告、进入教师讨论区等权限,他的任务主要是解答学生的问题,进行一些日常的教学管理,督促学生学习,并不参与课程设计。 教师功能如 图 34所示。 图 34 教师功能 学生 功能 学生可以在线阅读材料和参加学习活动,并将自己的学习历程以及对课程学习的感悟记录在自己的 Blog 上。 学生功能如 图 35 所示。 3 Moodle 结构分析 11 图 35 学生功能 模块化构架分析 基于 Moodle 下要 如何 设计和开发展示平台呢 ? 现在我们通过开发者的角度对其作一个分析。 Moodle 整体采用按功能封装的函数库结合面向对象的 方法来构建。 它是建立在 PHP环境之上的 , 由于 PHP是一种解释执行的脚本程序语言 , 所以在发布系统的时候我们几乎可以看到所有的系统源代码 , 这为我们分析其结构非常有帮助。 但是 , 由于其系统的规模和长期开源模块的积累 ,想要完全解析其系统构架是非常困难的。 Moodle 数据库模型 要进行二次开发 , 对一个系统的数据库模型的了解也是很必要的。 Moodle 的数据库模型经过几年的发展已经很复杂 , 为了减少这种复杂关系带来的混乱 , 它采用了这样的命名方式。 如 : mdl_course_categories, 其中 mdl是所有系统表格的前缀 , course代表属于 course的模块 ,categroies代表课程分类表 , 这样既可以保证清晰的表述 , 又可以避免不同模块之间数据表格的重名。 由于模块部分的数据模型会随着系统模块的增加而增加 ,所以当你扩展模块的时候 , 那部分数据模型就可能会发生变化。 在每次接触到某个模块的数据模型时 , 必须分析到细节 , 比如在设计自己的模块时 , 如果需要进行权限分配 , 就需要研究用户3 Moodle 结构分析 12 和角色的数据结构 , 图 36是 user 和 role 模块关系数据模型的简化图 (各表的字段略 )。 图 36 Moodle 数据模型中 user 和 role 模块数据模型简化图 4 Moodle 的二次开发理论 13 4 Moodle 的二次开发理论 Moodle 二次开发的形式 通过上 章 对 Moodle 结构的分析 , 以及对 Moodle 发社区的了解 , Moodle 二次开发重点不是 Moodle 的核心代码和模块进行修改 , 而是针对其外功能模块的设计和开发以满足特定的需求 , 即围 Moodle 的核心代码进行的模块开发。 图 41描了 Moodle二次开发的形式、 内容和适合的用户。 图 41 Moodle 二次开发形式 从上表中可以看出 , Moodle 的二次开发并不 是程员的特权 , 任何人都可以参与到 Moodle 的二次开发来。 这也是开源软件的一个特性 , 在学习中开发 , 又开发中学习。 Moodle 给我们带来的不仅是一个网络程平台 , 也给我们带来一种新的学习模式。 Moodle 二次开发的准备 开发环境和工具 要进行 Moodle 的二次开发 , 首先要建立开发环境 , 最必要的当然是构建一个开发用的 Moodle 平台。 注意不要在正式使用的平台下进行开发 , 必须经过测试平台严格测试后再上线。 Moodle 的平台可以创建在 Windows 下 , 运行环境构建好以后就可以进行开发工具的 选择。 因为 PHP 是解释执行的脚本语言 , 它是不需要编译的 , 直接修改源文件就4 Moodle 的二次开发理论 14 可以运行 , 所以使用最简单的文本编辑器就可以开发。 如果使用能对 PHP 的语法和关键词进行错误提示的工具就更好了。 如果要进行模块开发的话 , 推荐使用这个工具 eclipse。 如果是要进行语言包开发或是主题开发的话 , 那么简单的文本编辑器如 EditPlus, 以及网页编辑器如 FrontPage 和 Dreamweaver,就可以解决问题了。 熟悉目录结构 二次开发的第二个准备工作就是熟悉 Moodle 的目录结构 , 可以帮助你迅速的定位文件 , 进行 修改。 图 42罗列了 Moodle 的主要目录及文件。 Moodle 在自定义后 , 子目录的结构会有所不同 , 上述根目录的结构对相同版本来说是固定的。 4 Moodle 的二次开发理论 15 图 42 Moodle 主要目录和文件 总体开发约定 二次开发的第三个准备工作就是熟悉 Moodle 二次开发的约定。 因为 Moodle 是一个开源的软件 , 二次开发的目的除了要满足自己的特定需求以外还有一件更有意义的事情 , 就是 Contribute, 让别的用户分享你的劳动成果。 根据 Moodle 社区的约定进行二次开发才可以让所有的用户都方便地共享。 Moodle 社区制定了 开 发 约 定 ,包括有 coding guidelines、 interface guidelines 等。 特别是 coding guidelines部分 , 它约定了文件的名称、 代码编写的风格、 数据库基本结构和安全问题 , 所有模块的开发都应该遵循这个约定。 如果是进行主题的开发 , 那么 interface guidelines 中约定了诸如界面风格、 CSS 结构、 页面布局等问题。 按照约定进行的二次开发模块可以很方便地嵌入到 Moodle 系统中 , 不需对核心代码进行修改。 Moodle 二次开发指南 通用规则 有代码文件应当使用“ .php”作为扩展名。 “ .html”作为扩展名。 Unix 风格的文本格式(多数的文本编辑器都有这个选项)。 php 标记都必须是“完整”标记,如 ?php ? „„而非如 ? ? 的短标记。 如果有必要,您可以加入自己的。 文件。 ,可以使用函数 require_login()和 isadmin()、 isteacher()、 iscreator()或者 isstudent()。 lib/ 中的函数――这样可以兼容更多的数据库服务器。 所有的事情都应当是可以用这些函数来完成的,如果遇到必须要写 SQL 代码的情况,请记住这些代码应当是跨平台的,且仅仅对您代码中的特定函数 (通常在一个 文件中 )有效,且代码中用注释进行明确说明。 $CFG、 $SESSION、 $THEME、 $SITE、 $COURSE 和 $USER之外的全局变量。 4 Moodle 的二次开发理论 16 isset()或 empty()等函数进行检测。 ――在“ lang/en_utf8”目录中创建新的文本文件,字符串应当使用简洁的英文小写名称,并通过函数 get_string()或 print_string()来取得。 为了保证语言包的向后兼容,绝对不要删除字符串。 ――在“ lang/en_utf8/help”目录中创建文本文件并且通过 helpbutton()函数来调用它们。 如果要更新帮助文件: 对于小的修改,旧的翻译文件仍然可以继续使用时,可以直接进行修改,但您应当通知 translation AT moodle DOT。 对于大的修改,应当创建新的文件,新文件的文件名是在原文件名的末尾添加一个数字,并在以后逐渐增加 (如 ),这样翻译人员就可以方便地知道文件有了一个新的版本。 很显然,新的代码和帮助索引文件都必须修改以指向新版本的文件。 (以 GET 或 POST 形式发送)都应用了 magic_quotes(无论 PHP的设置如何), 因此直接将它们插入到数据库中是安全的。 所有其它的原始数据(来自文件或数据。基于moodle下课程展示平台的设计与开发
相关推荐
ucTemp = P2INamp。 0x0F。 Delay_Nms(20)。 if(ucTemp != 0x0F) {//判断该列是否有按键按下 Delay_Nms(15)。 if(ucTemp==(P2INamp。 0x0F)) { switch(ucTemp)//如果有,则判断行号 四川理工学院挑战杯论文 第 16 页 共 32 页 { case 0x0E: ucLine=1。 break。
作。 2. 负责审查月度结算、年度决算方案。 第九条 财务审计部 1. 负责严格按照国家、集团 公司的有关要求执行财务预算。 2. 负责对公司财务运行情况进行分析、报告。 3. 负责月度结算、年度决算的具体工作。 4. 负责指导、监督分、子公司的月度结算和年度决算工作。 第十条 各分、子公司 1. 负责严格执行年度、季度、月度预算。 2. 负责编制本单位月度结算、年度决算方案。 4 第三章
“特殊使用”抗菌药物时,需在病程记录 中详细记录病情,记录会诊专家意见以及与家属沟通情况。 紧急情况下,临床医师可越级使用,但处方权限仅限于科主任,“特殊使用”抗菌药物只限一日剂量,且必须在病程记录中详细记录。 二、 具体特殊使用
来逼近理想低通滤波器。 “最平响应”即由此而来。 ( 2)通带,阻带下降的单调性。 这种滤波器具有良好的相频特性。 ( 3) 3dB 的不变性:随着 N 的增加,频带边缘下降越陡峭,越接近理想特性,但不管 N 是多少,幅频特性都通过 3dB 点。 当Ω≥ c 时,特性以 20NdB/dec 速度下降。 图 不同阶数 N 的巴特沃斯滤波器特性 现根据式( )求巴特沃斯滤波器的系统函数 Ha(
在载入图片时,提供“从上往下”、“从下往上”、“从左往右”、“从右往左”、“左上进入”、“左下进入”、“右上进入”、“右下进入”、“马赛克”、“百叶窗”等显示效果,并且可以由用户选择是否使用及使用哪个效果,用户也可以选择让系统随机选择效果。 在查看图片时,用户也可以让软件随时显示“水平百叶窗”、“垂直百叶窗”、“马 赛克”、“向上扫描”、“向下扫描”等效果。 在查看图片时
dula=0。 //关闭断选 P0=0xff。 //送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱 wela=1。 //打开位选 P0=0xfd。 //送位选数据 wela=0。 //关闭位选 delayms(5)。 //延时 display(bai,shi,ge)。 } } void display(uchar bai, uchar shi,uchar ge)