《为超市寻找关联次数最多的商品》教学案例
2021-12-24孙轩展
孙轩展
● 教学内容分析
本课选自浙教版《必修1数据与计算》第二章的项目挑战,围绕“数据”和“算法”这两个学科大概念展开。通过项目的实施,引导学生初步领悟数据的价值、数据计算的意义,同时能初步运用与算法和问题求解相关的知识与方法,设计算法,为编程解决问题提供支撑。
● 学习对象分析
本课面向浙江省三门中学高二政史地班的学考生,通过前阶段的学习,学生已经了解算法解决问题的过程,初步具备根据实际问题进行抽象与建模并完成算法设计与描述的能力。但考虑到项目涉及二维结构组织数据以及多重循环,学生会感觉有一定的难度。
● 教学目标与所指向的核心素养
①通过寻找三个流水号中关联次数最多的商品,对超市流水数据进行分析和组织,建立解决问题的计算模型。
②能够正确地设计寻找最多关联次数商品的算法,选用合适的方式描述关联次数的统计过程。
③通过完整项目的实践体验,感受算法和数据服务学习生活的价值,逐步形成运用计算机科学领域的思想方法解决问题的意识。
● 教学流程
1.提出项目
师:(播放视频《啤酒与尿布的故事》)同学们,看完刚才的视频,你们知道为什么啤酒和尿布会被摆放在一起销售了吗?
生:因为在美国,男人们在给孩子买尿布的同时会买啤酒犒劳自己。
师:老师昨天来到三门中学,发现学校里也有一个超市,叫三中超市。如果你们就是三中超市的老板,那么你们想不想知道,哪两个商品摆放在一起会被同时购买的次数最多?
生:想!
师:如果两个不同的商品同时出现在一个购物篮中,就称这对商品关联一次,与商品的数量多少无关。今天就让我们一起找出三中超市里关联次数最多的一对商品。
设计意图:通过真实情境的创设,赋予学生小卖部老板的角色,在提升项目代入感、激发学习内驱力的同时,完成问题界定,明确本节课要解决的问题。
2.抽象与建模
师:老师收集了超市昨天的购物流水记录,部分内容如图1所示,如果只有这些数据,你们能从中找出关联次数最多的一对商品吗?
探究活动1:学生找出三个流水号中关联次数最多的一对商品,将答案记录在学案上,并通过平板拍照提交。
师:同学们都找出来了,而且结果也是正确的,我们请最快完成的同学来说说看,你是怎么找的?
生:先找流水号相同的,然后统计每个流水号里各商品之间的关联次数,最后找出哪两个商品的关联次数是最多的。
师:我们将这位同学说的过程总结一下(边引导边板书)——①找同一流水号的商品,②统计各商品间的关联次数,③找出最多关联次数。通过刚才的探究,要实现商品关联次数的统计,我们需要从超市流水记录中提取哪些数据呢?
生:商品名、流水号、货号……
师:提取的数据之间又有什么样的关系?这种关系该怎么表示?老师给大家一张表,请同学们思考所需数据之间的关系,并将提取的数据整理到表中。
探究活动2:学生在学案里将需要提取的数据整理到相应的表格中,并通过平板拍照提交。教师选取几个有代表性的结果进行展示和评价。
师:我们来看这位同学整理的结果,请说说你的想法。
生1:将同一流水号的商品放在一起,每一行是一个流水号,以及该流水号中的商品名称。
师:所以你提取的是流水号和商品名称,这样整理很直观。我们再来看另一位同学的结果,似乎有些不一样,请说说你的想法。
生2:其實和前一位同学差不多,只不过我存的是每个流水号里的商品货号。
师:为什么你想到了要用商品货号?
生2:因为商品名称太长了,用货号表示比较简单。
师:这位同学很有想法。其实刚才同学们也几乎都是用这两种方式来整理,想表达的意思是一样的,就是每一行都表示一个流水号内的商品,请同学们想一想,这样整理后,与流水号具体是多少还有没有关系?
生:没有关系。
师:没错,提取流水号的作用是为了让我们把相关联的商品放一起,而现在相关联的商品都处于同一行了,我们可以把它变得更精简。(课件呈现结果)第一行是第一个流水号的商品,第二行是第二个流水号的商品。我们可以用info[i,j]表示这张二维表格(教师板书),i为行号,j为列号,表格里的元素可以表示为info[1,2]="A001",指的是第1行第2列的值是A001,含义是第1个流水号中的第2个商品的货号为A001。现在你们能说说info[i,j]表示的含义吗?
生:表示第i个流水号中第j个商品的名称或货号。(教师板书)
师:这张表格的行列数由什么决定?
生:行数是流水号的数量,列数是每个流水号内的商品数量。(教师板书:流水号数m,第i个流水号内商品种类数qi)
师:将同一流水号的商品整理好以后,接下来要做什么?
生:统计关联次数。
师:没错,统计关联次数就是先把各流水号中两个商品之间的关联情况列出来,然后进行统计,请同学们完成这一过程。
探究活动3:学生在学案中根据引导完成关联次数的统计。教师展示几位同学的统计结果。
师:请一位同学来说说你的统计方法。
生:将同一流水号里各个商品的关联罗列出来后,再一个个数过去,进行汇总。
师:老师发现同学们几乎都是这样做的。罗列出各个商品的关联情况,这个大家都做得很好,但是之后在统计的时候都是通过数的方式,这样做没有条理性,当数据量更大的时候容易遗漏,有没有什么办法进行关联次数的有序统计?老师这里也同样提供了一张表格,请同学们展开讨论与思考,看看能否用这张表格来统计关联次数?
探究活动3:学生通过小组讨论,思考使用表格统计关联次数的方法。教师展示几位同学的统计结果。
师:我发现有几位同学已经想到了,请其中一位来演示使用表格统计的过程。
学生在教室一体机上演示统计的过程。
生:在第一个流水号里,商品货号A004和A001是关联一次的,将货号简化为4和1,这样表格的行列号恰好可以当作商品货号,然后就在表格第1行第4列位置加1,第4行第1列加1。
师:这位同学很聪明,他先把货号简化成1,2,3,……然后将表格的行列号看作商品货号,进行关联次数的有序统计,最后表格里的数据就表示商品之间的关联次数。我们记这张表格为num[i,j],它的含义是什么?
生:货号i和j的关联次数。(教师板书)
师:你觉得表格的行列数由什么决定?
生:商品种类数。(教师板书:商品种类数n)
师:根据统计的结果,怎么找出最多关联次数的商品?
生:在num[i,j]中找到最大值,即为最多关联次数maxnum,它所在的行号和列号就是这对商品的货号。
教师板书计算模型:
设计意图:抽象与建模是本课的重点,对学生来说也有一定的难度。按照分治的思想,可以从较小数据规模的问题入手:在三个流水号中找出关联次数最多的一对商品。学生经历了解决问题的过程后,能够梳理出“整理同一流水号商品”“统计关联次数”“寻找最多关联次数”的基本步骤,接着围绕三个步骤不断细化、层层递进,通过多个项目探究活动引导学生提炼核心要素,建立计算模型。
3.设计算法
师:问题的抽象与建模已经完成,现在请同学们结合提炼的核心要素和计算模型,按照“輸入数据”“处理数据”和“输出结果”的步骤,设计算法描述寻找最多关联次数商品的过程。
探究活动4:学生以小组为单位,讨论解决问题的算法该如何设计,将结果填写在学案中,完成后以小组为单位提交成果。教师选取几个小组的成果进行展示,并做出评价。
设计意图:通过探究活动1梳理出解决问题的方法已经是算法的基本框架,教师只要引导学生按照“输入数据”“处理数据”和“输出结果”的步骤,将解决问题的方法与提炼的核心要素和计算模型进一步结合,即可完成算法设计。
4.描述算法
师:虽然算法的设计已经完成,但老师发现刚才在统计关联次数时,同学们并没有按照一定的逻辑顺序列出商品的关联情况,甚至还出现了遗漏,那么计算机该如何有条理、不遗漏地统计各商品之间的关联次数呢?请同学们根据老师提供的引导问题,描述统计关联次数的算法过程。
探究活动5:学生以小组为单位,讨论和解决问题,描述统计关联次数的算法过程。
师:同学们刚才用自然语言完成了算法的描述,如果要真正解决这个问题,我们需要编写程序来实现,请同学们尝试用最接近程序语言的伪代码来描述统计关联次数的算法过程(如图2)。
探究活动6:学生使用伪代码描述统计关联次数的过程。教师对学生展示的算法设计成果做出评价。
师:我们还可以细化寻找最多关联次数的算法过程,留给同学们课后解决。
设计意图:虽然算法的设计已经完成,但学生对如何统计关联次数以及如何找出最多关联次数的算法过程仍然是模糊的,需要进一步细化。而统计的过程涉及了多重循环的思想,难度较大,可以通过问题的引导先让学生用自然语言描述出这一过程,再循序渐进地将自然语言转换成接近程序语言的伪代码,深入理解多重循环结构的执行过程与含义。
5.课堂小结
师:本节课我们围绕寻找超市关联次数最多商品这一项目进行了抽象建模、设计算法和描述算法,在问题解决的同时也体现出了数据的价值和数据计算的意义。除了寻找最多关联次数的一对商品,请同学们想一想还可以做哪些关联分析来帮助超市提高销量?
设计意图:对整节课的内容进行回顾和总结,抛出更多关联分析的问题,意在让学生从真实情境的需求出发,对本项目有全面和深入的思考,在实现对所学知识迁移和应用的同时,引导学生真正领悟数据的价值和数据计算的意义。
● 教学反思
(1)为了能够更好地达成目标,笔者搭建了一些学习支架和探究活动,想把重心放在如何引导学生一步步理解和完成项目的抽象建模和算法设计上。但因为觉得此课题是挑战项目,对学考生来说太难,老师带着分析都听不懂,又如何开展项目式学习?因此,本节课最大的问题是没有按照项目式学习的理念来开展教学。
(2)学习支架是项目式学习的助推器,本节课设计的学习支架,主要的类型是提示性问题、探究活动和图表,彼此之间是由浅入深、环环相扣的,设计时站在学生的角度,思考可能遇到的困难,非常贴近学生的最近发展区,学生经历探究活动后生成的阶段性成果,能够体现出他们的思维和能力素养。从课堂中学生的表现可以看出,设计恰当的项目式学习支架能够有效解决学生在学习中遇到的困难。教师只要愿意转变理念放手一试,相信在学习支架的引导下,学生一定能够以项目式学习的方式高质量地完成这个项目。
(3)针对本节课的项目,笔者将学生的项目设计方案书中各探究活动生成的阶段性成果作为过程性评价,以评价量规表作为终结性评价。评价量规表包含了“评价指标”和“评价等级”等要素。其中“评价指标”涵盖了项目实施过程的各个环节和结果,体现对项目化学习的全程评估;“评价等级”划分为三个级别,分别对应不同的分值,不同评价等级指向了学科核心素养的不同水平层级,是逐级加深递进的。不过由于在设计的时候比较匆忙,评价标准过于笼统和形式化,可进一步与具体项目内容和学生实际表现相结合。
点 评
本课教学设计以“学生扮演超市老板的角色,寻找学校超市中关联次数最多的商品,为商品摆放提供依据”作为项目内容,学生根据教师精心设计的问题和探究活动,在主动探究和小组合作中实现问题解决,提升计算思维,领悟数据的价值和计算的意义。
在教学过程中,教师以“表格”为支架,引导学生寻求合理的解决方法,将复杂的情境内容进行抽象建模,而不是将任务直接“硬塞”给学生,由“要我学”变为“我要学”,充分体现“以学为主”的教学理念和信息技术学科特点。在方法指引中,由“特殊”到“一般”,由“简单”到“复杂”,循序渐进,符合学生认知规律,学生学习主动性高,很好地突破了本节课的难点。同时,师生共同以平板和数字化平台作为学习工具,学生实时提交阶段性成果,教师把课堂生成的问题作为资源,在肯定学生方法思路的基础上,引导学生比较不同方法的优劣,体现数字化学习环境的优势和对学生个性思维的尊重。
总之,本课的项目任务情境真实,目标明确,完成度高。但在活动任务时间分配上,可以给予学生更充足的时间,让学生在小组讨论中发表个人观点,提炼自己解决问题的方法。
(点评人:浙江省台州市教育教学研究院信息技术教研员 王银萍)