一种自主学习系统的设计

时间:2022-06-04 05:39:36

一种自主学习系统的设计

摘要:本文描述了一种自主学习系统的设计与实现过程。系统同时具有学习和考核功能,学生可以自主选择单元学习、参与单元考核、查询学习成绩等。系统同时能对抄袭等作弊行为作出预防。数据库的设计根据数据库设计原理,采用数据库SQL Server 2008,并给出了多个表的组成结构。本系统充分使用MVC三层模式的灵活性来简化开发过程,优化了系统性能,从而提高了系统的开发价值。系统操作简单,使用方便,减轻了老师的一部分教学工作负担。具有一定的使用价值和技术参考价值。

关键词:知识点 自主学习 编程 检测

中图分类号:TP391.6 文献标识码:A 文章编号:1007-9416(2015)12-0000-00

1引言

随着网络时代各种信息相关技术的飞跃发展,知识的积累呈现出爆发式的增长,在教学生活中被提及的知识也在不断的增多,传统的基于平时上课学习,期末考试检测知识点的教学模式由于试卷涉及知识点的不全面已经不能很好的检测学习者掌握了多少知识点,建立一套适应发展潮流的学习系统就成了一个重要的内容。课题在深入分析信息发展的当下,如何建立一套适应信息化时代学习方式的系统,以C#编程语言为基础,加上SQL数据库以及JavaScript等脚本语言,以学校选择教授的ASP课程为内容,设计构建了在线自主学习系统。设计完成的系统功能包括在线学习课程、检测知识点、查看结果等,不仅能够发挥当代网络普及的优势,让学习者在业余时间随时学习,培养自学能力,提高知识水平;还可以为教学者提供准确的学习进度和学习情况,为信息化时代下学习方式的扩展和研究,作出重要参考。

国家的创新能力最终是由人才的创新能力决定的,对于中国这样的一个处于工业化中后期和转型期的大国来说,走新型工业化道路,建设创新型国家,需要一大批优秀的工程技术人才[1]。但是,由于扩招带来的资源的不足,教学内容跟不上信息时代下知识增长所带来的变化,学习者的基础以及所掌握的知识就明显欠缺,而且越来越难以检测。而这些问题不解决,没有知识的积累,也就无从谈起创新,工程原始创新能力的不足也就无法解决。

这些问题有着自身的系统性和复杂性,国外提出的CDIO工程教学改革,而国内也紧随其后的启动了“卓越工程师教育培养计划”,这些都是应对的方法[2]。而在线自主学习系统也就变得很有研究意义――无论是纷纷繁繁的网上公开课,还是在线师生问答,这些都是对于解决信息时代新形势下的教学困境的一种尝试。而在线自主学习系统,对于解决知识积累不足,掌握学习者情况有着良好的帮助,也有着重要的使用价值。

2 系统架构设计

系统的设计特点:在线学习的四个主要特点构成了在线学习的基本要素,这四个主要特征为:对话,参与,支持,控制,简称 DISC特征[3]。对话要素,是指教学者与学习者之间的交流与互动,传统意义上就是教师对学习情况的了解;参与是指学习者整个的学习过程,在本次系统中表现为学习和检测;支持就是对学习者学习情况的反馈和督导,这主要是线下,本文不做论述;控制是学习者对于学习进度和目标的掌握,要详细了解,就需要准确及时的记录。

系统的运行环境特点:为了更好的推广以及运行在线自主学习系统,到达需求分析的要求与预期效果,这就要求系统的运行环境不能极端,得适合大多数个人终端(PC)的配置,也就是至少满足Microsoft Windows XP及以上的操作系统,同时支持IIS 5.1(互联网信息服务5.1版本,这是Microsoft Windows XP系统默认的缺省版本号)。条件与限制不能太突出,必须简便可靠,操作简单易懂。也就是能够从系统界面上直接了当的明白使用方法;总的要求就是可靠、可用、有效而准确。

需要指出的是,在线自主学习系统不仅仅是对于学习者的,同时也是为了教学者能够更方便、更直观、更可靠的掌握学习者学习情况,这就要求在线自主学习系统能够指出知识点检测时学习者的知识点哪些不足,方便教学者针对不足的知识点对症下药[4]。

本系统总体结构如下,包含了登陆、学习、检测、以及反馈,系统操作等模块,如图1所示。系统开始运行后,首先弹出一个动画的欢迎页面。为了给予访问者深刻的感受,每个网站都应该存同一的布局和风格,所以现存的网上系统都有自己独特的可视化界面,而可视化界面在不同的技术发展阶段有着各种各样的实现方法。具体到本在线自主学习系统中,大量的JavaScript的运用使系统有良好的可视化界面。并且登陆后的网站界面上方的系统菜单内归入所有的功能,可以从在线自主学习系统的网页菜单内明确所需的功能,方便用户的操作与使用。

图1 软件系统组成方框图

3 数据库开发设计

无论哪个系统的设计中,设计数据库始终放在一个重要的位置,这关系到完成后系统的查询和其他操作的是否方便,开销是否在合理区间内,程序的性能有没有受到到影响,如果不能做好数据库的设计,就可能让数据库成为系统优化的障碍。通过合理、有效的设计和策略,做好数据库的设计方法,能够优化数据库:简单说来,正规化就是在表格设计时,消除冗余性和不协调的从属关系,从而建立一个可行而且效率高的数据库。为了达到一个良好的数据库,本次数据库在设计的原则中包括:良好的命名规范(主要采用敏感的大小写和合适的字符长度)、数据的约束(数据间的一致性和关联性)、数据类型的慎重选择(合适的类型,方便操作,方便读取)。

4 成绩评价模块程序设计

4.1单选判断题的自动评分

首先说明,在本次在线自主学习系统中,选择题后判断题数目是默认的值,这个可以根据学习进度的安排进行相应的变换,其次,在检测中是随机抽取某个范围内若干不重复的数,这些数代表知识点的不重复抽取,是指选择题和判断题检测的知识点不能一致。

由资料文件可知,random函数只是简单的抽取一个随机数,不能保证抽取的随机数不是重复的,在此次在线自主学习系统中实现不重复随机抽题功能的算法。

从流程图中得知,首先定义一个题目数组和抽题数组,题目数组和数据库中的题目一致,代表抽题的范围,初始时按照编号顺序赋予连续的初值;而抽题数组的容量和所需要的题目数一致,现在并不知道那些题目会被抽取,暂时不赋值。

int[] index = new int[15];

for (int i = 0; i < 15; i++)

index[i] = i;

int[] result = new int[];

定义随机抽取函数,并且在随机抽取函数时设置下线,下线范围即抽题范围,同时,被替换的下线会变成某个编号的新值,确保抽取的题目编号在数据库中有对应的位置。当抽取一道题后,获得编号对应的值,然后下线自减1次,并将自减前的值赋予给刚才被抽取到的编号的值,实际上等同于改变这个编号的值,替换了已抽取的值。这样,即使下次抽到同样的编号,也能保证获得的题目的值不同,确保了题目的随机性和不重复性。

网页中实现编程题和判断题,考虑到需要方便的控制抽取题目的数量,在线自主学习系统中使用了服务器空间,虽然增加了某些方面的开销,但是让该功能容易实现了,具体的实现方法是在datalist控件中ItemTemplate中拖入三个label控件,分别作为题目、答案、符号的载体,其中,后两者在提交检测之前不可见。同样的操作设置四个一组的RadioButton控件,作为单选框,为了使代码尽量干净,便于阅读,绑定都放在前台页面。

当提交后,后台系统遍历四个选项和答案,当检测到选项一致时,将计数值由初值加一,并显示笑脸,当不一致时计数值不变,并给予哭脸。将结果数据发送到数据库存储,值得注意的是,需要将已抽取题目的编号再次遍历,查找知识点,存储,以供判断题参照。

在datalist中,使用如下方法获取控件的值。

RadioButton A = (RadioButton)DataList1.Items[i].FindControl("RA");

检测开始前,就应当对抽取题目的知识点进行遍历,需要注意的是,在同一类型的题目中可能有两道同一知识点的题目被抽取,此时遍历后的值相同只取一个,使用关键字distinct排除重复的结果,语句如下:

select distinct testtype from " + dbtable + " where testid in('" + a[0] + "','" ...."

将所遍历到的知识点返回存储到session中,方便判断题使用。判断题的原理同选择题一致,但是在抽取时就不能同选择题一样直接从数据库中开始。应当重新建立一张临时表tmp,将出去选择题已抽取到的知识点所代表的题目外的所有题目放入临时表中,再从临时表中执行同选择题一样的算法,最后删除这张临时表。

4.2编程题的自动评分

编程题的实现是一个比较复杂的过程,首先牵扯到的是如何读取效果内容,如何利用该效果进行判分,在本次在线自主学习系统中,实现的方式为首先,在dataset中读取数据,将数据转换为二进制,为了方便比较,也为了防止从数据长度进行推断,对结果密文采取了哈希处理。

值得说明的是,本次在线自主学习系统的编程题题库默认为下载,设计由于条件限制,暂不给出下载题库。从效果图可以看出,给出了初始数据效果以及结果数据效果,检测者对照初始数据判断自身的数据库是否加载正常,从结果数据库中可以知道预期结果。

当然,当从题库中下载题库,完成后会生成一个名叫result.txt的文本文件。该文本文件中写入了一串十六进制的字符,将这串字符复制进入文本框,点击提交,就能完成系统的判断工作了。

需要注意的是,由于编程题的特殊性,题库抽中相同题目的可能性并不低,所以需要考虑对文件进行加密,有不同编号对应不同的密钥值,得出一段密文,易于实现以及方便修改变化是本次在线自主学习系统采用该算法的理由。

5 结语

本次设计,实现了一种自主学习系统。完成系统后,将输入正确和错误的密码,测试反映页面是否正常。然后检查登陆后的主界面是否有其他功能不完善或者出现错误提示的地方,逐步测试选择、判断模块,编程题模块,学习模块以及记录模块等其他地方是否有异常,然后是错误输入各种信息,查看系统反应。在相应的实验平台上,其余的系统操作模块能够正常实现自身的功能,准确的添加、删除、修改相应的信息,实现系统的预期要求,但是必须承认的是,界面不够友好,还是老式的手工输入和输出,在大批量的操作下,很有可能出错,这是必须正视的问题,但是本次设计还没有找到好的解决方案,其次,在页面非正常提示的时候(404等错误页面时),通常会泄露某些关键信息如数据库以及数据库表段名等,从安全的角度而言是系统应该尽量避免的。

本次设计实现了在线自主学习系统的预期功能,该系统可以方便的进行在线自我学习,结束后能进行检测,并从各方面的检测中将学习者的学习情况良好的进行反馈,方便进行针对性的学习,同时系统具有良好的适应性,能够适应绝大多数操作系统以及运行环境,实现了预期目的。

参考文献

[1]梁田,王春艳,何远德.在线自主学习特点类型及教师角色定位分析[J].西南名族大学学报,2008:198-201.

[2]石云辉.论动态网站数据库设计策略[J].福建电脑,2003:69-72.

[3]张海龙,李明,杨欣.大型数据库设计原则[J].信息技术,2001:19-20.

[4]张健,任洪娥,陈宇.密码学原理及应用技术[M].北京:清华大学出版社,2011.08.

x

上一篇:浅论我国不同哲学观念下的色彩审美 下一篇:紫砂壶茶艺传统文化