面向计算思维的小学游戏化编程教学策略研究述评

    马宗兵

    

    

    [摘 ? 要]计算思维是明确问题和制定问题解决方案的思维过程,是创造思维的重要组成部分,计算思维能力是信息时代学生的必备技能。通过分析对小学生计算思维能力培养、游戏化编程及两者关系的研究文献发现,游戏化编程有利于发展小学生的计算思维,培养其学习兴趣与创新能力。

    [关键词]计算思维;游戏化编程;Scratch;创客;创新思维

    一、引言

    2018年4月16日,美国商务部长威尔伯·罗斯(Wilbur L. Ross)宣布对中兴(即中兴通讯股份有限公司)激活拒绝令[1],该事件触碰到了中国通信产业缺乏核心技术的痛点[2],也为国家核心科技的发展敲响了警钟。而从长远来看,要从根本上解决这个问题,必须从教育入手。进入21世纪,现代社会赖以运转的各大系统的底层已嵌套在算法之中,世界各国格外重视相应的教育体系设计。如美国教育协会在相关计算机教育标准中强调,在K-12阶段开展计算思维与编程教育。英国中小学课程纲要中规划了发展计算思维的科学探究与计算机编程教育[3]。教育的本质,从某种意义上讲,就是改变人的思维[4]。为此,笔者分别综述了有关小学生计算思维能力和游戏化编程的研究,分析了两者之间的关系,并提出了相关建议。

    二、小学生计算思维能力的培养

    1.计算思维

    2006年3月,周以真(Jeannette M. Wing)最先在美国计算机权威刊物Communications of the ACM上提出了计算思维的完整概念,指出计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[5]。根据这一观点,计算思维就是通过简略、融入、转换和仿真的方法,把一个看起来比较困难的问题重新解释成一个人们知道用什么方法解决的问题,它与人们的日常生活及工作密切相关,应成为人类不可或缺的一种能力[6]。2011年,美国国际教育技术协会(ISTE)和计算机科学教师协会(CSTA)给出了计算思维的操作性定义,指出计算思维是一个解决问题的过程[7]。计算思维有以下六个特点[8]:明确问题,且能够使用计算机等外界工具解决问题;符合逻辑地组织和分析数据;通过模型、仿真等抽象方式重现数据;通过一系列有序的步骤也即算法思想制定解决方案;有效结合步骤和资源,识别、分析和实施可能的解决方案,找到最有效的方案;将该问题的解决过程进行推广并移植到更广泛的问题情景中。我国《普通高中信息技术课程标准(2017年版)》将计算思维定义为“个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动”。具备计算思维的学生,在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。具体表现在解决问题过程中的形式化、模型化、自动化、系统化[9]。

    2.计算思维能力

    人类有两大基本能力:思维能力和行动能力[10]。前者如计算思维能力,后者如信息应用能力。计算思维能力是个体在运用计算思维的活动中所体现出来的综合素质,表现为运用计算思维时效率的高低,需要通过多门相关课程较长时间的学习训练和有效沟通方可形成。应在计算思维能力形成的基础上,进一步培养学生利用计算机技术解决实际问题的信息应用能力[11]。

    3.小学生计算思维能力培养研究现状

    截至2020年1月2日,笔者在中国知网(CNKI)相关数据库中检索到与“计算思维”相关的期刊文献172篇和博硕士论文107篇;同时与“小学”相关的全部文献仅有39篇,核心期刊文献0篇,博硕士论文15篇(见表1)。可见,目前国内针对小学生计算思维能力培养的相关研究较少。

    在Web of Science平台上,数据库选择“Web of Science核心合集”,以“Computational thinking”作为主题词,共检索到3388条记录,不同研究方向排在前五位的分别是神经科学、生物化学分子生物学、跨学科科学、计算机科学人工智能、心理实验,可见计算思维研究的学科领域非常广泛。将“主题词”改为“标题”重新检索,共有157条记录,以Web of Science类别排序,排在前5位的分别是教育研究、计算机科学软件工程、计算机科学理论方法、教育科学、计算机科学硬件结构。可见,计算思维的研究主要集中在教育和计算机领域。在ScienceDirect中以“Computational thinking”作为关键词,选择“Computers & Education”杂志,共检索到330篇核心文献。从年发文量来看,进入21世纪,国际上普遍对计算思维的研究比较重視,从2007年起,该领域成为研究热点(见图1)。

    总体而言,国外的计算思维研究已处于成熟的早期阶段[12]。从文献内容来看,国外相关应用研究聚焦于计算思维的教育过程,涉及所有学段,但主要集中在K-12阶段[13]。原因在于,计算思维作为一种“多元抽象的思维”,可从计算机科学领域扩展应用到其他学科,成为通过计算方法解决问题的一种能力[14]。政策制定者和谷歌、微软等公司认为,计算思维应是每个人必须学习的基本能力和重要的21世纪技能,将使个体为适应未来社会做好准备[15]。此外,计算思维与21世纪学生的创造力、批判性思维与问题解决能力等核心素养相一致[16]。教育技术领域的专家强调,计算思维在21世纪技能中非常重要[17]。计算思维也逐渐被视为科学、技术、工程与数学(STEM)学科的核心[18]。美国国际教育技术协会还强调,年轻人应成为计算思考者,了解如何通过使用当今技术解决未来问题[19]。

    三、游戏化编程

    1.计算机编程语言的发展

    于20世纪40年代问世的第一台电子计算机,需要手动控制,操作十分复杂。德国工程师楚泽最先想到利用编程语言来解决这个问题[20]。随后,计算机编程语言经历了从机器语言到汇编语言再到高级语言的三代发展,使编程难度不断降低,但编程仍限于计算机专业人员。如今,第四代非过程化语言已经出现,编码时只需要说明“做什么”,不需要描述算法细节,进一步降低了编程学习的难度。

    2.可视化编程理念

    计算机程序设计语言可分为面向过程的语言和面向对象的语言。面向对象的语言就属于第四代编程语言,并催生了可视化编程的理念:以“所见即所得”编程思想为原则,力图实现编程的可视化,程序与结果的调整同步。可视化编程的出现使程序设计语言开始向非计算机专业人群普及。

    3.游戏化编程应用现状

    美国新媒体联盟《2017地平线报告(基础教育版)》指出,“编程可以帮助孩子进行批判性的思考,在日益数字化的工作环境中取得成功”“编程还能培养解决问题的能力、协作能力,甚至可以通过与游戏、機器人和动画的互动来培养学生的学习兴趣”。目前已有16个欧美国家将编程设置为学校的日常课程。实际上,少儿编程已经发展了近10年,全球有超过6000万的儿童正在接受编程教育[21]。国务院《新一代人工智能发展规划》指出,实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育[22]。2017年,浙江省将信息技术(包含编程)列为高考选考科目,与传统理化生科目具有同等地位。可以预见,将会有更多地区响应政策,将编程科目纳入高考[23]。国内已有一批中小学信息技术教师开始反思单纯由信息素养主导的课程,并创造性地开展了Scratch等可视化编程语言教学,在学生创新思维能力的培养上取得了可喜成绩[24]。Scratch编程强调产出,在中小学常被视为一种创客活动。

    培养计算思维不可避免地涉及算法,因此计算机语言成为促进计算思维教育的重要工具[25],其中图形化与模块化的编程语言最受欢迎[26]。对于儿童编程学习者来说,游戏化学习方式成为一条可行路径。游戏化是将游戏设计元素应用于非游戏情境中[27],以达到提高用户参与度、用户黏度和用户忠诚度的目的[28]。游戏化学习就是采用游戏化的方式进行学习,主要包括数字化游戏和游戏活动两类[29]。游戏化编程就是采用游戏化的方式学习编程。最早支持游戏化编程的是诞生于1968年的LOGO语言,后来又相继出现了Scratch、App Inventor、Swift Playgrounds、CodeCombat,以及编程猫等。儿童游戏化编程可分为图形化编程和文本式编程。图形化编程只需拖动和组合相应代码块即能实现创意,以Scratch、App Inventor、编程猫为代表;文本式编程需要学生输入编程代码,更接近真实的编程学习,借助良好的设计和辅助支持,小学生也可以学会,如Swift Playgrounds和CodeCombat。

    四、通过游戏化编程

    提升小学生计算思维能力

    徐志超(Chih-Chao Hsu)等人验证了一款基于在线拼图游戏的学习系统可以显著增强小学生的计算思维能力和问题解决能力,并增强了学生的参与意愿和体验[30]。赛斯洛佩斯(J. M. Sáez-López)等人在西班牙的5所小学进行了两年的Scratch实践教学,证明这一工具在教授编程方面行之有效,通过项目式学习可以提升学生编程的乐趣及动力,使学生掌握一些编程概念和计算实践[31]。也有研究者发现,基于拼图的算法学习有效地提升了学生的计算思维[32]。国内主要基于Scratch和App Inventor,借助信息技术课程、“第二课堂”或结合创客教育开展实践研究,并证明游戏化编程提高了学生的学习兴趣[33]和计算思维能力[34]。

    综合来看,目前对于儿童游戏化编程的研究主要侧重于一些编程工具的应用效果,还缺乏对编程教学法的系统研究。总体上,对于图形化编程工具,教师往往会组织学生开展项目式学习或基于问题的学习,以完成项目或解决问题的方式不断激励学生,从而提升其计算思维能力。对于文本式的编程工具,教师通常引导学生通过自主闯关来习得编程知识,掌握相应技能,游戏的趣味性和沉浸性更好。由于目前国内编程教育刚刚起步,实际教学情境相对复杂,针对不同教学情境采取的教学策略也应有所不同。教师要充分发挥学生的自主性和创造性,重视形成性评价,关注学生计算思维的发展,培养学生合作学习的习惯。

    五、总结与展望

    国内应高度重视基础教育阶段的计算思维教育,以编程语言进课堂为契机探索计算思维的有效培养[35]。在实践中,游戏化编程的教学,可通过嵌入信息技术课程、单独开设兴趣课或与创客教育相结合的方式来实现;在具体编程工具方面,三年级之前宜选用图形化编程,三年级之后可尝试图形化编程为主、文本式编程为辅;在教学理念方面,要突出以学生为主体的思想,充分发挥学生的主动性和创造性;在教学策略方面,可灵活选择基于项目的学习、问题解决式学习等方式;在教学评价方面,应以评价学生作品为主,注重启发学生的思维。此外,在教学过程中还应注意引导学生开展合作式学习,培养学生的合作意识。至于未来的研究,建议重点关注儿童编程教学法以及儿童编程教学效果的评估等,为我国小学生编程教育的发展奠定基础。

    参考文献

    [1]邹佳铭.中兴被制裁,一个中国式错误的后果[EB/OL].[2018-04-19].http://www.fortunechina.com/business/c/2018-04/19/content_305615.htm.

    [2]人民日报.中国将不计成本加大芯片投资[EB/OL].[2018-04-19]. http://www.sohu.com/a/228794803_532789.

    [3]任友群.为数字中国培养“计算思维+”新一代[J].中国信息技术教育,2018(5):7.

    [4]顾明远.人工智能时代,未来教育的变与不变[EB/OL]. [2017-12-28].http://www.sohu.com/a/213322115_498140.

    [5][14]Jeannette J M. Computational Thinking[J].Communications of the ACM,2006,49(3):33-35.

    [6]谢忠新,曹杨璐.中小学信息技术学科学生计算思维培养的策略与方法[J].中国电化教育,2015(11):116-120.

    [7]Anon.Operational Definition of Computational Thinking for k-12Education[DB/OL].[2012-04-15]. http://www.iste.org/ Libraries/PDFs/Operational_Definition_of_Computational_Thinking.sflb.ashx.

    [8]郭守超,周睿,邓常梅,等.基于App Inventor和计算思维的信息技术课堂教学研究[J].中国电化教育,2014(3):91-96.

    [9]中华人民共和国教育部.普通高中信息技术课程标准(2017年版)[M].北京:人民教育出版社,2018.

    [10][11]邓红卫,王樱,魏书堤,等.基于计算思维能力与信息应用能力的程序设计课程教学改革[J].计算机教育,2014(3):65-69.

    [12][13]Filiz K,Yasemin G,Volkan K. A Framework for Computational Thinking Based on a Systematic Research Review[J].Baltic Journal of Modern Computing,2016(3):583-596.

    [15]Durak H Y,Saritepeci M. Analysis of the relation between computational thinking skills and various variables with the structural equation model[J].Computers & Education,2018(116):191-202.

    [16]Ananiadou K,Claro M. 21st Century Skills and Competences for New Millennium Learners in OECD Countries[J].OECD Education Working Papers,2009(41):1-33.

    [17]Voogt J,Fisser P,Good J,et al. Computational thinking in compulsory education:Towards an agenda for research and practice[J].Education and Information Technologies,2015,20(4):715-728.

    [18][26]Grover S,Pea R. Computational Thinking in K-12:A Review of the State of the Field[J].Educational Researcher,2013(1):38-43.

    [19]CSTA and ISTE. Computational Thinking in K-12 Education leadership toolkit[DB/OL].http://csta.acm.org/Curriculum/sub/CurrFiles/471.11 CTLeadershiptToolkit-SP-vF.pdf.

    [20]葉连杰.计算机编程语言的发展与应用[J].信息与电脑(理论版),2014(11):191-192.

    [21]少儿编程网.少儿编程启发新方式,游戏中培养逻辑思维能力[EB/OL].[2017-12-16].http://www.shaoerbianchengwang.com/3119.html.

    [22]中华人民共和国中央人民政府.国务院关于印发新一代人工智能发展规划的通知[EB/OL].[2017-07-20].http://www.gov.cn/zhengce/content/2017-07/20/content_5211996.html.

    [23]思迪姆学院.国务院最新发文:普及中小学阶段人工智能、编程教育[EB/OL].[2017-08-22]. http://jyj.gzlps.gov.cn/jygz/jyky/jyxxh/201708/t20170822_1475630.

    [24]焦建利.可视化编程应用:让儿童快乐地学编程[J].中国信息技术教育,2014(7):16-17.

    [25]Repenning A,Basawapatna A,Escherle N. Computational thinking tools[C]//Blackwell A,Plimmer B,Stapleton G. 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). Cambridge:IEEE,2016:218-222.

    [27]Deterding S,Dixon D,Khaled R,et al. From game design elements to gamefulness:Defining gamification[C]//Deterding S,Dixon D,Khaled R,et al. Proceedings of the 15th international academic MindTrek conference:Envisioning future media environments. New York:ACM,2011:9-15.

    [28]鲍雪莹,赵宇翔.游戏化学习的研究进展及展望[J].电化教育研究,2015,36(8):45-52.

    [29]张金磊,张宝辉.游戏化学习理念在翻转课堂教学中的应用研究[J].远程教育杂志,2013,31(1):73-78.

    [30]Hsu C C,Wang T I. Applying game mechanics and student-generated questions to an online puzzle-based game learning system to promote algorithmic thinking skills[J]. Computers & Education,2018,121(1):73-88.

    [31]Sáez-López J M,Román-González M,Vázquez-Cano E. Visual programming languages integrated across the curriculum in elementary school:A two year case study using “Scratch” in five schools[J]. Computers & Education,2016(97):129-141.

    [32]Choi J,Lee Y,Lee E. Puzzle based algorithm learning for cultivating computational thinking[J]. Wireless Personal Communications,2017,93(1):131-145.

    [33]袁庆.将Scratch引入小学信息技术课堂[J].中国教育信息化,2014(20):85-86.

    [34]章伟.培养计算思维的小学编程校本教材开发与应用——以应用Scratch创作“迷宫大战”为例[J].中小学数字化教学,2018(3):55-57.

    [35]范文翔,张一春,李艺.国内外计算思维研究与发展综述[J].远程教育杂志,2018,36(2):3-17.

    (责任编辑 ?郭向和)