基于脑可塑性的在线认知训练 游戏平台设计与实现*
赵鹏+++邱飞岳
摘 要:为了能使基于脑可塑性的认知训练项目以简单有效的方式供学习者训练,本文利用JavaWeb、Ajax和Flash等信息技术,设计与实现了基于脑可塑性的在线认知训练游戏平台。文章首先介绍了脑可塑性的研究及其对学习者学习效率的促进作用;然后提出当前的认知训练项目枯燥乏味且没有一个在线平台来搭载这些训练项目供学习者训练的问题;接着设计了此平台的框架并阐述了实现此平台的关键技术;最后详细介绍主要功能模块的实现方法并提出平台存在的不足和对其未来的展望。
关键词:信息技术;认知训练;脑可塑性;训练平台
中图分类号: 文献标志码: 文章编号:1673-8454(2014)07-0080-04
一、引言
1.学习与大脑之间的关系
当今教育大多数人都在讨论如何将现代化的东西带入课堂,例如智能手机、多媒体技术等等,这些成本高昂的手段在一定程度上提高了教学的质量和学习的效率,而往往在很大程度上忽略了一个相对廉价的途径——认知心理学。相关研究认为可以通过提高记忆力、注意力等来提高学习效率。[1]学习是极其复杂的社会文化与生物现象,不仅涉及社会、文化、心理等方面,而且也与神经结构与功能之间存在着相互作用与影响。[2]从宏观的角度而言,对于大脑与学习之间的关系存在两个方面的理解,即大脑是学习的基础,学习是大脑的功能。人的大脑就像其他器官一样,自然承担了各自的功能,而学习正是属于脑的特有功能。[3]
2.脑结构和功能可塑性
脑和神经系统结构及其功能均具有高度的可塑性。所谓脑的可塑性,即脑可以被环境或经验所修饰,具有在外界环境和经验的作用下不断塑造其结构和功能的能力。学习实际就是脑的可塑性的一种重要表现,或者说如果脑没有可塑性也就没有学习的可能。“应试教育”长期影响着我国教育,从现代社会的人才要求来看,我们的教育应该更多地注意学生素质的培养,而科学素质是最重要的一个方面,例如对知识的融会贯通能力、理性思维能力、洞察力以及创新能力等。[4]而这个几个能力其实也可以概括为注意力、记忆力和创造力这些认知能力,提高认知能力便可在一定程度上加快大脑的可塑性,也就等于提高了学习的效率。
3.当前认知训练所存在的问题
之前已经有大量研究证明,人的认知能力是可通过后天的针对性认知训练手段得以改变并提高的。然而,先前的训练手段仅供研究或临床使用,并没有真正普及到现实社会当中,本人认为有以下原因:
(1)这些训练项目本身枯燥乏味,学习者在训练的过程当中很难对其提起兴趣,往往一开始因为新鲜能坚持训练,没多久便慢慢失去兴趣,到最后无法达到预期的训练效果。
(2)没有一个良好的平台来搭载这些训练项目,使训练的结果无法方便地以直观的方式供被训者查看,从而对训练项目的作用效果失去了信心。
(3)学习者在接受训练的时候要么需要到某个特定地点训练,要么需要安装复杂的训练环境,总之都无法方便地接受训练。
而在现在信息技术蓬勃发展的今天,Web技术已经相当成熟,笔者旨在搭建一个基于Web的在线认知训练游戏平台,将这些认知训练项目以小游戏的方式供人们训练,这样不仅能使枯燥乏味的训练项目变得简单有趣,让学习者更容易接受,且被训者可以实时直观地查看自己的训练进度和训练效果,因为是基于Web,也能到任何一台有浏览器的电脑上接受训练,且不需要安装训练环境。国外已经有成功的例子,并且也证明了在线训练的有效性。[5]而在国内,这样的平台尚且不多见,遂笔者以JavaWeb搭载Flash训练游戏的形式,用MyEclipse开发并实现了该在线训练平台。使用者通过该平台坚持训练将增强认知能力,提高学习效率。
二、系统的总体框架
训练平台的功能模块设计主要包含以下几个部分。
(1)资源管理模块:为了达到多样化的训练,平台必将搭载大量的训练游戏资源,而且这些资源将会在平台实施后不断增加。所以需要实现训练游戏资源的管理模块来对这些资源进行方便的增加修改和删除,并且在修改和删除的过程中要考虑良好的交互性和严谨的数据完整性。
(2)训练计划模块:不同的使用者在认知水平和认知结构上都有一定的差异,为了能够使训练的效果达到最大化,需要根据不同的使用者的认知特点来生成个性化的训练计划。而且使用者在训练过程中认知水平和能力也会有一定的变化,所以平台也会根据这些变化实时改变训练计划。
(3)训练模块:训练模块是平台的核心模块,此模块用来呈现训练游戏资源的同时还要将训练结果通过网络提交给服务器,同时还要将训练结果和历史记录反馈给使用者,例如当前训练的结果和历史排名情况,甚至可以是与他人的排名情况。这里与他人情况比较的利弊尚且无法讨论。
(4)数据统计模块:使用者按训练计划训练结束后,平台将对使用者的训练数据和训练效果以图表的方式进行统计,这样使用者便可在图表上清楚地看到自己训练的状况以及认知水平和能力的提升状况。
(5)其他模块:作为一个在线训练平台,注册登录权限控制等都是不可缺少的模块,同时也是web平台所普遍具有的模块,所以这里将其归为其他模块,同时本文也不详述此模块的具体设计。
三、关键技术
1.Flash技术用以设计游戏
基于web的平台最后呈现给用户的必然是HTML这种页面语言,然而由于HTML语言的功能十分有限,无法方便地用做训练游戏的开发,虽然HTML5的出现使搭载在页面上的游戏有良好的运行效率和画面渲染能力,但是其不成熟的现状使其必然不能成为开发本平台训练游戏的主要技术。Java Applet比HTML5要成熟得多,且有很多成功的例子,但使用它的前提是用户端浏览器必须安装近百兆的JVM,显然也是很多用户所不愿意的事情。
Flash技术出自Adobe公司,以其良好的画面表现力、强大的交互性、直观简易的开发过程、优秀的跨平台能力广受游戏开发者的好评。虽然,使用它的前提也需要在用户端安装类似虚拟机的Flash Player播放器,但其文件体积远比Java虚拟机小得多,而且现在大部分的浏览器都已内置Flash Player。所以,Flash作为在线训练游戏的主要表现形式是最适合不过的了。
2.SSH2作为平台框架
SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种JavaWeb开源框架,而SSH2则是Struts2+Spring2+Hibernate3的统称。集成SSH框架的系统从职责上分为四层——表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。同时,Hibernate作为框架中的数据持久层可以提高操作数据库的效率,提升平台系统的整体性能。因为,Web系统的主要表现为页面的跳转和服务器与数据库的数据存取,而数据存取的速度直接决定了页面的响应能力,所以,通过Hibernate的数据持久化和Spring的Session管理可以实现平台超高的响应能力。
3.Ajax技术进行数据记录
Ajax是一种用于创建更好更快以及交互性更强的Web应用程序技术。通过Ajax,我们可以使用JavaScript的XMLHttpRequest对象直接与服务器进行通信,这样可以在页面不重载的情况下与Web服务器进行数据的交换。例如在本平台中,使用者在单个训练游戏结束后需要查看训练结果,如果在不使用Ajax的情况下我们必须将跳转到一张新的页面,而这个过程对服务器也是一个负担,因为服务器需要生成一张新的页面来呈现训练结果。但通过Ajax技术可以在页面不刷新或跳转的情况下直接将训练结果显示给使用者,这样既减轻了服务器的负担,也减少了使用者的等待时间。当然,本身Flash需要通过它内置的XMLSocket对象与服务器进行数据的交互,毕竟训练结果是由Flash产生的,但缺点是服务器的URL一旦写入Flash后期修改将非常麻烦。但Flash可以调用承载它的页面上的JavaScript脚本,即Flash可通过Ajax与服务器进行数据交换,而这时服务器的URL是写在页面上的,当需要更换URL时只需要更改页面上的URL即可,远比去修改已编译好的Flash文件要方便得多。
四、系统实现
1.开发工具
由于本平台采用的开发语言框架为SSH2,也就是JavaEE,那么也就决定其开发工具为MyEclipse。MyEclipse是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布和应用程序服务器的整合方面极大地提高工作效率。到目前为止其最高版本为MyEclipse10.5,而本平台采用MyEclipse10进行开发。
2.功能模块的实现(见图1)
(1)资源管理模块
此模块主要用于管理训练游戏资源,而每个训练游戏都有很多属性,例如游戏编号、游戏名称等。此时,需要建立一张数据库表来存储这些信息,并将游戏编号作为主键,同时每个游戏所对应的Flash文件都使用其游戏编号作为文件名。而游戏的类别则建立一张游戏类别的表来存储类别信息,同时将类别编号作为游戏编号的前两位,在程序中若要知道某个游戏的游戏类别,只要取游戏编号的前两位并以此作为类别编号去类别表中查询即可。
在新增游戏资源时需要有一张新增资源的页面,页面包括游戏名称、游戏类别、上传Flash文件。其中,游戏类别通过下拉框的方式进行选择,不需要输入填写,在填写所有信息完成后点击提交按钮即可。此时服务器接收所有这些信息,自动生成游戏编号并将游戏类别的编号作为游戏编号的前两位,最后将所有信息存入数据库当中,同时返回训练游戏资源列表。
一是修改训练游戏资源。
在修改训练游戏资源前首先需要查找数据库列出所有训练游戏资源,以训练游戏的封面缩略图作为显示项目并以列表的方式进行呈现。同时可以通过选择不同的游戏类别来筛选训练游戏,从而达到快速找到自己要修改的游戏的目的。找到需要修改的游戏后只要点击游戏封面的缩略图即可进入修改界面,因为缩略其实是一个超链接,并且以这个游戏的编号作为查询条件来进入修改界面。进入修改界面后,修改相关项目并点击保存按钮,此时服务器会接收修改信息并存入数据库,最后返回训练游戏资源列表。
二是删除训练游戏资源。
当有训练游戏资源已经过时或者被证明不够优秀时我们需要将其进行删除,但删除操作在大多数系统中都是很复杂的,因为删除的资源有可能被其他记录所依赖,例如训练历史等,都需要先删除与之关联的记录后方可删除。所以这里的删除其实并不是真正的将训练游戏资源记录进行删除,而是将其标志为不可用,这样既不影响数据完整性的同时也达到了删除的目的。
(2)训练计划模块(见图2)
训练计划是指一周七天每天所要训练的游戏的一个安排情况,笔者的设计是一天安排4个训练游戏,而每天训练哪些游戏,或者训练哪种类型的游戏都由一个简单的随机机制来实现。这里随机机制专门由一个类来管理,方便以后对计划安排算法的优化和改进。训练计划的呈现方式为一张一周的日程表,为了降低服务器的负担只显示当天的计划,例如当天是周一,那么日程表的表头中周一为高亮状态或选择状态,下面空白处显示当天的训练游戏的缩略图与标题等,使用者可以点击某个游戏的缩略图来进入这个游戏的训练,或者点击“开始训练”按钮让系统选择先训练那个游戏。若某个游戏已训练完成,则将其超链接关掉,并显示已完成。
训练计划的实现过程是首先建立一张训练计划表,以用户的ID和训练游戏ID作为外键,形成多对多的关系,同时还需要训练的完成时间属性用来记录这个计划什么时候完成。然后在程序当中,先根据用户ID查找到属于该用户的所有计划,并查看其完成时间,若完成时间为早于当天的日期,那么说明该训练计划为旧的计划,需要更新;若完成时间等于当天的日期但时间为零点整,那么说明该训练计划为新的计划且未完成;若完成时间等于当天的日期且时间不为零点整,那么说明该训练计划为新的计划且已完成。最后根据判断该训练计划的状态作相应的更新操作即可——旧的计划则重新随机生成计划,新的计划则不对数据库作任何操作,只是在显示的时候显示已完成或未完成。
这里判断状态的机制有一个漏洞,就是当系统在前一天更新了计划,而用户刚好在第二天的零点整完成训练计划,这个时候系统就会认为这条训练计划为新的训练计划造成第二天的这个游戏没有被替换掉。考虑这个情况,所以对判断算法稍加改进,因为根据表的设计,那么每个人每天会有4个游戏训练,即从数据表的角度看每个人都会有4条训练计划记录,所以在判断状态的时候若有一条训练计划的完成时间被判断为旧的计划,那么所有的4条计划都会被重新生成。这样便避免了刚才提到的漏洞,因为没有人能将4个游戏都在同一天的同一时间完成。
(3)训练模块
在训练计划页面中进入训练页面,这张页面主要是搭载了Flash播放器并加载Flash游戏,但是不同的浏览器加载Flash播放器的方式也不同。所以为了统一起来,使用了SWFObject组件,这个组件事实上是一个JS(JavaScript)文件,它能自动根据当前使用的浏览器选择最合适的加载Flash播放器的方式。使用时先在页面首部导入SWFObject.js文件,然后填写好height跟width属性,并指定一个页面元素的id,告诉它在什么地方显示,最后填写file属性指定要加载的Flash的文件位置即可。
为了Flash与页面之间的数据交换比较方便,并考虑到后期训练游戏将不断增加到平台当中,而在游戏开发的过程中可能也不停地维护平台,例如要增加Flash与页面之间数据交换所需要用到的属性的增加、更名等,这都会导致相互之间的耦合度太严重,毕竟页面上的属性必须与Flash中的属性名要一致,修改页面上的属性的同时之前开发的所有游戏都要改动,这样非常费时也费精力。所以介于这个需求,特地开发了一个介于页面与Flash游戏之间的框架,这个框架也是用Flash制作,负责加载Flash游戏以及参数的初始化工作,这样,若页面上有参数名有所改动,那么只要更改框架与页面之间的参数名,而不需要去修改其他所有游戏,而且大多数游戏都有的操作(例如帮助、暂停、开始、静音等)都可以整合到这个框架当中,新开发的游戏只需要专心设计游戏而不需要重复设计这些基本操作。
在训练结束以后,需要记录训练的结果(例如所得的分数、花掉的时间、使用的步数等)。这个时候就需要使用Ajax技术来实现这个功能,虽然Flash也有与服务器进行数据交换的能力,但是不够灵活,原因在前面已经提到了。让Flash来调用页面上的JS(JavaScript)脚本,再通过脚本以Ajax的方式与服务器进行数据交换,由于这个过程已经写成函数,所以游戏开发者只要在游戏结束时调用这个函数即可,并填写需要上传服务器的参数值。服务器接收到游戏结果数据后存入数据库并将排名情况等信息发送回来,页面将隐藏掉游戏界面并显示这些信息,而在这个过程中页面不会刷新,保证了页面高效的反应速度,同时体现了更好的交互性。
(4)数据统计模块
这里主要是利用了数据库表的结构以及数据来进行分类统计,并以图表的方式来进行呈现。为了达到良好的视觉效果,这里使用了JQuery框架来实现一些简单的缓动效果(例如每个方面的训练状况都会以横向柱状图来表示,而加载这张页面的初期柱状图会由短到长变化等)。统计的算法是先根据用户ID去查找训练历史记录表,找到所有关于这个用户的历史记录,然后根据不同的训练类型统计分数,将这些分数取最高与最低值并计算出差率,最后以柱状图的最高长度为基数乘以这个差率的百分比算得实际长度并以缓动的形式呈现在页面上。
五、结束语
本研究将认知训练与信息技术结合起来,设计并实现了一个基于Web的在线认知训练平台,为学习者提供了提高认知水平的工具。本研究的创新之处在于将用于临床的枯燥乏味的脑可塑性认知训练项目以简单有趣的小游戏的方式进行呈现,并用Web平台搭载,从而使学习者进行方便有效的认知训练。
参考文献:
[1]Henry L. Roediger .Inexpensive techniques to improve education: Applying cognitive psychology to enhance educational practice[J]. Journal of Applied Research in Memory and Cognition ,2012,4(1) 242-248.
[2]周加仙,董奇.学习与脑可塑性的研究进展及其教育意义[J].心理科学,2008(1):152-155.
[3]吕林海.学习与教学:一种基于脑的解读[J].教育理论与实践,2004(11):38-42.
[4]杨雄里.脑科学和素质教育刍议[J].教育理论与实践,2002(2):1-10.
[5]Joseph L. Hardy.Enhancing visual attention and working memory with a Web-based cognitive training program[J].Mensa Research Journal,2011,42(2):13-20.
(编辑:王天鹏)
摘 要:为了能使基于脑可塑性的认知训练项目以简单有效的方式供学习者训练,本文利用JavaWeb、Ajax和Flash等信息技术,设计与实现了基于脑可塑性的在线认知训练游戏平台。文章首先介绍了脑可塑性的研究及其对学习者学习效率的促进作用;然后提出当前的认知训练项目枯燥乏味且没有一个在线平台来搭载这些训练项目供学习者训练的问题;接着设计了此平台的框架并阐述了实现此平台的关键技术;最后详细介绍主要功能模块的实现方法并提出平台存在的不足和对其未来的展望。
关键词:信息技术;认知训练;脑可塑性;训练平台
中图分类号: 文献标志码: 文章编号:1673-8454(2014)07-0080-04
一、引言
1.学习与大脑之间的关系
当今教育大多数人都在讨论如何将现代化的东西带入课堂,例如智能手机、多媒体技术等等,这些成本高昂的手段在一定程度上提高了教学的质量和学习的效率,而往往在很大程度上忽略了一个相对廉价的途径——认知心理学。相关研究认为可以通过提高记忆力、注意力等来提高学习效率。[1]学习是极其复杂的社会文化与生物现象,不仅涉及社会、文化、心理等方面,而且也与神经结构与功能之间存在着相互作用与影响。[2]从宏观的角度而言,对于大脑与学习之间的关系存在两个方面的理解,即大脑是学习的基础,学习是大脑的功能。人的大脑就像其他器官一样,自然承担了各自的功能,而学习正是属于脑的特有功能。[3]
2.脑结构和功能可塑性
脑和神经系统结构及其功能均具有高度的可塑性。所谓脑的可塑性,即脑可以被环境或经验所修饰,具有在外界环境和经验的作用下不断塑造其结构和功能的能力。学习实际就是脑的可塑性的一种重要表现,或者说如果脑没有可塑性也就没有学习的可能。“应试教育”长期影响着我国教育,从现代社会的人才要求来看,我们的教育应该更多地注意学生素质的培养,而科学素质是最重要的一个方面,例如对知识的融会贯通能力、理性思维能力、洞察力以及创新能力等。[4]而这个几个能力其实也可以概括为注意力、记忆力和创造力这些认知能力,提高认知能力便可在一定程度上加快大脑的可塑性,也就等于提高了学习的效率。
3.当前认知训练所存在的问题
之前已经有大量研究证明,人的认知能力是可通过后天的针对性认知训练手段得以改变并提高的。然而,先前的训练手段仅供研究或临床使用,并没有真正普及到现实社会当中,本人认为有以下原因:
(1)这些训练项目本身枯燥乏味,学习者在训练的过程当中很难对其提起兴趣,往往一开始因为新鲜能坚持训练,没多久便慢慢失去兴趣,到最后无法达到预期的训练效果。
(2)没有一个良好的平台来搭载这些训练项目,使训练的结果无法方便地以直观的方式供被训者查看,从而对训练项目的作用效果失去了信心。
(3)学习者在接受训练的时候要么需要到某个特定地点训练,要么需要安装复杂的训练环境,总之都无法方便地接受训练。
而在现在信息技术蓬勃发展的今天,Web技术已经相当成熟,笔者旨在搭建一个基于Web的在线认知训练游戏平台,将这些认知训练项目以小游戏的方式供人们训练,这样不仅能使枯燥乏味的训练项目变得简单有趣,让学习者更容易接受,且被训者可以实时直观地查看自己的训练进度和训练效果,因为是基于Web,也能到任何一台有浏览器的电脑上接受训练,且不需要安装训练环境。国外已经有成功的例子,并且也证明了在线训练的有效性。[5]而在国内,这样的平台尚且不多见,遂笔者以JavaWeb搭载Flash训练游戏的形式,用MyEclipse开发并实现了该在线训练平台。使用者通过该平台坚持训练将增强认知能力,提高学习效率。
二、系统的总体框架
训练平台的功能模块设计主要包含以下几个部分。
(1)资源管理模块:为了达到多样化的训练,平台必将搭载大量的训练游戏资源,而且这些资源将会在平台实施后不断增加。所以需要实现训练游戏资源的管理模块来对这些资源进行方便的增加修改和删除,并且在修改和删除的过程中要考虑良好的交互性和严谨的数据完整性。
(2)训练计划模块:不同的使用者在认知水平和认知结构上都有一定的差异,为了能够使训练的效果达到最大化,需要根据不同的使用者的认知特点来生成个性化的训练计划。而且使用者在训练过程中认知水平和能力也会有一定的变化,所以平台也会根据这些变化实时改变训练计划。
(3)训练模块:训练模块是平台的核心模块,此模块用来呈现训练游戏资源的同时还要将训练结果通过网络提交给服务器,同时还要将训练结果和历史记录反馈给使用者,例如当前训练的结果和历史排名情况,甚至可以是与他人的排名情况。这里与他人情况比较的利弊尚且无法讨论。
(4)数据统计模块:使用者按训练计划训练结束后,平台将对使用者的训练数据和训练效果以图表的方式进行统计,这样使用者便可在图表上清楚地看到自己训练的状况以及认知水平和能力的提升状况。
(5)其他模块:作为一个在线训练平台,注册登录权限控制等都是不可缺少的模块,同时也是web平台所普遍具有的模块,所以这里将其归为其他模块,同时本文也不详述此模块的具体设计。
三、关键技术
1.Flash技术用以设计游戏
基于web的平台最后呈现给用户的必然是HTML这种页面语言,然而由于HTML语言的功能十分有限,无法方便地用做训练游戏的开发,虽然HTML5的出现使搭载在页面上的游戏有良好的运行效率和画面渲染能力,但是其不成熟的现状使其必然不能成为开发本平台训练游戏的主要技术。Java Applet比HTML5要成熟得多,且有很多成功的例子,但使用它的前提是用户端浏览器必须安装近百兆的JVM,显然也是很多用户所不愿意的事情。
Flash技术出自Adobe公司,以其良好的画面表现力、强大的交互性、直观简易的开发过程、优秀的跨平台能力广受游戏开发者的好评。虽然,使用它的前提也需要在用户端安装类似虚拟机的Flash Player播放器,但其文件体积远比Java虚拟机小得多,而且现在大部分的浏览器都已内置Flash Player。所以,Flash作为在线训练游戏的主要表现形式是最适合不过的了。
2.SSH2作为平台框架
SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种JavaWeb开源框架,而SSH2则是Struts2+Spring2+Hibernate3的统称。集成SSH框架的系统从职责上分为四层——表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。同时,Hibernate作为框架中的数据持久层可以提高操作数据库的效率,提升平台系统的整体性能。因为,Web系统的主要表现为页面的跳转和服务器与数据库的数据存取,而数据存取的速度直接决定了页面的响应能力,所以,通过Hibernate的数据持久化和Spring的Session管理可以实现平台超高的响应能力。
3.Ajax技术进行数据记录
Ajax是一种用于创建更好更快以及交互性更强的Web应用程序技术。通过Ajax,我们可以使用JavaScript的XMLHttpRequest对象直接与服务器进行通信,这样可以在页面不重载的情况下与Web服务器进行数据的交换。例如在本平台中,使用者在单个训练游戏结束后需要查看训练结果,如果在不使用Ajax的情况下我们必须将跳转到一张新的页面,而这个过程对服务器也是一个负担,因为服务器需要生成一张新的页面来呈现训练结果。但通过Ajax技术可以在页面不刷新或跳转的情况下直接将训练结果显示给使用者,这样既减轻了服务器的负担,也减少了使用者的等待时间。当然,本身Flash需要通过它内置的XMLSocket对象与服务器进行数据的交互,毕竟训练结果是由Flash产生的,但缺点是服务器的URL一旦写入Flash后期修改将非常麻烦。但Flash可以调用承载它的页面上的JavaScript脚本,即Flash可通过Ajax与服务器进行数据交换,而这时服务器的URL是写在页面上的,当需要更换URL时只需要更改页面上的URL即可,远比去修改已编译好的Flash文件要方便得多。
四、系统实现
1.开发工具
由于本平台采用的开发语言框架为SSH2,也就是JavaEE,那么也就决定其开发工具为MyEclipse。MyEclipse是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布和应用程序服务器的整合方面极大地提高工作效率。到目前为止其最高版本为MyEclipse10.5,而本平台采用MyEclipse10进行开发。
2.功能模块的实现(见图1)
(1)资源管理模块
此模块主要用于管理训练游戏资源,而每个训练游戏都有很多属性,例如游戏编号、游戏名称等。此时,需要建立一张数据库表来存储这些信息,并将游戏编号作为主键,同时每个游戏所对应的Flash文件都使用其游戏编号作为文件名。而游戏的类别则建立一张游戏类别的表来存储类别信息,同时将类别编号作为游戏编号的前两位,在程序中若要知道某个游戏的游戏类别,只要取游戏编号的前两位并以此作为类别编号去类别表中查询即可。
在新增游戏资源时需要有一张新增资源的页面,页面包括游戏名称、游戏类别、上传Flash文件。其中,游戏类别通过下拉框的方式进行选择,不需要输入填写,在填写所有信息完成后点击提交按钮即可。此时服务器接收所有这些信息,自动生成游戏编号并将游戏类别的编号作为游戏编号的前两位,最后将所有信息存入数据库当中,同时返回训练游戏资源列表。
一是修改训练游戏资源。
在修改训练游戏资源前首先需要查找数据库列出所有训练游戏资源,以训练游戏的封面缩略图作为显示项目并以列表的方式进行呈现。同时可以通过选择不同的游戏类别来筛选训练游戏,从而达到快速找到自己要修改的游戏的目的。找到需要修改的游戏后只要点击游戏封面的缩略图即可进入修改界面,因为缩略其实是一个超链接,并且以这个游戏的编号作为查询条件来进入修改界面。进入修改界面后,修改相关项目并点击保存按钮,此时服务器会接收修改信息并存入数据库,最后返回训练游戏资源列表。
二是删除训练游戏资源。
当有训练游戏资源已经过时或者被证明不够优秀时我们需要将其进行删除,但删除操作在大多数系统中都是很复杂的,因为删除的资源有可能被其他记录所依赖,例如训练历史等,都需要先删除与之关联的记录后方可删除。所以这里的删除其实并不是真正的将训练游戏资源记录进行删除,而是将其标志为不可用,这样既不影响数据完整性的同时也达到了删除的目的。
(2)训练计划模块(见图2)
训练计划是指一周七天每天所要训练的游戏的一个安排情况,笔者的设计是一天安排4个训练游戏,而每天训练哪些游戏,或者训练哪种类型的游戏都由一个简单的随机机制来实现。这里随机机制专门由一个类来管理,方便以后对计划安排算法的优化和改进。训练计划的呈现方式为一张一周的日程表,为了降低服务器的负担只显示当天的计划,例如当天是周一,那么日程表的表头中周一为高亮状态或选择状态,下面空白处显示当天的训练游戏的缩略图与标题等,使用者可以点击某个游戏的缩略图来进入这个游戏的训练,或者点击“开始训练”按钮让系统选择先训练那个游戏。若某个游戏已训练完成,则将其超链接关掉,并显示已完成。
训练计划的实现过程是首先建立一张训练计划表,以用户的ID和训练游戏ID作为外键,形成多对多的关系,同时还需要训练的完成时间属性用来记录这个计划什么时候完成。然后在程序当中,先根据用户ID查找到属于该用户的所有计划,并查看其完成时间,若完成时间为早于当天的日期,那么说明该训练计划为旧的计划,需要更新;若完成时间等于当天的日期但时间为零点整,那么说明该训练计划为新的计划且未完成;若完成时间等于当天的日期且时间不为零点整,那么说明该训练计划为新的计划且已完成。最后根据判断该训练计划的状态作相应的更新操作即可——旧的计划则重新随机生成计划,新的计划则不对数据库作任何操作,只是在显示的时候显示已完成或未完成。
这里判断状态的机制有一个漏洞,就是当系统在前一天更新了计划,而用户刚好在第二天的零点整完成训练计划,这个时候系统就会认为这条训练计划为新的训练计划造成第二天的这个游戏没有被替换掉。考虑这个情况,所以对判断算法稍加改进,因为根据表的设计,那么每个人每天会有4个游戏训练,即从数据表的角度看每个人都会有4条训练计划记录,所以在判断状态的时候若有一条训练计划的完成时间被判断为旧的计划,那么所有的4条计划都会被重新生成。这样便避免了刚才提到的漏洞,因为没有人能将4个游戏都在同一天的同一时间完成。
(3)训练模块
在训练计划页面中进入训练页面,这张页面主要是搭载了Flash播放器并加载Flash游戏,但是不同的浏览器加载Flash播放器的方式也不同。所以为了统一起来,使用了SWFObject组件,这个组件事实上是一个JS(JavaScript)文件,它能自动根据当前使用的浏览器选择最合适的加载Flash播放器的方式。使用时先在页面首部导入SWFObject.js文件,然后填写好height跟width属性,并指定一个页面元素的id,告诉它在什么地方显示,最后填写file属性指定要加载的Flash的文件位置即可。
为了Flash与页面之间的数据交换比较方便,并考虑到后期训练游戏将不断增加到平台当中,而在游戏开发的过程中可能也不停地维护平台,例如要增加Flash与页面之间数据交换所需要用到的属性的增加、更名等,这都会导致相互之间的耦合度太严重,毕竟页面上的属性必须与Flash中的属性名要一致,修改页面上的属性的同时之前开发的所有游戏都要改动,这样非常费时也费精力。所以介于这个需求,特地开发了一个介于页面与Flash游戏之间的框架,这个框架也是用Flash制作,负责加载Flash游戏以及参数的初始化工作,这样,若页面上有参数名有所改动,那么只要更改框架与页面之间的参数名,而不需要去修改其他所有游戏,而且大多数游戏都有的操作(例如帮助、暂停、开始、静音等)都可以整合到这个框架当中,新开发的游戏只需要专心设计游戏而不需要重复设计这些基本操作。
在训练结束以后,需要记录训练的结果(例如所得的分数、花掉的时间、使用的步数等)。这个时候就需要使用Ajax技术来实现这个功能,虽然Flash也有与服务器进行数据交换的能力,但是不够灵活,原因在前面已经提到了。让Flash来调用页面上的JS(JavaScript)脚本,再通过脚本以Ajax的方式与服务器进行数据交换,由于这个过程已经写成函数,所以游戏开发者只要在游戏结束时调用这个函数即可,并填写需要上传服务器的参数值。服务器接收到游戏结果数据后存入数据库并将排名情况等信息发送回来,页面将隐藏掉游戏界面并显示这些信息,而在这个过程中页面不会刷新,保证了页面高效的反应速度,同时体现了更好的交互性。
(4)数据统计模块
这里主要是利用了数据库表的结构以及数据来进行分类统计,并以图表的方式来进行呈现。为了达到良好的视觉效果,这里使用了JQuery框架来实现一些简单的缓动效果(例如每个方面的训练状况都会以横向柱状图来表示,而加载这张页面的初期柱状图会由短到长变化等)。统计的算法是先根据用户ID去查找训练历史记录表,找到所有关于这个用户的历史记录,然后根据不同的训练类型统计分数,将这些分数取最高与最低值并计算出差率,最后以柱状图的最高长度为基数乘以这个差率的百分比算得实际长度并以缓动的形式呈现在页面上。
五、结束语
本研究将认知训练与信息技术结合起来,设计并实现了一个基于Web的在线认知训练平台,为学习者提供了提高认知水平的工具。本研究的创新之处在于将用于临床的枯燥乏味的脑可塑性认知训练项目以简单有趣的小游戏的方式进行呈现,并用Web平台搭载,从而使学习者进行方便有效的认知训练。
参考文献:
[1]Henry L. Roediger .Inexpensive techniques to improve education: Applying cognitive psychology to enhance educational practice[J]. Journal of Applied Research in Memory and Cognition ,2012,4(1) 242-248.
[2]周加仙,董奇.学习与脑可塑性的研究进展及其教育意义[J].心理科学,2008(1):152-155.
[3]吕林海.学习与教学:一种基于脑的解读[J].教育理论与实践,2004(11):38-42.
[4]杨雄里.脑科学和素质教育刍议[J].教育理论与实践,2002(2):1-10.
[5]Joseph L. Hardy.Enhancing visual attention and working memory with a Web-based cognitive training program[J].Mensa Research Journal,2011,42(2):13-20.
(编辑:王天鹏)