一种移动平台儿童教育游戏的最终用户编程语言.docx
- 文档编号:2789095
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:8
- 大小:24.90KB
一种移动平台儿童教育游戏的最终用户编程语言.docx
《一种移动平台儿童教育游戏的最终用户编程语言.docx》由会员分享,可在线阅读,更多相关《一种移动平台儿童教育游戏的最终用户编程语言.docx(8页珍藏版)》请在冰豆网上搜索。
一种移动平台儿童教育游戏的最终用户编程语言
一种移动平台儿童教育游戏的最终用户编程语言
摘要:
针对现有移动教育游戏无法满足快速增长的移动教育需求这个问题,利用领域工程的方法和最终用户编程(EUP)的技术,研究和设计了一种最终用户编程语言Kids。
首先通过对移动平台儿童教育领域进行分析识别出儿童教育游戏的游戏元素,在此基础上对该领域进行特征的提取,得到该领域的特征模型。
Kids语言以特征模型为基础进行设计,能够允许老师和家长为学龄前的儿童编写移动教育游戏。
同时,开发了一个Kids的编程工具,包括可视化编辑器和代码生成引擎。
该工具能够支持用户更加有效地使用Kids进行可视化编程,并自动生成Android代码。
实验结果表明,Kids相比其他通用语言更加简洁,大部分最终用户能够很好地利用Kids开发工具开发出简单的儿童教育游戏。
关键词:
最终用户编程;游戏教育;领域特定语言;可视化编程;代码生成
中图分类号:
TP311.5文献标志码:
A
Abstract:
Comparedwiththerapidgrowingdemandofmobilegamebasedlearning,thenumberofgameswithbothplayfulandinstructivecharactersisquitesmall.Inordertodealwiththisproblem,anEndUserProgramming(EUP)languagecalledKidswasdesigned,whichallowsenduserstocreatemobileeducationalgamesforpreschoolagedchildren.Throughtheanalysisofthedomainofmobilechildrengamebasedlearning,thegameelementswereidentifiedandthefeaturemodelwasdeveloped.Kidswasdesignedbasedonthefeaturemodel,whichwaseasytouseforuserswithoutprogrammingexperience.AKidsdevelopmenttoolwasalsodevelopedtosupportuserstocreategameseffectivelyusingvisualeditor,andgenerateAndroidcodesthroughcodegenerationengine.Finally,aninitialexperimentalevaluationshowsthatusercanimplementthegamecreationeasilyandrapidlybyKids.
Keywords:
EndUserProgramming(EUP);gamebasedlearning;DomainSpecificLanguage(DSL);visualprogramming;codegeneration
0引言
研究表明,学习动机在儿童的学习过程中扮演了非常重要的角色[1],而一个经过良好设计的游戏能够很好地激励儿童的学习欲望[2-3]。
相比传统的教育方式,电子游戏作为一种学习工具可以让儿童在学习的过程中更加活跃[4]。
随着移动设备的飞速普及,移动游戏教育成为电子游戏教育中最流行的一种类型[5]。
因为移动设备的便利性使得孩子能够随时随地地进行学习,而且相比电脑而言,它们具有更加开放直观的交互方式[6]。
然而,尽管目前在应用市场中移动教育游戏的数量非常多,但是它们的质量是参差不齐的[5,7]。
对于儿童来说,既有可玩性又有教育意义的移动类游戏的数量十分少,而且它们无法针对来自不同的教育背景和学习方式的儿童进行个性化的定制。
因此,提高移动平台儿童教育游戏的数量和质量变得非常紧迫。
然而,开发一个有趣的游戏软件已经是一个非常复杂的过程,额外增加的教育目的又增加了游戏设计的
复杂度。
复杂的开发过程和数量有限的开发者无法满足快速增长的移动平台儿童教育游戏的需求[5]。
最终用户编程(EndUserProgramming,EUP)技术的产生为解决这个问题带来了契机。
所谓最终用户编程是指通过一系列的方法、技术和工具,让没有编程经验的人能够创建、修改或者扩展软件系统[8]。
最终用户拥有一个非常庞大的人群基数,而且他们常常比开发人员更加熟悉相关领域的需求。
因此使用最终用户编程不仅能够快速响应变化的需求,而且减少了领域专家与开发人员的沟通成本,提高了软件开发的效率。
在此背景下,本文面向移动平台儿童游戏教育领域提出了一种最终用户编程语言Kids,它能够使得老师和家长很容易地为学龄前儿童编写移动平台上的教育游戏;同时,开发了Kids编程工具,它包括可视化编辑器和代码生成引擎,前者能够让用户通过可视化的方式编写移动游戏,后者则根据Kids脚本自动生成Android代码。
1相关工作
与Java、C++等通用编程语言相比,最终用户编程语言是一个具有较高抽象层次的领域特定语言(DomainSpecificLanguage,DSL)。
DSL面向一个专门的问题领域(例如保险、健康、运输和教育等)或者一个系统相关的领域(例如数据、业务逻辑和工作流等)。
由于针对相关领域进行设计,DSL能够有效地改善与领域专家的沟通成本,提高开发效率。
目前常见的DSL有:
针对关系数据库查询维护业务的SQL,用来描述HTML页面样式的CSS,用来描述任务构建和组织构建过程的Ant,用来对软件密集系统进行可视化建模的UML等。
随着移动计算的快速发展,研究者开始设计针对移动领域的DSL语言。
其中一些DSL能够编写智能手机日常相关的任务,如Tasker[9]和SmartSynth[10];也有一些能够被用来创建移动Web应用,如Mobl[11]和PUPL[12];还有一些DSL能够被用来创建简单的移动应用程序,如AppInventor[13]和TouchDevelop[14]。
但是它们都没有在编写儿童教育游戏方面进行特别的抽象和简化,目前尚未发现为移动平台儿童教育游戏领域设计的最终用户编程语言。
2领域分析
本文采用领域工程的方法设计移动平台儿童游戏教育领域的最终用户编程语言。
从儿童教育类游戏的特点出发,通过对10个比较流行的儿童游戏进行分析,综合出移动平台上儿童教育游戏的特征,然后总结出游戏元素,并在此基础上构建该领域的特征模型。
2.1儿童类教育游戏的特点
不同的游戏类型与特定的学习目标相关,因此确定不同时期儿童的学习目标能够帮助我们确定游戏类型。
爱尔兰国家课程评估委员会在调研走访了大量与儿童教育相关的从业者、研究人员和父母后,总结出儿童所需要学习的发展类型有认知、语言、社交、精神、情感等[15]。
Peirce在此基础上进行了总结,他通过与学习的目标相联系将发展类型进一步分为了认知发展、精神运动发展、社交情感发展和性心理发展;然而精神运动发展和性心理发展并不适合于移动游戏教育,有时候可能还会起反作用[6]。
综上,我们认为,在儿童幼年时期,有两种发展类型适合移动游戏教育──认知发展和社交发展。
如表1所示,每个发展类型有对应的学习目标。
那么又有哪些类型的游戏能够实现儿童在幼年时期的学习目标?
根据游戏的内容,教育类游戏大体可分为:
训练和实践类、交互式学习工具类、益智类、冒险类、角色扮演类和模拟实战类[16]。
其中益智类的游戏在加强儿童的认知能力方面具有很出色效果,而移动游戏的便携性使得这样的游戏也能够帮助儿童提高社交发展的能力。
根据时间维度,教育游戏可分为短期的和长期的[17]。
短期的教育游戏关注一个特定的概念或者着眼于需要记忆的、反复练习的技巧,而长期的教育游戏则侧重于培养某个特殊的技能。
具有短期目标的游戏最适合用来儿童教育,因为儿童不会像成人一样被长期的目标所驱动,他们只会关注当前的具体的问题。
综上,短期的益智类游戏是儿童教育游戏的主要类型之一。
2.2游戏元素的设计
本文以短期的益智类儿童游戏作为具体研究的子领域,选用Agnitus游戏合集来分析移动平台儿童教育游戏的游戏元素。
Agnitus是一个儿童移动教育游戏合集,在IOS应用市场中位居销量前几名。
从中选择了10款短期的益智类游戏进行领域分析,如表2所示。
分析发现,从游戏构成的角度,它们大都可以归纳为资源载入、场景建设、规则制定和结束条件四个过程;游戏的操作有滑动、拖拽和按压等符合儿童特点的最为直观的操作[18];游戏都是通过事件驱动的方式进行反馈;游戏的激励策略可以分为截止时间和分数两种。
根据这些游戏存在的共同点,得到了儿童移动短期益智类游戏的基本元素:
1)资源载入:
图像和声音都可以作为游戏的资源,在游戏进行到一定的时候被载入或运行。
2)场景构建:
对每个游戏的对象进行角色定位,使每个层次的对象不会冲突。
3)规则制定:
规则作为游戏主体,主要包括游戏逻辑、事件触发和对象状态等部分。
一般情况下,游戏运行需要按照一定的逻辑运行。
在游戏中,可以控制的对象都会注册事件,当事件发生时进行对象状态的变换。
4)终止条件:
当游戏的终止条件满足时,会停止运行并根据既定的设定来确定胜负结果或分数。
2.3特征建模
基于游戏元素,针对移动平台儿童游戏教育领域构建了一个特征模型,如图1所示。
在游戏元素的基础上,模型中还添加了Environment和Activity两个类,其中Environment主要用来进行环境的配置,包括游戏的基本信息和资源的载入;而Activity则能够实现游戏的多个层次,提供循序渐进的学习环境,增加了游戏的可玩性和教育性。
Resource用来描述包括Picture、Sound等游戏资源。
Scene用来设定游戏的场景,定义游戏对象。
Rule是游戏必不可少的一部分,用来设定游戏的规则,处理对象之间的关系。
SensorEvent、TouchEvent可以设定玩家与游戏之间的交互,当用户通过Tap、Swipe、Draw、Slide等形式操作Role时发生的事件。
ResourceStatusChanges用来设定游戏对象的状态,包括运动情况、图像资源、声音资源等。
ConditionStatus用来表示对象在游戏中的状态。
3DSL的设计
在领域特征模型的基础上,本文设计了一种最终用户编程语言Kids,它能够让没有编程经验的老师或家长为学龄前儿童创建教育游戏。
3.1Kids抽象语法
游戏主要包括环境配置(Environment)和活动定义(Activity)两个部分。
环境配置负责游戏的基本属性配置和资源(Resource)的载入。
资源载入负责游戏中所需要的图像、声音等游戏资源,用户可以通过可视化编辑工具来对其进行载入和编写。
Activity指的是儿童的游玩区域,它们是儿童学习内容的地方。
每个Activity就像是一个单独的游戏,它包括游戏场景(Scene)、游戏规则(Rule)和终止条件(FinishCondition)三个部分。
Status、Collision、Condition和Event组成了游戏的规则和控制,使得游戏能够顺利地运行。
本文使用EBNF描述Kids的语法,其核心元素抽象语法如下:
Title用来定义游戏的名称。
在资源resource中定义了四个分别名为back、hit、show和hide的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 移动 平台 儿童教育 游戏 最终用户 编程 语言