信息技术学科大概念下选考复习策略实践研究

2022-04-02 09:46劳立颖浙江省杭州市余杭高级中学
中国信息技术教育 2022年7期
关键词:题意编程算法

劳立颖 浙江省杭州市余杭高级中学

信息技术选考复习中以算法问题为重,内容多、难度大、变化多,各算法相互独立,故复习时常以专题课的形式出现,一个专题对应一个算法,所以学生对算法的认识是又多又难,还分散。而近年的真卷压轴题,富于变化,要求学生在短时间内理清题意,梳理各变量含义,这对学生搜集处理信息、分析数据解决问题能力进行了综合考查。而学生对如何解决压轴题没有掌握,原因主要是不能较快地抽象出算法,完成程序实现。所以,在平时教学中,教师需要加强学生对算法的理解和应用,让学生能较熟练地使用算法模型。

高三首考后,学生经历了一次高考和两轮复习,到二考前的复习阶段,会产生复习疲态,所以需要一种比较新颖的复习方式,而从“大概念”出发,能防止碎片化的教学,整合知识结构,构建关联知识体系,实现学科知识的整体性。围绕“大概念”组织体系,在更大的“概念”中指引他们进行复习,将各个专题从广度、深度上进行联接,将知识点间的点状关系拓展为网状关系,引导他们思考和解决实际问题,这也是全面提升学生信息素养的需要。下面,笔者以算法复习为例,探讨基于学科大概念的复习策略。例如,针对“买礼物”问题(如图1),可在复习中增加对生活问题解决的算法思考,给学生提供能一题多解的问题,以系列教学的方式进行选考复习,进而帮助学生学会用多种方法思考如何解决问题,并通过实践应用,提升相应的计算思维和信息意识。

● 学科概念统摄,从宏观到微观,产生知识主线

针对上述问题,在展开大概念相关的一题多解系列复习策略时,教师可以从以下几个方面入手。

1.抓取算法特征,促进解题多样化

图1 问题提出及分析

在分析问题时,教师可以根据不同的算法,转化出不同的解题思路,并运用各个算法的典型特点对问题进行求解。通过问题的解决,帮助学生掌握问题中各个条件之间的内在联系,培养学生运用计算科学领域的思想方法界定问题、抽象特征的能力,从而建立结构模型,提升学生对算法的理解和运用能力。“买礼物”问题可以采用以下三种方案解决:

方案1——先求得商品的单位喜爱度,并按单位喜爱度进行降序排列,此方案不需要预先处理区间段的和,只需要从喜爱度性价比最高的商品开始,能买则买,不能买则不买,这是“贪心”算法思想的应用。

方案2——先得到所有的商品件数,再按每件商品买或不买进行枚举,故将0~2nc-1个数转为二进制数,用0与1模拟每个商品购买情况。当商品数与商品金额符合条件时,能得到的最大总喜爱度就是结果。枚举所有可能的情况,体现了“全排列”算法思想。

方案3——先求得1~i个元素的和,取出区间段进行处理,这个方案需要先对数据进行预处理,再使用处理好的数据进行区间段求和操作,这里使用了“前缀和”的算法思想。

2.搭配解题方法,拓展解题灵活性

教师在教学中,要有意识地给学生渗透解决问题的策略,引导学生灵活地掌握问题间的联系,进而培养和发挥学生的创造性。在学生解决“买礼物”问题过程中,当生成多条件表达式问题时,教师可以给出三种不同的解题策略。

①循环变量甄选条件。在方案1中,若能购买单位喜爱度最大的某种物品,则继续购买;若不能购买该种物品的所有商品,则仅购买可以买入的商品件数。所以,在1~m种商品中,需要用内层循环实现每件商品的是否需要继续购买。在甄选do语句循环条件时,由于该条件由多种情况组成,甄选难度比较大,但可以由循环变量的作用来进行甄选。在如图2所示的程序段中,循环体内部有4个变量:j表示第i种商品的第j件,p表示剩余的礼物数,n表示剩余的金额数,zxa表示总喜爱度。学生先挑选出的循环变量有j、p、n,并得出循环条件是某件商品件数还有剩余,礼物数还有剩余,金额还能购买下一件商品,故表达式为“j0 And n>=dj(i)”。

②题意分析判定条件。如图3所示,方案2使用了全排列的算法,i从0到2^n-1遍历,在内层循环中,第一个循环语句完成了在数组goumai中存储了每件商品的购买情况,第二个循环语句完成了对每种购买情况的统计,完成了份数fs、金额je、总喜爱zxa的计算。根据题意,当礼物人数达到p件、金额不超过n、总喜爱值较大时,更新相应的变量,所以表达式为“zxaje<=n And zxa>maxzxa”。

③画图帮助理解题意。方案3使用前缀和算法解决问题,在解决上述程序段问题时,可以画图来帮助理解题意(如图4)。在1~nc件商品中,其中①②表示第1种、第2种商品,当找到对应的maxi位置的商品时,需要将maxi~maxi+p-1共p件商品信息整合输出。从程序段分析,其中k为购买每种商品的件数,这里有两种情况,只要满足其一即可。第一种情况:商品①和商品②的货号不同,可输出商品①的购买情况,所以可以得到“hh(j)<>hh(j+1)”这一条件。第二种情况:若maxi+p-1未指向一种商品的结束位置,但已经到了礼物购买的最后一件,所以也可以输出该商品的购买情况,由此可以得到“j= maxi+p-1”这一条件。所以可得表达式为“hh(j)<>hh(j+1) Or j=maxi+p-1”。

图2 方案1程序段举例

图3 方案3程序段举例

图4 画图帮助理解题意

3.分析算法特征,实现解题有效性

在课堂教学中,教师可引导学生讨论方案的特征,归纳方案对应的算法,实现对问题的回顾。

4.巧用算法特点,实现解题适用性

根据不同的知识经验与认知水平,不同的学生对同一个问题的解题思路不同,结果就有差异。教师需要引导学生结合不同的情境和生活实际,对结果加以评价、交流、总结,从而拓宽学生的解题思路,培养和提升学生的核心素养。在本问题的解决中,三种方案解决问题的过程不同,效果也有所区别,学生在对三种算法进行比较时,就会发现三种算法的不同之处,也会去思考三种算法各自的适用范围。

● 系列教学组织,从微观到宏观,实现概念进阶

由于该问题涉及多种算法,所以该问题的解决可以设计为系列教学,从微观到宏观,实现概念进阶,如图5所示。

1.前置教学,布置任务

图5 系列教学流程

首先进行三种算法的前置课时,每个算法设计一至两节课,完成对算法的概念、特征的认识,并分别使用三种算法解决问题,能描述算法并编程。布置相应的作业:分别使用这三种算法对“买礼物”问题设计购买方案。

2.设计方案,课间分享

学生课后完成作业,两人一组,分别写好自己设计的购买方案,然后交换方案并交流讨论,用不同颜色的笔迹呈现批改与讨论的结果。交流讨论后,学生对算法会有更深的认识,也会提出算法中遇到的一些问题,进而为后面的编程实践提供帮助。

3.实践交流,编程实现

实践课是系列复习中的总结课。本节课将基于前阶段的学习,创设利用算法解决问题的情境,让学生经历将实际问题形式化的过程,掌握常见算法的描述、编程及应用的方法。通过用多种方法解决问题,学生才能深入理解算法的特征,有意识地应用算法解决实际问题,达到拓宽解题思路,提升信息意识和计算思维的目的。

4.关联生活,编程应用

实践课时笔者布置了作业:请任选一个算法,用生活的例子设计一个编程题的题干,并请同伴编写相应的程序。在所有学生完成出题与编程的作业后,还可以开展分享交流,探讨题目中的问题、解决方案的优劣,真正实现算法在生活中的应用。

● 成效与反思

1.成效

①算法认识深入。通过一题多解的系列复习策略,学生不但对算法的概念与特征有了更明确的认识与理解,还对算法的功能与适用范围有了深入的思考。

②问题抽象精准。通过一题多解的系列复习策略,学生掌握了解决问题的多种方法,提升了计算思维和分析思考能力,能在更短的时间内理清题意,梳理出各变量含义,抽象出算法,并通过算法引导自己完成程序实现。

③学习兴趣提升。一题多解的系列复习策略让生活中的问题焕发生机,学生对生活问题的思考、算法编程的交流都非常积极,学习兴趣显著提升。

2.反思

①问题整理与提出。在选考复习系列教学中,最重要的是找到能使用多种算法的问题。但由于该问题需要多种方法完成,故在提出问题时,不能将解决方法描述得非常详细。一旦问题描述过于详细,解题方法已经指定,学生就不会用多种方法解题,一题多解也就无从谈起。

②教学组织与实施。“买礼物”问题的系列教学的组织,前后至少5节课,如果是算法基础不太好的班级,最终可能需要8节课,教学学时过长,学生会产生厌倦的情绪。所以,基于学科大概念的复习需要考虑教学组织与实施,恰当分解与重构问题,实现教学目标。

猜你喜欢
题意编程算法
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
Travellng thg World Full—time for Rree
三角、数列基础训练A卷参考答案
编程屋完成数百元万天使轮融资
学编程,先画画
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
一道课本习题的变式探究