多召军 刘岩松 任永功
[摘 要] 编程教育是培养儿童计算思维的主要方式,分析儿童编程促进计算思维发展的内在机理,有助于更加高效、精准地开展儿童编程教育。文章将编程问题解决活动作为计算思维的载体,分析了问题探索、问题表征、方案生成、计划执行、反思评价五个问题解决活动与分解思维、抽象思维、程序化思维、迭代思维、概括评估思维五种计算思维之间的联系;构建了分阶段、结构化设计儿童编程学习活动的框架,以及支持结构化表征、程序化表征、图形化表征的技术环境,以小学信息技术课程“算法与程序设计模块”为例开展实证研究。研究结果显示:学生计算思维水平显著提升,且分解思维、抽象思维、程序化思维与迭代思维的提升具有相关性,说明基于问题解决过程模型结构化设计编程学习活动与技术环境,能够促进儿童计算思维要素同步发展。
[关键词] 计算思维; 儿童编程; 问题解决; 学习活动; 技术环境
[中图分类号] G434 [文献标志码] A
[作者简介] 多召军(1988—),男,内蒙古阿拉善人。讲师,博士研究生,主要从事儿童编程教育、在线个性化学习研究。E-mail:476790465@qq.com。任永功为通讯作者,E-mail:ygren@lnnu.com。
一、引 言
计算思维(Computational Thinking,CT)起源于20世纪80年代,当时派珀特试图提倡和推动儿童学习编程。2006年,Wing将CT定义为“利用计算机科学的基本概念,解决问题、设计系统和理解人类行为”的过程,认为是信息化社会人人必备的重要能力之一[1]。可见,CT自诞生以来始终与编程教育密切联系在一起,编程教育也被认为是培养计算思维的主要方式。计算思维培养导向的编程教学仍处在探索阶段,存在培养内容不够全面、编程工具使用效果参差不齐等问题[2-3]。图形化编程是小学乃至学前儿童阶段编程教育开展的主要形式,可以把程序设计思想通过拼接代码块加以实现[4],进行直观操作,降低编程的难度。然而,如果程序设计的整个过程都依赖于图形化编程工具,学生则倾向试错式的程序编写[5],容易忽视问题分解、模式识别、算法设计等计算思维的参与。因此,本研究从学生思维参与的视角,将编程问题解决活动作为计算思维的载体,分析编程过程与计算思维发展的关系,进一步结构化设计编程学习活动与支持环境,旨在实现计算思维要素同步发展。
二、内在机理:编程问题解决活动对
CT核心要素的承载关系
(一)编程问题解决过程模型
编程问题属于设计类的问题,是一类源于现实生活场景、复杂度较高的非良构问题。基于认知心理学构建的劣构问题解决框架得到广为引用,例如:Sinnott提出,劣构问题解决过程包括建构问题空间、选择和生成解决方案及监控阶段[6];Jonassen提出,劣构问题解决模型包括阐明问题空间及情境限制,识别和厘清各种可选择的观点及立场,生成可能的问题解决方案,通过建构论点和个人信念评价各种方案的有效性,监控问题空间和各种解决方案选项,实施与监控解决方法及调整解决方法[7];OECD(2013)问题解决框架涉及探索与理解、表征与系统化阐述、计划与执行、控制与反思四个过程。基于上述观点,本研究认为,编程问题解决是一个动态的过程,以生成完善的计算机程序为目的,个体需要在与问题情境交互的过程中,探索与理解对象(角色)的相关信息与事件,表征各对象(角色)的状态及相互之间的关系,生成可能的编程方案,制定计划,编写程序,迭代优化,直到形成完善的、可执行的计算机程序,最后对问题解决过程进行总结与评价。问题解决过程包含问题探索、问题表征、方案生成、计划执行、反思评价等认知活动。
(二)CT核心要素
国内外学者从不同的角度阐述计算思维所涵盖的内容,例如:Barr与Stephenson的模型在不同的学科背景下呈现了CT的能力,包含抽象、问题分解、算法与程序化、测试與验证[8];Brennan与Resnick的框架包括抽象与模块化、计算概念(对应于Scratch编程块)、测试与调试等[9];Selby描述了CT的思维过程,包括算法思维、评估、分解、抽象、概括这五个核心要素[10];在Selby 等人的研究基础上,傅骞等人从抽象思维、分解思维、算法思维、评估思维和泛化思维五个层面进行研究[11];朱珂等人结合STEM教育的教学过程,将计算思维能力分为分解能力、概括能力、算法思维、评估能力以及抽象化五个要素[12]; Shute等人开发了可用于CT能力评估的模型,涉及抽象(数据收集与分析、模式识别、模型化)、分解、算法(算法设计、类比、效率、自动化)、调试、概括及迭代[13]。综上所述,计算思维模型或框架的定义主要包括两个方面:一是描述思维过程,二是描述构成计算思维能力的要素。从思维过程出发,计算思维是问题逻辑分析、问题分解、给出详细的解决方案、设计相应的算法进行实施以及反思与优化的思维过程,涉及分解思维、抽象思维、程序化思维、迭代思维及概括评估思维五个核心要素。分解思维是按照问题的功能要素把复杂问题分解为易操作问题的思维过程;抽象思维是从问题情境中推理分析解决问题关键信息以及用结构化逻辑表示信息的思维过程;程序化思维是按有序的步骤去解决问题的思维过程;迭代思维是一种不断用变量的旧值递推新值的思维过程;概括评估思维是总结与评价问题的解决办法,并扩展给定问题中的现有解决方案以覆盖更多的问题。
(三)编程问题解决活动对CT核心要素的承载关系
综上所述,编程问题解决过程包含问题探索、问题表征、方案生成、计划执行、反思评价五个环节。从思维过程的视角解释计算思维,包括分解思维、抽象思维、程序化思维、迭代思维与概括评估思维五个核心要素,进而建立编程问题解决活动对CT核心要素的承载关系模型,如图1所示。
1. 问题探索与分解思维
面对复杂的编程问题,如果将其作为一个整体而寻找解决方案时,学生可能会产生畏惧心理;如果能够按照功能要素、角色或其他逻辑将其分解为易于操作的问题,这将使得编程问题解决的流程更简单。当学生通过实践工作形成自己的问题时,学习将变得更有意义[14]。因此,问题探索的目的在于学生与问题情境交互的过程中,运用分解思维寻找问题拆分的逻辑,将客观世界的问题转化为学生能够理解的问题;运用已掌握的知识与经验,发现自己能够解决的问题或通过努力能够解决的问题。
2. 问题表征与抽象思维
在明确可能解决问题的基础上,需要继续从问题情境中获取与每个问题相关的所有信息,提取或补充与这些问题相关的领域知识,形成问题空间中所有信息的语义网络。其中,构建语义网络需要识别信息结构背后的模式与规则,用模型表示各要素的关系与运作过程。可以发现,问题表征活动与Shute等人提出的抽象思维三要素相吻合,即数据收集与分析、模式识别及模型化[13]。
3. 方案生成与程序化思维
编程问题解决方案中明确定义的问题解决步骤是学生自主开发的一组指令或规则,不论是人还是计算机,只要准确执行,就会得出问题答案。因此,问题解决方案是学生程序化思维的体现,问题解决方案的形成过程能够促进学生程序化思维的发展。
4. 计划执行与迭代思维
计划执行活动是以问题解决方案为依据,设计与开发程序原型;测试程序,明确程序的错误与漏洞;优化程序,根据反馈结果返回原型进行修改。这是一个不断迭代与持续优化的过程,学生运用迭代思维反复测试与优化原型,直至达到理想状态。
5. 反思评价与概括评估思维
反思评价活动是对问题解决结果和过程的自我反思、评价与归因,是对编程问题解决方法与策略的概括与总结,并能够将其迁移应用到更广泛的问题解决中。因此,反思与评价活动促进了概括评估思维的应用与发展。
三、框架设计:“五环节”编程学习活动
设计模型
问题解决取向的计算思维培养侧重于“做”,但并不是盲目地“做”,学习者要对习得的方法进行抽象化并迁移到新情境中加以应用、 创造,需要主动的思维参与才能实现[15]。本研究基于编程问题解决活动对CT核心要素的承载关系,从问题探索、问题表征、方案生成、计划执行、反思评价五个环节,分段梳理儿童编程学习活动的目标,制定适合的编程学习活动策略,构建儿童编程学习活动结构化设计模型,如图2所示,旨在引导学习者主动的思维参与。
(一)“五环节”编程学习活动目标分析
问题探索环节的编程学习活动目标是学生在与情境交互的过程中识别编程要素或角色,明确针对每个角色的编程问题;问题表征环节需要学生围绕每个要素广泛收集数据,抽象出各要素状态变化的模式;方案生成环节是学生建立问题解决思路,形成可能的问题解决方案,通过循证与分析,确定最终的问题解决方案;计划执行环节旨在设计与开发程序原型,测试、评价及迭代优化原型程序;反思评价环节是对编程问题解决过程的反思与归因。
(二)“五环节”编程学习活动设计策略
基于皮亚杰的儿童认识发展心理学,游戏化学习与认知冲突教学法是支持编程学习活动设计的重要策略,游戏化学习能够激发学生对编程的兴趣与动机,进而激励行动、促进学习和解决问题[16];认知冲突是学生持续编程的动力源泉,基于“情境创设—诱发认知冲突—产生新平衡”的策略,能够推动学生完成编程任务。以下从“五环节”分别阐述编程学习活动设计策略。
1. 问题探索环节的编程学习活动设计策略
“分而治之”是解决复杂问题最有效的方法,在学生与问题情境的交互过程中,可通过角色扮演等游戏化活动,激励学生探索与理解编程要素或角色,据此将问题分解和转化为多个易于操作的子问题。在问题情境创设时,基于最近发展区理论,尽可能诱发学生产生已有知识经验与问题情境之间的不平衡状态,激发学生进行有效的问题分解与转化。
2. 问题表征环节的編程学习活动设计策略
小组协作头脑风暴法是促进问题表征的重要策略,在可视化技术的支持下,对各个问题的语义关系网络进行自由发散的讨论,进行结构化的归纳与整理。策划头脑风暴活动时,需要进一步诱发学生的认知冲突,进而抽象出有创意的模式。
3. 方案生成环节的编程学习活动策略
算法与自动化是该环节编程学习活动设计应关注的焦点。流程图或决策树是用来表示自动化决策过程的一种方式,既可以用来可视化机器使用算法时可能采取的步骤,也可以使决策的结果更容易理解。因此,该环节应充分使用流程图、决策树等可视化技术,设计“学生扮演机器,流程图填空、拼接、连线”等活动,引导学生形成有效解决当前问题的算法,深入理解机器执行算法的过程。同时,成功的方案能够消解学生的认知冲突,提升学生开发程序原型的信心。
4. 计划执行环节的编程学习活动策略
计划执行是重复反馈的过程,对于检查错误、调试程序、迭代算法等一系列操作,学生会有抵触心理,一次改变一个变量的策略(Vary-One-Thing-At-At-Time,VOTAT)可以帮助学生逐步思考与检测程序的合理性,逐个击破程序异常与漏洞,将模糊的问题清晰化。Greiff等人通过分析PISA(2012)测试过程中产生的计算机日志数据发现,VOTAT策略应用情况与问题解决绩效之间呈强显著关系[17]。因此,该环节应围绕VOTAT理念和“结对编程”的协作学习策略设计编程学习活动。
5. 反思评价环节的编程学习活动策略
交流、共享、组内评价、组间评价是促进学生反思的有效方法。准备作品分享的过程是学生对编程问题解决过程与结果进行总结、概括的过程;与他人交流、评价他人作品的过程,也会激励学生反思自己开发的程序以及编程过程中遇到的问题与解决方法。
四、环境支持:“三种表征”支持技术框架
问题探索与问题表征环节需要结构化表示问题信息,方案生成环节需要按照执行顺序流程化表示问题信息,计划执行与反思评价环节需要基于图形要素系统化表示问题信息。三种表征方式差异较大,可能出現两次思维跳跃,且前两次的不充分表征可能导致不完善的编程结果。因此,本研究提出融合思维可视化工具与图形化编程工具的编程学习环境,如图3所示,包括结构化表征支持工具、流程化表征支持工具及图形化编程工具,一方面使隐性的思维过程与思维结果显性化,另一方面增加学生程序设计过程的连续性。
(一)结构化表征支持工具
编程问题探索与编程问题表征环节需要探索问题情境中的所有相关信息,梳理问题信息之间的关系,当缺少必要的支持时,学生提取的问题信息可能是片面的、零散的,只能从事表面工作。在编程学习中借助思维可视化工具,可以将分散的知识进行系统化的处理,帮助学生厘清元素之间的关系;也可以将比较复杂的编程任务细化分解,用结构化的逻辑从整体到部分分层思考[18-19]。例如:思维导图作为思维可视化工具实现了学习者所学知识之间的连接,促进了有意义学习的发生[20];括号图可以把问题从多个方面进行合理拆分,对每一种拆分方式给出合理的解释[21]。
(二)流程化表征支持工具
流程图等流程化表征工具作为“思维发声”支架,聚焦于学习者的思维加工过程和方法习得[22],使学生明确程序的执行过程,能够有效助力程序化思维发展。此外,学生在问题分解、要素信息分析的基础上,借助流程图设计解决编程问题的一系列步骤,将问题解决的过程进行可视化表达,降低对编程语言的关注度,有助于学生理解程序的实现过程。
(三)图形化编程工具
借助图形化编程工具的编程是学生依据问题情境,凝练问题信息,并转化为图形化要素表示的信息[5]。相较于文本编程语言晦涩的语法与关键字拼写,图形化编程工具可以有效降低复杂代码编写所带来的认知难度,使学生将注意力集中于问题解决本身,更有助于提升学生的计算思维能力,以及更容易完成复杂的创意作品[11]。
五、实证研究:以小学信息技术课程
“算法与程序设计模块”为例
(一)教学设计
1. 基本情况
本研究以沈阳市某小学五年级的30名学生为教学对象,以信息技术课程中的“算法与程序设计模块”为教学内容开展为期五周的准实验研究。基于五年级学生思维发展特征和教学内容特征,设计了四个连续的协作学习任务。其中,第四个“奇妙的海底世界”为综合性的学习任务,需要学生对Scratch多个模块的命令按照实际需求综合应用,下文将对该任务的学习活动进行详细阐述。
2. 结构化编程学习活动设计
本案例设计了“情境观察、信息探索”“分解问题、厘清思路”“明确流程、生成方案”“程序设计、迭代优化”及“归纳总结、交流分享”五个活动。采用不插电编程与图形化编程相融合的方式,前三个活动在纸质任务单的支持下开展不插电编程,后两个活动基于Scratch工具与纸质任务单相结合的方式,主要学习活动见表1。
(二)数据收集与分析
1. 数据收集
本研究通过计算思维量表与学习任务单相结合的方式采集数据。计算思维量表参照Korkmaz 等人的CTS量表设计,包括抽象思维、分解思维、程序化思维、迭代思维、概括和评估思维等5个维度,共24个题项,每个题项采用1~5点(非常不符合到非常符合)计分。前测、后测两次各发放30份量表,有效量表各回收30份,两次共回收60份,回收率为100%,前测与后测的总体内部一致性信度Cronbach's α 为0. 859。
通过学习任务单数据分析学生在问题探索、问题表征、方案生成、计划执行、反思评价环节的表现。本次实验共完成四个任务的作品创作,每个任务回收各个小组在四个环节的四份学习任务单。
2. 实验数据分析
(1)计算思维前后测结果分析
采用GraphPad Prism对实验前测与后测的计算思维调查数据进行配对样本t检验,分析结果如图4(a)所示,分解思维、抽象思维、程序化思维、迭代思维及概括评估思维的后测水平均值高于前侧,而且前测与后测数据出现了较强的显著性差异。通过前后测结果连接图4(b)可以发现,几乎每个学生的分解思维、抽象思维与程序化思维能力都有所提升,表明在三种表征技术支持下,基于问题解决过程模型结构化设计编程学习活动,对儿童计算思维发展产生了积极的影响;有超过一半的学生的概括评估思维能力有明显提升,有部分学生几乎没有变化,结合教学实际情况来看,小组作品分享活动中并非全员参与,有效参与分享活动能够促进学生概括评估自身的问题解决过程。
(2)计算思维五要素的相关性分析
计算思维后测与前测结果之间的差值表示经过五周编程学习之后思维水平上的变化。因此,本研究对计算思维五要素前后测的差值作相关性分析,以判断哪些要素是协同提升的。通过Kolmogorov-Smirnov检测发现,计算思维五要素中分解思维、程序化思维与迭代思维呈非正态分布,故采用Spearman相关性分析方法进行分析,分析结果见表2,分解思维与抽象思维之间的相关性(r=0.467**)、分解思维与程序化思维之间的相关性(r=0.568**)、抽象思维与程序化思维之间的相关性(r=0.419*)、抽象思维与迭代思维之间的相关性(r=0.446*)为中等正相关;分解思维与迭代思维之间的相关性(r=0.633**)、程序化思维与迭代思维之间的相关性(r=0.845**)为强正相关;概括评估思维与其他思维要素之间没有显著的相关关系。结果表明,基于问题解决过程模型设计儿童编程学习活动,能够促进分解思维、抽象思维、程序化思维与迭代思维的同步发展。
(3)问题解决行为数据分析
①问题探索与问题表征环节,从完整性、逻辑性、发散性以及创新性四个方面评价问题信息表征结果。经过前两周的训练,完整性方面,学生都能较完整地分析要素和功能;逻辑性方面,后两次任务信息表示的层次性有明显提高;发散性方面,思维导图分支数量逐渐增多,开始从不同角度分析问题;创新性方面,仍然鲜有独特和创新的想法。总体来看,在可视化表征技术支架的支持下,大部分学生能够从问题情境中抽象出“角色”的关键特征,识别角色的多种模式,实现问题的转化,说明该环节的编程学习活动设计积极地影响了学生分解思维与抽象思维发展。
②方案生成环节,根据任务的复杂度与学生的认知水平发展,四次学习任务分别以“简单”连线、“复杂”连线及填写与粘贴卡片等多样化的形式设计流程图。循序渐进的过程中,大部分学生能较好地使用流程图,明确自动化执行步骤的算法。说明流程图工具支持的问题解决方案生成活动促进了学生程序化思维发展。
③计划执行环节,遇到程序错误与漏洞时,由第一个任务的不知所措、立即寻求帮助,逐渐变成有部分学生开始自主调试程序,在“可视化修改记录支架”辅助下,对程序模块进行逐一检查与修改,说明学生开始逐渐形成应用VOTAT策略迭代与调试程序的思维与技能。
六、总结与展望
(一)结论与讨论
从三个方面对实践研究的数据分析结果进行总结与讨论。
1. 结构化设计编程学习活动能够促进儿童计算思维持续参与及协同发展
数据结果表明,学生的计算思维水平在五周的编程学习之后有了显著的提升,而且分解思维、抽象思维、程序化思维与迭代思维的提升之间具有一定的相关性,说明从思维参与的视角分五个环节结构化设计编程学习活动,融合三类表征技术构建可视化编程环境,能够促进儿童分解思维、抽象思维、程序化思维、迭代思维在编程中的持续参与,进而推动计算思维各要素的协同发展。其中,分解思维与迭代思维为强正相关关系,说明当学生能够将复杂问题分解为多个易于操作的子问题时,也能够有效应用VOTAT策略对程序进行不断的优化与完善;程序化思维与迭代思维为强正相关关系,说明不断优化与完善程序的迭代过程,能够促进学生深入理解机器执行算法的过程。
2. 编程学习活动不应止步于完成作品,有效的编程过程总结与评价更重要
计算思维作为一种广泛性思维,并不局限于计算机编程学习,更需要将其应用于其他学科学习、问题解决及生活实践之中[23]。学习者自我總结与评价活动应该贯穿于问题解决的各个环节,通过启发性问题,引导学习者对编程问题解决过程进行反思、评价与归因[24],是问题解决方案、策略与思维实现广泛迁移的前提。数据分析结果表明,有效参与分享活动能够促进学生概括评估自身的问题解决过程。然而,本次实验中有部分学生的概括评估思维并没有明显变化,而且概括评估思维与分解思维、抽象思维、程序化思维、迭代思维没有显著的相关性。如何将反思评价活动贯穿于整个编程问题解决过程中尤为重要,在未来的研究中需要进一步优化设计。
3. 结构化设计编程学习活动,能够激发学生发挥最大的潜能
分阶段、结构化设计编程学习活动与可视化表征支持技术环境,并非限制学生自由创造,而是通过系列活动引导学生发挥最大的潜能,引导学生开展有意义的编程学习活动。结构化并非僵化,随着学生认知的发展,应综合运用多通道策略、多表征策略、支架策略设计每个环节的编程学习活动[25];同时,可视化表征技术环境作为学习支架,应根据实际情况适时撤下,避免影响学生的发散思维与创造力。
(二)未来展望
我国儿童编程教育实践仍处于初步探索阶段,目标导向的编程教学活动设计研究具有重要的意义。计算思维是青少年发展的核心素养,从思维过程视角解释计算思维,与设计类问题解决过程有着密切的联系。通过理论与实践研究,本文分析、建立了编程问题解决过程与计算思维之间的映射关系,在未来的研究中可以通过对问题解决活动行为数据的建模与分析,进而测评学生的思维参与状态及思维模式,为计算思维参与状态测评提供新视角,这是对目前基于量表与编程作品评价形式的扩展。
[参考文献]
[1] WING J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] 高宏钰,李玉顺,代帅,蒋云宵.编程教育如何更好地促进早期儿童计算思维发展——基于国际实证研究的系统述评[J].电化教育研究,2021,42(11):121-128.
[3] 李阳.计算思维导向的跨学科儿童编程教育模式研究——基于芬兰儿童编程教育的经验与启示[J].现代教育技术,2020,30(6):19-25.
[4] 郭守超,周睿,邓常梅,等.基于App Inventor和计算思维的信息技术课堂教学研究[J].中国电化教育,2014(3):91-96.
[5] 孙立会,周丹华.基于Scratch的儿童编程教育教学模式的设计与构建——以小学科学为例[J].电化教育研究,2020,41(6):75-82.
[6] SINNOTT J D. A Model for solution of Ill-structured problems: Implications for everyday and abstract problem solving[M]//SINNOTT J D. Everyday problem solving: theory and applications. New York: Praeger Publishers, 1989:72-99.
[7] JONASSEN D H. Instructional design models for well-structured and Ill-structured problem-solving learning outcomes[J]. Educational technology research and development, 1997, 45(1): 65-94.
[8] BARR V, STEPHENSON C. Bringing computational thinking to K-12: what is involved and what is the role of the computer science education community?[J]. ACM Inroads, 2011, 2(1): 48-54.
[9] BRENNAN K, RESNICK M. New frameworks for studying and assessing the development of computational thinking[C]//Proceedings of the 2012 Annual Meeting of the American Educational Research Association. Vancouver: AERA, 2012: 1-25.
[10] SELBY C, WOOLLARD J. Computational thinking: the developing definition[C]//Proceedings of the 18th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education. Canterbury: ACM, 2013: 1-6.
[11] 傅騫,解博超,郑娅峰.基于图形化工具的编程教学促进初中生计算思维发展的实证研究[J].电化教育研究,2019,40(4):122-128.
[12] 朱珂,贾鑫欣.STEM视野下计算思维能力的发展策略研究[J].现代教育技术,2018,28(12):115-121.
[13] SHUTE V J, SUN C, ASBELL-CLARKE J. Demystifying computational thinking[J]. Educational research review, 2017, 22: 142-158.
[14] FRIESEN S, SCOTT D. Inquiry-based learning: a review of the research literature[J]. Alberta ministry of education, 2013, 32: 1-32.
[15] 石晋阳, 陈刚. 论儿童编程学习中反思性思维的发生[J].电化教育研究,2021,42(2):93-98.
[16] 于颖,陈文文,于兴华. STEM游戏化学习活动设计框架[J].开放教育研究,2021,27(1):94-105.
[17] GREIFF S, WUSTENBERG S, AVVISATI F. Computer-generated log-file analyses as a window into students' minds? A showcase study based on the pisa 2012 assessment of problem solving[J]. Computers & education, 2015, 91: 92-105.
[18] 王佑镁,宛平,南希烜,等. 实体编程促进计算思维发展:工具与策略[J].中国电化教育,2021(8): 92-98.
[19] 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.
[20] 赵国庆,熊雅雯,王晓玲.思维发展型课堂的概念、要素与设计[J].中国电化教育,2018(7):7-15.
[21] 赵国庆,杨宣洋,熊雅雯.论思维可视化工具教学应用的原则和着力点[J].电化教育研究,2019,40(9):59-66,82.
[22] 郁晓华,王美玲.流程图支持下的计算思维培养实践研究[J]. 中国远程教育, 2019(9): 83-91.
[23] 孙立会,王晓倩.计算思维培养阶段划分与教授策略探讨——基于皮亚杰认知发展阶段论[J].中国电化教育,2020(3):32-41.
[24] 任永功,林禹竹,多召军.面向深度学习的项目式编程学习优化设计与实践[J].现代远距离教育,2020(1):46-53.
[25] 杨刚,张银荣,徐佳艳,等.图形化编程环境下建模方式对学生计算思维与编程行为的影响研究[J].电化教育研究,2022,43(4):107-115.
Research on Internal Mechanism and Teaching Practice of Programming
Education for Development of Children's Computational Thinking
DUO Zhaojun, LIU Yansong, REN Yonggong
(School of Computer and Information Technology, Liaoning Normal University, Dalian Liaoning 116081)
[Abstract] Programming education is the main way to cultivate children's computational thinking. Programming education for children can be carried out more efficiently and accurately by analyzing the internal mechanism of children's programming promoting the development of computational thinking. This paper takes programming problem-solving activities as the carrier of computational thinking, and analyzes the relationship between five problem-solving activities, namely problem exploration, problem representation, scheme generation, plan execution, reflection and evaluation, and five types of computational thinking, namely, decomposition thinking, abstract thinking, procedural thinking, iterative thinking, and generalized evaluation thinking. This paper constructs a framework for designing children's programming learning activities in a structured manner, as well as a technical environment to support structured, procedural and graphical representation. The empirical research is carried out by taking
"Algorithm and Programming module" of primary school information technology course as an example. The results show that the level of students' computational thinking has been significantly improved, and the improvement of decomposition thinking, abstract thinking, procedural thinking and iterative thinking are correlated, indicating that structured design programming learning activities and technical environment based on problem-solving process model can promote the simultaneous development of children's computational thinking elements.
[Keywords] Computational Thinking; Children's Programming; Problem Solving; Programming Education; Learning Activities; Technical Environment
基金項目:2021年辽宁省社会科学基金项目“常态化疫情防控下数据驱动大学生学业焦虑测量与诊断研究”(项目编号:L21CSH006);2020年辽宁省教育厅科研项目 “基于大数据的问题解决思维可视化表征研究”(项目编号:W201783653)