《教案非数值计算教案教科版2019必修1.docx》由会员分享,可在线阅读,更多相关《教案非数值计算教案教科版2019必修1.docx(9页珍藏版)》请在第一文库网上搜索。
1、教学单元计算与问题解决教学主题非数值计算教学目标知识与技能 能够理解分治思想和递归方法; 能够利用递归方法设计相应程序; 能够基于不同场景分析编写程序。过程与方法 通过在练习活动中不断将问题与大概念相结合,促进和提升问题解决能力。情感态度价值观 通过在游戏中体验程序设计的乐趣和逻辑思维的严谨。核心素养培养能够分析问题时将其理解为数学问题,并通过合理、严谨的算法进行程序设计,提升问题解决能力和计算思维。教学内容二分查找;分治思想;递归思想教学媒体电子白板、PPT教学过程教学环节教师活动学生活动设计意图游戏导入【寻找假币游戏一一在IOO个硬币中找出伪币】有100个硬币,其中有1个伪币,它除了质量比
2、真币轻一点之外,没有别的区别,如何通过天平快速找到这个伪币。学生讨论并说明寻找假币的关键点:1、如何判断假币;2、如何找到假币。如何判断假币? 厚薄不均匀 色泽不光滑 重要不一致通过游戏让学生从问题解决中学会如何抓住问题的关键问题,解决关键问题便是解决问题。在教师的引大家自己查找资料并讨论。引入二分查找如何找到假币?分治思想导下了解引入二分查找方法。激发学习兴趣。I100个碑币,1个轻的|向叵以重量判断为例,重量轻就是假币。首先是将IOO个硬币分成回回国叵ISS000两个50,使用天平进行衡量,然后确定伪币在比较轻的那50个里,接着再将50分成2个25,将25分成两个12和1个1,将12分成2
3、个6,将6分成2个3,将3分成3个1,这样6次就可以找到伪币,比50次少很多。活动探究【知识点一、二分查找】请总结说出如何查找单词“book”的算法。1、从字典本的中间开始翻找,找到字母b的所在页码区域:2、从字母b的区域中间翻找,找到。的所在页码区域:3、重复上述翻找,直到查找到字母ko学生尝试说明如何去查找单词,并在教师引导下总结步骤:(I)数据排序将数据有序排列:先将一个数据集进行有序排列(2)数据分半:就是将排序好的数据集切分成大致相等的两份数据集;(3)查找数据:在前述寻找假币游戏的导入下,充分激发学生对课堂的好奇心,但是假币并不足以完全作为二分法内容的案例,利用寻找单词查找的时候直
4、接和拆分数据集中的第一个或最后一个元素进行大小比较,不满足则表示数据不存在于该数据集中,满足则说明要查找的元素存在于当前数据集中。游戏来让学生总结步骤,并让学生体会二分法步骤。【练习】将查找下面数组中的10数组1:1、5、6、9、10、20、21数字2:9、10、33、45、76、90、100学生按照二分的方法,自己尝试寻找各数组的IOo通过数组练习法,再次数组1:1、5、6、9、10、20、21分别引导学生进行第一次、第n次的排序方法和结果。让学生模仿并对照,激发思维活力。IIIJ1502I叵nd(M.rhty2(Hi.B*.e*HSO1EDZ*mM1.BS*g1 M,?;.】实践理论知识,
5、深化和巩固二分法的实际操作方法,并在探究学习中不断熟练掌握二分方法,为后续二分算法和程序设计打下知识基础。自主练习数组2:9、10、33、45、76、90、1001B一次1eftright911Gii却蟠务二1ftright位933经过两轮数组二分查找的练习后,学生已经能够完全进入程序设计阶段,跟随教师的引导自主总结算法结构和代码内容。由学生讨论教师引导,分析并设计出二分法的核心程序和主程序。播放【数组二分】的结果演示视频。核心程序:deferfen(array,key):Ieft=Oright=1en(array)-1whi1e1eft=right:mid=(1eft+right)2ifar
6、raymidkey:right=mid-1e1se:returnmid主程序:array=9,10,33z45z76z90z100key=10array_index=erfen(array,key)print(arrayjndex)【知识点二、分治】1、分治策略分治的设计思想,是将一个难以直接解决的大问题,分割成一些较小的同类问题,各个击破,最终达到解决问题的目的。二分查找实际上就是分治策略的一认真听讲并记笔记。学生在二分基础上更容易理解分治策略。在前述的游戏探究和问题解决中,已经理解了二分种典型运用。2、二分法二分查找又叫折半查找,该方法主要将数列有序排列,采用跳跃式的方式查找数据。以递增数
7、列为例,先以中点位置的元素作为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。每一次比较后都可以将查找区间缩小一半。补充教材上的代码并运行结果,调适bug。法,因此从特殊向一般进行抽象理解分治策略,有利于问题解决能力提升和抽象思维的发展。补充教材中的程序代码whi1e(f1ag1x:f1ag2=mid-1e1ifmid2)【递归的分治】结合分治策略,递归也可用“分”“治”“合”三个字概括。(I)分:将原问题分解成k个子问题。(2)治:对这k个子问题分别求解。如果子问题的规模仍然不够小,则将其再分解为k个子问题,如此进行下的一种美丽数学图案。记笔记并认真听讲
8、。过程,结合汉诺塔游戏,理解递归的思想。在探究基础上讲解内容更能让学生理解知识并且提升知识的理论程度。由学生在知识讲解完后,让学生自主设计函数,虽然有难度,但是锻炼了学生整体的综合程序设计能力,具有挑战性。去,直到问题足够小时,就很容易求出子问题的解。(3)合:将求出的小规模问题的解合并为一个更大规模问题的解,自下而上逐步求出原问题的解。【练习】常见递归方法有:阶乘、等比数列、等差数列。1、请你设计阶乘底数为5的递归程序设计,并能正确打印结果。2、请你设计递归形式的斐波那契数列,使其输入索引号时,能够打印出对应数值。【总结递归】观察程序设计,发现递归的本质是,函数对自身的调用函数a调用函数b讨
9、论并练习设计函数,自主运行结果,调适bug。【斐波那契数列】deffbnq(n):ifn=2:return1n=fbnq(n-1)+fbnq(n-2)returnnm=fbnq(int(input(,请输入索引号)print(m)【等差数列】defdengcha(n):#定义一个函数名是dengcha,参数为n的函数ifn=1:#当参数n为1时,返回n的值returnn#结束函数,并返回一个值n给函数n=dengcha(n-1)+10returnnm=dengcha(int(input(请输入等差项目)print(m)【阶乘】defjiecheng(n):#定义一个函数名是jiecheng,参
10、数为n的函数ifn=1:#当参数n为1时,自调用函数a递归课后作业查找迭代和递归的相关资料,并写一份报告,报告内容为:你认为用迭代方法和递归方法分别实现斐波那契数列时的区别,并在下节课交流你的发现和结论。和I:ftN(a):fUt*MciaRMIHMtCMeKqR*rIf-1-i;*1f1rHm1-iIbr,1ewfU*W1*W2FwmM(*Mn)frt返回n的值returnn#结束函数,并返回一个值n给函数n=n*jiecheng(n-1)#当不满足n=1时,进行递推,n1=n*(n-1)!returnn#结束函数,并返回一个值n给函数m=jiecheng(int(input(,输入阶乘底数)Print(!11)#打印出m的值学生完成学习报告。巩固、加强学习,并解决开放性问题。