明纪英
在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:参考控制向下移动的按钮的思路,继续完成一个控制向上移动的按钮。注意观察程序运行结果,分析为什么会出现这样的效果?
在这个案例中,教师围绕教学的重难点,设计了一系列的问题,引导学生在动手实践过程中,边思考边探寻问题的答案,解决问题的同时,巩固了新知。这一系列问题体现的是“将该问题的求解过程进行推广并移植到更广泛的问题中”的计算思维的培养目标。
三、针对实际操作,设计指导性的问题
程序设计课程是一门实践性课程,学生只有通过算法设计并由计算机语言实现来体验问题求解的思维方法训练,在教学中需要围绕“问题”通过大量练习和实践操作帮助学生建立计算思维、掌握程序设计方法、培养程序设计能力,并最终运用程序设计软件来解决实际问题。
例:《猜价格游戏背后的秘密》一课中,授课教师为了引导学生进一步理解分支结构中条件语句的作用,在综合任务环节设计了如下的问题: