基于计算思维培养的问题教学法的有效应用
2018-02-23
(北京市通州区教师研修中心 北京 101100)
在2017年新颁布的《普通高中信息技术课程标准》中,对计算思维的概念描述是“个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。具备计算思维的学生,在处理信息过程中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源、运用合理的算法形成解决问题的方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中”。可见,计算思维有助于培养学生最优化解决问题的能力。那么如何有效培养学生的计算思维能力呢?需要将学生置于真实的问题情境中,亲身经历探究和逻辑的思考过程,寻求问题解决方案,这样才能获得问题解决能力。[1]
目前采用问题教学法在程序设计教学过程中,是有效落实培养学生计算思维的途径之一,问题教学法就是在教学中设置问题或疑点,以解决问题为突破口,带动知识点的学习。而设计问题往往比回答问题更重要,是问题教学法顺利进行的前提。下面以程序设计这部分教学为例,阐述信息技术教师在程序设计章节教学时应如何设计问题?[2]
一、针对知识的生长点、设计启发性的问题
在课前,教师要充分地了解学生的知识储备程度、新旧知识的内在联系以及面对新问题具有的可扩展的程度,找准知识的生长点来设计启发性问题,因为任何知识都不是孤立的,都是由旧知识发展而来的。所以教师要鼓励学生大胆尝试,寻求解决问题的方法。同时为学生提供学习支架,让学生能够跳一跳够得着。
例如:《timer控件的使用》这一课,授课教师为了引导学生了解timer控件的作用及相关属性,在导入环节设置了如下的问题:
问题1:timer控件在工具箱的什么位置?作用是什么?关键属性有哪些?
问题2:Interval作用是什么?通过代码说明来猜测,并建立事件来验证。
接下来,每组三个学生,分别将Interval属性值设置成1000、500、200,并建立同样的事件;通过观察程序运行结果,总结Interval的作用。[3]
本案例中,授课教师就很好地抓住了知识的生长点如案例中VB程序软件中控件的作用及关键属性。学生前期已有其它控件的学习方法(旧知),通过问题1引出新知—Timer控件的作用及关键属性,加深学生对控件的认知。接下来又通过问题2,引导学生用验证的方式理解新知的作用。
二、针对知识的重难点、设计思考性的问题
计算思维培养只有在学生思维的活跃状态中,才能得到有效的发展。所以教师所提的问题一定要围绕教学目标,切合学生实际,紧扣教学重难点。在问题设计时,教师不仅要考虑提什么样的问题,还要考虑为什么要提这样的问题,提出的问题既不能过于浅白,没有思考的余地,又不能太深,让人难以琢磨,无从下手。因为二者都不易引起学生的思考。教师应根据教材重点和学生的实际提出深浅适度,具有思考性的问题。
例如:《Timer控件的使用》案例中,教学的重点是Timer控件的作用;难点是根据需求,合理设置Timer控件的属性及与其它控件的综合应用。授课教师通过一系列的思考问题引导学生学习新知,突破重难点。
问题3:如果想通过command控件来控制Timer控件的启动,应该如何建立并书写代码?
问题4:回忆咱们之前做的游戏控制器,它和贪吃蛇的游戏在操纵上有什么区别?
问题5:能否结合今天所学的timer控件,与Command控件组合实现贪吃蛇游戏的效果呢?尝试先完成一个控制向下移动的按钮。
问题6:参考控制向下移动的按钮的思路,继续完成一个控制向上移动的按钮。注意观察程序运行结果,分析为什么会出现这样的效果?
在这个案例中,教师围绕教学的重难点,设计了一系列的问题,引导学生在动手实践过程中,边思考边探寻问题的答案,解决问题的同时,巩固了新知。这一系列问题体现的是“将该问题的求解过程进行推广并移植到更广泛的问题中”的计算思维的培养目标。
三、针对实际操作,设计指导性的问题
程序设计课程是一门实践性课程,学生只有通过算法设计并由计算机语言实现来体验问题求解的思维方法训练,在教学中需要围绕“问题”通过大量练习和实践操作帮助学生建立计算思维、掌握程序设计方法、培养程序设计能力,并最终运用程序设计软件来解决实际问题。
例:《猜价格游戏背后的秘密》一课中,授课教师为了引导学生进一步理解分支结构中条件语句的作用,在综合任务环节设计了如下的问题:
1.如果要系统先判断b=a,然后判断b<a,你能编写出程序代码吗?
2.如果先判断b<a,该如何编写语句?
3.如果用户输入了10以外的整数了怎么办?你会编写相应的程序代码提示用户输入10以内的整数呢?
在这个案例中,学生在初步了分支结构的用法以及相应的算法后,教师通过3个问题,引导学生继续深化分支结构中条件语句的运用,在修改完善程序时,更具有指导性,对理解分支结构的算法及运用分支结构解决问题的思路有很好地引领作用。
四、针对定向思维,设计创新性的问题
定向思维的特征是:“什么样的问题我们都有经验可循,不需要你去想其它的办法;或者什么样的问题都有一个框框,你不能打破这个框框”。而学生的思维变化是需要长期培养的。所以在教学过程,教师可以结合定向思维,设计创新性的问题,引发学生的思维变化。
如:《随机函数的使用—红包探秘》一课中,教师首先让学生体验抢红包的游戏,出示问题:利用所学知识,分析这个小游戏是如何制作出来的?学生会给出思路,单击按钮,出现钱数。教师接着问:如何实现随机的抢红包的效果?引出随机函数。最后在课堂延伸环节,引导学生思考:结合生活中“抢红包”的游戏,如果让你来设计抢红包游戏,你会如何改进?或如何制作“口令红包”? 在这节课里,学生结合生活中的抢红包游戏,利用以前所学的按钮、文本框、提示框控件,能够实现抢红包的效果,但在此基础上如何进行创新,需要引导和训练。
总之,计算思维的培养是程序设计教学中很重要的目标之一,通过精心设计的问题链,能够引发学生动脑、动口、动手实践,进而培养学生的计算思维,达到良好地教学效果。