计算思维下编程实例活动的课堂实施探索
2022-02-19姚海通
姚海通
(雄县昝岗镇初级中学,河北 雄安新区 071802)
一、引言
在核心素养教育下,从义务教育阶段到普通高中阶段,计算思维、数字化学习与创新、信息意识、信息社会责任都是构成信息技术学科核心素养的四大要素。其中在“计算思维”素养的培养上,初中阶段的要求是进一步理解(提高)计算思维的内涵,高中阶段的要求是要学会运用计算思维识别与分析问题,然后通过抽象、建模设计系统性解决方案。从初中的“进一步理解”到高中的“学会运用”,其既有梯度又联系紧密,同时还充分遵循了学生认识事物和思维发展的规律。
在义务教育阶段的信息技术学科教学中,编程任务被纳入到了活动主题内容范畴内。虽然编程的学习过程并不是培养学生计算思维的唯一途径,但绝对是极好的途径,因为它能很好地帮助学生在面对问题时,迅速找到解决问题的切入点,将问题化整为零;并找到它们彼此之间的关联和规律,以抓住问题的主要节点,由此可构建分析、解决问题的完整思路及具体方案。然后通过程序的反复测试、修改、优化等一系列过程,可养成、锻炼学生的思维能力,增强学生的学习毅力,进而可提升学生的综合信息素养。
由河北人民出版社出版、河北省教育科学研究院编写的《信息技术》教材八年级用书中的第二单元“编程之旅”,以源码编辑器(Kitten)这款面向青少年的图形化编程工具为例,紧紧围绕信息技术学科核心素养来确定课程目标、设计活动主题、甄选具体内容,并在“前言”中明确指出:“通过活动开展的过程,发展学生的计算思维。”这为活动的具体开展指明了方向,即活动开展的目的就是要使学生逐步形成计算思维,并培养学生分析问题、解决问题的能力。
教材“编程”单元的最后一课“我的贪吃蛇——巡线小车”,是在学生已掌握相关编程基本知识和基本技能基础上的一个相对独立、开放的编程活动,也是运用计算思维的典型实例。教师可结合本节课的活动,和学生一起探讨计算思维的培养及其如何与具体活动的开展相结合,为此需要我们首先要厘清以下三个问题:
(一)什么是计算思维
计算思维是指个体运用计算机科学领域中的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。具备计算思维的学生,在信息活动中能够采用计算机可以处理的方式来界定问题、抽象特征、建立结构模型、合理组织数据;能够通过判断、分析、综合各种信息资源,运用合理的算法形成解决问题的方案;能够总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题的解决中。
(二)教学目标与教学内容
从核心素养目标到课程目标再到教学目标,这些目标从上到下既保持统一,又逐层细化。教学活动内容是为教学目标服务的,是教学目标具体落地时,师生互动的素材。为了更好地实现教学目标,活动内容是可以被修改、重组的,甚至是可以被替换的,这样更有利于搭建灵活的活动结构。编程实例活动开展的过程,应以培养、发展学生的计算思维为教学目标,这是落实信息技术学科核心素养的关键所在,即内容只是表面师生互动的载体,目标才是对背后能力的培养。
(三)知识技能与解决方案
学生掌握了知识和技能,等于拥有了解决问题的工具,但并不等于能够运用这些工具来解决问题,其还需要形成一个基于思维层面的解决方案才行。方案形成的过程,是培养学生综合信息素养的过程,也是编程主题活动中的“灵魂”。只有搞懂什么是计算思维,整个活动才有指导方向;只有清楚目标与内容的联系,核心素养才能更好地落地;只有明白技能与方案的差别,才能更好地掌握活动的侧重点。
二、“巡线小车”编程主题活动的情节解析
下面将从六个方面来简要解析“巡线小车”编程主题活动的情节。
(一)精细研磨教材,掌握主题活动的框架
“我的贪吃蛇——巡线小车”是基于问题的编程实例。教材精心设计了“小车沿黑色路线行驶”的主题活动,且内容的安排非常契合计算思维的运用,如此有助于通过问题解决来培养学生的计算思维。
见下表
(二)围绕核心素养,确定细化教学目标
在具体的活动中,教师应以“计算思维”核心素养为导向,根据活动主题,将教学目标进行分解细化。即把“计算思维”的培养分散在具体目标的实现过程中,也就是说,表面上看是在完成活动目标,但实则是在培养学生的“计算思维”。
本活动以计算思维为导向,所确定的细化教学目标如下:
1.理解双传感器巡线小车的巡线原理(归纳抽象能力);
2.探究多思路实现角色通信及多角色联动的可行性(算法);
3.体验“小车”巡线时情况排除的过程(综合判断、分析、调试能力);
4.丰富作品,拓展学生的个性思维(拓展迁移能力)。
每个目标都有其对应的相关能力的培养,目的明确。教师之后可以安排与之相匹配的教学环节以培养学生的相关能力。
(三)依据问题认知,灵活搭建内容结构
当活动内容不便于学生直接学习、掌握时,教师可以对内容结构做出调整,然后利用相对容易理解的方式,引导学生回归到原有的问题上来。即另辟蹊径、激发思维以解决问题。
教材对该活动的设计思路,即需要探测灯跟随小车移动而转动,在给出的流程图中,也描述了同样的程序执行过程,即“如果探测灯碰到白色,它就跟随小车一起转。”在这个问题上,小车的动作是“主动”的,探测灯的动作是“被动”的。依据学生对问题的认知,一般情况下其会认为是探测灯碰到白色,才主动转,为什么要“跟随”小车一起转呢?它和小车之间到底有什么信息往来呢?事实上,不管是谁主动、被动,只要一起动,都不会影响小车在黑色路线上的行驶。而且之前也已经把小车分解成了三个角色,并明确了每个角色的功能,现在只不过是通过不同的模式将三者构建在一起。所以教师可以完全沿着学生的既有认知开辟另一种解决问题的思路,即左右两个探测灯碰到白色自己转向的同时,也令小车转向。这样的思路是很明晰且易于接受的,当学生成功实施这个思路后,就能很容易地被引导回活动问题上来。
如下图,白色圆形表示探测灯碰到白色。
(四)倡导自主实践,结合科学进行有效指引
在编程实例主题活动实施过程中,要处理好学生自主实践与教师有效指导的关系。即教师既不能教活动,又不能推卸指导的责任,而应当成为学生活动的组织者、参与者和促进者,且教师的指导还应该贯穿编程主题活动实施的全过程。
本课的编程主题活动,是在学生获得了编程基本知识和技能的基础之上,通过寻求问题的解决方案,来培养、提升学生的综合信息素养的。活动在组织实施过程中,教师不能将预设的解决问题的思路向学生直接“摊牌”,这样会使学生丧失参与思维活动的机会和兴趣,同时也不能置身于活动之外,而应做为参与活动的一员,和学生一起探讨、交流,并从中指导、引导学生形成自己的解题思路,如此可于潜移默化中培养学生的计算思维。
下面是笔者在本节课中对活动的部分指导环节:
1.问题导入。相似的事物之间很容易产生思维关联和迁移,因此教师可用学生所熟知的扫地机器人导入问题。扫地机器人探测并躲避的是障碍物,而本节课的小车则必需在黑色的路线上行驶,不能碰上白色,即小车探测并躲避的是白色。因此可以把扫地机器人躲避障碍物的原理关联、迁移到巡线小车上来,这样非常有利于问题的分解。然后进一步提升,即引导学生通过讨论、分析、归纳等一系列综合活动,得出巡线小车的原理,如此可培养学生从具体事物中抽象出一般规律的思维能力。
2.通讯方式。当一个探测灯碰到白色时,需要和另一个探测灯及小车产生通讯,以便顺利完成巡线过程。对此教师可引导学生使用“告诉”或“广播”两类积木,而不必提示三个角色间程序的逻辑关系,如此可把机会让给学生,使其在问题中思考、实践。
3.参数调整。每个学生绘制的路线是不一样的,脚本中的移动步数和旋转角度需要根据路线的具体情况来调整。而作为教师则需要引导学生对参数进行反复修改测试,如此可使学生体验程序编写的艰辛与成功的快乐,进而可磨练其编写程序的意志。
(五)丰富拓展问题,强化计算思维
在本次活动中,小车的路线是宽阔的,即路线宽于小车。假设路线窄于小车,则小车在巡线过程中又是如何工作的呢?学生经讨论后,可对解决方案进行描述。
(六)允许出现问题,抓住思维锻炼契机
小车在巡线过程中,会出现一些问题。比如因没有把涉及到的“角色”全面综合进去,而使“角色”在运动上不能协调一致,即各行其道,由此会造成小车“解体”;再如小车前进或旋转的参数设置没能适应路线状况,而造成小车冲出路线等。教师在此过程中应引导学生,使其在解决问题的过程中反复思考、实践,如此既能锤炼学生的计算思维,使学生养成越挫越勇的学习毅力,又能对学生其他学科的学习活动产生积极影响。
编程实例活动的开展,要以学科核心素养的培养为根本目的,并确定有针对性的教学目标。然后灵活调整内容结构,贯穿有效的活动指导,如此可使学生在自主实践中形成并提升综合信息素养。