韩杰
自周以真教授提出“计算思维”后,此概念便以如火如荼的态势,在中小学的课堂教学中渗透。目前,“计算思维”已经成为高中信息技术课程中学生学科核心素养培养的一个重要目标,可见,“计算思维”对现代信息技术教学影响深远。
经过长期的一线教学实践,笔者发现,在三维度目标里,对于“知识与技能”“过程与方法”目标的培养,教师更关注的是学生技能的提升,而提升的方法,是模仿与练习,忽视了对其思维过程的培养。在小学阶段,根据心理认知的发展过程,中低年级的学生处于形象思维阶段,高年级处于形象思维向抽象思维过渡阶段。对于这一特点,教师在进行教学设计时,要予以关注。从广义上来说,在小学信息技术教学中渗透计算思维,教师应引导学生学会“思考”,培养他们养成“思考”的习惯,最终形成灵活的思维能力。
Scratch是苏教版小学信息技术五年级第一个板块的内容,也是学生接触编程的开端。图形化的编程模式,减少了语句输入上的一些问题,更关注的是程序建模的过程,这是符合计算思维培养精神的。针对计算思维融入Scratch教学的途径,笔者做了以下思考。
抓契机,引思考
计算思维的核心是“抽象和自动化”,为了体现这一主题,教师在备课前,会准备相关内容,预备在课堂中体现这一核心。但是,这种设计却很难达成预定目标,其原因是:第一,这个核心主题过于高深;第二,无论多精妙的设计,一旦放入课堂中,会有一种生硬的“表演感”。但是,如果能及时抓住课堂生成的“状况”并处理好,就能形成良好的教学资源。建构主义教学观中,有一种模式叫“支架教学”,当学生遇到问题时,教师不急于告诉答案,而是给相关概念做辅助“支架”,引导学生思考,发现知识。五年级的学生正是形象思维向抽象思维过渡的阶段,而抽象思维则是以概念为基础。此时的学生,还未养成概括、归纳的习惯,教师要引导他们形成这样的习惯。
笔者执教《火柴人跳舞》(苏教版小学信息技术五年级Scratch板块第三课)一课时,大部分学生按要求给角色绘制了不同的“造型”,利用脚本的“下一个造型”让角色动起来。虽然笔者再三强调不要把角色直接画在背景舞台上,但是还是有一位学生忽略了此提示,在删除默认角色小猫后,把新建角色直接画在了舞台上。不过,他画了很多个舞台,并在每个舞台上画了动作不同的“火柴人”。他用的脚本是“切换下一个背景”。当“点击绿旗”后,也出现了火柴人运动的效果。起初,笔者很想责备该学生不认真听讲,但转念一想,这何尝不是很好的“生成”资源呢?因为在Scratch界面上,“舞台”和“角色”是并列的。很多时候,学生只是跟着教师的流程来构建程序,他们容易混淆“舞台”和“角色”,是因为他们并没有分清两者的异同。于是,笔者便问学生:“‘舞台是角色吗?”学生不能很肯定地答案。笔者建议他们打开控件区,比较“舞台”模块和“角色”模块有什么不同。学生发现“舞台”没有“动作”模块,其他方面两者都差不多。有了对比后,笔者便帮助他们进行归纳:“‘舞台也可以看成是角色,不过这个‘角色通常是静止不动的,不需要设置它的动作。我们一般把不需要参与运动的背景图放在‘舞台上,而把需要‘运动的部分归为‘角色。”有了这样的思维过程,学生就更容易理解“舞台”与“角色”的不同使用方法。
课堂上有很多这样随着师生活动而生成的随机资源。但是,很多时候学生的“标新立异”会让教师觉得他们是在“捣蛋”,其实,深思一下就会发现,这些不同观点稍作修改与利用,就会成为培养学生思维习惯的教学资源。
深挖掘,拓发散
培养学生的思维能力,应该多问一个“为什么”。教学时,笔者发现,在学生已经回答或者勉强回答出预设的回答时,教师就会急于下一环节的教学。其实,即使有学生回答出这个问题,并不代表大部分学生都已经理解了这个教学点。因此,在课堂上多问一个“为什么”,可以给学生更多思维发散的时间和机会。
笔者执教《青蛙过河》(苏教版小学信息技术五年级Scratch板块第四课)一课时,要求学生能够借助坐标点,让青蛙一步步地“跳”到河对岸。学生学习了坐标,并在学会了“移到X:()Y:()”这个模块进行初始化程序后,开始编写青蛙“跳”荷叶的程序。学生把这个模块运用起来,并分別填写了各荷叶的不同坐标。但是,当一连串的坐标“堆”起来后,学生发现,当“绿旗被点击”后,青蛙并没有如愿地从荷叶上“一蹦一跳”地来到河岸,而是直接停在了河对岸,再次单击绿旗,青蛙也不再移动,似乎“卡”在那里。这是怎么回事?笔者让学生思考并观察“动作”区域里的模块,看看有什么发现。很快有一位学生发现了“在(1)秒内滑行到X:()Y:()”这个模块,并且比较了两个模块的区别:可能是“移到X:()Y:()”这个模块里面没有“延时”效果,所以整段程序里,青蛙只默认最后一个模块的坐标位置。他发现,用“在(1)秒内滑行到X:()Y:()”这个带有时间的模块替换了之前使用的模块后,青蛙开始动起来。他向全班同学展示了青蛙的运动过程。
这个发现是“突破性”的,然而并不完美,因为一位爱“挑刺”的学生又举手了:“老师,这个青蛙不是‘跳过来的,而‘滑过来的,不符合实情。”这是一个值得我们思考的“刺”。于是,笔者把这个问题“踢”给了学生,学生进入青蛙真正“跳”起来的探索中。很快,第一位学生举手展示了他的作品:他在每一次滑行的模块之间加了一个“等待1秒”,因为有了这个“一顿一顿”的延时效果,在我们的视觉上就产生了“跳”的“错觉”。这是教材上的解决方案,学生似乎并不满意。笔者也不满意并强调:“应该还有更好的方法吧?”“我们要抓住‘跳这个动作的运动特点。”这时,笔者看到有学生悄悄地抬起了腿,在模拟“跳”的动作。思索还在继续。又一位学生举手了,展示了他的作品,惊喜出现了:他的青蛙果然是很流畅地“跳”过了岸,起跳、下落都完美地表现出来。他讲解了他的思路:“在青蛙跳起来时,增加它的Y坐标,然后滑到目标坐标后,降低Y坐标。”掌声响了起来。
这次的惊喜源于笔者的“不满意”。去年教学这部分内容时,虽然也引导学生思考青蛙“跳”的秘密,但是,只用了和书上范例一样的脚本,失去了发散性思维训练的过程。因此,教师要在课堂上多问一个“为什么”,多给学生思维碰撞的机会,时间久了,次数多了,学生的思维会变得更敏捷。
优策略,促思维
信息技术是一门重实践的课程,它更应关注学生能力的提升,而非机械地记忆知识点,这是它与知识类课程的不同之处。通过一学期Scratch的学习,有的学生可以自己根据设想,利用Scratch创作出小程序或者小游戏,而有的学生却只能重复出课本上的几个范例。这是因为他们在学习过程中使用了不同的学习方法。前者的思维能力得到了提升,养成了科学的思维习惯,而后者只是在“模仿”。这正提醒我们一线教师,在教学时,应关注思维的过程,而不仅仅是模仿的结果。
在教学《小猫出題》(苏教版小学信息技术五年级Scratch板块第十课)一课时,学生开始接触“变量”这个概念。在执教前面几个班级时,笔者都是先把“加数1”“加数2”“和”三个变量全部新建好,再做下面的程序。这样就出现一个问题,学生都会想当然地将“和”这个变量放在“等于号”后面,导致程序出错。这其实是思维方式的问题。此“和”非彼“和”,新建的变量“和”,是用在判断里的,判断回答者的答案与之是否相同,相当于,它是电脑“算”出来了。但是跟小学生解释起来,很容易让他们越听越糊涂。
在执教后面的班级时,笔者打算换一种策略,用一种“逢山开路,遇水搭桥”的思路。于是,先只新建“加数1”和“加数2”这两种变量。那么,“等于号”后面放什么呢?自然是放“侦测”里的“回答”,它表示的是做题人的“回答”。这个很好理解,学生都不会错。之后,学生总结出搭建有变量程序的步骤:①新建“变量”;②给“变量”赋值;③进行条件判断。根据这三个步骤,到了条件判断时,为了让回答者的答案与标准答案相比较,那么此时就需要出现一个新的量,就是“标准答案”。它从哪里来?因为已有模块里没有,所以又需要新建“变量”——“和”,因此这个变量在我们最需要它的时候出现了。这种理解是“顺序式”的理解,顺着“思维流”一路流淌下来,比较适合刚学习编程的孩子;而之前那种把变量全部新建好,再做赋值与判断的方式是一种基于全局考虑的,它更适合于有一定编程基础的学生。
让计算思维这一概念落地,就要转变我们的教学理念,教师在关注知识与技能的同时,更应关注学生良好思维习惯的养成。从获得结果,到如何更经济有效地获得结果,这是一个量变到质变的过程,需要一线教师长期不懈地坚持。