赵珺 山东省威海经济技术开发区皇冠中学
本单元是六条逻辑主线中“身边的算法”与“过程与控制”两大内容模块的学习基础。本单元借助学习与生活中的实例,让学生体验身边的算法,理解算法是通过明确的、可执行的操作步骤描述的问题求解方案,并能用自然语言、流程图、程序代码等方式描述简单的算法。让学生了解算法的基本特征,能分析简单算法的执行过程与结果,初步体验在解决同一问题时,不同算法的差异性。
利用生活的实例,引导学生自觉利用计算机科学技术思想和方法分析问题,主要的思想方法是将复杂的问题简化,将烦琐的问题分解,学会将问题的重点进行从整体到局部的转化。利用对问题的抽象、建模,运用合理的算法求解问题,主要的方法是将具体的问题抽象,将无序的问题整理成有序的问题,将具体的案例构建成数学模型,把具体的求解方法转化为算法,并能将求解问题的方法应用于其他同类问题的解决中。
在学习本单元内容之前,大部分学生没有主动思考智能生活背后的具体原理与技术,随着本单元的学习的加深,算法、算力、大数据等概念的引入与理解,会给学生的认知带来一定的冲击力。
①理解算法的概念与算法的形成过程。
②能够用自然语言、流程图等方式来描述简单的算法。
③了解算法的基本特征及基本控制结构,能分析简单算法的执行过程与结果,并通过程序进行验证。
大任务内容:活动主题——沙漠绿化活动。
任务执行:确定主题、抽象问题、分解问题、建立模型、描述算法、程序验证。
图1
1.单元目标
①借助学习与生活中的实例,体验身边的算法,理解算法是通过明确的、可执行的操作步骤描述的问题求解方案,能够用自然语言、流程图等方式描述算法。
②学习过程中涉及简单的抽象、分解、建模、算法设计等思维活动,提升计算思维。
2.学习目标
①从“沙漠绿化”实例入手,自觉利用计算机科学技术思想和方法分析问题,将复杂的问题分解,将烦琐的问题简化,学会将问题进行从整体到局部的转化,并使用自然语言描述算法。
②利用“求绿化树苗数量”的问题对具体问题的抽象,将无序的问题整理成有序的问题,将具体的事例构建成数学模型,把具体的求解方法转化为算法,同时学习用流程图描述算法。
③“对求树苗数量算法的优化”利用多种算法解决同一问题,体验利用不同算法解决同一问题在空间效率上的差别,提升学生对算法的理解。
④拓展活动,提升举一反三的能力,能够将求解问题的方法应用于其他同类问题的解决中,并能用恰当的方式描述算法。
3.问题序列
①用自然语言描述树苗数量的方法与步骤。
②用计算机解决问题的思路求树苗数量的方法与步骤。
③用流程图的方式将算法描述出来并进行优化。
?
4.评价方案(如上页表)
5.学习进程设计
环节一:情境引入,引出“沙漠绿化”算法
学习任务:用自然语言简单描述本质问题的解决方法。
塔克拉玛干沙漠是中国最大的沙漠,被称为“死亡之海”。直到20世纪90年代,建设者在这片浩瀚的大沙漠中创造出令世人惊叹的绿色奇迹。(观看视频)
①为改变沙漠的环境,项目要求在这片沙漠上种植一片胡杨林。现在知道胡杨树种植的间距为4米。那么,我们需要订购多少棵胡杨树苗呢?
引导学生思考问题:沙漠的面积有多大?每棵胡杨树的占地面积是多少?需要多少棵胡杨树苗?
②用语言来描述具体的算法。
第一步:计算出沙漠的面积。
第二步:计算出每棵胡杨占地的面积。
第三步:两面积相除,计算出需要的树苗数。
设计意图:设置绿化沙漠的情境,引导学生从情境中抽象出本质问题,并简单描述算法。将算法进一步转化成计算机能够看懂的语言,从而引出后面的学习。
环节二:分解建模,设计算法
学习任务:分解建模,将算法设计进一步细化成计算机能够读懂的算法。
①怎样计算可以求出沙漠的面积?
在地图上勾画出沙漠的形状,然后将不规则的图形分解成能够进行计算的图形,根据测量的数据求出沙漠的面积(如图2)。
图2
细化算法:先沿边缘画出地形并测量,然后分别求出梯形面积a(a=(12+13)*9.8/2)与两个三角形的面积b(b=7*7/2)、c(c=6*8/2),再求和得出沙漠的面积为s(s=a+b+c)。
设计意图:从复杂的情境中抽离问题,将看似不能解决的问题转化为可以解决的问题,将复杂的问题分解成小问题,让学生用转化的思想解决问题。
②每棵树苗的占地面积是多少?
胡杨树苗的种植间距为4米,计算出每棵树的占地面积(建立模型)。
设计意图:在解决这个问题时,学生大概会提出图中的三种想法(如下页图3),建立模型可以帮助学生正确理解问题。这个过程的意义在于引导学生用建模的思想解决问题。
图3
③描述算法。
第一步:沿边缘画出地形并测量,然后分别求出梯形面积a(a=(12+13)*9.8/2)与两个三角形的面积b(b=7*7/2)、c(c=6*8/2),再求和,得出沙漠的面积为S(s=a+b+c)。
第二步:计算出每棵胡杨占地的面积为n(n=4*4)。
第三步:用s/n得出大约需要的树苗数m(m=s/n)。
从问题中抽象出6个变量,分别表示沙漠的面积s=a+b+c,小树苗占地的面积n,树苗的棵数m,建立的变量关系是m=s/n。在求得沙漠面积的过程中,利用切割的方式求得总面积,最后将解决问题的整个过程描述出来,就完成了算法设计。
设计意图:让学生经历解决问题的具体过程,学习分解与建模思想的实际应用,同时帮助学生理解算法设计的过程。
环节三:用流程图描述算法,并进行分析优化
学习任务:用流程图完成算法,并运行出结果。
用自然语言描述算法虽然比较简单,但是写的时候会比较烦琐。可不可以画出来?
①学习流程图图例,对照前面的算法,尝试着把它画出来。
②打开“画程”软件,尝试操作,完成求树苗的算法流程图,并运行。
设计意图:利用“画程”将自然描述的算法转化为流程图,并能在计算机上运行出结果,体验流程图的清晰明了,帮助学生理顺解决问题的逻辑思路,理解计算机解决问题的过程。
③用程序描述算法。
第一步,用“画程”软件直接可以转换到编程环境运行。用程序描述算法,就完成了从人解决问题的方式向计算机解决问题的方式转化。
第二步,对算法流程图进行深入分析,能否优化步骤。
设计意图:利用“画程”将流程图转化为程序代码,在计算机上运行出结果。同时,将程序进行简化,帮助学生理解算法优化思想。
环节四:总结提升与拓展延伸
知识梳理:
①算法描述方式的特点。
自然语言:简单,但繁琐。
流程图:直观、清晰、易懂。
程序代码:熟悉某种程序语言。
②算法设计思路。
抽象问题:具体—抽象、无序—有序。
分解建模:复杂—简单、数据—变量、个案—模型。
算法描述:自然语言、流程图、程序代码。
设计意图:帮助学生理解不同算法描述的特点,理顺算法设计的思路。
6.作业设计
①完善:采用不同的方式,描述“沙漠绿化”活动需要树苗数的算法。
②用流程图描述:输入正方形的边长,输出正方形的面积和周长。
设计意图:作业①的难度较低,目的是巩固本节课所学的内容;作业②的难度提升,目的是提升学生的应用能力。
1.注重从问题情境抽象本质问题的过程
在计算沙漠的面积时,学生的理解比较顺利。但是在求每棵树苗的占地面积时,学生的理解出现了多样化。当每相邻的两棵树苗的间距为4米时,学生有了不同的思考。教师引导学生通过画图、描点、分析、归纳,终于明确了每棵树苗的占地面积。这个解决问题的过程,对学生来说就是如何从情境问题抽象到本质问题的过程。
2.注重把大问题拆解成小问题的过程
当把问题从情境中抽象出来后,如何将大问题分解成小问题,也是理解算法的重要环节。通过对本质问题的思考,将树苗棵数问题转化为绿化面积与每棵树苗占地面积两个小问题。在学习过程中,引导学生注重思考的过程,而不是问题本身,这样学生解决问题的思路就能慢慢清晰。
3.注重用不同方式描述解决问题的过程
采用不同的方式描述解决问题的过程,目的是培养学生将自然语言结构化、逻辑化、图形化,更清晰地描述出各要素之间的关系。这样更有利于学生生成解决具体问题的思路,并对其进一步优化。学生在操作时,运用了“画程”软件,更直观地理顺解决问题的思路,同时可以直接运行程序结果,实现计算机解决问题的自动化过程。
本节课算法的学习以实际问题为载体,借鉴了学生较为成熟的数学基础,选择了学生熟悉且没有认知障碍的问题。在解决问题的过程中,学生要选择用符号表示事物,要分析跟踪算法的执行,要理解信息、数据和算法之间的关系,要体会问题求解过程的自动化。计算思维的两个核心要素是抽象和问题求解过程的自动化,两者在本课的学习过程中都得到了比较充分的体现。
从教学的效果来看,学生顺利完成了本节课的学习目标。在最后的小结环节,能够感受到学生初步理解了从人解决问题到用计算机解决问题的自动化过程。算法不仅是一个概念,更是让学生解决实际问题的能力,在课堂上,教师要通过设计真实的学习活动,让学生充分体验解决问题的过程即算法形成的过程,真正地提升学生的学科素养。