基于计算思维培养的小学STEM课程实施初探

2018-11-28 11:20周迎春
基础教育参考 2018年21期
关键词:计算思维小学信息技术

周迎春

[摘 要]计算思维已成为世界公认的普适思维方式,但是在我国9年义务教育阶段尚未有具体的目标要求和实施案例。结合面向STEM的信息技术课程的创建实践,提出在小学信息技术课堂中培养学生计算思维的具体路径与方法。

[关键词]信息技术;计算思维;STEM;小学

自周以真教授发表论文《Computational Thinking》和《计算思维和关于计算的思维》开始,短短十数年间,计算思维已和理论思维、实验思维一样成为世界公认的普适思维方式,并同阅读、写作等一起成为人类需要熟练掌握的基本技能之一。

美国《中小学计算机科学标准》分阶段设计了计算思维的教学实施方案。英国教育部于2014年9月引入了新的计算机教学大纲,其中亦突出了计算思维的培养,将计算思维、计算实践和编程纳入学科主线。在我国,2017年颁布的《新一代人工智能发展规划》及《普通高中信息技术课程标准(2017年版)》,为计算思维的培养营造了良好氛围。计算思维被确定为高中学科核心素养之一,那么在9年义务教育阶段的信息技术课程中就不需要注重计算思维的培养吗?答案显然是否定的。计算思维作为一种能力,其培养过程需要潜移默化,循序渐进。在小学、初中信息技术课程的实施过程中,需要着力创设培养计算思维的良好情境,努力在信息技术课程中融入计算思维属性。

一、计算思维与编程教学

1.概念界定

周以真教授认为,计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。《普通高中信息技术课程标准(2017年版)》给出的界定是:计算思维是采用计算机方式界定问题,运用合理的算法形成解决问题的方案,并迁移到与之相关的其他问题解决中。目前国际公认的定义尚未形成。

2.计算思维与编程教学的关系

计算思维虽然不仅仅局限于计算机科学领域,但主要基于计算机技术实现最终的自动化,很多时候需要把抽象出来的问题通过计算机可以理解的方式来编制程序,但归根到底还是人的思考、解决问题的方式在计算机运行程序中的投射,并不是计算机的思维。计算思维的培养目标主要包括以下三个方面:一是建构目标问题域的能力;二是明晰任务并有效分解任务的能力;三是抽象系统方法加以实现的能力。计算思维包括了算法思维、评估、分解、抽象、概括等多种思维方式,程序设计是计算思维解析抽象出来的解决问题的方法得以自动化运行的重要实施途径,但并非唯一途径。传统意义上的编程教学往往从语法知识入手,忽视程序设计思想和方法的引领,计算思维的培养往往不是其教学目标的选项。

3.培养小学生计算思维的编程工具

C++、Java等程序设计语言的教学,前期需要花费大量时间讲授语法知識,而学生的信息技术课时有限,目前很多省市的小学3至6年级每周只安排一课时。LOGO语言曾是小学信息技术教材中的主要程序设计语言,但随着图形化编程语言Scratch的出现,也逐渐退出舞台。而与外围硬件衔接更好的基于Scratch核心的S4A、mBlock,更容易创设有利于小学生跨界融合解决真实问题的可以触摸的STEM教育情境,把学生从繁杂琐碎的语法学习中解救出来,将宝贵的时间用于培养计算思维能力。

二、国内外计算思维研究与实施的现状分析与途径探讨

1980年,麻省理工学院的西摩·帕尔特(Seymour Papert)教授在《头脑风暴:儿童、计算机及充满活力的创意》中首次提到计算思维。2006年,美国卡内基梅隆大学的周以真(Jeannette M. Wing)教授提出了计算思维的定义。2011年,计算思维被纳入美国《CSTA K-12标准(2011修订版)》。英国2013年的“新课程计划”、澳大利亚2015年的“新课程方案”将计算思维培养作为新信息技术课程的教学目标。2015年,美国总统签署《让每个学生取得成功的法案》,将以计算思维为核心的计算机科学提高到与数学、英语相同的地位。2010年,我国发布了《九校联盟(C9)计算机基础教学发展战略联合声明》,强调把培养学生计算思维能力作为计算机基础教学的一项重要的、长期的和复杂的核心任务,此后制定的《普通高中信息技术课程标准(2017新版)》将计算思维确定为一项重要的信息技术学科核心素养。

按CNKI的数据统计,2011年后,有关计算思维的论文发表量明显上升,到2015年达到峰值,之后再次回落。其中,高等教育对计算思维培养的研究明显多于初等教育,基础教育阶段的计算思维研究尤其薄弱。国外计算思维的应用研究覆盖了K12阶段,计算思维的研究需要计算机科学与教育科学的整合,总体上缺少复合型人才。

20世纪90年代起,西蒙·派珀特博士的LOGO语言引导学生“问题确定、模型分析、命令实施、修改完善”,期间也渗透了计算思维培养的一些元素,曾进入许多国家的信息技术教材,但是在跨学科融合知识解决实际问题方面却无法施展。目前在基于计算思维培养的课程设置方面,有些国家如澳大利亚,有些地区如我国香港等都开设了面向STEM的全新课程。在课程实施工具方面,采用了Scratch图形化编程,使学生不必面对晦涩难懂的代码语法,扫除了编程语言的障碍,直接面对设计与创造,因此而得到了广泛应用。但是从编程渗透率(即被调查对象中,参与编程的人数比例)来看,以全球最主要的少儿编程语言Scratch的统计数据为例,美国市场的渗透率最高,高达44.80%,英国为9.31%,中国仅为0.96%,不难看出其中的差距。

三、创设面向STEM的信息技术课程,

培养学生计算思维

由于基础教育阶段的计算思维研究相对滞后,笔者在创设面向STEM的信息技术课程的教学实践中,进行了计算思维培养的尝试,取得了一定的成效。以下用案例解析对此加以说明。

1.巧设代数表达,拓展滑竿活动区间

在“SCRATCH可控创意动画制作”一课,要求太阳受滑竿传感器控制缓慢上升,此时须将滑竿传感器数值的变动范围控制在“0~100”,而Scratch舞台在Y轴方向的范围是“-180~180”,如何设计一个能扩大到目标区间的代数表达式呢?学生小组讨论的表达式呈交后,教师用课件演示结果。在不断试错后,学生慢慢向目标靠近,最终得到多个正确答案,如“(滑竿传感器的值-50)*180/50”等。思维训练与体育训练类似,需要经过一定的强化训练才能达到新的高度,于是教师增加了一些变式练习:变式一增加了小鸟角色,要求云彩和小鸟均能被滑竿传感器控制且同步平移,学生通过复制脚本即可完成操作;变式二要求小鸟能扇动翅膀,这就需要添加造型变换的脚本;变式三要求云彩跟小鸟的运动方向相反,此时学生需要提取诸如Scratch舞台的左右坐标值,考虑如何将滑竿传感器的控制区间扩大到“-240~240”等,需要将原来的表达式更改为“0-(滑竿传感器的值-50)*4.8”。以上方法看似简单,但其中隐含了计算思维培养的元素。

2.横竖切换变式,细微处展现计算思维魅力

在“乒乓球游戏制作”一课的创意拓展部分,要求将乒乓球拍的横板变竖板,在目标任务场景“旋转90度”或者“旋转180度”的同时,算法设计也需同步跟进“旋转”,在这种“旋转”中,使学生的算法设计逐渐运转自如。此过程中,因Scratch舞台纵横坐标值不等而涉及到滑竿传感器表达式的修改;由于拍子从横向平移变为纵向运动要将脚本修改为“将Y坐标设定为……”一个小小的创意就需要对原程序做出多处修改。在修改过程中,学生还将面临一些新问题或障碍,如有学生发现乒乓球拍只要一移动就不见了,根本无法控制。有的小组通过探究发现,同一表象后隐藏了不同的因果。例如,把控制脚本中“将Y坐标设定为(滑竿传感器的值-50)*3.6”中的3.6改写成36,控制区间就从“-180~180”变成“-1800~1800”,自然稍一移动就会“跑出”舞台。有学生把“将Y坐标设定为”改成了“将Y坐标增加为”,于是教师引导学生分析:当目前坐标值为100的情况下,“增加”和“设定”会有什么差别?

学生的创意乒乓球游戏也“玩倒”了教师。例如,在横板改成竖板的游戏中,教师在示范时无法接住球,于是向学生求助。一位不善言辞的学生上台将Picooard板倒置,问题就迎刃而解了。原来滑竿的方向与球拍的运动方向反了。于是教师因势利导:能否不改球拍方向,仅在程序上进行修改呢?学生很快想到用0减去原来的表达式即“(滑竿传感器的值-50)*3.6”。还有一种创意,称为“五彩乒乓游戏”,学生将运动的球改成彩色,将无序运动的球增加了3个,并且速度很快。教师演示时屡接不中,学生们哄堂大笑,于是一位游戏高手上台解决了问题:根本不看球的运动,当绿旗被点击(即程序开始运行),就不停地快速上下滑动滑竿。教师对学生评价时,称“玩倒老师”也是加分项。学生听到教师在讲座中演示他们的作品时,尤其兴奋。这也是多元评价的一个范例。

3.问题分解细化,反复演进中体验迭代思维

“智能可识别序号机器人”的目標任务是设计制作能自动识别集装箱序号的小车,能将1、2、3号集装箱搬运到对应置上(见图1)。较为复杂的任务需要先进行分解和模式识别,即确定具体的实施方案。在确认使用比较可靠的磁感应识别策略后,引导学生对目标任务进行拆解:集装箱及自制“起重机”的3D设计建模及打印、集装箱数据的获取、路口序号的获取、机器人试验场地绘制。程序完成后,先进行单个集装箱搬运实验,看能否到达指定位置。然后在此基础上汇总集成、迭代优化,让机器人逐个搬运三个集装箱到指定位置。学生会不断优化完善所编写的程序以实现任务目标,在此过程中培养了迭代思维。

以上是问题解决过程中所谓“终端产品”的迭代,是一种广义的迭代思维。在程序设计中也可以培养迭代思维,是一种微观层面的狭义的迭代。以“智能端茶杯机器人”为例,除了需要整体反复演进优化外,其中机械抓手准确对准杯子的程序设计是一个难点,因为每次检测到的杯子的位置包括方向都有差异,很难以不变应万变。而执行取杯动作前是否已经在抓取的有效范围内也是能否顺利抓举杯子的关键,这里的程序设计运用了一个循环语句反复检测与杯子的距离:当机器人超声波传感器探测到与杯子距离小于25厘米时停止转向,小于13厘米时则停止前进。每次循环都会拾取机器人与杯子的距离,并且与所设置的条件数据进行比对,以确定是否达到最佳位置,是否要停止当前动作转而执行下一动作。这个过程很好地体现了程序设计的迭代思维。

如果说程序设计是目标任务的一个子问题,这里显然又将这个子问题分解成了若干更小的子问题。事实上,越是复杂的问题越会出现更多的这种层级。以上STEM项目是数学与工程思维融合的范例,当机器人的动作自动化到匪夷所思的地步,人们将很自然地联想到“智能”二字。

4.九章算术迁移,程序完善中培养递归思维

“会算最大公约数的机器人博士”的设计目标是:让机器人程小奔(普及型编程机器人Codey Rocky)能识别语音输入的两个数字,并且自动计算出最大公约数,在屏幕上显示并且读出答案。具体实施方案是用mBlock5编程上传到程小奔,这里将用到最有意思的算法处理模块。公约数的计算常用短除法进行,如何让计算机接受“短除法”是个难题,于是师生试图用“九章算术”中的“更相减损法”来完成。如图2所示,它是不断用两数差的绝对值跟较小的数比较,当两者相同时,此数即是两数的最大公约数。这里用到了mBlock的新建模块功能,当不符合“程序出口”条件时,此模块将使“计算m与n的最大公约数”被反复执行,该程序的研制过程渗透了递归思维。

为强化学生的递归思维,在课后拓展环节,教师让学生用辗转相除法设计一个自动计算两数最大公约数的程序。在此过程中,学生需搜索相关算法的原理,修改原程序。能否独立完成这一拓展作业,可以检验学生递归思维的水平。

以上在STEM课程中进行计算思维培养的案例侧重点各有不同,但这些点滴的努力最后形成了培养学生计算思维的合力。后期,教师还要在以下方面进一步探索与实践:基于真实问题情境的项目化学习,而非知识技能的菜单化学习;多元化多维度的适性的教学评价,避免复制单一线性的评价模式;嫁接计算思维培养的STEM课程的梯度化设计,摒弃平面化铺陈等。让学生掌握计算思维,有利于培养他们成为科技创客和善于解决问题的人,成为合格的“数字土著”,成为2025年占据人工智能制高点的推进者。以上案例或许尚显单薄,但更重要的是行动已经开始。

(责任编辑 郭向和)

猜你喜欢
计算思维小学信息技术
幼儿园教学活动中信息技术的应用思考
巧学信息技术课程
浅谈初中信息技术项目式学习教改实践
巧用“信息技术”,提高课堂效率
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
体育教学中准备活动的作用与类型研究
生本教育理念下的美术教学研究