孙立会
“非计算机化”儿童编程教育教学模式的构建与应用
孙立会
(中央民族大学 教育学院,北京 100081)
目前,虽然人工智能时代编程教育的重要性愈发凸显,但编程教育多将重心放在训练儿童的编码操作技能,忽视了编程思维培养的重要意义,进而偏离了儿童编程教育的本真之意,而探索创生多元化的编程教学方式以发展儿童编程思维才是儿童编程教育的价值所在。基于此,文章首先从编程发展历史和教学现实的角度出发,提出“非计算机化”儿童编程教育理念,并对其概念内涵与教育价值展开论述;然后文章以建造主义为理论视角并以活动理论作为实践承接,结合具身化、游戏化、叙事化和协作化的活动实践原则,构建了“非计算机化”儿童编程教育教学模式;最后文章通过详细介绍教学设计示例,并辅以教学应用效果,说明了“非计算机化”儿童编程教育促进儿童计算思维发展的有效性,以期为儿童编程教育的相关理论与实践研究提供参考。
非计算机化;儿童编程;教学模式;实践应用
自2014年以来,世界各国中小学计算机教育改革就纷纷将编程课程提前至小学一年级甚至学前阶段,儿童编程教育随之逐渐成为人工智能时代变革教学方式的重要载体,针对其涌现了大量的理论与实践研究成果。但目前这些研究成果多倾向于在技术环境中训练儿童的编码技能,对编程作为一种学习方式影响儿童思维发展的作用重视不足,导致儿童编程教育的本意逐渐偏离。而“儿童编程教育之父”西蒙·派珀特认为,编程是一种让儿童以程序运行的思维方式来创造性解决实际问题的教育形式,无论儿童是否身处于计算机学习环境之中,儿童编程教育都应当侧重对儿童思维能力的训练[1]。因此,为重申儿童编程教育的本真之意,彰显其对儿童认知发展和思维迁移的影响,探索开展“非计算机化”形式的儿童编程教育十分必要。基于此,本研究首先通过对编程历史的溯源分析,论证“非计算机化”儿童编程教育的理念内涵和教育价值,然后构建“非计算机化”儿童编程教育教学模式,并通过具体的教学设计示例,佐以教学应用效果验证该模式对促进儿童计算思维发展的有效性,以期丰富与深化儿童编程教育的理论与实践研究。
“非计算机化”儿童编程教育是依托计算机平台的编程教育形式的延伸与补充,其理念内涵意在强调编程教育应超越编程技能训练本身,彰显编程“赋能”儿童认知迁移发展的教育本质,并落实“编程式思维”养成的教育目标。因此,从编程教育本质的追本溯源历程中“萃取”“非计算机化”儿童编程教育理念内涵,可以丰富儿童编程教育的理论根基。
编程与计算机之间的关系并非是相互依存、不可分割的,编程也可以独立于计算机来得以实现。从“编程”活动的发展历史来看,人类生产劳动中的逻辑计算活动远早于现代计算机的诞生。研究发现,早在公元前2500年美索不达米亚人在泥板上记录食物分配时开始,人类便已开始了计算活动[2];结绳记事、珠算口诀等更是被视为最早的体系化算法[3]。现代计算机诞生之前,“Computer”一词指代的是从事计算航海表和行星位置等的“计算员”。可见,现代计算机的诞生或许只是编程历史时间线上的转折点但绝非是起点,运用逻辑和算法以解决现实问题的“编程”活动无处不在,这为“非计算机化”儿童编程教育理念的出现奠定了基础。
文本、图形化编程与教育机器人作为当前几种主流的儿童编程学习形式和实践载体,其运行机制均基于计算机平台[4],而“非计算机化”的编程形式“摆脱”了计算虚拟环境,能够使儿童在脱离技术环境的前提下开展编程活动。如有形编程(Tangible Programming)以积木块和插卡机器人为载体,以运动按钮和指令卡片为驱动,使有形实体完成特定的动作任务;不插电(Unplugged)编程活动通过游戏、魔术等简约化的程序原则帮助儿童学习编程概念,从而深化对其思维能力的培养[5];纸笔编程(Paper and Pen Programming)以纸笔和特殊符号等方式将特定逻辑问题转换为程序语言的逻辑表示,以培养儿童更加深层抽象的思维能力[6]。多元的编程工具和实践载体催生了“非计算机化”编程活动,并使其有效实施成为可能。
虽然计算机化工具在当今世界中发挥了重要作用,但若突出体现围绕人类活动的计算核心,深刻理解编程概念与思想,还需设计“非计算机化”的编程教学活动[7]。正如艾伦·佩利所言,应教会学生将计算机理解为解决问题的通用工具,而非解决问题的特定工具[8]。基于此,本研究提出“非计算机化”儿童编程教育的内涵:“非计算机化”儿童编程教育是一种培养儿童以计算机运行的思维方式解决实际问题能力的课程与活动,具体表现为当儿童面对真实世界的问题时,通过迁移体会程序运行的过程原理,厘清思路、方法与手段,并规划好步骤,逐步完成任务,从而在此过程中发展其自身的思维技能,进而产生认知的增值效应。
“非计算机化”儿童编程教育之于儿童编程教育而言具有其独特的意义。因此,针对“非计算机化”儿童编程教育价值的探讨是深化学者对其理念内涵理解与认同的关键环节。“非计算机化”儿童编程教育在促进计算机教育资源公平、做好计算机编程学习衔接、提升儿童计算思维能力等方面彰显了其特有的教育价值。
计算机教育资源分布不均的问题始终横亘在我国基础教育公平现实议题面前,已成为短时间内很难逾越的“数字鸿沟”:一方面,编程教育仍主要集中于城市地区的个别学校,尚未得到规模化推广;另一方面,技术设备的预算和支持不足是推进编程教育实施的主要障碍。而“非计算机化”的编程形式不依托工具本身,这使其成为助推编程教育公平实现的可能途径。如Wohl等[9]发现,学生通过不插电编程学习活动能够更有效地加深对计算机科学基本概念的理解,并指出这一形式对于农村地区推广编程教育具有重大意义。“非计算机化”儿童编程教育综合考量了资金投入、教师能力以及班级教学的多维要素,对于大范围普及编程教育具有重要价值。
“非计算机化”编程形式对于衔接计算机化编程学习方面具有重要意义。有研究证明,“非计算机化”形式在儿童正式学习编程软件前具有认知“铺垫”与“衔接”的作用,比如Grover等[10]在儿童参与Scratch编程之前设计了一套非编程(Non-programming)式课程,干预结果说明非编程活动加深了学生在之后Scratch编程学习中对程序概念的理解并促进了其对运算符功能块的正确使用。可见,“非计算机化”编程形式可以作为衔接计算机化编程学习的技术“接口”。
诸多实践证明,编程教育是提升儿童计算思维能力的有效方法,“非计算机化”编程形式回应了计算思维教育发展的核心关切。1980年,派珀特首次提出了“计算思维”一词。2006年,周以真重新定义计算思维,使通过编程培养计算思维的研究热潮由此开启。更有研究者提倡应以非编程或不插电的形式来讲授计算思维概念,并将计算思维整合到教师的教材与教学活动之中[11]。“非计算机化”编程形式通过交互影响、触觉感知和游戏化体验,使儿童参与到故事和隐喻的情境中去,这为其计算思维的培养提供了一方沃土。
教学模式是助推“非计算机化”儿童编程教育由理念内涵走向应用实践的枢纽环节。“非计算机化”儿童编程教育脱离了计算机环境的支持,通过提炼计算原理以设计并组织教学活动,以此培养儿童的思维技能。而这一过程的实现有赖于标准化且规范化的教学模式的确立,通过夯实“非计算机化”儿童编程教育教学模式的理论基础,确立其实践原则,并对其理论模型和教学流程进行具体的解读,可以构建教学模式来指导“非计算机化”儿童编程教育教学活动的开展。
(1)理论视角:建造主义
建造主义是派珀特提出的“创造性建构式”学习思想的精髓,其强调儿童通过具体的媒介转化大脑中的思维,并通过设计与制作来获得认知的迁移发展[12]。建造主义与“非计算机化”儿童编程教育的本质具有相通性,其主要体现在:①思维实在化。建造主义的学习环境要求为儿童提供承载其思考活动的心智模型,而“非计算机化”儿童编程活动通过提供具体可感的实物,为儿童创建其“思考的对象”。②方式具体化。建造主义主张更加具体的学习方式,“非计算机化”编程教育同样使儿童可以在动手制作和创造中将抽象思维过程具体化。③主体个性化。建造主义关注个体在制作中学习的过程,而“非计算机化”编程也主张通过趣味横生的游戏化活动激发儿童积极情感,促进其自我导向型的学习。因此,建造主义为“非计算机化”儿童编程教育教学模式的设计提供了理论视角。
(2)理论框架:活动理论
“非计算机化”儿童编程教育的本质并非单纯以教学材料代替计算机,而是以组织逻辑性的教学活动代替虚拟交互的计算环境。因此,对具体活动要素的功能分解和安排是组织“非计算机化”编程活动的关键。活动理论系统考量了活动中主体、客体、工具、共同体、规则与劳动分工各要素间的多重诉求[13],为“非计算机化”编程活动提供了进一步实施的理论框架。在“非计算机化”编程活动中,师生(主体)之间利用日常学习生活中简易可得的材料(工具)来组织逻辑性活动(规则)并结成学习社区(共同体),通过成员之间的协作交流和分享评价(劳动分工)来学习基本的计算思维概念(客体),最终使儿童认知思维能力得以发展。
①主体。基于计算终端设备的编程教学形式使师生分别在各自的虚拟时空中进行对话交流,从而增加了两者之间的疏离感,而这一弊端之于儿童更为明显。“非计算机化”编程形式避免了计算机编程教育中师生之间互动的空间转换,明确了师生交互的双主体地位。如教师可以通过猜谜、魔术、邀请上台演示等形式与儿童展开互动,从而使两者之间建立更加紧密的连接,由此凸显了教学过程中师生的主体性地位。
②客体。客体即主体所追求的物质或精神产品。“非计算机化”编程活动中的客体即活动中所蕴含的计算机概念原理以及包括课程、教材和教学任务等在内的综合体。活动中的客体兼具聚焦性和专业性特征,是区分活动特质的标志。例如,教师以条件、循环、排序、事件等概念为核心,结合相应的学科知识内容来设计“非计算机化”编程教学活动。
③工具。工具是人类思维能力和问题解决能力发展的载体。教学和学习者可以根据自身发展需要对工具进行改造、重构以至于内化,体现工具的历史积累效应[14]。“非计算机化”编程活动提倡儿童将思考过程投射于纸笔、卡片等具体实物之上,以助力自身计算思维技能的发展。
④共同体。共同体是一个集合概念,包含了活动系统中的所有参与人员以及交互关系。在“非计算机化”编程活动中,师生、生生能够在自由开放的活动中通过交流互动以加强连接并促进对问题本身的思考,由此形成学习和实践的共同体。
⑤规则。规则是规范主体和共同体的行为准则,作为主体与工具之间以及共同体内部成员之间的中介以调节各要素之间的相互关系。“非计算机化”编程活动的规则体现在程序概念下的逻辑活动,其中以算法逻辑为程序原则,以教学逻辑为教育准绳并以活动逻辑为组织制度。
⑥劳动分工。劳动分工同样在共同体和客体之间起着中介作用。“非计算机化”编程活动中学习内容、活动形式以及能力结构等因素存在差异,因此设计组织者应明确:突出教师在活动中的“引导者”和“支持者”地位,凸显儿童作为“探索者”与“建构者”的学习特征,同时体现活动本身作为“支撑者”和“推动者”的作用,以促进教师、儿童与活动之间的相互协调与共同发展。
实践原则是指导活动开展的指南和标准。基于建造主义理论视角的指导,并结合活动理论框架特征,可以确立“非计算机化”儿童编程教育教学模式在活动设计、活动情境、活动过程和活动空间方面的实践原则。
(1)具身参与、体验感知的活动设计
儿童无法掌握过于抽象的算法程序,而其行为可以作为理解和发展抽象思维的介导,因此“非计算机化”儿童编程教育教学设计应凸显儿童在具身参与和体验感知中发展自身抽象性思维的优势。例如,相关研究活动以认知发展阶段论和全身反应法(Total Physical Response,TPR)为理论框架设计了以身体动作为主的方向游戏和井字游戏,即由儿童扮演机器人,遵照教师的口头指令进行位置移动[15],研究结果证实了该教学方法能够加深儿童对程序指令的理解。
(2)游戏驱动、主动建构的活动情境
游戏创设了“非计算机化”编程教学的活动情境。游戏作为一种有意识的文化实践活动,可以驱动儿童自由探索,使其在制作和设计中主动建构自身的想象力和创造力[16]。它不仅使儿童在情感和行为上得到满足,更象征性地再现了儿童经历过而尚未同化的现实经验。但同时,游戏作为一种儿童将现实按照自我需求的转化活动,需要教学者提供合适的材料支持[17]。
(3)摆脱技术、叙述故事的活动过程
“非计算机化”编程教学摆脱了技术环境的“束缚”,以叙述故事的方式贯穿整个活动过程。通过故事理解世界是儿童学习的“天性”,将教学内容逻辑渗透在故事情节之中,能够增强儿童对学习内容的认知及情感互动。因此,“非计算机化”编程教学活动需要教师能够正确架构计算概念与教学活动之间的联系,率先在教学层面形成故事化教学的模式和步骤。
(4)交流协作、问题解决的活动空间
“非计算机化”儿童编程教育更加倡导创设同伴之间通过交流协作共同解决问题的活动空间。例如,塔夫茨大学的研究者设计了一套适合于幼儿园儿童的CAL-KIBO课程,儿童通过对积木块进行排序来设计机器人的执行动作,之后将作品放在“技术圈”分享交流,以及时与同伴沟通讨论不同方案的优缺点,并调整和优化作品设计[18]。
(1)理论模型的确立
在“非计算机化”编程教学中,逻辑活动代替了计算虚拟情境。因此,“活动”才是其“灵魂”所在。建造主义对“思维实在化、方式具体化、主体个性化”编程活动方式的理解为本研究提供了探索“非计算机化”编程教育价值的“理论视角”,而这一视角的落地需要一种“理论框架”的承接。活动理论将教学活动要素分解为主体、客体、工具、规则、劳动分工和共同体六部分,通过赋能系统中各教学要素,架起了教育理念与教学实践的桥梁。以此为基础,本研究进一步确立“非计算机化”编程教学的实践原则,从而为教学活动设计提供指南和标准,并据此构建了“非计算机化”儿童编程教育教学理论模型图,如图1所示。该模型图体现了建造主义、活动理论和实践原则三者由内而外、由抽象到具体的理论关系。
图1 “非计算机化”儿童编程教育教学理论模型图
(2)教学流程的确立
教学流程是教学模式过程化的具体体现。“非计算机化”儿童编程教育从活动的设计、情境、空间和过程维度切入,通过设计教学实施主体、教学目标客体、活动工具的具体行为,并结合活动规则、共同体以及劳动分工的特征,以展示“非计算机化”儿童编程教育教学流程,如图2所示。
①计算概念选定。“非计算机化”编程活动需要教师首先将程序原理“外显化”,然后选定某一计算思维概念并通过讲授使儿童理解该活动原理。如教师以循环、条件、序列、结构化等程序原理为逻辑,将其与可能的现实问题相联系,以此设计并组织相应的教学活动。
图2 “非计算机化”儿童编程教育教学流程
②游戏情境创设。教师通过搭建游戏化的活动背景,营造活动氛围以调动儿童的兴趣,提高其学习动机,并基于对问题情境的分析设计不同形式的小游戏“抛出”教学要点。但也应注意:游戏目标要清晰明确,紧密服务于计算思维概念内容;游戏的组织应当具有规则性,以保证活动的有序开展;同时也应关注游戏开展的适时性,结合传统教学优势并把握好游戏化教学的节点是发挥最大教学成效的关键。
③故事引领切入。“非计算机化”编程活动的组织需要“故事化”内容的填充,这要求教师将教学“嵌入”到故事背景之中,以叙事的逻辑来结构化教学流程,以此激发儿童的学习兴趣并调动其情感投入。其中,对于低年段的儿童群体,可以采用童话故事和影视动画中的情节进行引入;而对于高年段的学生群体,可以通过家庭、学校和社会中发生的时事与热点问题等进行引入。
④项目协作构建。项目协作构建环节是“非计算机化”编程活动的主体环节。儿童与同伴、教师作为独立的责任主体,协同自身知识与技能储备,为共同的学习目标而努力。通过明确某一项目主题,师生需要利用有限的材料和工具构想设计方案并以具身化的方式参与其中,通过不断提出可行的方法、观点和流程,并与同伴开展协作交流,经过多次迭代试误不断改进完善方案,最终完成项目作品。
⑤同伴分享交流。“非计算机化”编程活动中的同伴关系不仅表现在主体之间的相互影响,同时也是主体间的情感碰撞与联结。而同伴的作用不仅是交流沟通,同样也体现在对彼此作品的评价反馈过程中。在项目作品完成后,同伴间互相交流探讨学习经验,按照评价标准完成自评和互评,以突破自身认知壁垒,不断优化自身认知结构。
⑥思维评价迁移。思维评价迁移环节是“非计算机化”编程教育目标的落实与教学价值的升华阶段。“非计算机化”儿童编程教育的价值所在即程序原理的逻辑性对学习者认知迁移有重要影响,教师应指导儿童不断反思编程原理,并联系实际情境以指导问题的解决。
“非计算机化”儿童编程教育教学模式的实现,有赖于对具体教学活动的设计和应用效果的检验。接下来,本研究将通过实践示例详细介绍如何设计并开展“非计算机化”编程教学活动,并结合教学应用效果说明其对提升儿童计算思维技能的有效性。
表1 “方格纸编程”活动设计
本研究选取研究团队前期设计并开展的为期八周的“非计算机化”儿童编程教育教学活动中的“方格纸编程”一课为例加以详细介绍。“方格纸编程”选自Code.org离线课程部分,旨在帮助学生认识算法作为一项任务的指令逻辑顺序,但仅通过学生与纸笔的静态互动难以支撑起一节完整课程且难以调动儿童学习的热情,因此需要遵循“非计算机化”儿童编程教育教学模式设计改进其活动过程。“方格纸编程”的活动设计如表1所示,具体过程为:①明确序列、迭代和调试概念的训练目标。教师需向学生讲解概念原理,帮助学生与具体问题相联系。②建立现实空间的棋盘网格矩阵,创设游戏化的学习情境,使学生熟悉游戏情境并与计算概念相联系。③引入“营救柯南”的故事背景,通过结构性叙事讲述行动目的,调动学生的积极性。④活动的主体部分以三种类型的游戏形式展开,一是单人游戏,要求学生在A4网格纸中设计程序指令;二是双人游戏,此时回归现实场景,一人读取“程序”语言,一人则在网格矩阵中移动以执行指令;三是多人游戏,小组成员通过掷骰子获得使用指令卡片的次数,学生需要在有限的卡片使用次数中调试卡片的顺序和数量以最快达到营救“柯南”的目的。⑤小组成员之间在活动中需要密切沟通以明确方案,并且活动结束后就路径设计提出改进意见;⑥在教师的引导下实现计算概念的生活化迁移。
通过对Z市某学校93名学生为期八周的“非计算机化”编程干预和结果分析发现:实施“非计算机化”编程教学干预的两个实验组被试的计算思维水平(实验组1:N=29,M=70.76,SD=18.95;实验组2:N=33,M=70.21,SD=19.77)均显著高于空白对照组(N=31,M=60.03,SD=20.59)[19]。这说明“非计算机化”儿童编程教育教学干预能有效促进儿童计算思维的发展。
“非计算机化”儿童编程教育理念的提出是对儿童编程教育价值的深刻追问和深度反思,其在落实儿童“编程思维式”学习形式、深化儿童编程教育本质理解方面具有巨大潜力。但不可否认,教师在“非计算机化”编程内容主题的选定、教学设计和教学组织方面还存在诸多不足,未来应有针对性地加强“非计算机化”儿童编程教育理念与教学培训,同时探索构建系统连贯的“非计算机化”儿童编程课程体系,逐步夯实并推进我国儿童编程教学在学校的必修化进程。
[1]Papert S. Mindstorms: Children, computers, and powerful ideas[M]. New York: Basic Books, 1980:150.
[2](美)彼得J丹宁,克雷格H马特尔著.罗英伟,高良才,张伟,等译.伟大的计算原理[M].北京:机械工业出版社,2017:56.
[3](法)吉尔·多维克著.劳佳译.计算进化史——改变数学的命运[M].北京:人民邮电出版社,2017:67.
[4]孙立会,王晓倩.儿童编程教育实施的解读、比较与展望[J].现代教育技术,2021,(3):111-118.
[5]Bell T, Witten I H, Felloes M. Computer science unplugged off-line activities and games for all ages[OL].
[6]Kim B, Kim T, Kim J. Paper-and-Pencil programming strategy toward computational thinking for non-majors: Design your solution[J]. Journal of Educational Computing Research, 2013,(4):437-459.
[7]孙立会.聚焦思维素养的儿童编程教育:概念、理路与目标[J].中国电化教育,2019,(7):22-30.
[8]Bers M. Teaching computational thinking and coding to young children[M]. Pennsylvania: IGI Global, 2021:145.
[9]Wohl B, Porter B, Clinch S. Teaching computer science to 5-7 year-olds: An initial study with Scratch, Cubelets and unplugged computing[OL].
[10]Grover S, Jackiw N, Lundh P. Concepts before coding: Non-programming interactives to advance learning of introductory programming concepts in middle school[J]. Computer Science Education, 2019,(2-3):106-135.
[11]Ballard E D, Haroldson R. Analysis of computational thinking in children’s literature for K-6 students: Literature as a non-programming unplugged resource[J]. Journal of Educational Computing Research, 2022,(8):1487-1516.
[12]孙立会,周丹华.儿童编程教育溯源与未来路向——人工智能教育先驱派珀特的“齿轮”与“小精灵”[J].现代教育技术,2019,(10):12-19.
[13]Engeström Y. Learning by expanding: An activity-theoretical approach to developmental research[M]. New York: Cambridge University Press, 2015:134.
[14]屠明将,刘义兵,吴南中.基于VR的分布式教学:理论模型与实现策略[J].电化教育研究,2021,(1):93-99.
[15]Saxenal A, Lo C K, Hew K F, et al. Designing unplugged and plugged activities to cultivate computational thinking: An exploratory study in early childhood education[J]. Asia Pacific Education Review, 2020,(1):55-66.
[16](美)乔 L 佛罗斯特,苏C 沃瑟姆,斯图尔特·赖费尔著.唐晓娟,张胤,史明洁译.游戏与儿童发展[M].北京:机械工业出版社,2019:1-10.
[17](瑞士)让·皮亚杰著.杜一雄,钱心婷译.教育科学与儿童心理学[M].北京:教育科学出版社,2018:3-15.
[18]Relkin E, De Ruiter L E, Bers M U. Learning to code and the acquisition of computational thinking by young children[J]. Computers & Education, 2021,169:104222.
[19]Sun L, Hu L, Zhou D. Improving 7th-graders’ computational thinking skills through unplugged programming activities: A study on the influence of multiple factors[J]. Thinking Skills and Creativity, 2021,42:100926.
The Construction and Application of Teaching Mode of “Non-computerized” Children Programming Education
SUN Li-hui
At present, although the importance of programming education in the era of artificial intelligence has become increasingly prominent, programming education focuses on training children’s coding skills and ignores the importance of training programming thinking cultivation, which deviates from the true meaning of children’s programming education. However, exploring and creating diversified programming teaching methods to develop children’s programming thinking is the value of children’s programming education. Based on this, the paper first put forward the concept of “non-computerized” children’s programming education from the perspectives of programming development history and teaching reality, and discussed its concept connotation and educational purport. Then, taking constructivism as the theoretical perspective and activity theory as the practice undertaking, combining with the practical principles of embodied, game-based, narrative and collaborative activities, this paper constructed the “non-computerized” children’s programming education and teaching mode. Finally, the effectiveness of “non-computerized” children’s programming education to promote the development of children’s computing thinking was verified by detailed introduction of teaching design examples and supplemented by teaching application effects, in order to provide reference for the relevant theoretical and practical research of children’s programming education.
non-computerized; child programming; teaching mode; practical application
G40-057
A
1009—8097(2023)02—0052—09
10.3969/j.issn.1009-8097.2023.02.006
孙立会,副教授,博士,研究方向为儿童编程教育,邮箱为sunlh777@163.com。
2022年8月17日
编辑:小时