论文部分内容阅读
[摘要]“计算思维(ComputationalThinking)”是当前国际计算机界广为关注的一个重要概念,也是当前计算机教育需要重点研究的重要课题,它的研究对我国转型期的科学和教育具有重要的意义。“轻游戏(Light Game)”是具有主流游戏内在动机并同时辅助教学开发学习者思维能力的教育软件,用“轻游戏”的方式可培养学习者的计算思维能力。综合二者的特点,采用理论与实践相结合的方式,在分析“轻游戏”和“计算思维”的基础之上,探索并构建了程序设计课程教学中“轻游戏”对“计算思维”能力培养的教学模型和学习模型,通过实例论证,该模型不仅可以提高教学和学习效率,而且可以提升学习者的计算思维能力,同时也为广大教学者从思维层面上培养学习者提供了参考,
[关键词]轻游戏;计算思维;思维能力培养:程序设计:课程教学
[中图分类号]CA34 [文献标识码]A [文章编号]1672-0008(2011)06-0094-08
一、引言
1972年,图灵奖得主Edsger Dijkstra说“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力Ⅲ。当前,电子计算机已经广泛普及。成为人们工作和生活的工具,计算思维逐渐成为人们的主要思维方式和思维习惯,是人们思维能力的主要特征之一。在教学过程中,不仅要求学生掌握阅读、写作和算术,还要学会计算思维。
高级程序设计语言是计算思维方法的最好体现之一,它的一系列技术和方法在计算机科学和计算科学中存在着很大的影响。因此,对于计算机学科和计算学科的学生而言,掌握高级程序设计语言的技术和方法显得尤为重要。学者吴文虎提出:“学会计算思维是学习者在信息社会大展宏图的需要,程序设计是大学生的一个看家本领。不会编程的人,只能局限在别人划定的圈内工作,对于那些划在圈外,计算机能够胜任,而你又渴望去做的工作,不会编程的人只能“望洋兴叹”。我们有责任让那些有理想有抱负有灵气又肯吃苦的中国孩子在起跑时就能占有先机。”
当前,在高级程序设计语言的教学中,教学者更偏向语言基础知识的讲解和传授,课堂教学枯燥乏味,学习者的学习积极性不高,整个教学效果得不到改善。与此同时,由于过多地强调课程知识内容的解决,从而完全忽视了学习者在思维能力层面上对知识点的接受和创新,继而影响程序设计中重要的计算思维能力的培养。笔者通过对四川省、重庆市部分高校(包括职业技术学院等)的走访调查发现,目前在程序设计教学中,教学者在进行教学时主要出现以下几种情况:(1)教学者主要强调程序设计本身的语句、语法规则等细节。对于高级程序设计语言的基本概念,求解思路,求解方法等却不够重视:(2)教学者从程序设计的体系结构出发,在一定程度上分析了程序设计的一部分抽象思维和逻辑思维,但仍然没有作为主要的知识对学习者进行培训:(3)教学者从抽象和形式化方面对程序设计语言进行了分析,强调了程序语言的抽象思维和逻辑思维:(4)教学者从程序设计的问题出发,对其进行抽象和形式化表示,并构造算法对问题进行处理,讲授解决问题的思想和方法,延伸程序设计语言的基础是抽象和逻辑化,最后从计算思维能力的角度进行培养学习者解决问题和迁移知识的目的,
而在这四种情形中,存在一个普遍现象:多数教学者在对学习者进行程序设计思想和方法的培养上没有足够的引导和重视。而前三种情况,占据了调查学校的69.03%以上。作为计算机学科和计算学科打基础的课程,改善当前程序设计课程教学现状,努力培养学习者计算思维能力尤显重要。由中国科学院信息领域战略研究组编写的《中国2050年信息科技发展路线图》一书对“计算思维”给予了高度地重视,认为在计算机基础课程的教学中,培养计算思维是克服“狭义工具论”的有效途径,是解决其他信息科技难题的基础,使计算机专业的毕业生可以胜任任何工作的必要前提。但目前,对计算思维能力的培养还处于探索和摸索阶段,没有一个系统性的特定教学设计和教学模式,来帮助教学者在教学过程中去实践和培养学生的计算思维能力,
“轻游戏”是目前“寓教于乐”的主要形式,它结合教育的功能,把实现课堂教学目的的思想融合进游戏当中。它的这一特征在高级程序设计语言中培养计算思维能力,显得非常的突出和重要,教学者可利用“轻游戏”教育的功能和游戏的特点,实现提高课堂教学效率,解决计算机语言学科课堂教学枯燥乏味的现状,从而达到培养学习者计算思维能力的目的。
二、计算思维及轻游戏
(一)计算思维及其特点
美国卡内基,梅隆大学教授J.M.Wing认为,计算思维是每个人的基本技能,不仅仅属于计算机科学家。我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Reading.wRiting and arithmetic--3R),还要学会计算思维,犹如印刷出版促进3R的普及,计算和计算机也以类似的正反馈促进了计算思维的传播。她认为,这种思维在不久的将来,将成为每一个人的技能组合,而不仅仅限于计算机科学家,普适计算之于今天就如计算思维之于明天,而普适计算是成为今日之现实的昨日之梦,而计算思维就是明日之现实。
计算思维所表示出的本质是抽象和自动化,是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学之广度的一系列思维活动。即通过简约、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道怎样解决的问题。J.M.Wing教授认为,计算思维具有以下几个方面的特征:(1)概念化,不是程序化。计算机科学不是计算机编程,像计算机科学家那样去思维意味着远不止能为计算机编程,还要求能够在抽象的多个层次上思维。(2)根本的,不是刻板的技能:根本技能是每一个人为了在现代社会中发挥职能所必须掌握的,刻板技能意味着机械地重复,具有讽刺意味的是,当计算机像人类一样思考之后,思维可就真的变成机械的了。(3)是人的,不是计算机的思维方式:计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考,计算机枯燥且沉闷,人类聪颖且富有想象力,是人类赋予计算机激情,配置了计算设备,我们就能用自己的智慧去解决那些在计算时代之前不敢尝试的问题,实现“只有想不到,没有做不到”的境界。(4)数学和工程思维的互补与融合:计算机科学在本质上源自数学思维,像所有的科学一样,其形式化基础建筑于数学之上,计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够设计超越物理世界的各种系统。(5)是思想,不是人造物:不只是我们生产的软件硬件等人造物将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生 活、与他人交流和互动的计算概念:(6)面向所有的人,所有地方。当计算思维真正融人人类活动的整体以致不再表现为一种显式之哲学的时候,它就将成为一种现实。
在科技日益发展的科学时代,有学者提出,J.M.Wing教授提出的计算思维,是近十年来计算科学和计算机科学中最具基础性和长期性的重要学术思想同,而其核心就是为解决某个问题进行设计的算法问题,而算法问题却在程序设计中得到了集中的体现。从根本上讲,计算机对人类所做的事情以及面对操作者的反应都是预先存贮在内部的程序所起的作用,是编程人员预先设定的一系列程序所起的效果。在之前,编程人员根据各种调查和收集为计算机事先设想了各种可能性的事件,并针对这些可能发生的事情预先设定了相应的指令,比如if~then等,计算机做的工作,就按事先的程序指令机械的完成相应的工作。换言之,要让计算机帮助我们解决问题,就必须人们事先帮助它设定解决问题的算法。由此可见,算法是解决问题过程中的一个重要环节。所以对于程序设计教学而言,培养学习者理解问题的计算思维能力显得尤为重要,
(二)轻游戏及其特点
自2000年网络游戏在中国刚刚起步到现在为止,网络游戏用户已达上千万。当前,游戏娱乐已经成为青少年主要休闲活动之一,出现了电子游戏(Electronic Games)、数字游戏(Digital Games)、计算机游戏(Computer Games)、网络游戏(0nline Games)、视频游戏(Video Games)等多种形式。日益盛行的各类数字化游戏产品,对教育的冲击已无法避免,如何让教育与游戏有机结合,成为摆在教育者面前的一个现实课题,一些学者提出的“轻游戏”很好地诠释了教育和游戏之间的关系,使“寓教于乐成为现实,使游戏为教育所用。
1 “轻游戏”的理论基础
教育游戏综合了游戏的形式和教育的内容,从其本质上看,教育游戏是吸收了教育教学的外在和游戏的内涵,它具备教育和游戏的共同特征。教育游戏的理论基础涉及教育学、教育技术学、心理学、传播学、语言学、文化社会学、计算机设计等多个领域的理论基础,其中建构主义、社会学习、内隐学习、多元智力、马斯洛的人的需要层次、体验式学习、Web2.0理念等,对教育游戏的开发、设计、运用具有指导性作用。
近年来,教育游戏的相关研究逐年增多,为了更好地了解教育游戏在学术上的发展趋势和在教学中的运用,笔者就“中国知网学术文献总库”教育游戏类文章作了相应的统计,自2004年1月至2011年6月14日之间,以“教育游戏”为主题的文章一共416篇,2004年9篇,2005年12篇,2006年24篇,2007年51篇,2008年90篇,2009年112篇,2010年101篇,2011年17篇,而其中的硕士论文107篇,博士论文3篇。而以“教育游戏”或者“教学游戏”为主题进行搜索则有111篇硕士论文和8篇博士论文。而整个2004年之前,一共只有16篇类似的文献,
国内研究的较早且影响较大的主要是祝智庭教授的《娱教技术:教育技术的新领地》以及尚俊杰的《“轻游戏”--教育游戏的希望和未来》。二者的共同点是将教育游戏作为一种游戏化的教学方式,着重于游戏的教育功能,强调其游戏的教育性。但“轻游戏”则更突出其游戏的使用方法简单、使用时间得当、开发难度低、实用性强的特点。
在一些文献中,对电脑游戏、教育游戏与教育软件三者之间的关系加以分析,将教育游戏重新定位,将益智游戏、游戏型课件和轻游戏都被看作是教育游戏领域与其他研究领域相交的子集(如图1)。
在图1中,我们可以看到“轻游戏”的位置,正如文献中所述:“游戏性”并不是灵丹妙药,真正的做法应该是从主流游戏中提取内在动机并将其整合到教育软件中,如挑战、幻想、好奇、控制、目标和竞争等(Malone&Lepper 1987)。而这正是“轻游戏”的根本目的,不是追求游戏的外在形式,而是追求游戏的内在特征。或许人们认为这不是一个游戏,但是他们会认为这是一个吸引人的教育软件。比如,北京大学的教师在“决策模拟”课程中使用企业竞争模拟软件(BUSIMU)来提高学生的商业管理能力。尽管绝大部分学生都没有把这个软件当作游戏,但是他们却被深深地吸引了,甚至感觉比主流游戏更有意思。
2 “轻游戏”的概念及其特点
文献提出,所谓“轻游戏”就是具备电脑游戏的内在动机的一种教育软件,此游戏能更好地协调主流游戏的“游戏性”和教育教学的“教育性”。该作者认为,相对于传统的电脑游戏,“轻游戏”可用如下的概念阐释:(1)它是一个教育软件,其中的内容和任务都是和课程相关的。当任何人看到“轻游戏”时,他首先会认为这是一个教育软件,而不是一个游戏;(2)其次,它必须具备主流游戏的某些特征,充分利用主流游戏的内在动机,如挑战、好奇、幻想、控制、目标、竞争、合作等(Malone&Let)per 19871:(3)它应该能很容易地被用到课堂教学中,所以它应该符合学校的课程模式和规则,比如,应该将每部分所用的时间尽可能限制在50分钟内:(4)可以用公式来表示:“轻游戏”=教育软件+主流游戏的内在动机:即是教育软件中具备主流游戏的游戏性特征。文献认为,将网络游戏的内在动机融入到某门课程的教育软件中,用网络游戏的设计理念结合课程内容设计教育软件:“轻游戏”就诞生了。对此,在程序设计教学过程当中,可通过“轻游戏”的方式来培养学习者的计算思维能力,使学习者以娱乐的方式理解程序设计的算法的抽象性。
对此,笔者认为,“轻游戏”具备这样的特点:(1)是教育软件,非游戏软件;(2)软件具有游戏功能;(3)这款具有娱乐功能的游戏,宗旨是为教育服务。因此,一些操作与练习式的游戏和一些模拟游戏及其他游戏可以被认为是“轻游戏”,
“轻游戏”的提出为网络游戏应用于教育提供了一个新的概念和教学方法,给予教育带来了全新的契机,它将站在教育对立面,使具有负面效应的网络游戏加以改进和提升,让其应用于教育领域,将游戏娱乐融合进学生的课堂,大大地减少教学者对学习者沉迷网络游戏的担心,并使信息科技的网络环境更好的应用于课堂教学中,为将来网络环境下的教育带来了新的发展,
3 “轻游戏”对教学的影响
(1)对学习者的影响。在游戏与学科知识教学的实证研究中,一些研究者发现,游戏可以激发学习者的学习动机,让学习者全身心都参与到学习过程中,在游戏中的心理动作能够促进游戏者个体的认知发展、促进游戏社群中的认知协作和游戏团队的认知交流等,具有利于学习者问题解决能力、协作学习能力等多种教育应用价值的培养。
由于“轻游戏”的定义是具有主流游戏内在动机的教育软件,因此,具备教育教学功能的教学游戏我们认为是“轻游戏”。我们知道,游戏化的学习主要是以学习者为中心的学习,学习的主体是学习者本身,而非教学者。在游戏化的学习 当中,教学者的任务主要是组织游戏活动,对学习者的游戏过程进行指导,并对其学习效果进行评估,引导学习者进行游戏学习等,
在文献中,作者结合国内外相关文献研究得出游戏有助于激发学习者的学习动机,能够帮助学习者学习知识、提高能力、培养正确的情感态度价值观,也能够促进自主学习等学习方式,并有助于构建富有吸引力的建构主义学习环境。文献中,作者用图2的方式展示了教育游戏的双重目的结构,体现出教育游戏内在的游戏自由独立性和教育外在的不独立性。图中内圆中的实线表示内在目的,是教育游戏的直接目的,它的表现形式是自由的,独立的,外显的。外圆中的虚线表示外在目的,是教育游戏的间接目的,它的表现形式是内隐的,不独立的。内圆中的①②③④四条实线的具体含义分别为自我决定、自我进程、自我实现、自我影响,外圆中的⑤⑥⑦⑧四条虚线的具体含义分别为潜在强化、内隐认知、虚拟交往、附属调节。内圆与外圆之间的虚线相连表示教育游戏的价值所在,即通过教育游戏,个体能够在自由的游戏表象下获得现实的发展,
(2)对教学者的影响。在游戏化的教学中,主要强调学习者自主的构建知识,此时教学者的教学方法、教学手段、整个教学的过程都应该做相应的调节和改变。在此教学过程中,强调学习者主动建构、自我摸索、自我实现、自我影响。因此,教学者应掌握相应的教学理论、学习理论和传播理论,才能更好地实施游戏型教学,
对于计算思维是计算机程序设计语言的灵魂,它的本质是抽象和自动化这样的特点而言,根据教育游戏的外显特点和内在要求,在教学和学习过程中就要求教学者利用“轻游戏”,采用系统化的方法,激发学习者的学习兴趣和学习动机,使其形成学习知识的心理,主动进入到知识学习的情景当中,积极的内化知识,从而更好的挖掘程序设计的算法思维。
在这里,教学者应注意:“轻游戏”的类型可以是技能操作式、问题探究式、任务驱动式、虚拟协作式、仿真竞技式、思维支架引导式等方面的教学游戏:游戏的目的主要是加强对学习者编程方式,计算思维能力的训练,提高学习者的程序实践能力,潜移默化的帮助学习者内化计算思维方法,从而培养学习者的计算机方法论:游戏的设置时间可以是课堂教学中。也可以是课堂教学外:游戏可以在教学者自主设计或者下载网络共享资源。
三、基于“轻游戏”的程序设计课堂教学和学习模型
(一)程序设计课堂的教学目标
计算机程序设计语言的理论基础是形式语言,自动机语言与形式语义学。目前,大部分学校在教授程序设计课程中,多采用传统的教授法和结合实验的上机操作实践来使学习者熟悉和巩固课堂上所讲解的内容,
美国伯克利加州大学前校长田长霖从对中外理工科教学方式的比较中,提出了理想的高层次理工科教学方式是:“教理工科的课不能推导公式,推导公式是最简单的,教师可以不备课。在课堂上要讲的是公式的来龙去脉:人家发现这个公式时遇到了那些困难,摸索的过程是什么情形,走过什么道路,最后怎么变成这个正确的公式,这个公式将来的发展趋势是什么,它还可以做什么钻研等等,上课时,这些内容应作启发性的讲解。”高级语言程序设计的教学重点不在于如何解决某些实际问题上,这是因为,一方面受教学计划学时的限制:另一方面,学生尚不具备解决实际问题的知识基础和经验积累,我们必须致力于讲授解决问题的思想和方法的教学方式,尤其适用于高级语言程序设计的教学设计和课堂教学。因此,在教学设计和实施具体教学过程中,必须明确培养和提高学生的计算思维能力是最终目的,而具体的程序设计只是实现这个目的一种手段。
(二)基于“轻游戏”的程序设计课堂教学和学习模型图
祝智庭认为。关注并投入娱教技术研究与应用实践,是为教育技术开辟了一个新领地,对于促进教育技术学科发展具有重大意义。对于计算思维的抽象等特点,通过“寓教于乐”的方式来培养学习者的计算思维能力能起到事半功倍的成效。下面,我们根据程序设计课程教学的特点以及计算思维一系列学习技巧和方法,构建以下教学模型,运用该模型进行程序设计课程教学,培养学习者的计算思维能力,提升教学效率和帮助学习者提高学习效果,从而使学习者掌握计算机方法论。该教学模型分为教学者教学模型(图3)和学习者学习模型(图4)两个部分。
教学模型是教学者教学时首先确定教学目标、分析学习者特征、分析教学内容,然后在此基础之上进行培养学习者思维能力的问题设置、良好教学情境的创设,最后进行知识点的讲解,同时运用“轻游戏”作为辅助教学的工具,让学习者熟悉游戏规则,对“轻游戏”获取一定的感性认识,并运用“轻游戏”辅助教学,同时观察学习者在课堂上听课的反应情况,让学习者参与进来一起讨论总结。
学习模型是学习者在自主学习时首先应明确学习目标,将教学者所讲的知识转换内化,同时利用“轻游戏”巩固递归、赢得游戏的策略等算法问题,并总结提高。如果效果良好,则对这个学习过程进行总结评价,以此为以后的学习打下更牢的基础,如果效果不理想,则回顾学习,并在教学者指导下更好地利用“轻游戏”辅助学习相应的知识,达到掌握知识,内化学习方法的目的。
四、轻游戏对计算思维能力的培养案例
作为算法领域内具有代表性的“汉诺塔游戏”和策略与对策领域具有代表性的“井字棋游戏”是属于“轻游戏”的典型,下面通过对这两款“轻游戏”的分析,验证教育游戏在程序设计课程中对学习者计算思维能力进行培养的研究。
(一)汉诺塔游戏
当我们的教学者在进行程序设计语言课程的“循环结构”教学时。一般会给同学们讲到“递归”,“递归”问题本身很抽象,无论教学者讲解时,学习者都不能很好地理解老师口中的“递归”问题。作为教学者,应该怎样让学习者明白知识点的同时又培养其程序设计的计算思维能力?这里,让学习者轻松愉快的掌握相应的知识点,合理运用“娱教技术”是最好的办法,在面对一些难讲难解的问题时就能很好地化解。下面我们以“汉诺塔游戏”来解决“递归”算法的典型问题--汉诺塔问题。题目如下所示:
天神让庙里的僧侣们将第一根宝石柱上的64
个金圆盘借助第二根宝石柱全部移到第三根宝石
柱上,即将整个塔迁移。同时定下3条移动规则:①
一次只能移一个盘子:⑦金盘只能在三根宝石柱上
存放;③在移动过程中,任何时候大盘都不能放在
小盘上面。
对于该例子,可以进行下面的问题描述和算法分析,并根据该算法设计相应的游戏。假设这三个柱子分别为源柱、工作柱、目的柱,汉诺塔的问题是:将n个圆盘从A柱(源柱),利用B柱(工作柱)搬移到C柱(目的柱)。如图5所示:
游戏设计的操作步骤如下:第一步:如果n=1则将1个圆盘由A移至C,结束过程;否则执行第二步;第二步:由3小步组成:(1)将A(源)上的(n-1)个圆盘移至B(目标柱),以C作为工作柱:(2)将A上剩下的一个圆盘 移至C:(3)将B柱(源)上(n-1)个盘搬移到C(目标柱),以A为工作柱。
汉诺塔问题的解决方法是典型的“递归”算法,这种方法在解决问题时十分有用。利用它递推和回归的原理,使一些复杂的问题变得清晰而简单。根据它的特点建立相应的模拟移动数学模型(如图5),并根据数学模型设计相应的游戏,学习者按以上“操作步骤”移动源柱上的木块,木块可以累加起来,但是必须把小的放在大的上面,成功把木块顺序不变的堆到目的柱上则为此关通过,同时游戏者进行下一关游戏,此时源柱上的木块相比之前增加1块,依次类推,学习者不断的闯关,源柱上的木块就一次次增加。直到搬完源柱上的64个模块为止,期间木块移动了264-1次,同时通过这样的过程也让学习者明白“递归”方法的原理。此后我们可引出数学模型的算法,根据算法写出求解问题的程序,完成相应的教学和学习任务。这样的学习过程不但让学习者愿意去探究,同时可把抽象的问题变得形象生动,为学习者掌握该算法问题提供更好的教学方式和学习方法。
对比传统的程序设计课堂教学:教学者在讲解了相应的方法之后,学习者就依照教学者的讲解,编写程序,上机调试,本课堂的教学任务完成。这样的教学和学习过程,学习者根本没有真正的领会到“递归”算法的实质所在,但是,如果教学者通过“轻游戏”的方式进行相应知识的教学,让学习者通过该游戏进行知识点的亲身体会,其结果就完全的不同。因为游戏让学习者理解程序设计的算法,身临其境的感受“递归”算法,从而掌握“递归”算法。这样的教学过程中,不但教学容易,同时学习者学习的知识也能事半功倍,在培养学习者计算思维能力问题上,也使学习者内化了相应的方法。
(二)电脑博弈游戏
在人类历史中,博弈是一个经久不衰的话题。而在计算机这个工具的发展中,博弈问题,一直是算法设计中的重要研究领域,因为它从另一个层面上说明了机器智能问题。在这里,我们通过“五字棋”游戏,分析在教学中,如何使学习者掌握怎样计算才能更好地学习一个赢得游戏的策略,以此培养学习者的计算思维能力的游戏制胜策略。题目如下所示:
在一个空的棋盘上,电脑为一方。人为一方,
双方轮流在棋盘的空位置上下棋子和圈
(O)。胜负规则:若某一方的棋子率先由5颗连
成了一条直线(可以是横线、坚线或对角线),则
获胜:若至整个棋盘都被占满还没有一方获胜,
则为平局。
对于该问题,我们运用估值函数进行相应的算法分析,同时画出相应的模型图,如图6所示:
操作步骤如下:第一步:确定谁先走棋;第二步:若电脑走棋,则计算最佳下棋位置,并走棋,否则由人走棋;第三步:胜负检查,若一方获胜,则程序结束,否则执行第四步;第四步:平局检查,若棋盘下满,则程序结束,否则执行第二步。根据该题,我们可以设计一个如图7所示的井字棋数学游戏模型图,让学习者了解如何计算一个赢得游戏的策略。
计算机博弈是一种对策性游戏,是人工智能的主要研究领域之一,它涉及人工智能中的搜索方法、推理技术和决策规划等。根据游戏的步骤和所画的数学游戏模型图,我们设计如图7所示的“电脑博弈”游戏。根据以上的操作步骤进行游戏,逐步实现学习者与电脑之间的博弈。以此锻炼学习者决策能力、计算能力、攻防能力以及面对变化的适应能力,
这里的“轻游戏”好比我们平常见到的益智类游戏,它非常小巧,操作简单,玩法简单投入时间很短,非常适合课堂教学。在这两个“轻游戏”当中,充分地体现了计算思维中的递归思维以及如何赢得游戏的策略问题。学生通过这样的学习过程,掌握操作、理解递归和赢得游戏策略等技能,一定程度上达到了培养学生计算思维能力的目的。
五、“轻游戏”对教学实践效果的影响
由于《C语言程序设计》是学生在算法设计领域打基础的一门课程,算法问题掌握的程度直接决定了学习者在以后编程问题方面解题的技能。所以在实施该课程教学的过程中,笔者通过在课堂教学中引入“轻游戏”的方法,引导学习者通过此类游戏掌握程序设计中难以理解的程序算法。通过一学期对两个52人的实验教学班级的实践教学调查发现,学习者对该教学方法的赞同度和认可度极高,在发放的问卷中,笔者对以下几个方面做了集中调查,并结合测试题目的结果进行了对比分析。
根据图8表明,相对于传统教学对思维的影响,在思维影响程度方面,“轻游戏”教学对学习者思维能力的影响非常的大,从8人上升到28人,而对思维能力影响不是很大或者完全没有影响的人数则依次的递减,对思维学习影响不是很明显的人数中从37人降低到19人,而完全没有影响的则从7人降低到5人。
根据图9表明,相对于传统教学对程序设计算法的影响,在算法学习和理解方面,“轻游戏”教学对学习者计算思维能力的培养方面的影响也非常明显,在计算思维能力的掌握上,认为影响非常大的人从9人上升到32人,而对计算思维能力培养影响不是很大或者完全没有影响的人数则依次的递减,任务计算思维影响不是很大的人数从30人降低到12人,而完全没有影响的则从13人降低到8人。
根据图10表明,相对于传统教学对学习者学习方式的影响,在对学习者学习方式的影响方面,“轻游戏”教学对学习者学习方式的影响非常的大,认为大幅提高的人数从5人上升到27人,而对认为学习方式有所改变的人数从3人上升到19人,没有改变的人数则从44人降低到6人。
以上图示对比了传统程序设计教学和“轻游戏”方式教学对学习者思维能力、计算思维能力的培养、学习方式的改变等方面的情况,根据图形的反应,可清晰地看到游戏教学相较于传统方式的教学在这方面有很好的改进和提高。图11学习者成绩测试的数据表明,比较于传统的教学方式,不及格人数的数量有所下降,从4人降低到2人,在60至69分的阶段,数量也有所下降,从16人降低到7人,在70至19分阶段,数量从18人降低到13人,虽然60到79分阶段学生人数都在下降,但在80分至89分阶段和90分至99分阶段,学习者人数分别从8人上升到19人,6人上升至11人。这足以说明基于“轻游戏”的程序设计课程教学相对传统的课程教学而言,会降低低分阶段学生的人数,而原来中等成绩的学生会向高分阶段上升。
对此,笔者认为:(1)学习者在程序设计学习当中,仍然有部分学生没有任何的改变,传统的教学和“轻游戏”的教学并没有出现显著的差异,说明班级的小部分学生对待学习的积极性方面可待提高:(2)对于大多数一直接受传统学习的学习者而言,在接受“轻游戏”的教学方式之后,成绩有了明显的提高。并且对于原来整体学习测试水平偏低的学习者而言,班级的整个学习成绩都有了大幅度的提高:(3)基于游戏的教学模式,激发了学习者的学习动机,提高了学习者元认知能力,直接影响了学习者在学习态度,学习方式方面的改变,对其思维方式,计算思维 能力有了显著的改变和提高:(4)遇到抽象难解的问题,教学者可以利用游戏帮助其讲解知识,学习者可以在娱乐中亲自体验知识构建的过程,学习者还可以借助教学者的辅助和指导提高了自己的思维敏程度,巩固知识的同时内化知识。
六、分析与评价
把游戏作为教学的辅助手段,目前都还处于探索之中,教学者教学过程中的把握以及教学设计的安排和学校相关软硬件技术与设备等问题都还没对这方面的教学情况做明确和权威的标准。截至2011年6月,以关键字“轻游戏”在中国知网、维普中文科技期刊数据库等搜索发现,以“轻游戏”为关键字搜索的科研文献共6篇,作为学术文献的记载则是最早出现在2005年。而计算思维如此系统化和高度化也是源于美国卡内基,梅隆大学J.M.Wing教授2006年发表于ACM杂志上关于计算思维详细分析的文章当中,这二者出现的时间都不长,但都分别已经成功地应用于各种课堂教学当中,运用“轻游戏”来培养计算思维,却还没有过多这方面的研究,有的仅仅是在教学中进行小规模,摸索性的不成体系的探究,但笔者在对此进行的研究过程中,已经深刻感受到“轻游戏”与计算思维能力在未来社会的教育教学模块中,发挥的学术潜力和教学效果将会举足轻重。但是通常教育游戏的教学策略是辅助教学目标的完成,主要用来帮助学习者延伸课内外知识学习的需要,对这一点,我们需要好好的引导和把握,才能更加完美的发挥它的功效。
在本文中,笔者通过“汉诺塔”和“电脑博弈”两款“轻游戏”的方式,来说明教学者在程序设计的教育教学过程中运用游戏教学的策略,能更好地帮助学习者理解程序设计算法,提高学习者的计算思维能力。作为现代大学生必备技能之一的计算思维,自2010年7月西安会议上发表的《九校联盟(C9)计算机基础教学发展战略联合声明》,确定以计算思维为核心的计算机基础课程教学改革以来,受到了教育界各方人士的关注,但是目前对其的培养却没有统一的学科体系。文中笔者从教学游戏出发,培养学习者递归算法和游戏制胜策略等计算思维能力。使学习者亲临知识获取的现场,在游戏娱乐中构建自己所需的知识,利用游戏的娱乐性化繁为简,一步一步地内化知识。
七、结论与展望
文章以“轻游戏”培养学习者的计算思维为主线,通过分析计算思维方法的内涵和“轻游戏”的相关概念,构建了基于“轻游戏”的程序设计课堂教学和学习模型,并以“汉诺塔”和“电脑博弈”两款“轻游戏”为例,分析论证了该模型的教学方式。在对2个实验班级的调查分析中,我们看到学习者在思维能力、计算思维能力、学习方式以及测试成绩等方面较于传统的教学而言,有了大幅的改变和提高。
综上,“轻游戏”是一类特殊的教学游戏,而教育游戏是否值得运用在教学过程当中,关键的环节还是实际的教学效果。可以这么讲,“轻游戏”是在教育教学中有游戏的娱乐,而娱乐中又有教育的灵魂。目前。国内外教育游戏在教学中和科学研究中的开展是越演越烈,但主要的集中点还是在游戏的教育性和游戏性中找平衡点,而“轻游戏”着重强调其游戏的设计、开发、实施等简单,而实用性、实效性则高效,强调其是教育软件中具有主流游戏娱乐性。由此,笔者以为,“轻游戏”将是教育游戏发展的一个重要方向,而于程序设计课程中算法思维的抽象和自动化特点而言,“轻游戏”是非常适合运用于课程中辅助学习者理解其中计算思维方法的最好方式。
总之,学习和思维不是彼此独立的,而是紧密的互补的联系在一起,计算思维的成长乃至发展对我们的教学和科研都产生了很大的影响,教学者在教学过程要使学习者掌握程序设计算法,内化计算思维能力,这将是一个长期的过程。在这里,我们从“轻游戏”的角度以娱教的方式探讨了对学习者计算思维能力培养,并非否定其他教学方式在教育教学中对学习者掌握知识方法的培养。作为“轻游戏”和“计算思维”二者之间的关系,还需要我们进一步的摸索,探究,才能更好地贯彻教育部高等学校计算机基础课程教学指导委员会在计算机基础课程教学中对计算思维能力培养的要求。
[关键词]轻游戏;计算思维;思维能力培养:程序设计:课程教学
[中图分类号]CA34 [文献标识码]A [文章编号]1672-0008(2011)06-0094-08
一、引言
1972年,图灵奖得主Edsger Dijkstra说“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力Ⅲ。当前,电子计算机已经广泛普及。成为人们工作和生活的工具,计算思维逐渐成为人们的主要思维方式和思维习惯,是人们思维能力的主要特征之一。在教学过程中,不仅要求学生掌握阅读、写作和算术,还要学会计算思维。
高级程序设计语言是计算思维方法的最好体现之一,它的一系列技术和方法在计算机科学和计算科学中存在着很大的影响。因此,对于计算机学科和计算学科的学生而言,掌握高级程序设计语言的技术和方法显得尤为重要。学者吴文虎提出:“学会计算思维是学习者在信息社会大展宏图的需要,程序设计是大学生的一个看家本领。不会编程的人,只能局限在别人划定的圈内工作,对于那些划在圈外,计算机能够胜任,而你又渴望去做的工作,不会编程的人只能“望洋兴叹”。我们有责任让那些有理想有抱负有灵气又肯吃苦的中国孩子在起跑时就能占有先机。”
当前,在高级程序设计语言的教学中,教学者更偏向语言基础知识的讲解和传授,课堂教学枯燥乏味,学习者的学习积极性不高,整个教学效果得不到改善。与此同时,由于过多地强调课程知识内容的解决,从而完全忽视了学习者在思维能力层面上对知识点的接受和创新,继而影响程序设计中重要的计算思维能力的培养。笔者通过对四川省、重庆市部分高校(包括职业技术学院等)的走访调查发现,目前在程序设计教学中,教学者在进行教学时主要出现以下几种情况:(1)教学者主要强调程序设计本身的语句、语法规则等细节。对于高级程序设计语言的基本概念,求解思路,求解方法等却不够重视:(2)教学者从程序设计的体系结构出发,在一定程度上分析了程序设计的一部分抽象思维和逻辑思维,但仍然没有作为主要的知识对学习者进行培训:(3)教学者从抽象和形式化方面对程序设计语言进行了分析,强调了程序语言的抽象思维和逻辑思维:(4)教学者从程序设计的问题出发,对其进行抽象和形式化表示,并构造算法对问题进行处理,讲授解决问题的思想和方法,延伸程序设计语言的基础是抽象和逻辑化,最后从计算思维能力的角度进行培养学习者解决问题和迁移知识的目的,
而在这四种情形中,存在一个普遍现象:多数教学者在对学习者进行程序设计思想和方法的培养上没有足够的引导和重视。而前三种情况,占据了调查学校的69.03%以上。作为计算机学科和计算学科打基础的课程,改善当前程序设计课程教学现状,努力培养学习者计算思维能力尤显重要。由中国科学院信息领域战略研究组编写的《中国2050年信息科技发展路线图》一书对“计算思维”给予了高度地重视,认为在计算机基础课程的教学中,培养计算思维是克服“狭义工具论”的有效途径,是解决其他信息科技难题的基础,使计算机专业的毕业生可以胜任任何工作的必要前提。但目前,对计算思维能力的培养还处于探索和摸索阶段,没有一个系统性的特定教学设计和教学模式,来帮助教学者在教学过程中去实践和培养学生的计算思维能力,
“轻游戏”是目前“寓教于乐”的主要形式,它结合教育的功能,把实现课堂教学目的的思想融合进游戏当中。它的这一特征在高级程序设计语言中培养计算思维能力,显得非常的突出和重要,教学者可利用“轻游戏”教育的功能和游戏的特点,实现提高课堂教学效率,解决计算机语言学科课堂教学枯燥乏味的现状,从而达到培养学习者计算思维能力的目的。
二、计算思维及轻游戏
(一)计算思维及其特点
美国卡内基,梅隆大学教授J.M.Wing认为,计算思维是每个人的基本技能,不仅仅属于计算机科学家。我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Reading.wRiting and arithmetic--3R),还要学会计算思维,犹如印刷出版促进3R的普及,计算和计算机也以类似的正反馈促进了计算思维的传播。她认为,这种思维在不久的将来,将成为每一个人的技能组合,而不仅仅限于计算机科学家,普适计算之于今天就如计算思维之于明天,而普适计算是成为今日之现实的昨日之梦,而计算思维就是明日之现实。
计算思维所表示出的本质是抽象和自动化,是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学之广度的一系列思维活动。即通过简约、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道怎样解决的问题。J.M.Wing教授认为,计算思维具有以下几个方面的特征:(1)概念化,不是程序化。计算机科学不是计算机编程,像计算机科学家那样去思维意味着远不止能为计算机编程,还要求能够在抽象的多个层次上思维。(2)根本的,不是刻板的技能:根本技能是每一个人为了在现代社会中发挥职能所必须掌握的,刻板技能意味着机械地重复,具有讽刺意味的是,当计算机像人类一样思考之后,思维可就真的变成机械的了。(3)是人的,不是计算机的思维方式:计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考,计算机枯燥且沉闷,人类聪颖且富有想象力,是人类赋予计算机激情,配置了计算设备,我们就能用自己的智慧去解决那些在计算时代之前不敢尝试的问题,实现“只有想不到,没有做不到”的境界。(4)数学和工程思维的互补与融合:计算机科学在本质上源自数学思维,像所有的科学一样,其形式化基础建筑于数学之上,计算机科学又从本质上源自工程思维,因为我们建造的是能够与实际世界互动的系统,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。构建虚拟世界的自由使我们能够设计超越物理世界的各种系统。(5)是思想,不是人造物:不只是我们生产的软件硬件等人造物将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生 活、与他人交流和互动的计算概念:(6)面向所有的人,所有地方。当计算思维真正融人人类活动的整体以致不再表现为一种显式之哲学的时候,它就将成为一种现实。
在科技日益发展的科学时代,有学者提出,J.M.Wing教授提出的计算思维,是近十年来计算科学和计算机科学中最具基础性和长期性的重要学术思想同,而其核心就是为解决某个问题进行设计的算法问题,而算法问题却在程序设计中得到了集中的体现。从根本上讲,计算机对人类所做的事情以及面对操作者的反应都是预先存贮在内部的程序所起的作用,是编程人员预先设定的一系列程序所起的效果。在之前,编程人员根据各种调查和收集为计算机事先设想了各种可能性的事件,并针对这些可能发生的事情预先设定了相应的指令,比如if~then等,计算机做的工作,就按事先的程序指令机械的完成相应的工作。换言之,要让计算机帮助我们解决问题,就必须人们事先帮助它设定解决问题的算法。由此可见,算法是解决问题过程中的一个重要环节。所以对于程序设计教学而言,培养学习者理解问题的计算思维能力显得尤为重要,
(二)轻游戏及其特点
自2000年网络游戏在中国刚刚起步到现在为止,网络游戏用户已达上千万。当前,游戏娱乐已经成为青少年主要休闲活动之一,出现了电子游戏(Electronic Games)、数字游戏(Digital Games)、计算机游戏(Computer Games)、网络游戏(0nline Games)、视频游戏(Video Games)等多种形式。日益盛行的各类数字化游戏产品,对教育的冲击已无法避免,如何让教育与游戏有机结合,成为摆在教育者面前的一个现实课题,一些学者提出的“轻游戏”很好地诠释了教育和游戏之间的关系,使“寓教于乐成为现实,使游戏为教育所用。
1 “轻游戏”的理论基础
教育游戏综合了游戏的形式和教育的内容,从其本质上看,教育游戏是吸收了教育教学的外在和游戏的内涵,它具备教育和游戏的共同特征。教育游戏的理论基础涉及教育学、教育技术学、心理学、传播学、语言学、文化社会学、计算机设计等多个领域的理论基础,其中建构主义、社会学习、内隐学习、多元智力、马斯洛的人的需要层次、体验式学习、Web2.0理念等,对教育游戏的开发、设计、运用具有指导性作用。
近年来,教育游戏的相关研究逐年增多,为了更好地了解教育游戏在学术上的发展趋势和在教学中的运用,笔者就“中国知网学术文献总库”教育游戏类文章作了相应的统计,自2004年1月至2011年6月14日之间,以“教育游戏”为主题的文章一共416篇,2004年9篇,2005年12篇,2006年24篇,2007年51篇,2008年90篇,2009年112篇,2010年101篇,2011年17篇,而其中的硕士论文107篇,博士论文3篇。而以“教育游戏”或者“教学游戏”为主题进行搜索则有111篇硕士论文和8篇博士论文。而整个2004年之前,一共只有16篇类似的文献,
国内研究的较早且影响较大的主要是祝智庭教授的《娱教技术:教育技术的新领地》以及尚俊杰的《“轻游戏”--教育游戏的希望和未来》。二者的共同点是将教育游戏作为一种游戏化的教学方式,着重于游戏的教育功能,强调其游戏的教育性。但“轻游戏”则更突出其游戏的使用方法简单、使用时间得当、开发难度低、实用性强的特点。
在一些文献中,对电脑游戏、教育游戏与教育软件三者之间的关系加以分析,将教育游戏重新定位,将益智游戏、游戏型课件和轻游戏都被看作是教育游戏领域与其他研究领域相交的子集(如图1)。
在图1中,我们可以看到“轻游戏”的位置,正如文献中所述:“游戏性”并不是灵丹妙药,真正的做法应该是从主流游戏中提取内在动机并将其整合到教育软件中,如挑战、幻想、好奇、控制、目标和竞争等(Malone&Lepper 1987)。而这正是“轻游戏”的根本目的,不是追求游戏的外在形式,而是追求游戏的内在特征。或许人们认为这不是一个游戏,但是他们会认为这是一个吸引人的教育软件。比如,北京大学的教师在“决策模拟”课程中使用企业竞争模拟软件(BUSIMU)来提高学生的商业管理能力。尽管绝大部分学生都没有把这个软件当作游戏,但是他们却被深深地吸引了,甚至感觉比主流游戏更有意思。
2 “轻游戏”的概念及其特点
文献提出,所谓“轻游戏”就是具备电脑游戏的内在动机的一种教育软件,此游戏能更好地协调主流游戏的“游戏性”和教育教学的“教育性”。该作者认为,相对于传统的电脑游戏,“轻游戏”可用如下的概念阐释:(1)它是一个教育软件,其中的内容和任务都是和课程相关的。当任何人看到“轻游戏”时,他首先会认为这是一个教育软件,而不是一个游戏;(2)其次,它必须具备主流游戏的某些特征,充分利用主流游戏的内在动机,如挑战、好奇、幻想、控制、目标、竞争、合作等(Malone&Let)per 19871:(3)它应该能很容易地被用到课堂教学中,所以它应该符合学校的课程模式和规则,比如,应该将每部分所用的时间尽可能限制在50分钟内:(4)可以用公式来表示:“轻游戏”=教育软件+主流游戏的内在动机:即是教育软件中具备主流游戏的游戏性特征。文献认为,将网络游戏的内在动机融入到某门课程的教育软件中,用网络游戏的设计理念结合课程内容设计教育软件:“轻游戏”就诞生了。对此,在程序设计教学过程当中,可通过“轻游戏”的方式来培养学习者的计算思维能力,使学习者以娱乐的方式理解程序设计的算法的抽象性。
对此,笔者认为,“轻游戏”具备这样的特点:(1)是教育软件,非游戏软件;(2)软件具有游戏功能;(3)这款具有娱乐功能的游戏,宗旨是为教育服务。因此,一些操作与练习式的游戏和一些模拟游戏及其他游戏可以被认为是“轻游戏”,
“轻游戏”的提出为网络游戏应用于教育提供了一个新的概念和教学方法,给予教育带来了全新的契机,它将站在教育对立面,使具有负面效应的网络游戏加以改进和提升,让其应用于教育领域,将游戏娱乐融合进学生的课堂,大大地减少教学者对学习者沉迷网络游戏的担心,并使信息科技的网络环境更好的应用于课堂教学中,为将来网络环境下的教育带来了新的发展,
3 “轻游戏”对教学的影响
(1)对学习者的影响。在游戏与学科知识教学的实证研究中,一些研究者发现,游戏可以激发学习者的学习动机,让学习者全身心都参与到学习过程中,在游戏中的心理动作能够促进游戏者个体的认知发展、促进游戏社群中的认知协作和游戏团队的认知交流等,具有利于学习者问题解决能力、协作学习能力等多种教育应用价值的培养。
由于“轻游戏”的定义是具有主流游戏内在动机的教育软件,因此,具备教育教学功能的教学游戏我们认为是“轻游戏”。我们知道,游戏化的学习主要是以学习者为中心的学习,学习的主体是学习者本身,而非教学者。在游戏化的学习 当中,教学者的任务主要是组织游戏活动,对学习者的游戏过程进行指导,并对其学习效果进行评估,引导学习者进行游戏学习等,
在文献中,作者结合国内外相关文献研究得出游戏有助于激发学习者的学习动机,能够帮助学习者学习知识、提高能力、培养正确的情感态度价值观,也能够促进自主学习等学习方式,并有助于构建富有吸引力的建构主义学习环境。文献中,作者用图2的方式展示了教育游戏的双重目的结构,体现出教育游戏内在的游戏自由独立性和教育外在的不独立性。图中内圆中的实线表示内在目的,是教育游戏的直接目的,它的表现形式是自由的,独立的,外显的。外圆中的虚线表示外在目的,是教育游戏的间接目的,它的表现形式是内隐的,不独立的。内圆中的①②③④四条实线的具体含义分别为自我决定、自我进程、自我实现、自我影响,外圆中的⑤⑥⑦⑧四条虚线的具体含义分别为潜在强化、内隐认知、虚拟交往、附属调节。内圆与外圆之间的虚线相连表示教育游戏的价值所在,即通过教育游戏,个体能够在自由的游戏表象下获得现实的发展,
(2)对教学者的影响。在游戏化的教学中,主要强调学习者自主的构建知识,此时教学者的教学方法、教学手段、整个教学的过程都应该做相应的调节和改变。在此教学过程中,强调学习者主动建构、自我摸索、自我实现、自我影响。因此,教学者应掌握相应的教学理论、学习理论和传播理论,才能更好地实施游戏型教学,
对于计算思维是计算机程序设计语言的灵魂,它的本质是抽象和自动化这样的特点而言,根据教育游戏的外显特点和内在要求,在教学和学习过程中就要求教学者利用“轻游戏”,采用系统化的方法,激发学习者的学习兴趣和学习动机,使其形成学习知识的心理,主动进入到知识学习的情景当中,积极的内化知识,从而更好的挖掘程序设计的算法思维。
在这里,教学者应注意:“轻游戏”的类型可以是技能操作式、问题探究式、任务驱动式、虚拟协作式、仿真竞技式、思维支架引导式等方面的教学游戏:游戏的目的主要是加强对学习者编程方式,计算思维能力的训练,提高学习者的程序实践能力,潜移默化的帮助学习者内化计算思维方法,从而培养学习者的计算机方法论:游戏的设置时间可以是课堂教学中。也可以是课堂教学外:游戏可以在教学者自主设计或者下载网络共享资源。
三、基于“轻游戏”的程序设计课堂教学和学习模型
(一)程序设计课堂的教学目标
计算机程序设计语言的理论基础是形式语言,自动机语言与形式语义学。目前,大部分学校在教授程序设计课程中,多采用传统的教授法和结合实验的上机操作实践来使学习者熟悉和巩固课堂上所讲解的内容,
美国伯克利加州大学前校长田长霖从对中外理工科教学方式的比较中,提出了理想的高层次理工科教学方式是:“教理工科的课不能推导公式,推导公式是最简单的,教师可以不备课。在课堂上要讲的是公式的来龙去脉:人家发现这个公式时遇到了那些困难,摸索的过程是什么情形,走过什么道路,最后怎么变成这个正确的公式,这个公式将来的发展趋势是什么,它还可以做什么钻研等等,上课时,这些内容应作启发性的讲解。”高级语言程序设计的教学重点不在于如何解决某些实际问题上,这是因为,一方面受教学计划学时的限制:另一方面,学生尚不具备解决实际问题的知识基础和经验积累,我们必须致力于讲授解决问题的思想和方法的教学方式,尤其适用于高级语言程序设计的教学设计和课堂教学。因此,在教学设计和实施具体教学过程中,必须明确培养和提高学生的计算思维能力是最终目的,而具体的程序设计只是实现这个目的一种手段。
(二)基于“轻游戏”的程序设计课堂教学和学习模型图
祝智庭认为。关注并投入娱教技术研究与应用实践,是为教育技术开辟了一个新领地,对于促进教育技术学科发展具有重大意义。对于计算思维的抽象等特点,通过“寓教于乐”的方式来培养学习者的计算思维能力能起到事半功倍的成效。下面,我们根据程序设计课程教学的特点以及计算思维一系列学习技巧和方法,构建以下教学模型,运用该模型进行程序设计课程教学,培养学习者的计算思维能力,提升教学效率和帮助学习者提高学习效果,从而使学习者掌握计算机方法论。该教学模型分为教学者教学模型(图3)和学习者学习模型(图4)两个部分。
教学模型是教学者教学时首先确定教学目标、分析学习者特征、分析教学内容,然后在此基础之上进行培养学习者思维能力的问题设置、良好教学情境的创设,最后进行知识点的讲解,同时运用“轻游戏”作为辅助教学的工具,让学习者熟悉游戏规则,对“轻游戏”获取一定的感性认识,并运用“轻游戏”辅助教学,同时观察学习者在课堂上听课的反应情况,让学习者参与进来一起讨论总结。
学习模型是学习者在自主学习时首先应明确学习目标,将教学者所讲的知识转换内化,同时利用“轻游戏”巩固递归、赢得游戏的策略等算法问题,并总结提高。如果效果良好,则对这个学习过程进行总结评价,以此为以后的学习打下更牢的基础,如果效果不理想,则回顾学习,并在教学者指导下更好地利用“轻游戏”辅助学习相应的知识,达到掌握知识,内化学习方法的目的。
四、轻游戏对计算思维能力的培养案例
作为算法领域内具有代表性的“汉诺塔游戏”和策略与对策领域具有代表性的“井字棋游戏”是属于“轻游戏”的典型,下面通过对这两款“轻游戏”的分析,验证教育游戏在程序设计课程中对学习者计算思维能力进行培养的研究。
(一)汉诺塔游戏
当我们的教学者在进行程序设计语言课程的“循环结构”教学时。一般会给同学们讲到“递归”,“递归”问题本身很抽象,无论教学者讲解时,学习者都不能很好地理解老师口中的“递归”问题。作为教学者,应该怎样让学习者明白知识点的同时又培养其程序设计的计算思维能力?这里,让学习者轻松愉快的掌握相应的知识点,合理运用“娱教技术”是最好的办法,在面对一些难讲难解的问题时就能很好地化解。下面我们以“汉诺塔游戏”来解决“递归”算法的典型问题--汉诺塔问题。题目如下所示:
天神让庙里的僧侣们将第一根宝石柱上的64
个金圆盘借助第二根宝石柱全部移到第三根宝石
柱上,即将整个塔迁移。同时定下3条移动规则:①
一次只能移一个盘子:⑦金盘只能在三根宝石柱上
存放;③在移动过程中,任何时候大盘都不能放在
小盘上面。
对于该例子,可以进行下面的问题描述和算法分析,并根据该算法设计相应的游戏。假设这三个柱子分别为源柱、工作柱、目的柱,汉诺塔的问题是:将n个圆盘从A柱(源柱),利用B柱(工作柱)搬移到C柱(目的柱)。如图5所示:
游戏设计的操作步骤如下:第一步:如果n=1则将1个圆盘由A移至C,结束过程;否则执行第二步;第二步:由3小步组成:(1)将A(源)上的(n-1)个圆盘移至B(目标柱),以C作为工作柱:(2)将A上剩下的一个圆盘 移至C:(3)将B柱(源)上(n-1)个盘搬移到C(目标柱),以A为工作柱。
汉诺塔问题的解决方法是典型的“递归”算法,这种方法在解决问题时十分有用。利用它递推和回归的原理,使一些复杂的问题变得清晰而简单。根据它的特点建立相应的模拟移动数学模型(如图5),并根据数学模型设计相应的游戏,学习者按以上“操作步骤”移动源柱上的木块,木块可以累加起来,但是必须把小的放在大的上面,成功把木块顺序不变的堆到目的柱上则为此关通过,同时游戏者进行下一关游戏,此时源柱上的木块相比之前增加1块,依次类推,学习者不断的闯关,源柱上的木块就一次次增加。直到搬完源柱上的64个模块为止,期间木块移动了264-1次,同时通过这样的过程也让学习者明白“递归”方法的原理。此后我们可引出数学模型的算法,根据算法写出求解问题的程序,完成相应的教学和学习任务。这样的学习过程不但让学习者愿意去探究,同时可把抽象的问题变得形象生动,为学习者掌握该算法问题提供更好的教学方式和学习方法。
对比传统的程序设计课堂教学:教学者在讲解了相应的方法之后,学习者就依照教学者的讲解,编写程序,上机调试,本课堂的教学任务完成。这样的教学和学习过程,学习者根本没有真正的领会到“递归”算法的实质所在,但是,如果教学者通过“轻游戏”的方式进行相应知识的教学,让学习者通过该游戏进行知识点的亲身体会,其结果就完全的不同。因为游戏让学习者理解程序设计的算法,身临其境的感受“递归”算法,从而掌握“递归”算法。这样的教学过程中,不但教学容易,同时学习者学习的知识也能事半功倍,在培养学习者计算思维能力问题上,也使学习者内化了相应的方法。
(二)电脑博弈游戏
在人类历史中,博弈是一个经久不衰的话题。而在计算机这个工具的发展中,博弈问题,一直是算法设计中的重要研究领域,因为它从另一个层面上说明了机器智能问题。在这里,我们通过“五字棋”游戏,分析在教学中,如何使学习者掌握怎样计算才能更好地学习一个赢得游戏的策略,以此培养学习者的计算思维能力的游戏制胜策略。题目如下所示:
在一个空的棋盘上,电脑为一方。人为一方,
双方轮流在棋盘的空位置上下棋子和圈
(O)。胜负规则:若某一方的棋子率先由5颗连
成了一条直线(可以是横线、坚线或对角线),则
获胜:若至整个棋盘都被占满还没有一方获胜,
则为平局。
对于该问题,我们运用估值函数进行相应的算法分析,同时画出相应的模型图,如图6所示:
操作步骤如下:第一步:确定谁先走棋;第二步:若电脑走棋,则计算最佳下棋位置,并走棋,否则由人走棋;第三步:胜负检查,若一方获胜,则程序结束,否则执行第四步;第四步:平局检查,若棋盘下满,则程序结束,否则执行第二步。根据该题,我们可以设计一个如图7所示的井字棋数学游戏模型图,让学习者了解如何计算一个赢得游戏的策略。
计算机博弈是一种对策性游戏,是人工智能的主要研究领域之一,它涉及人工智能中的搜索方法、推理技术和决策规划等。根据游戏的步骤和所画的数学游戏模型图,我们设计如图7所示的“电脑博弈”游戏。根据以上的操作步骤进行游戏,逐步实现学习者与电脑之间的博弈。以此锻炼学习者决策能力、计算能力、攻防能力以及面对变化的适应能力,
这里的“轻游戏”好比我们平常见到的益智类游戏,它非常小巧,操作简单,玩法简单投入时间很短,非常适合课堂教学。在这两个“轻游戏”当中,充分地体现了计算思维中的递归思维以及如何赢得游戏的策略问题。学生通过这样的学习过程,掌握操作、理解递归和赢得游戏策略等技能,一定程度上达到了培养学生计算思维能力的目的。
五、“轻游戏”对教学实践效果的影响
由于《C语言程序设计》是学生在算法设计领域打基础的一门课程,算法问题掌握的程度直接决定了学习者在以后编程问题方面解题的技能。所以在实施该课程教学的过程中,笔者通过在课堂教学中引入“轻游戏”的方法,引导学习者通过此类游戏掌握程序设计中难以理解的程序算法。通过一学期对两个52人的实验教学班级的实践教学调查发现,学习者对该教学方法的赞同度和认可度极高,在发放的问卷中,笔者对以下几个方面做了集中调查,并结合测试题目的结果进行了对比分析。
根据图8表明,相对于传统教学对思维的影响,在思维影响程度方面,“轻游戏”教学对学习者思维能力的影响非常的大,从8人上升到28人,而对思维能力影响不是很大或者完全没有影响的人数则依次的递减,对思维学习影响不是很明显的人数中从37人降低到19人,而完全没有影响的则从7人降低到5人。
根据图9表明,相对于传统教学对程序设计算法的影响,在算法学习和理解方面,“轻游戏”教学对学习者计算思维能力的培养方面的影响也非常明显,在计算思维能力的掌握上,认为影响非常大的人从9人上升到32人,而对计算思维能力培养影响不是很大或者完全没有影响的人数则依次的递减,任务计算思维影响不是很大的人数从30人降低到12人,而完全没有影响的则从13人降低到8人。
根据图10表明,相对于传统教学对学习者学习方式的影响,在对学习者学习方式的影响方面,“轻游戏”教学对学习者学习方式的影响非常的大,认为大幅提高的人数从5人上升到27人,而对认为学习方式有所改变的人数从3人上升到19人,没有改变的人数则从44人降低到6人。
以上图示对比了传统程序设计教学和“轻游戏”方式教学对学习者思维能力、计算思维能力的培养、学习方式的改变等方面的情况,根据图形的反应,可清晰地看到游戏教学相较于传统方式的教学在这方面有很好的改进和提高。图11学习者成绩测试的数据表明,比较于传统的教学方式,不及格人数的数量有所下降,从4人降低到2人,在60至69分的阶段,数量也有所下降,从16人降低到7人,在70至19分阶段,数量从18人降低到13人,虽然60到79分阶段学生人数都在下降,但在80分至89分阶段和90分至99分阶段,学习者人数分别从8人上升到19人,6人上升至11人。这足以说明基于“轻游戏”的程序设计课程教学相对传统的课程教学而言,会降低低分阶段学生的人数,而原来中等成绩的学生会向高分阶段上升。
对此,笔者认为:(1)学习者在程序设计学习当中,仍然有部分学生没有任何的改变,传统的教学和“轻游戏”的教学并没有出现显著的差异,说明班级的小部分学生对待学习的积极性方面可待提高:(2)对于大多数一直接受传统学习的学习者而言,在接受“轻游戏”的教学方式之后,成绩有了明显的提高。并且对于原来整体学习测试水平偏低的学习者而言,班级的整个学习成绩都有了大幅度的提高:(3)基于游戏的教学模式,激发了学习者的学习动机,提高了学习者元认知能力,直接影响了学习者在学习态度,学习方式方面的改变,对其思维方式,计算思维 能力有了显著的改变和提高:(4)遇到抽象难解的问题,教学者可以利用游戏帮助其讲解知识,学习者可以在娱乐中亲自体验知识构建的过程,学习者还可以借助教学者的辅助和指导提高了自己的思维敏程度,巩固知识的同时内化知识。
六、分析与评价
把游戏作为教学的辅助手段,目前都还处于探索之中,教学者教学过程中的把握以及教学设计的安排和学校相关软硬件技术与设备等问题都还没对这方面的教学情况做明确和权威的标准。截至2011年6月,以关键字“轻游戏”在中国知网、维普中文科技期刊数据库等搜索发现,以“轻游戏”为关键字搜索的科研文献共6篇,作为学术文献的记载则是最早出现在2005年。而计算思维如此系统化和高度化也是源于美国卡内基,梅隆大学J.M.Wing教授2006年发表于ACM杂志上关于计算思维详细分析的文章当中,这二者出现的时间都不长,但都分别已经成功地应用于各种课堂教学当中,运用“轻游戏”来培养计算思维,却还没有过多这方面的研究,有的仅仅是在教学中进行小规模,摸索性的不成体系的探究,但笔者在对此进行的研究过程中,已经深刻感受到“轻游戏”与计算思维能力在未来社会的教育教学模块中,发挥的学术潜力和教学效果将会举足轻重。但是通常教育游戏的教学策略是辅助教学目标的完成,主要用来帮助学习者延伸课内外知识学习的需要,对这一点,我们需要好好的引导和把握,才能更加完美的发挥它的功效。
在本文中,笔者通过“汉诺塔”和“电脑博弈”两款“轻游戏”的方式,来说明教学者在程序设计的教育教学过程中运用游戏教学的策略,能更好地帮助学习者理解程序设计算法,提高学习者的计算思维能力。作为现代大学生必备技能之一的计算思维,自2010年7月西安会议上发表的《九校联盟(C9)计算机基础教学发展战略联合声明》,确定以计算思维为核心的计算机基础课程教学改革以来,受到了教育界各方人士的关注,但是目前对其的培养却没有统一的学科体系。文中笔者从教学游戏出发,培养学习者递归算法和游戏制胜策略等计算思维能力。使学习者亲临知识获取的现场,在游戏娱乐中构建自己所需的知识,利用游戏的娱乐性化繁为简,一步一步地内化知识。
七、结论与展望
文章以“轻游戏”培养学习者的计算思维为主线,通过分析计算思维方法的内涵和“轻游戏”的相关概念,构建了基于“轻游戏”的程序设计课堂教学和学习模型,并以“汉诺塔”和“电脑博弈”两款“轻游戏”为例,分析论证了该模型的教学方式。在对2个实验班级的调查分析中,我们看到学习者在思维能力、计算思维能力、学习方式以及测试成绩等方面较于传统的教学而言,有了大幅的改变和提高。
综上,“轻游戏”是一类特殊的教学游戏,而教育游戏是否值得运用在教学过程当中,关键的环节还是实际的教学效果。可以这么讲,“轻游戏”是在教育教学中有游戏的娱乐,而娱乐中又有教育的灵魂。目前。国内外教育游戏在教学中和科学研究中的开展是越演越烈,但主要的集中点还是在游戏的教育性和游戏性中找平衡点,而“轻游戏”着重强调其游戏的设计、开发、实施等简单,而实用性、实效性则高效,强调其是教育软件中具有主流游戏娱乐性。由此,笔者以为,“轻游戏”将是教育游戏发展的一个重要方向,而于程序设计课程中算法思维的抽象和自动化特点而言,“轻游戏”是非常适合运用于课程中辅助学习者理解其中计算思维方法的最好方式。
总之,学习和思维不是彼此独立的,而是紧密的互补的联系在一起,计算思维的成长乃至发展对我们的教学和科研都产生了很大的影响,教学者在教学过程要使学习者掌握程序设计算法,内化计算思维能力,这将是一个长期的过程。在这里,我们从“轻游戏”的角度以娱教的方式探讨了对学习者计算思维能力培养,并非否定其他教学方式在教育教学中对学习者掌握知识方法的培养。作为“轻游戏”和“计算思维”二者之间的关系,还需要我们进一步的摸索,探究,才能更好地贯彻教育部高等学校计算机基础课程教学指导委员会在计算机基础课程教学中对计算思维能力培养的要求。