哪类教学支架对提升初中生计算思维更有效?
2024-06-16孙俊梅贺琳马红亮赵明
孙俊梅 贺琳 马红亮 赵明
摘要:如今,编程作为计算思维培养的重要途径已得到广泛应用。其中相较于图形化编程,文本编程需要更高的抽象思维和逻辑思维能力,教师有必要提供教学支架帮助学生设计算法、完成编程任务。虽然目前已有研究发现应用教学支架可以有效发展学生的计算思维,但鲜有研究探讨为学生提供不同类型教学支架对其计算思维发展的影响。为此,文章面向初中生Python编程课程,以136名初一学生为对象,分别应用算法、程序以及有限型支架,开展了一个学期的准实验研究,以探究三种不同类型教学支架在发展初中生计算思维方面的差异。综合量化和质性数据发现:在计算思维技能方面,程序支架的提升效果最为显著,明显优于算法和有限型支架;在计算思维自我效能感方面,算法和程序支架均有显著性提升效果,且学生原有计算思维自我效能感水平越高,提升效果越显著。文章通过研究,旨在为信息科技教师开展计算思维教学实践提供基于证据的学理支持。
关键词:计算思维;Python课程;算法设计;程序开发;教学支架
【中图分类号】G40-057 【文献标识码】A 【论文编号】1009—8097(2024)06—0100—12 【DOI】10.3969/j.issn.1009-8097.2024.06.011
引言
作为21世纪学生的必备核心素养,计算思维(Computational Thinking)现已被广泛纳入发达国家K-12阶段计算机科学课程的培养目标和内容体系中。关于计算思维的概念,目前国际学术界存在两种主流认识:其一认为计算思维与计算机科学和编程紧密相关,其二则强调计算思维是一种普遍存在于问题解决过程中的认知技能[1]。在计算机科学教育领域,多位研究者认为编程是培养计算思维的首选方法[2],因为程序设计过程完整地演示了从提出问题到计算机解决问题的全部步骤,包括抽象、分解、算法、模式识别、迭代和归纳等认知要素[3],这些认知要素常被称为计算思维技能(Computational Thinking Skill),通过编程知识测试题、Bebras测试题和编程作品分析等方式进行评估。然而,一些研究者认为计算思维不仅包含以上认知要素,还涵盖非认知要素[4][5][6]。例如,计算机科学教师协会(Computer Science Teachers Association,CSTA)和国际教育技术协会(International Society for Technology in Education,ISTE)强调计算思维技能离不开倾向或态度等非认知要素的支持[7],其中包括对问题解决、创造力、批判性思维、算法思维和合作沟通等的自信心[8]。此外,也有一些研究者将自我评估形式的计算思维测评视为计算思维自我效能感(Computational Thinking Self-efficacy)[9],并发现编程自我效能感较高的学生更相信自己在完成编程任务时会取得成功[10],同时编程技能的实际表现也会更好。显然,通过培养计算思维技能这一认知要素,有助于学生掌握分析问题的关键要素、抽象复杂情境、灵活设计算法以及有效解决现实问题;而提升计算思维自我效能感这一非认知要素,有益于学生增强编程学习中问题解决、算法思维以及创造力等方面的自信心。
初中阶段是计算思维发展的关键时间节点,此阶段的学生处于图形化编程到文本编程的过渡期,而文本编程相较于图形化编程需要更高的抽象思维和逻辑思维能力。此外,算法设计对于初中生而言更是难点,如何将数据间的关系转化为算法往往制约其编程活动的推进,需要教师提供教学支架帮助学生整理思维、设计算法[11]。教学支架作为学生学习过程中的即时性支持工具,对学生的问题解决和意义建构起到辅助作用,能有效帮助学生基于自身学习水平从实际发展区进阶到潜在发展区,以实现学生认知层面的跨越,协助学生发展高阶思维能力,最终解决学习中遇到的困难和问题[12]。在编程教育领域,已有研究发现应用教学支架可以有效发展学生的计算思维[13][14][15][16]。然而,这些研究大多聚焦于比较提供教学支架和不提供教学支架这两种教学方式在培养计算思维方面的差异,鲜有研究探讨为学生提供不同类型教学支架对其计算思维发展的影响。在此背景下,本研究聚焦计算思维的认知要素和非认知要素,通过准实验方法深入探讨不同类型教学支架在发展初中生计算思维技能和自我效能感上的差异及有效性,从而促进初中生计算思维的发展,并为教师开展计算思维教学实践提供基于证据的学理支持。
一 文献综述
1 中小学计算机课程中计算思维的培养研究
中小学计算机课程中计算思维的培养是一个循序渐进、螺旋上升的过程,初中阶段的培养脉络应与小学阶段进行有效衔接。在计算机课程中,为了培养中小学生的计算思维,美国麻省理工学院(Massachusetts Institute of Technology,MIT)媒体实验室于2012年提出了以图形化编程为核心的计算思维框架[17],倡导从认知和非认知两个层面培养学生的计算思维。该框架包含计算概念、计算实践和计算观念三个维度,其中计算概念指编程活动中的顺序、条件、循环、并行、事件、运算符、数据等基本概念,这些是编程活动的基础;计算实践指处理计算概念、进行编程活动的过程,如编写程序、测试和调试、迭代和应用等;计算观念指在计算实践中形成的对自身、与他人的关系以及周围科技世界的理解和态度。基于MIT的计算思维框架,国际学术界开展了许多相关研究,然而一项关于计算思维的系统性文献综述表明,以往研究更多关注计算概念和计算实践,对计算观念的研究尚存在局限性[18]。
在培养中小学生计算思维的课程建设与实施方面,国内外研究者开发了多样化的课程,包括编程课程、机器人课程、人工智能课程和跨学科课程等。中小学编程课程包含图形化编程和文本编程两大类课程工具载体。在图形化编程工具方面,当前大多数中小学生计算思维的培养研究主要依托图形化编程工具实施,包括Scratch、App Inventor、Alice、Code.org等。例如,Ma等[19]基于Scratch探究了整合计算思维过程的问题解决教学方法对小学生计算思维技能和自我效能感的影响;宁可为等[20]的研究发现,结合App Inventor开展信息技术教学可以明显提升初中生的计算思维能力和学习兴趣。在文本编程工具方面,现阶段则以Python为主。例如,Monsalvez[21]回顾分析了Python编程环境中的教育工具及开放资源,认为可以将Python配置为K-12阶段的一种理想编程语言;Bai等[22]、张学军等[23]、Zitouniatis等[24]分别研究了在Python教学中问题导向学习、数字化游戏方式和基于场景的学习工具对学生计算思维发展的有效性。可见,以往通过计算机课程培养中小学生计算思维的实证研究,更多选择图形化编程工具作为研究载体,较少基于Python工具;且相关研究多聚焦计算思维的认知要素,忽视了计算思维的非认知要素。
2教学支架及其在编程教育中的应用研究
教学支架是教师为学生提供的即时支持,这种支持能够促进学生有意义地参与问题解决并发展技能。教师可以在学生问题解决的不同阶段提供教学支架,如提出问题、思考问题、选择策略、实践操作等阶段。在教学支架的设计和应用中,思路型(Idea)和任务型(Task)教学支架是教师使用的两类主要支架[25],其中思路型教学支架通常将学生自主提出问题解决的思路视为知识建构的核心,强调学生围绕问题解决的思路开展更具灵活性的自主协作与互动,从而发展群体在高阶思维过程中的认知能力[26];任务型教学支架通常强调教师对学习任务进行分解和细化,然后在学生完成具体任务的过程中提供及时指导,强调学生在高结构化的小组活动中完成具体任务[27]。此外,一些研究者还提出了有限型教学支架(Minimal Scaffolding),也称为开放式教学支架,指在教学过程中教师进行最低限度的指导,仅为学生提供基础的引导和帮助以保障学生能够完成项目[28]。
在编程教育领域,大多数研究集中在思路型教学支架的应用方面,且思路型教学支架的设计常常采用流程图、思维导图等思维可视化工具,聚焦于学生的思维加工过程。例如,郁晓华等[29]、Zhang等[30]将流程图引入编程教学作为思路型教学支架,分别探索其对中学生和大学生计算思维的提升效果;Zhao等[31]将自构式思维导图和填充式思维导图作为思路型教学支架引入小学图形化编程教学,研究结果显示填充式思维导图能更好地提高小学生的计算思维技能。杨刚等[32]的研究表明,在编程学习活动中,相较于开放式建模方式,支架式建模方式对于提升学生的计算思维成绩效果更加显著。目前,在编程教育中针对任务型教学支架的实证研究较少,仅王靖等[33]在其研究中设计了问题驱动的编程任务,教师提供关于任务评价与任务障碍的反馈支架,基于此开展了三轮图形化编程活动的设计、实施与评价。可见,已有研究虽然探讨了教学支架在发展学生计算思维方面的有效性,但主要集中于比较教学支架的提供与否,鲜有研究探讨不同类型教学支架对学生计算思维发展的影响,尤其缺乏实证研究来比较任务型和思路型两种教学支架在提升初中生计算思维方面的差异。
基于此,本研究立足于初中生Python编程课程,结合思路型和任务型教学支架分类依据,设计以思路启发为主的算法支架和以编程实践为主的程序支架,同时设置对照组(有限型支架)开展准实验研究,以探究不同类型教学支架在发展初中生计算思维方面的差异情况。具体的研究问题为:①在提升初中生计算思维技能方面,算法支架和程序支架是否存在显著性差异,这两类支架是否显著优于有限型支架?②在提升初中生计算思维自我效能感方面,算法支架和程序支架是否存在显著性差异,这两类支架是否显著优于有限型支架?
二 研究设计
1 研究对象
本研究以成都市某中学七年级三个平行班的学生为研究对象,共计136名。随机设置两个实验班和一个对照班。其中,算法支架班共46名同学(男生17人,女生29人),程序支架班共48名学生(男生22人,女生26人),有限型支架班(对照班)共42名同学(男生24人,女生18人)。绝大多数学生在小学阶段已经学习了图形化编程课程,具备一定的编程基础,且计算思维(技能和自我效能感)前测水平无显著性差异。三个班级均由同一位具有三年Python教学经验的教师进行授课。
2 研究方法
本研究采取前后测非对等控制组准实验设计,具体实验设计如图1所示。其中,在热身阶段,学生认识Python软件界面及其基本操作,熟悉学习活动流程;在实验前测阶段,本研究借助计算思维技能知识测试和计算思维自我效能感量表对学生的计算思维进行评估;在实验阶段,两个实验班开展融合不同类型教学支架的教学活动,对照班则不提供教学支架;在实验后测阶段,本研究利用计算思维技能知识测试、计算思维自我效能感量表和半结构化访谈提纲对学生的计算思维进行评估。整个干预共16个课时,为期16周。
3 课程内容设计
基于MIT计算思维框架[34],本研究团队从成都市中小学Python教材的内容体系出发,结合该校学生的编程基础和课程教师的教学经验,对Python课程的教学内容进行了设计(如表1所示)。课程主题活动由简单到复杂,由单一知识点的学习到多知识点的综合运用。课程教学的实验阶段包含三大课程主题,依次为“基础篇”“进阶篇”“提升篇”,三个主题相互联系,实现学生计算思维技能和计算思维自我效能感的发展。
4 课程活动设计
本研究基于计算思维培养的五环节和支架式教学模式设计两个实验班的学习活动[35][36],具体学习活动流程包含情境创设、任务分析、活动探究、作品评价和总结反思五个阶段,并在活动探究阶段提供不同类型的教学支架(如图2所示):①情境创设。教师根据教学内容创设编程情境,抛出引导性问题。②任务分析。学生明确编程任务和待解决的编程问题后,分解编程任务并组建4人学习小组。③活动探究。该阶段包含算法设计和程序编译两个环节,其中在算法支架班教师重点针对算法分析提供支架,引导学生厘清算法设计思路,如图3(a)所示;在程序支架班教师重点针对程序编写提供支架,提示学生程序编写的步骤,引导学生完成程序开发,如图3(b)所示。④作品评价。学生分享问题解决方案,包括算法分析或程序编写的思路、流程和运行结果,并进行生生互评。⑤总结反思。在教师的组织和引导下,学生对编程学习活动进行总结,并反思自己的程序设计思路及编写流程。有限型支架班(对照班)的学习活动流程也包含上述五个环节,不同的是在活动探究阶段教师既不提供算法支架,也不提供程序支架,主要依靠学生以小组为单位的自主探究,教师会根据学生的困难和提问进行有针对性的答疑,但所提供的教学支架非常有限。
5 研究工具
(1)计算思维技能知识测试
本研究采用编程知识测试题评估初中生的计算思维技能,该知识测试是在青少年人工智能编程水平测试(YCL)Python7~8级的基础上,结合一线教师的教学实践经验和专家决策修订完成的。知识测试满分为100分,涵盖Python基本语法规则、基本数据类型、常用函数、控制逻辑以及编程应用等基本知识,前测和后测均来自同一等级的不同模拟试卷,分别由24道题组成,包括15道单选题、5道多选题和4道编程测验题。其中,单选题选择正确计3分,多选题全部选择正确计3分(少选计2分,多选错选不计分),编程测验题每道计10分。在知识测试量表信度方面,Cronbachs Alpha系数为0.892>0.7,说明知识测试具有一定的稳定性和一致性。
(2)计算思维自我效能感量表
目前,Korkmaz等[37]开发的计算思维量表被广泛应用于中小学生计算思维的测评中,该量表从创造力、算法思维、批判性思维、问题解决和合作学习五个非认知要素评估学生的计算思维自我效能感。本研究对此量表进行本地化修订,形成的量表共包含25道题项,采用李克特5点量表计分,1~5分别代表“非常不赞同”到“非常赞同”。实验前针对未参与实验的初中生进行量表的信效度检验,Cronbachs Alpha系数为0.920>0.7,显示该量表在初中生中具有良好的信度;各题项的标准化载荷系数为0.536~0.872,数值均大于0.5;五个维度的平均方差萃取AVE值为0.521~0.694,数值均大于0.5;五个维度的组成信度CR值为0.736~0.919,数值均大于0.6,这些指标说明此量表的结构效度良好。
(3)半结构化访谈提纲
Kalelioglu等[38]开发的访谈提纲全面覆盖了编程培养计算思维的关键领域,本研究以此访谈提纲为基础,经研究团队和任课教师商议后最终确定了7项开放式问题作为半结构化访谈的提纲,具体问题包括印象最为深刻的编程项目、编程学习中解决困难的方法、项目完成过程中的小组分工、对支架式教学的看法、编程课程的学习收获和意见建议。在访谈对象的选择方面,本研究根据学生计算思维技能和计算思维自我效能感两个维度的后测数据构建散点图,分割形成S1(高CT自我效能感+低CT技能)、S2(高CT自我效能感+高CT技能)、S3(低CT自我效能感+低CT技能)和S4(低CT自我效能感+高CT技能)四个象限,并结合学生所在班级,从每个班级选择4位学生,三个班级共计12位学生参与本次半结构化访谈。
6 数据分析
在量化数据分析方面,为探明算法支架和程序支架对初中生计算思维技能的影响(研究问题①),本研究采用2(时间:前测vs后测)×3(支架类型:算法vs程序vs有限型)的被试内设计,对计算思维技能进行重复测量方差分析。为探明算法支架和程序支架对初中生计算思维自我效能感的影响(研究问题②),考虑到三个班级学生计算思维自我效能感(F=8.211,p=0.000<0.05)(含对照班)的前测(协变量)与不同类型教学支架(自变量)均存在交互作用,不满足回归同质性的协方差分析条件,因此采用Johnson-Neyman方法进行后续数据的统计分析。
在质性数据分析方面,本研究分别依据MIT计算思维框架和计算思维自我效能感量表对访谈文本进行基于预设框架的编码。最初,两名研究人员(第一作者和第二作者)对访谈文本数据中的一些样本单独编码。然后,这两位研究人员一起讨论编码结果,并就编码差异和子主题达成了共识。最后,两人再次对所有访谈文本数据进行单独编码。
三 研究结果
1 不同类型教学支架对初中生计算思维技能的影响
计算思维技能的重复测量方差分析结果显示,时间主效应显著(F=227.733,p=0.000,ηp2=0.631),三个班学生的计算思维技能后测值显著高于前测值;支架类型主效应显著(F=3.971,p=0.021,ηp2=0.056),在不同类型支架的影响下,三个班学生的计算思维技能存在显著性差异;时间和支架类型的交互作用显著(F=6.096,p=0.003,ηp2=0.084)。三个班学生计算思维技能前后测简单效应分析结果如图4所示(其中),在计算思维技能后测值方面,程序支架班显著高于算法支架班(MD=10.18)和有限型支架班(MD=13.17),而算法支架班和有限型支架班没有显著差异。
根据访谈文本分析,本研究发现三个班学生对计算思维的三个类属(概念、实践和观念)均有提及,且大部分学生认为在学习中掌握了编程知识与概念,通过编程实践提升了编程能力,并希望能够继续学习以掌握更多的编程语言和编程技能。在计算思维概念方面,学生在访谈中提及较多的是循环、数据和变量等概念。例如,Sp3(程序支架班)谈到:“要求在棋盘上放麦粒,需要计算每格棋盘的麦粒数和总麦粒数,每个棋盘的麦粒数是前一个棋盘的2倍,而且每次都是翻倍增加,这需要一个计数的变量,最后得到64个格子,就用了while循环。”在计算思维实践方面,学生谈论较多的是问题解决过程,即能够通过逐步地尝试修正语句、反复实践、与同伴讨论交流、寻求老师的帮助,最终实现编程效果。例如,Sa2(算法支架班)说:“(我)一般会尝试用不同的方法去解决,或是对程序一一进行检查。”Sp4(程序支架班)说:“在程序出现问题时,我会逐行检查代码的语法错误,或重新厘清思路,最终将程序修改正确。”在计算思维观念方面,学生普遍认为自己有信心编写程序,并在出错状态下进行不断的探索,同时也很乐意和别人分享自己的作品、思路及程序编写经验。例如,Sp3(程序支架班)觉得:“我会向同桌以及小组成员分享自己创作的作品,把我的想法告诉他们会有一种特别的成就感,就是迫不及待地想让自己的同伴看看自己的成果。”
2 不同类型教学支架对初中生计算思维自我效能感的影响
本研究对三个班的计算思维自我效能感进行配对样本T检验,结果显示算法支架(t=4.882**,p=0.000<0.05)和程序支架(t=2.617*,p=0.012<0.05)均能显著提升学生的计算思维自我效能感,但有限型支架未能显著提升学生的计算思维自我效能感(t=0.319,p=0.752>0.05)。计算思维自我效能感前测数据的单因素方差分析结果显示,三个不同教学支架班级学生的计算思维自我效能感前测不存在显著差异(F=0.190,p=0.827>0.05)。Johnson-Neyman的分析结果显示,在提升学生计算思维自我效能感方面,算法支架班与有限型支架班(F=16.50,p=0.001<0.05)、程序支架班与有限型支架班(F=13.86,p=0.004<0.05)之间存在显著差异,算法支架班与程序支架班(F=1.377,p=0.244>0.05)之间不存在显著差异。如图5(a)所示,算法支架班与有限型支架班在自我效能感评分中的显著点分别为76.27和91.44,即当学生的前测值<76.27(占9.09%)时,有限型支架对其计算思维自我效能感的提升效果显著优于算法支架;当前测值>91.44(占50.00%)时,算法支架显著高于有限型支架的作用效果;当前测值介于两者之间(占40.91%)时,两个班级之间不存在显著差异。这说明,计算思维自我效能感前测水平越高,算法支架对学生计算思维自我效能感的提升越显著。如图5(b)所示,程序支架班和有限型支架班在计算思维自我效能感评分中的显著点分别为75.76和94.51,即当学生的前测值<75.76(占8.89%)时,有限型支架对其计算思维自我效能感的提升效果显著优于程序支架;当学生的前测值>94.51(占42.22%)时,程序支架的作用效果最为显著;当前测值处于两者之间(占48.89%)时,两类教学支架的作用效果不存在显著差异。这说明,计算思维自我效能感前测水平越高,程序支架对学生计算思维自我效能感的提升越显著。
根据访谈文本分析,在计算思维自我效能感的创造力维度,算法支架班级表现较为积极,学生会根据老师提供的支架进行思维扩散,尝试新的解题思路和方法。例如,学生Sa2(算法支架班)提到:“我可以把想象的画面通过编程构造出来,在通过Python编程绘制图形的时候,我画了一个红彤彤的太阳,占了一大半画布,和其他同学画得都不一样,我觉得这样比较温馨。”在算法思维维度,两个实验班的大部分学生认为能够通过算法思路的引导和程序编写的过程性指导,获得较高的成就感与满意度,从而提升学习文本编程语言的乐趣。例如,Sp2(程序支架班)提到“写程序的过程和列方程特别像,首先要读懂题干的意思,看需要完成哪些任务,最后一步一步地完成它。要是遇到问题,就倒推着一点点解决。”在批判性思维维度,多数学生提及“最优解”“最简洁的方式”等关键词。例如,Sp1(程序支架班)提到:“我觉得完成任务的方式有很多种,有时候会考虑用其他的结构会不会更简单,如调整一下顺序、改变一下结构,可能写出来的程序会比较简洁。”在问题解决维度,两个实验班的学生普遍认为自己能解决问题并有明确的解题思路,即会根据问题进行分解,然后逐步实施规划,最终完成任务。例如,Sa1(算法支架班)认为:“要解决一个问题,首先应对其进行分析,把问题分解之后,再去想如何去做。”在合作学习维度,两个实验班的大部分学生认为自己喜欢与同伴合作,同时也能够很好地开展合作。例如,Sp4(程序支架班)提到:“我喜欢和同伴一起完成任务,我们会针对任务发表自己的意见,如果意见不同,那么分析谁的意见达到的效果会更好,就按谁的想法做。”
四 讨论与分析
本研究在Python课程中应用了算法、程序以及有限型三类教学支架培养初中生的计算思维,经过一个学期的教学实验,综合量化和质性数据发现:①在提升初中生计算思维技能方面,程序支架的提升效果最为显著,显著优于算法支架和有限型支架。②在提升初中生计算思维自我效能感方面,算法支架和程序支架均能显著提升初中生的计算思维自我效能感,但有限型支架未能显著提升初中生的计算思维自我效能感;初中生原有的计算思维自我效能感水平越高,算法和程序支架对初中生计算思维自我效能感的提升越显著。
1 在提升初中生计算思维技能方面,程序支架显著优于算法支架和有限型支架
程序支架以编程任务为导向,按照程序语句的构建步骤为初中生提供支持。开发程序时,学生根据教师提供的支架分析程序语句、补充完善自己的程序结构和程序语句;调试程序时,学生可以进一步分析教师提供的残缺程序和程序注释,进而修正自己的错误,教师也可以直接提供及时的指导。本研究中,程序支架对初中生计算思维技能的提升远优于其他两类支架,学生计算思维知识测试成绩的进步最为显著,这进一步支持了程序支架对学生的计算思维概念、编程实践具有显著效果的研究结论。其原因可能在于,面对复杂的编程问题,如果将其作为一个整体来寻找解决方案,学生可能会产生畏惧心理,但如果按照功能要素将其分解为易于操作的问题,将使编程问题解决的流程更简单[39]。相较于其他两类支架,程序支架在提供残缺程序的同时提供了程序注释,将一个复杂的编程任务拆分成了几个易于理解的小任务,这为学生提供了明确的编程任务和编程语句支持,学生可以根据教师提供的编程任务提示深度加工编程知识和概念,借助这些提示对编程过程中出现的问题进行校对,并在反复操作和试错的过程中积累程序编写的经验[40],以此不断强化对编程语言的理解,加深对计算概念和计算实践的掌握。
算法支架以流程图构建为核心,可以在学习过程中为学生提供编程思维脉络,引导学生发散思维,构建自己的算法分析过程。本研究中,学生可以根据教师提供的残缺流程图设计算法,围绕所设计的算法编写相应的程序。结果表明,算法支架提升了初中生的计算思维技能,这支持了已有关于流程图教学支架能够促进学生计算思维发展的研究[41][42]。本研究还发现,算法支架对初中生计算思维技能的提升并未与有限型教学支架表现出显著性差异,出现这种结果的原因可能在于本研究中的算法支架未能根据任务的复杂度以及学生认知水平的发展进行阶梯式、递进式的设计,这给部分学生造成了认知负荷[43],从而影响了其计算思维技能的发展。
2 在提升初中生计算思维自我效能感方面,算法支架和程序支架效果一致
在编程教育中,自我效能感是个人对自己完成某项编程任务时所具有的信念,是影响编程学习成功的重要因素。当学生有更强的自我效能感时,他们对自己完成编程任务的能力就会有更大的信心,更有可能着手并坚持工作直至其完成[44]。本研究发现,算法支架和程序支架均能显著提升初中生的计算思维自我效能感,但有限型支架对初中生计算思维自我效能感的提升不显著。其原因可能在于,编程学习是一项复杂度较高的非良构问题。在算法支架班,学生通过流程图填空能清晰地勾勒出编程问题的关键点,以更好地按照流程图表达算法过程,从而利用算法解决编程问题,这对提高学生完成编程任务的信念有极大帮助。在程序支架班,学生可以对比教师提供的残缺程序反思自己的解决方法,找出自己程序中的问题,在纠错的过程中取得的成功会极大地增强学生的自信心。本研究还发现,初中生的计算思维自我效能感原有水平越高,算法支架和程序支架对学生计算思维自我效能感的提升越显著。究其原因可能在于,计算思维自我效能感原有水平越高的学生,其编程学习意愿越强烈[45],在编程和调试过程中的表现越积极,编程技能就会掌握得越好,反过来其自我效能感提高得也就越显著,但这一解释尚需进一步验证。
本研究的启示在于,信息科技教师在开展面向计算思维培养的初中生Python课堂教学实践中,可依据任务的复杂程度和学生的认知水平,灵活应用算法支架或程序支架,甚至将两者有效结合,发挥各自优势,使学生先通过流程图明晰算法过程,再通过程序注释分解编程任务并在残缺程序的提示下进行程序编译,最终提高学生的计算概念、计算实践和计算观念,促进其计算思维的发展。然而,本研究还存在一定的局限性,如并未探索三类教学支架所带来的延迟学习效果,以及初中生将三类支架迁移应用到新情境解决新问题的能力。因此,未来研究可以增加延迟后测,在验证自变量带来长期效果的同时,使实验结论更具应用价值。
参考文献
[1]Tang X, Yin Y, Lin Q, et al. Assessing computational thinking: A systematic review of empirical studies[J]. Computers & Education, 2020,148:103798.
[2]Hsu T C, Chang S C, Hung Y T. How to learn and how to teach computational thinking: Suggestions based on a review of the literature[J]. Computers & Education, 2018,126:296-310.
[3]Shute V J, Sun C, Asbell-clarke J. Demystifying computational thinking[J]. Educational Research Review, 2017,22:142-158.
[4][7]CSTA, ISTE. Operational definition of computational thinking for K-12 education[OL].
[5][8][37]Korkmaz ?, ?akir R, ?zden M Y. A validity and reliability study of the computational thinking scales (CTS)[J]. Computers in Human Behavior, 2017,72:558-569.
[9]Atman Uslu N. How do computational thinking self-efficacy and performance differ according to secondary school students profiles? The role of computational identity, academic resilience, and gender[J]. Education and Information Technologies, 2023,(5):6115-6139.
[10]Kong S C, Chiu M M, Lai M. A study of primary school students interest, collaboration attitude, and programming empowerment in computational thinking education[J].Computers & Education, 2018,127:178-189.
[11]宿庆,张文兰,王海,等.面向高中生计算思维培养的信息技术课程项目式学习研究[J].电化教育研究,2022,(8):109-115、122.
[12]何克抗.教学支架的含义、类型、设计及其在教学中的应用——美国《教育传播与技术研究手册(第四版)》让我们深受启发的亮点之一[J].中国电化教育,2017,(4):1-9.
[13][29][41]郁晓华,王美玲.流程图支持下的计算思维培养实践研究[J].中国远程教育,2019,(9):83-91.
[14][30][42]Zhang J H, Meng B, Zou L C, et al. Progressive flowchart development scaffolding to improve university students computational thinking and programming self-efficacy[J]. Interactive Learning Environments, 2023,(6):3792-3809.
[15][31]Zhao L, Liu X, Wang C, et al. Effect of different mind mapping approaches on primary school students computational thinking skills during visual programming learning[J]. Computers & Education, 2022,181:104445.
[16][32]杨刚,张银荣,徐佳艳,等.图形化编程环境下建模方式对学生计算思维与编程行为的影响研究[J].电化教育研究,2022,(4):107-115.
[17][34]Brennan K, Resnick M. New frameworks for studying and assessing the development of computational thinking[OL].
[18]Tikva C, Tambouris E. Mapping computational thinking through programming in k-12 education: A conceptual model based on a systematic literature review[J]. Computers & Education, 2021,162:104083.
[19]Ma H, Zhao M, Wang H, et al. Promoting pupils computational thinking skills and self-efficacy: A problem-solving instructional approach[J]. Educational Technology Research and Development, 2021,(3):1599-1616.
[20]宁可为,杨晓霞.基于App Inventor的初中计算思维培养实证研究[J].课程·教材·教法,2018,(2):110-115.
[21]Garcia Monsalvez J C. Python as first textual programming language in secondary education[J]. Education in the Knowledge Society, 2017,(2):147-162.
[22]Bai H, Wang X, Zhao L. Effects of the problem-oriented learning model on middle school students computational thinking skills in a python course[J]. Frontiers in Psychology, 2021,12:771221.
[23]张学军,岳彦龙,梁屿藩.Python课程中数字化游戏教学培养高中生计算思维的实证研究[J].电化教育研究,2021,(7):91-98.
[24]Zitouniatis A, Lazarinis F, Kanellopoulos D. Teaching computational thinking using scenario-based learning tools[J]. Education and Information Technologies, 2023,(4):4017-4040.
[25]Hong H Y, Lin P Y. Elementary students enhancing their understanding of energy saving through idea centered collaborative knowledge building scaffolds and activities[J]. Educational Technology Research and Development, 2019,67:63-83.
[26][27]Ouyang F, Chen Z, Cheng M, et al. Exploring the effect of three scaffoldings on the collaborative problem-solving processes in Chinas higher education[J]. International Journal of Educational Technology in Higher Education, 2021,18:1-22.
[28]Kirschner P A, Sweller J, Clark R E. Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching[J]. Educational Psychologist, 2006,(2):75-86.
[33]王靖,马志强,刘亚琴,等.面向计算思维的可视化编程活动设计与应用[J].现代教育技术,2022,(9):55-63.
[35]Selby C, Woollard J. Computational thinking: the developing definition[OL].
[36]何克抗,林君芬,张文兰.教学系统设计[M].北京:高等教育出版社,2006:91-92.
[38]Kalelioglu F, Gülbahar Y. The effects of teaching programming via scratch on problem solving skills: A discussion from learners perspective[J]. Informatics in Education, 2014,(1):33-50.
[39]多召军,刘岩松,任永功.编程教育促进儿童计算思维发展的内在机理与教学实践研究[J].电化教育研究,2022,(8):101-108.
[40]Molenaar I, Van-boxtel C A M, Sleegers P J C. The effects of scaffolding metacognitive activities in small groups [J]. Computers in Human Behavior, 2020,(6):1727-1738.
[43]Stewart T M, Macintyre W R, Galea V J, et al. Enhancing problem-based learning designs with a single e-learning scaffolding tool: Two case studies using challenge FRAP[J]. Interactive Learning Environments, 2007,(1):77-91.
[44]Kong S C, Chiu M M, Lai M. A study of primary school students interest, collaboration attitude, and programming empowerment in computational thinking education[J]. Computers & Education, 2018,127:178-189.
[45]梁云真,高思圆,刘瑞星,等.小学生编程学习意愿影响因素的链式中介作用机制研究[J].现代远距离教育,2021,(6):29-37.
What Kind of Teaching Scaffoldings is more Effective in Promoting Secondary Students Computational Thinking
——Based on the Comparison of Algorithm Scaffolding, Program Scaffolding, Minimal Scaffolding
SUNJun-Mei1 HE Lin2 MAHong-Liang1[Corresponding Author] ZHAO Ming3
(1. School of Educational,Shaanxi Normal University, Xian, Shaanxi, China 710062; 2. Shenzhen Cuiyuan Experimental School, Shenzhen, Guangdong, China 518000; 3. Chengdu NO.49 Middle School, Chengdu, Sichuan, China 610057)
Abstract:At present, programming, as an important way to cultivate computational thinking (CT) has been widely used. Compared with graphic programming, text programming requires higher abstract thinking and logical thinking ability, so it is necessary for teachers to provide teaching scaffolding to help students design algorithms and complete programming tasks. Although existing studies have found that the application of teaching scaffolding can effectively develop students CT, few studies have explored the effects of providing different types of teaching scaffoldings for students on their CT development. Therefore, based on the Python programming course for junior high school students, this paper took 136 junior high school students as objects and carried out a quasi-experimental study for one semester by applying algorithm, program and minimal scaffolds, respectively, to explore the differences of three different types of teaching scaffoldings in the development of junior high school students CT. The quantitative and qualitative data showed that in term of CT skill, the promotion effect of program scaffolding was most significant, which was significantly better than the algorithm and minimal scaffolding. As to the aspect of CT self-efficacy, both algorithm and program scaffoldings had significant improvement effects, and the higher the level of students original CT self-efficacy, the more significant the improvement effect. Through the research, this paper was expected to provide evidence-based theoretical support for information technology teachers to carry out CT teaching practice.
Keywords:computational thinking; Python course; algorithm design; program development; teaching scaffolding
作者简介:孙俊梅,在读博士,研究方向为信息科技教育、人工智能教育,邮箱为154382880@qq.com。
编辑:小时