基于Moodle环境的在线编程与测评系统研究

2018-09-07 06:06孙丹鹏
信息记录材料 2018年10期
关键词:程序代码代码编程

孙丹鹏

(曲靖师范学院信息与教育技术中心 云南 曲靖 655011)

1 引言

本文提出基于Moodle环境搭建在线编程评测系统,学习者可以在有网络的地方就可以在线编程,且系统能够及时评测反馈给学习者,减轻教师工作,也方便学习者更有效的习得编程技能。基于这种在线编程与测评系统学习环境,更有助于学习者的编程技能的培养与学习。

2 Moodle平台与Virtual programming lab

Moodle是一个用于建设网络课程和站点的课程管理系统,是为支持社会建构主义教育框架而设计的全球性开发项目。Moodle作为开源软件免费提供,遵循GNU通用公共许可协议[1]。它集IT、教学、管理、社会性交互等多重维度为一体,协助学习者共同完成知识建构的开放网络平台,具有门槛低、便于操作、功能强大、开放兼容等优势[2]。Moodle系统在学生参与、课程传递、内容制作、用户操作、内容组织及适应多种学习活动等方面表现优秀。

Virtual programming lab(VPL)[3],虚拟编程实验室,是一个免费的Moodle活动模块插件,提供了一个集成环境可开展在线计算机编程的教学与管理。其程序代码编辑、运行编译和自动评价的特点使得学生的学习过程和教师的评价任务比更简单容易。其显著特征是:基于浏览器编辑程序源代码;学习者可以直接在浏览器中运行交互式程序;可以运行测试来检测程序代码是否正确。允许搜索文件之间的相似性以审查抄袭;允许设置编辑限制和避免直接外部文本粘贴等。

3 基于VPL的编程开发环境搭建

VPL主要有三个组成部分:Moodle模块、基于浏览器的代码编辑器和Jail组件(图1)。

图1 VPL体系架构

VPL作为一个管理程序分配的活动模块安装到Moodle插件模块中,其使用简单容易,Moodle模块化组件方式提供了这种组件的典型特征(备份和恢复、与分级图书的集成、课程重置、事件控制、基于角色的访问等)。代码编辑器为程序编辑、运行提供基本的功能,用于调试和评估程序代码,还包括诸如提交管理、评估支持和反抄袭特征等特定功能。Jail组件是负责在安全环境中编译和执行由学生提交的代码的服务器。它基于Linux命令来提供主机文件系统的读写权限,具有很高的安全性。运行或评测程序文件提交至少需要一个Jail服务器。Jail服务需要Ubuntu或RedHat兼容的Linux发行版。Jail服务器支持交互和非交互执行的请求[4]。

为了在控制台中能顺利提供执行功能,Moodle服务器需要至少打开两个端口,建议使用更大的端口。且执行提交的PHP脚本需要比一般应用更多的时间,因此在PHP配置中需要配置增加时限的设定。

4 VPL系统架构及运行原理

VPL模块使用双代理与浏览器客户端进行通信,以发送客户端的请求,并同时与Jail服务器的另一侧通信,以执行与这些请求相关联的运行任务。这允许多种网络拓扑结构。最简单的部署是在同一台计算机上配置并运行Jail服务器和Moodle服务器,其缺点是失去了隔离服务器的安全保障。另一种部署方式是将Moodle服务器与一个或多个单独的Jail服务器连接,这些Jail服务器可以在配置在专用网络中。在一个或多个Moodle服务器之间共享多个Jail服务器,这是一种比较可行的组织架构,改进了资源消耗。这种配置可以通过改变Moodle服务器使用的Jail服务器的数量来适应工作量峰值,可以更灵活的方式参与执行任务的需求变化。其缺点是Jail服务器必须在公共域中,以便在不增加网络复杂度的情况下使它们能够适用于所有Moodle的服务器。

使用多个Jail服务器不仅支持可伸缩性和提高性能,而且还提供容错性。当VPL模块接收执行请求时,它接收可用Jail服务器的列表,并随机选择未标记为具有先前故障的一个进入特定的时间范围。然后VPL向服务器发送可用性请求;如果对该请求的响应是执行的,则将执行请求分配给服务器,否则选择新的服务器。如果没有找到服务器,则重复考虑先前失败的服务器的过程。(图2)

图2 VPL体系架构

5 VPL在线编程实施与应用

在线编程与测评系统的功能在于学习者提交用程序设计语言来在线编写的代码后,系统对代码进行编译和运行,看其是否符合时间和空间的要求,然后与标准的设计好的测试数据进行对比来判断程序的正确性[5]。在Moodle平台系统中采取建立课程活动模块的方式来搭建课程学习活动。VPL环境集成在Moodle平台环境中,能为学生提供多种编程任务活动,支持多中语言的学习,如 C,C++,C#,Haskell,FORTRAN,Java,Octave,Pascal,PHP, Prolog,SQL,Ruby,Python,Scheme,Vhdl等。

采用VPL可以用来配置、管理和评估一系列在线编程学习活动,这些活动可以按类型或范围进行分类。根据类型,学习活动可以是:范例、完形填空或拼图练习和代码开发练习。范例方式取决于学生是否可以修改代码,可修改示例代码可随时让学习者将其重置为原始状态。完形填空和拼图练习尤其适合初学者,其为学生提供问题描述和解决问题的程序代码,只是学生必须修改代码以完成任务。如部分代码已删除,学生必须填空,拼图练习中代码已全部打乱,学生必须对其进行排序,以便以适当的方式完成代码工作。

6 结语

本文阐述了基于Moodle环境的在线编程与测评系统,它是管理、构建和测评计算机程序练习的有力工具。这个工具的主要优点是它集成在一个开源的学习管理系统中,其特点是它能够根据程序测试产生完整的测评报告,并及时给学习者提供反馈信息。此外,所需的程序测试可以以非常灵活的方式进行配置,从简单的输入输出测试到单元测试全都可以覆盖,完全能满足日常编程教学需求,为学习者提供了一个更加便捷、有效的编程学习环境。

猜你喜欢
程序代码代码编程
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
创世代码
创世代码
创世代码
创世代码
计算机网络信息安全未来发展趋势
基于图元装接模式由程序流程图自动生成源代码