APP下载

以问题解决促进中学生计算思维发展的教学策略

2022-06-20赵乐斌福建省福州市晋安区教师进修学校福建省福州第二十中学

中国信息技术教育 2022年12期
关键词:变量算法解决问题

赵乐斌 福建省福州市晋安区教师进修学校/福建省福州第二十中学

基于问题解决的中学信息技术课堂教学,倡导学生在学习过程中经历问题的理解、分析、解决、总结迁移等,达到发展计算思维的目的。将教学内容蕴藏在问题解决过程中,能够有效地克服学生的思维惰性,避免讲练式的知识传递、任务式的技能训练等所导向的浅层学习。

●基于数据组织认识问题,关注计算思维的抽象本质

1.对形象问题进行抽象特征

现实社会中的信息活动呈现出客观物理世界和虚拟数字世界之间的相互依存,表现于具体物理量和数字量之间的转换。例如,如果要求设计一个杯子,学生常会受到形象认识的束缚,进行具有普遍性的水杯制作,而当学习要求抽象到制作一个容器的高度时,学生设计的作品在样式上就会呈现多样性。因此,在信息技术课堂教学中,需要引导学生在认识问题的过程中,脱离形式上的束缚,抓住主要内容抽象其特征。以计算思维培养为目的,了解问题,以数据为抓手,基于数据界定、变量赋值、数据计算、数值判断等角度去理解问题,抽象问题的特征,变形象问题为抽象的计算问题,这样的问题重构,有助于学生对问题的认识从感性的情境理解,借助数据媒介,上升到计算可处理对象的理性认识,在了解问题的本质特征过程中,不断培养抽象能力。

例如,闽教版初中信息技术《体验分支结构》一课,要求结合“探秘无人驾驶汽车”学习主题,设计如何实现无人驾驶汽车遇到红绿灯,执行停车等候或继续行驶。在分支结构的第一课时,主要了解与学习经典的分支结构,即根据两种不同的简单条件,执行不同的指令。通过无人驾驶汽车通过红绿灯的问题,学生明确问题的关键,绿灯时屏幕输出“继续行驶”,非绿灯时屏幕输出“停车等候”。为了实现条件识别具有确定性和有效性,采用数据量化的方式设置条件,在约定“绿灯亮”时,“红绿灯状态”设定为数值1,其他数值时,就表示非绿灯状态。将生活中根据红绿灯行动的情境抽象成“红绿灯状态”变量数值的判定,让条件语句更加确切,能够有效得到判断和执行。

2.由抽象问题还原具象认知

在重视抽象能力的同时,也要关注问题抽象后知识的理解和掌握。计算思维培养视阈下的程序设计和问题解决是抽象的学习过程,学生通过对抽象概念原理的理解,能够正确认识抽象问题中关键的内容,包括数据关系、算法等,其中也涉及规则、约定以及相关编程技巧等。

例如,在借助Python开展“走进程序世界”教学活动中,在学生了解基本的输出语句后,教师可以反馈具体课堂纪律的学情统计为问题,采用填空题型的方式,使学生巩固所学内容。问题:用程序语句记录“认真听课的同学”是“宋同学”,“上课讲话的同学”先后分别是“陈同学”“谢同学”;最后让计算机输出讲话的总人数和最后一位讲话的同学的名字。问题的理解,涉及变量类型选择、变量内容的赋值、变量内容的修改、输出函数等相关计算知识复习。尝试让学生设定相关变量名,让学生对变量名、变量值和变量类型等产生具象认知,并观察执行变量赋值后程序的输出情况,让学生清楚地认识到计算机执行的处理指令,有时是肉眼看不到的(如“认真听课的同学”),因为它未执行输出指令,它的结果存放在内存中,当计算机断电后,相关变量内容信息将消失。

●源自生活观察分析问题,重视计算思维的培育契机

1.瞄准思维起点引发思考

以生活中的信息行为的理解为起点,能够助推对学生计算思维能力的培养。因此,教师在教学过程中要善于利用生活中有益于计算思维培育的素材,将计算思维培育与学生已有的生活经历紧密联系,抓住有利的思维起点,把握契机引发学生分析问题,积极提出解决问题的假设,将初步构思的方法、步骤等与现实生活具体行为关联,构建激发思考、促进学生潜能发展的教学活动。

例如,在结合无人驾驶小车项目进行“算法和程序设计”单元学习的过程中,针对智能小车如何避碍行驶的问题,可引导学生先学习认识超声波传感器、光电传感器等,在障碍物感应、巡线问题上,结合关爱特殊群体用拐杖感应障碍物、依靠触觉走盲道等生活行为,辅以蒙眼用手或纸板等道具实现走过班级通道的生活体验,让学生明白传感器获取相关信息的重要性,明确信息技术的变革和创新是为了更好地解决生活中的复杂问题。

2.分解问题体验算法思维

分解问题就是把一个问题分解成若干个子问题,解决了子问题,再把解决子问题的方案合成解决原问题的方案。分解问题不同于解决问题时的分步骤实施,不同于解决复杂问题时的不同分类情况,计算思维的分解能力比较抽象,分析问题时辅助典型生活实例介绍,能够突出对问题分解能力的培养。

例如,在分析用二分法查找有序数组中的具体数值时,教师让学生分析生活中翻开书本第N页的学习情境。解决这个问题的方法是,从学生呈现的逐页翻,过渡到应用二分法的思想“对半”进行“两手抓”翻书,然后根据翻到的页码,判断在哪只手抓的部分里继续对半查找,直到找到。在体验后,帮助学生梳理翻书问题,其子问题算法步骤如下:①找出起始页;②确定结束页;③找到中间页M;④判断M和N的关系。诸如翻书的子问题的生活体验,能够培养学生通过分解子问题实现有效分析问题的思维能力,得出解决方案,感受算法思维的魅力。

●概括解决问题的方法,增强计算思维的价值体认

1.找准要点引导深度探究

在概括问题解决方案的过程时,除了使用的算法模型外,还要深度探究解决问题的关键点,即问题的核心。通常以数据或数据之间的关系为突破口,进行相关计算、分类、排序、查找、转化等相关操作。探究关键点在解决问题与验证方法过程中的作用,发现应用意义,实现从实践体验、学习感悟到价值认同。

例如,在初中开源硬件体验《智能小助手——噪音检测仪》一课中,面对如何定时获取教室环境声音,并根据音量大小做出相关提示这个问题,在概括阶段,引导学生进行深度探究,发现解决这个问题的核心就是“响度”这个变量数值的获取,以及“指定数值”的确定,通过二者比较判定符合“环境声音太大”情况。就计算思维的培养而言,课时内容涉及了从传感器获得数据并进行赋值,指定数值的确定,落实在具体数据上就是将“响度”变量的数据进行分类,然后根据具体分类情况,利用分支结构,让计算机执行不同的操作。

2.找准锚点提升计算观念

计算观念是学生思维的产物,是通过问题解决,由思维活动产生的某些具体的思想。这些观念可能会随着知识面的拓宽、思维能力的发展而不断成熟。在教学过程中,要寻找问题解决过程中学生思维发展的着力点,使其领悟学科思想、学科观念。

以解决1+2+3+4+5+6的累加问题为例,根据中学生已有的认知,能够在掌握顺序结构基础上,进行简单的代码编写。方案一:用简单语句s=0,s=s+1,s=s+2,一直到s=s+6,最后输出s的值。方案二:在简单算术运算基础上,发现数列的规律,使用计数器,用相关变量的累加代替具体加数,采用语句s=0,i=1,s=s+i,i=i+1,s=s+i,i=i+1,一直到i=6,输出s+i的值。方案三:学习新知利用循环结构。能够发现这三个方案之间的区别,就是学生计算观念发生飞跃的过程、基于问题解决的计算思维的领悟,以及通过问题解决实现从知识掌握到思维发展的跨越。思维发展的着力点在方案二,它是学生在能够解决的方案一的基础上,提出的关于i=i+1、s=s+i就是带有普遍性和代表性的计数器、累加器的初步应用,能够在同类型问题中继承应用。将此作为提升计算观念的锚点,能够基于方法观察、对比、探究,有效地发展学生的思维能力。在具体问题解决过程中,引导学生意识到,发现有价值的算法、提出高效的算法等,比最后的编程实现更有意义。

●思路交流拓展问题解决,实现计算思维的能力迁移

1.交流思路内化所学

在计算思维培育过程中,围绕解决问题的方法进行思路交流,可以让学生发现设计的算法的优点与不足,并不断优化改进,明白问题的解决是循序渐进的过程,也可以让学生实现从掌握解决问题的方法到方法的创新。同时,可以帮助学生内化所学知识,为后续的迁移解决相关问题打好基础。

例如,在解决期末成绩判定等级的问题时,学生的差异性体现在会采用比较简单的单分支语句if cj>=90 and cj<=100:print('优秀');if cj>=70 and cj<90: print('良好');if cj>=60 and cj<70:print('合格');if cj<60 and cj>=0:print('不合格')。虽然这样的算法能够解决问题,但不是追求的最优算法。在交流过程中,学生通过将多个单分支的流程图的串联,与多分支结构依据条件判断分类执行的情形相比,明确在单个数据的判定上,采用单分支结构做了许多冗余的操作,得到其执行的效率太低,在遇到大量数据的时候,就会大大影响执行速度的结论。思路交流让学生明确了算法的不断改进优化需要更好的解决方法,同时内化了所学的相关知识。

2.拓展问题情境实现迁移

在教学中,学生通过交流、分享具体问题情境下的解决方法,尝试形成普适性的问题解决模型,能够领悟学科思想,提升思维能力。

基于具体项目或问题,初中生会学习相关开源硬件的内容,以具体传感器应用为逻辑主线,涉及通过诸如湿度传感器进行土壤湿度数据采集与数据处理,决定是否启用花卉灌溉设备等,学生在比较是否使用传感器处理同类问题的效果异同,掌握应用湿度传感器解决问题的同时,通过学习交流,拓展到对使用光敏、声敏、热敏等传感设备来解决灌溉、照明、加热等问题的思考,以及复杂情境问题的解决,让学习视野、思维不再局限在课时内容范围内,而是通过一个问题的解决,可以从容面对相似的问题。

综上所述,基于问题解决,在抽象、分解、算法、概括等方面发展中学生的计算思维,能够让学生了解并正确对待计算机科学、信息技术相关的系统、问题、行为,能够从设计者的角度去思考和解决问题,理性对待问题,不断提高问题求解能力。

猜你喜欢

变量算法解决问题
浅谈列方程解决问题
“解决问题的策略:一一列举”教学实录与反思
Travellng thg World Full—time for Rree
两只想打架的熊
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
分离变量法:常见的通性通法
智珠
不可忽视变量的离散与连续