朱丹丹
计算思维具有多种学科属性,如数学、科学、工程,不同学者从不同学科领域出发对计算思维进行了多种概念界定,虽然目前还没有统一的定义,但其重要性日益显现。编程教育作为计算思维培养的有效途径已成为广泛共识。然而,目前小学编程课堂存在“教师预设解题路径”的问题,主要表现为教师详尽剖析解题路径,容易给学生一种错觉——编程就是按照教师的既定步骤完成任务,并不需要自己深入思考和探究,这对学生计算思维的发展会起到一定的阻碍作用。因此,本研究旨在构建一个能够摆脱教师预设解题路径的小学编程课程教学模式,并探讨其有效性,期望为我国小学生计算思维的培养提供一种新思路。
● 指向计算思维培养的小学编程课程教学新思考
传统的PBL教学模式注重项目分解,即将复杂的问题拆解成简单的、可解决的小问题。通常教师会预先创设复杂情境,在授课过程中,教师会将任务目标分解成一个个小单元,并提供问题解决的思路和方法。在此过程中,学生只需要紧跟老师的操作步骤,就可以完成预期的效果,学生在课堂的主要任务不是探究和思考,而是机械性地复制教师既定的、统一化的解题路径。
在本研究中,笔者提出了新思考,项目的设计从最简单、最小单元出发,一开始并不创设复杂的问题情境,只是简要概述最终效果。例如,在“龟兔赛跑”中,只告知学生“乌龟”获胜是最终效果,而中间的过程、角色、情节都是空白。整个项目的填充、情节完善都由学生完成,教师的主要任务是帮助学生将想法变成现实。这意味着,项目任务的完成从教师拆解转变为学生叠加,需要学生更多思维参与,学习不是完成预设的问题解决路径,而是自主构建的过程,教师能够更好地关注学生项目完成过程中思维的培养。
● 指向计算思维培养的小学编程课程教学模式构建
笔者以闫寒冰教授的项目式教学七步法为原型,结合“项目问题从分解转向叠加,鼓励学生思考”的新思考,重新修订了项目教学七步法的内容,包括设计项目、(问题叠加)、制订计划、探究协作、制作作品、(问题叠加)、汇报演示、总结评价,两个“问题叠加”中间的步骤表示完成项目的内循环过程。具体教学过程如下图所示。
该模式主要围绕项目的丰富和完善,通过问题分析、算法实现、测试评估环节,使得学生计算思维的发展在与可视化编程工具的交互中得以表达和呈现;教师提供问题支架,学生丰富问题情境,既解决了难度与学生差异的适配性问题,又防止了学生的思维惰性,进而促进学生计算思维的发展。在具体实施过程中需要注意师生的教学行为。
1.设计项目,创设情境
教师在这个阶段的主要任务是调动学生学习兴趣,提出一个基础的、易解决的任务。学生的主要任务是集中注意力,积极配合教师完成情境导入环节(如游戏导入),明确编程项目的第一个任务及应该实现的舞台效果。
2.问题分解,计划制订
此阶段教师的主要任务是分析问题、表征问题,运用流程图或思维导图概括问题解决流程,通过问答或对话等方法引导学生思考。学生的主要任务是认真听讲,学习问题分析的思路,理解问题表征的方法,明确自然语言与编程语言的对应关系。
3.算法实现,问题解决
此阶段教师的主要任务是观察学生,查看学生的程序结构和编程指令,给予学生实时反馈。学生的主要任务是自主编写程序语言,在此过程中可以寻求老师和同学的帮助,但还是以个体探究为主。
4.总结评价,反思优化
此阶段教师主要引导启发学生表述编译思路,维持课堂纪律。学生的主要任务是综合分析同伴们的设计思路,对比自己的编程结构,在反复修改与调式中内化问题解决一般方法,发展评估、增量迭代以及测评调试的能力。
5.项目深入,问题叠加
在此阶段,教师的主要任务是启发学生思考,鼓励学生表达自己的“天马行空”,如寓言故事、动漫、游戏等方面的故事情节都可以添加到编程设计中去。学生的主要任务是联系生活体验和学习经验,表达自己的真实想法。
● 教学实践的应用与检验
为了检验指向计算思维培养的小学编程课程教学模式的有效性,本研究设计了计算思维培养教学实践。共有7个主题项目活动,在某实验学校开展了为期两个月的准实验研究,课程结束后笔者对计算思维的培养效果,从计算概念、计算实践和计算观念维度进行了评价和分析。
1.实验过程
本研究的实验对象是四年级参加编程社团的学生,共7个班,每班8人,总计56人。为了检验“问题叠加”模式对培养学生计算思维的影响,本研究首先对计算概念的五个方面进行了前后测,然后通过编程作品评价计算实践三个方面的内容,最后采用课堂观察和文本结构化分析获取学生计算观念方面发展的证据。
2.实验数据
(1)计算概念维度。为了了解学生计算概念的变化,笔者设计了“计算概念前测卷”和“计算概念后测卷”每道题10分,满分100分。笔者分别回收前测卷56份、后测卷56份,运用SPSS进行配对检验,对统计分数进行分析,最终前后测结果如下页表1和表2所示。
根据表1和表2统计结果,实验对象计算思维概念维度总成绩前后两组数据检验结果存在显著差异,t=-10.969,P<0.05,说明实验对象学习后的总成绩(M±SD=74.46±14.64)相较于学习前的总成绩(M±SD=49.46±15.19)有所提升。分维度(分解、抽象、系统化、自动化)前后两组数据检验结果均存在显著差异,说明学生在这四个维度上都有不同程度的提升。至于算法思维前后测不存在差异,笔者分析可能的原因是:本研究课程内容与算法思维有关的知识点关联设计不足;算法本身的严谨逻辑相对于小学生来说存在一定困难。
(2)计算实践维度。为了评估学生学习过程中的计算实践能力,笔者分析了学生的游戏作品,并结合课堂观察分析学生增量迭代、测试与调试、混合与复用实践能力的变化。在作品完成过程中,学生们综合使用了多个编程模块、多个编程指令,进行了脚本的优化,并在原有的作品上进行了再创造。这些现象表明,学生开始从被动的“拿来主义者”转向主动探究学习的“自给自足者”。在作品设计过程中,大部分学生都养成了随时调试运行的好习惯,少数学生在教师引导下也能够迁移运用前期的学习内容,实现知识的混合与复用。
(3)计算观念维度。创意与表达能力的培养主要体现在问题叠加环节,本研究分析了学生关于游戏操作过程的文字性描述,以《走迷宫》(前期课程)游戏为例,学生在描述《走迷宫》游戏时未能清晰表达游戏逻辑,如未能说明“绿色”代表安全路线、“碰墙”表示返回起始位置等。在后续课程中学生能利用“开始”“然后”“如果……则”“同时”等逻辑语言完整表达游戏角色间的关系,游戏机制清晰易懂,说明在一段时间的教学后,学生的表达能力得到了一定的改善。
● 總结与展望
计算思维和读、写、算一样,是人工智能时代人类解决问题的一种普适能力,如何培养学生的计算思维无疑是一个重要的课题,本研究所设计的计算思维培养模式和开展的教学实践,可在一定程度上支持这一领域的发展。
经过实验教学,学生开始从被动接受知识向主动探索学习发展,在丰富故事情节的过程中学生计算观念(创意与表达)得到了有效提升,在算法实现的过程中学生在计算实践(增量迭代、测试调试、混合复用)上的改变也表现明显,在方案综合过程中学生计算概念(分解、抽象、算法、系统化、自动化)水平在整体上得到了提升,但存在计算概念要素发展不均衡的现象,其中算法思维发展最弱。因此,需要进一步优化计算思维培养模式的操作细节和丰富课程资源,促进学生计算思维均衡、协同发展。
虽然研究开展时间较短,实验对象数目较少,但应用结果初步显示本研究提出模式的有效性。在之后的研究中,不仅需要延长实验时间,还需要进一步扩大实验对象的规模,设置实验班和对照班,对比分析该模式的有效性,结合实验数据、教学反思,进一步修订指向计算思维培养的编程课程教学模式,以便使这一教学模式对小学编程课程教学实践更具参考价值。