运用基于案例的程序设计教学,培养学生计算思维

    余新树

    教育部公布的《普通高中信息技术课程标准(2017年版)》明确了信息技术学科核心素养,界定计算思维是“运用计算机科学领域的思想方法在形成问题解决方案的过程中产生的一系列思维活动”。很多教师投入很大的热情学习Python语言,以为将程序设计语言由VB或C等换成Python语言,就可以实现计算思维的培养,但如果程序设计语言的教学未关注解决问题的思维,只是程序语言的调整,那只会是“穿新鞋”走“老路”,又回到教编程语言的语法、语句上来。

    笔者多年来尝试用作品案例教学法来培养学生的计算思维,将程序设计语言教材涉及的基本结构、语句、方法和思想等按从易到难分解重构,编成一个个有知识和能力水平梯度的程序作品案例。学生在作品案例提供的情境中学习用计算机可以处理的方式发现问题,界定问题,抽象建模,分解问题,设计算法形成解决方案,进行半成品加工,总结方法,提升能力。实践出真知,编程课程运用作品案例教学法,学生不仅学会了程序語言设计的语句,更学会了用计算机编程解决问题的计算思维,学生既见“树木”(程序语句),又见“森林”(算法思维),计算思维得到有效培养。案例教学法的一般教学流程为:案例体验—抽象建模—分解问题—设计算法—半成品加工—总结迁移。● 案例体验,感受猜拳游戏作品乐趣

    学生运行程序,显示本机IP地址,网络双方均输入对方IP地址,即可通过单击表示锤子、剪刀、布的相应按钮体验网络版猜拳游戏的乐趣,如下图所示。以往猜拳教学,为了降低程序难度迎合学生的学情,往往设计的是单机版猜拳游戏,但单机版猜拳游戏相当于是自己的左手与右手猜拳,游戏的可玩性不高,现在改为网络猜拳游戏后,增加了游戏的互动性,学生玩得兴致勃勃,创设了很好的生活情境。● 抽象建模,理解现实世界在计算机世界表示方式

    抽象的目的是去除细节,提取关键信息,将现实生活中的信息转变为用计算机可以表示的信息,实现现实世界问题向计算机可以解决问题转化的重要一步。生活中的猜拳游戏是用手的不同形状来分别表示锤子、剪刀和布,但在VB程序界面中既可以用显示文字的按钮(commandButton控件)来表示锤子、剪刀和布,也可以用不同形状的图像(Image控件)来表示锤子、剪刀和布。作品案例既创设了生活情境,也在情境中蕴含了学生需要解决的问题和学习的知识,而发现问题是学生思维培养的开始。学生在体验了游戏后,很自然地发现问题:单击表示锤子、剪刀、布的按钮,计算机如何显示相应的图像?教师启发学生观察猜拳作品的界面组成,思考两个问题并填写下表:①按钮控件和图片控件是如何表示锤子、剪刀、布三种信息的?②按下按钮如何显示相应的图片?

    学生通过分析上表,结合前面学过的控件数组知识,很快理解了“拳”图像控件数组名称为quan,index的值1代表锤子,2代表剪刀,3代表布,这样就可用图像控件数组元素quan(1).picture、quan(2).picture、quan(3).picture来表示锤子、剪刀、布。“猜拳”按钮控件数组名称为caiquan,index的值1代表出锤子,2代表出剪刀,3代表出布,当按下相应按钮时,根据返回的index的值,quan(index).picture就可以表示所出拳的图像。通过抽象建模,把现实猜拳问题转化为计算机控制数组来表示,就可以用数学的问题来解决。● 问题分解,用思维导图自顶向下整体设计

    分解是计算思维的一种重要的解决问题的方法,通过分解把复杂问题分解成简单问题,把整体问题分解成局部问题,再从解决简单问题或局部问题入手找到解决问题的突破口。基于作品案例的分解是为了让学生对案例作品设计有整体了解,关注的是整体设计能力。根据前面体验游戏时的经验,学生把猜拳游戏分解为三个问题——本方如何出拳、网友如何出拳、如何判定胜负,再自顶向下逐步细化三个问题。

    1.本方出拳(单击按钮事件):①单击锤子、剪刀、布任一按钮,同时按钮失效不能再按直到本局结束为止;②本机显示相应出拳的图像;③将本机出拳对应的数字信息发给网友。

    2.网友出拳(接收数据事件):①接收并保存网友发送来表示出拳的数字信息;②显示网友出拳的图片。

    3.判定胜负(计时器触发事件):①判断如果双方都已出拳,如本机胜则本机胜数加1;②判断如果双方都已出拳,如网友胜则网友胜数加1。

    

    学生体验游戏后能分解出这些动作,从形象思维过渡到抽象思维,能力有一定的发展,但问题还未理清。教师提出问题:“先出拳的一方,如果出拳图形立即在对方显示,而对方还未出拳,那先出拳的就吃亏了,什么时候显示网友出拳的图像才合适?”学生很容易想到:应该是双方都出拳后再显示对方出拳图像最公平,只要本方未出拳,另一方即使先出拳并发送了出拳信息,也不应该显示。

    因此,上述第2、3个问题调整为:

    2.网友出拳(接收数据事件):接收并保存网友发送来表示出拳的数字信息。

    3.判定胜负(计时器触发事件):①判断如果双方都已出拳,则显示网友出拳的图像;②判断如果双方都已出拳,如本机胜则本机胜数加1;③判断如果双方都已出拳,如网友胜则网友胜数加1。

    虽然事先采取自顶向下逐步细化设计各模块功能,但在实际编程过程中仍会出现一些新问题,问题分解会在编程的整个过程中多次发生,直到问题被解决,而问题分解难度取决于作品案例的复杂度,这是常规解题式教学无法比拟的。因此基于作品案例的教学,让学生在发现问题、分解问题的过程中逐步形成解决问题方案,培养了计算思维。

    ● 算法设计,用流程图理清局部问题

    问题分解关注的是从全局角度自顶向下逐步细化的设计能力,而算法设计关注的是从局部角度应用所学知识解决具体问题。算法是解决问题的明确步骤,是具体的操作过程。在理清了本方出拳、网友出拳、判定胜负三个问题后,算法设计聚焦于用所学的IF语句来解决“判定胜负”问题。借助流程图,学生进一步理清思路和步骤,为后继进行半成品程序加工扫清障碍。对于“判定胜负”问题,确定IF语句中“胜利的条件”是本问题的难点。教师以“本机胜利”条件为例让学生小组合作,讨论归纳本机胜利的条件。各小组通过列表法,列出双方所有出拳情况及对应的数值,分析表示网友出拳的netnum变量值、本机出拳的localnum值和本机胜负情况,根据本机胜的情况总结出本机胜利的条件:(netnum=1 and localnum=3) or (netnum=2 and localnum=1) or (netnum=3 and localnum=2)。有的小组比较三种胜利情况后还进一步简化出本机胜利的另一种条件表示:(netnum-localnum=1) or (netnum-localnum=-2)。随后学生根据此种列表法举一反三推导出“网友胜利”的条件。通过流程图描述算法和列表总结法推理出胜利条件,学生的计算思维得到了培养。● 半成品加工,關注阅读能力和思维能力培养

    半成品加工是指根据教学目标的需要,保留作品整体的真实性、情境性和完整性,将作品的某些关键局部“留白”,让学生应用课堂所学知识将留白部分补充完善成为成品。本成品加工是培养学生知识迁移能力和解决问题能力的一种很重要的方法,这种方法既保留了程序作品整体设计代码供学生学习借鉴,又让学生在短时间内学习编程语句等知识,应用程序语句实践练习和深化基本结构、语句命令等概念理解,达到知识与技能、方法和能力双培养的目标。

    

    由于上节课学生已经学习了局域网QQ程序案例,懂得了使用VB中winsoca控件进行网络信息的收发原理,作品案例建立两个窗体,一个窗体(form1)模拟本机,端口绑定1001,另一个窗体(form2)模拟网友,端口绑定1002,这样学生运行程序时就可以模拟本机和网友猜拳,方便学生调试程序代码。程序调试正确后删除模拟网友的form2窗体,就可与网友进行网络游戏。教师首先指导学生阅读“本机出拳”“网友出拳”“判定胜负”三个问题程序代码,引导学生读懂三个事件中语句或语句组的功能,而不必太关注语句语法,阅读程序的过程,也是思维活动的过程。由于本节课重点是用IF语句来解决如何“判定胜负”问题,将“双方都已出拳条件”“本机胜条件”和“网友胜条件”留白,学生根据前面环节所设计的算法和总结的条件,用IF语句不断调试直至实现程序功能后,双方输入对方网址,就可以进行网络版猜拳游戏,在游戏中感受到成功的喜悦和自豪。通过半成品作品加工,学生既学会案例程序的整体解决方案,又应用所学概念、知识解决了特定情境的问题,计算思维得到了培养。● 总结提升,培养思维迁移能力

    归纳总结是从具体化情境中提炼出一般性知识和方法的过程,通过总结,学生不仅深刻领会了所学知识内涵,还懂得了应用知识在情境化场景中解决问题的方法,形成了解决问题的思维。本节作品案例教学通过列表法、问题分解法、流程图描述法逐步形成问题解决方案,通过半成品加工策略实现算法,学生的思维由抽象到具体,计算思维能力培养落到实处。

    教学有法,教无定法。教师只有深刻领会计算思维概念的内涵和外延,才能在生活中发现计算思维的用武之地,在教学中创设有趣的案例作品,融入计算思维,让学生在问题化情境中发现问题,自主、协作探究,形成问题解决方案,学会编程思想和方法,促进计算思维的发展。

相关文章!
  • 小学语文课堂教学中的激励性评

    摘 要:激励性评价作为小学常用的教学方式,在教师日常教学中具有重要作用,在各小学学科中都有应用。在小学语文课堂上,语文教师需要与学

  • 高等教育人工智能应用研究综述

    奥拉夫·扎瓦克奇-里克特 维多利亚·艾琳·马林【摘要】多种国际报告显示教育人工智能是当前教育技术新兴领域之一。虽然教育人工智能已有约

  • 生活引路,作文随行

    周海波【摘 要】“写作教学应贴近学生实际,让学生易于动笔,乐于表达,应引导学生关注现实,热爱生活,表达真情实感。”教师如何让学生更加贴