第一篇:教学课题-算法
教学课题:生活中的算法实例
学情分析:学生在前面的学习中,理解了算法的概念,了解了使用计算机解题的一般过程,通过实例分析初步掌握了算法的自然语言和流程图表示方法。本节课我们将算法的实例延伸到我们生活中,让学生进入生活,结合生活,在生活中理解算法,体会算法其实在我们的生活中也是无所不在的。
教学要求:通过生活实例进一步了解算法思想。教学重点:生活实例的算法分析。教学难点:算法思想的理解。学案:
生活实例1:
狼、羊和卷心菜过河游戏。在一河岸有狼、羊和卷心菜,农夫要将它们渡过河去,但由于他的船太小,每次只能载一样东西。并且,当农夫不在时,狼会把羊吃掉,而羊又会把卷心菜吃掉。问农夫如何将它们安全渡过河去?
游戏规则:没有农夫看管的时候,狼会吃羊,而羊会吃卷心菜。试着写出你的方案: 1、2、3、……
参考视频:木子的博客
视频《狼羊菜过河问题》
参考答案:(设:要从河的右岸到河的左岸)
①农夫先带羊过河到左岸,然后农夫将船划回右岸;
②农夫带卷心菜过河到左岸,然后将羊带回到右岸;
③农夫带狼过河到左岸,然后农夫将船划回右岸;
④农夫带羊过河到左岸;
类似的问题还有传教士和野人过河问题(参阅阅读材料及视频资料《传教士和野人过河问题》)以及交换青蛙问题(参阅阅读材料及视频资料《交换青蛙问题》)。
生活实例2:韩信点兵问题。西汉大将韩信,善于带兵,神机妙算,能征善战。一次阅兵时,韩信要求士兵排成3路纵队,此时末尾多出2人,改排成5路纵队,末尾多出3人,再排成7路纵队,末尾余下2人,这时,领兵的部下报告说:这对士兵共有262人,韩信立刻摇头说:不对,实际只有233人,部下迟疑地回去,又重新清点人数,果真是233人,部下们因此对韩信十分佩服。
思路探索:从2开始,逐个数去试试,如果这个数能同时被3、5、7整除后的余数分别为2、3、2,则输出这个数。
根据上面的思路探索,补充算法: 第一步:m=2.第二步:若,则执行第三步;否则m=m+1,执行第二步。第三步:若
,则执行第四步;否则m=m+1,执行第二步。第四步:若
,则执行第五步;否则,执行第二步.第五步:输出m
进一步尝试:你能根据上面的思路,画出流程图吗?(动手大胆试试,在你试着画出自己的流程图后可以到网络上寻找韩信点兵的流程图,看看你画的和它一样吗?你理解吗?可以将你的想法和看法给我留言)
根据题目我可以列一个等式:
M=3i+2=5j+3=7k+2
其中,m为总的人数,i表示3路纵队时,每列的人数,J表示5路纵队时,每列的人数,K表示7路纵队时,每列的人数。
我们发现:3i和7k是相等的,说明
(3i和7k的值都是21的倍数)我们再试试:若3i=7k=21,这时m=
,这时j(有、没有)整数解,整数解为。
若3i=7k=42,这时m=
,这时j(有、没有)整数解,整数解为。
若3i=7k=63,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=84,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=105,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=126,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=147,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=168,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=189,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=210,这时m=
,这时(有、j没有)整数解,整数解为。
若3i=7k=231,这时m=
,这时(有、j没有)整数解,整数解为。
到此为止,我们知道了其中有
组解符合我们列出的式子,第一组符合条件的解的人数是当3i=7k=21,m为23人,但是在上面的资料中,韩信却说士兵的总人数为233人,这是因为
(虽然有多组解满足列出的式子,但士兵的范围总是在一定的范围中的),所以,我们在具体分析每个题目的过程中,我们首先要确定题目中给出的对象的范围,然后才能确定它的准确解到底是哪一组。这道题目中,i= ,j= ,k=
,总人数为233人。
小试牛刀:假如今天早晨我们班出操,排成了3路纵队,此时末尾多出了1人,改排成5路纵队,末尾多出了2人,再排成7路纵队,末尾余下2人,请报出共有多少学生出操?(试着和同学交流,可以通过讨论组或者通过发表评论完成)
生活实例3:停车场停车问题。
某大型停车场对于进入该场地的车辆有如下规定:
1、进入该停车场必须为客运车辆,货运车辆谢绝入内。
2、如果该车的乘员数量小于等于4,则收费五元。
3、如果该车的乘员数量大于4人,则收费八元。请根据该停车场的规定,判断进入该车场的车辆是否符合规定?应该收费多少?
思路探索:
1、先判断车型是否是
,如果是,进入下一步,如果不是,不许进入。
2、判断乘员数,如果乘员数
,收费五元,允许进入,如果不是,收费八元,允许进入。
能力提升:你能否根据刚才的分析画出其流程图呢?(大胆试试,这一次肯定能画出来。)
算法思想总结:计算机的程序设计中时刻会提到算法,其实算法也存在于我们生活中,生活算法与程序设计中的算法是相似的,都体现出共同的一个方向——算法思维。目标都是问题解决。生活算法与程序设计算法类似,它也可以分成不同阶段:分析问题、寻找解决问题的途径和方法、解决问题的实践活动(例如用计算机进行处理)、算法的反思与优化。生活中算法广泛地存在于我们身边。静下心来仔细分析生活,可以发现很多问题以及与之对应的算法。
附:
生活中算法的例子:
1、华罗庚泡茶招待客人。
2、超市收银机。
3、学校设置的铃声。
4、如何打电话最省钱。
5、如何合理安排学习和生活时间才能让学习效率最高。
第二篇:《枚举算法》教学设计
《枚举算法》教学设计
苍南县成人教育中心学校 陈荣军
一、教学目标
1、知识与技能目标:
理解枚举算法的基本原理,熟悉枚举算法程序设计的基本思路及程序结构特点;学会使用枚举算法解决现实生活、学习中所遇到的问题。
2、过程与方法:
围绕“课堂任务导航程序”,通过课堂任务设计,让学生熟悉用枚举算法求解问题的基本过程,并把它运用到实际生活中去解决问题,学会选择适当的枚举方法多角度分析问题,解决问题。
3、情感态度与价值观:
激发学生的学习热情,提高学生自主学习能力,增强学生创新意识;引导学生关注枚举算法在社会生活中的应用,并以此培养学生将算法思想运用到解决实际问题中去的能力。
二、学情分析
本节内容的教学对象是普通高中高一学生,他们经过半学期的信息技术教学,具备了一定的计算机操作能力;在VB程序设计方面,也已经有所学习,具备一定的基础,但因所上课时不多,学生对VB还只是略知皮毛,语法及编程能力有待于进一步提高。
三、教材分析
1、本节主要内容介绍
枚举算法是程序设计中使用最为普遍、学生必须熟练掌握和正确运用的一种算法。它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案。用枚举算法解决问题,通常可以从确定范围、逐一列举,验证条件、逐一验证这两个方面进行分析,把这两个方面分析好了,问题自然会迎刃而解。
2、重点难点分析 教学重点:
(1)理解枚举算法的基本原理。
(2)能根据问题描述确定枚举范围,并能用程序正确表示验证条件。(3)枚举算法的程序实现。教学难点:
(1)各种枚举算法的优劣评价。(2)编程实现枚举算法。
四、教学设计理念 采用了以学生的学习和发展为中心,基于建构主义理论的任务驱动、情境教学等教学方法,突出自主、合作、探究等学习方法;强调信息技术与生活实际的联系,培养学生的逻辑思维能力、解决问题的能力以及创新意识等;设置多元化的评价方式,让学生掌握学习内容的同时,形成交流与评价的能力。
主要教学方法:讲授法、演示法、任务驱动、情境教学等 主要学习方法:自主学习,合作探究学习等
五、教学策略
通过“课堂任务导航程序”,在教学过程中,围绕“情境导入→回顾算法思想→任务引领→自主学习→合作探究→交流评价→课堂总结”的教学流程来展开教学活动。
六、教学环境
教师用VB自制的“课堂任务导航程序”(客户端)、教师服务端程序、多媒体网络教室、多媒体教学软件、VB6.0中文企业版等。
七、教学过程
一、情境导入(3分钟)
教师活动:同学们,大家好!首先,很高兴今天能给大家上一节课,希望老师今天的这节课能让大家有所收获。在上新课内容之前,老师想先请同学们帮老师一个忙(教师广播展示VB制作的“QQ登录程序”):老师前段时间申请了个QQ,结果把密码给忘记了,但我记得密码是由六位相同的数字组成,哪位同学能上来帮老师找出密码?
学生活动:学生上台,根据老师的描述,从000000到999999一一测试密码,最终找到密码。教师活动:非常感谢这位同学的帮忙!这位同学能说下,你是怎么找出密码的吗? 学生活动:从000000,111111,222222„„ 999999这样逐个测试。教师活动:很好。像刚才这位同学这样,根据老师给的范围,逐一列举所有可能,并根据程序提示(验证条件)逐一验证,从而找出答案的方法就是今天我们要来共同学习的《枚举算法》。
设计理念:通过学生熟悉的QQ密码破解来引入课堂,增强学生兴趣,也能使学生乐于接受。
二、回顾枚举算法思想,提出课堂任务(5分钟)
教师活动:教师广播展示课件,学习枚举算法的概念,说明枚举算法的两个关键点:
1、确定范围,一一列举(既不遗漏,也不多余);
2、确定条件,逐一验证。教师活动:在了解了枚举算法的概念后,同学们能不能列举几个我们实际生活中用枚举算法解决的问题的例子呢? 学生活动:学生举例(教师根据例子引导分析,重点强调“确定范围、一一列举,根据条件、逐一验证”)
教师活动:非常好!看来大家对枚举算法已经有了一定的理解了,接下来,我们来看下在程序里面,如何实现枚举算法解决问题。请大家打开桌面“学生”文件夹里的“课堂任务导航.exe”,完成“任务一”。(教师简要说明“课堂任务导航程序“使用方法)
三、课堂任务一(10分钟)
学生活动:根据课堂任务导航程序及帮助信息自主完成课堂“任务一”(4分钟)教师活动:教师巡视、个别指导,观察、总结并及时记录学生在完成任务过程中出现的问题。同时,在“教师服务端”程序中观察展示学生任务一的完成情况,及时了解学生的学习进度。
任务反馈:大部分学生能顺利完成任务一,对于不能自主完成的,可由已完成学生帮助完成。
教师活动:很好!大部分同学已经完成任务一了,接下来让我们一起看下我们的程序是如何实现枚举算法的。教师展示任务一程序(广播)教师活动:我们知道要想实现枚举算法,主要是要做到两点:一个是确定枚举范围进行一一列举;还有就是根据条件,逐一验证。我们来看下我们的程序的怎么实现这两点的?
学生活动:观察程序,思考。
教师活动:我们先来看下“确定范围、一一列举”在程序里是如何体现的?(6分钟)
学生活动:使用for语句实现
教师活动:“根据条件,逐一验证”呢? 学生活动:if语句
教师活动:很好!一般实现枚举算法的程序都是由循环结构嵌套分支结构组成。好了,大家现在已经知道了枚举算法的程序结构了,接下来请同学们继续完成任务二。
(设计理念:通过任务一的设计,让学生自主探究学习,培养学生的自主探究学习能力,通过学生互助,培养学生互帮互助的精神;通过对任务一的程序分析,培养学生的善于观察思考、解决问题的能力,并让学生熟悉枚举算法的程序结构特点,以便学生能更加顺利的完成任务二。)
四、课堂任务二(设置陷阱,探讨交流)(15分钟)学生活动:学生先自主完成任务二。(5分钟)
教师活动:教师巡视、个别指导,观察学生在完成任务过程中出现的问题:有些学生能输出58个数,有些学生只输出6个数,原因在哪里?请一个能输出58个数的学生上台演示操作,然后让学生分析输出的这些数都能满足要求吗?经过分析,学生会发现有些数的个位数不符合要求。提出问题:如何修改程序将不符合要求的数去掉?(2分钟)
学生活动:修改程序(由学生小组合作相互探讨完成)。(5分钟)教师活动:当有部分学生输出正确答案后,请一个能输出正确结果的学生分析如何修改,并到教师机上修改刚才错误的程序(算法1); 请一个不同算法的同学来修改程序(算法2);让他们分析各自算法的效率谁更高。然后教师小结,鼓励学生要善于发现问题、深入分析问题、积极解决问题;从不同角度分析问题可以得到不同效率的算法。(3分钟)
(设计理念:设计任务陷阱培养学生善于发现问题、深入分析问题、积极解决问题的能力;通过探讨交流,培养学生的团体协作能力及合作探究精神;设计任务一题多解,培养学生从不同角度分析问题的能力,锻炼学生的发散性思维。通过算法分析,让学生理解算法的执行效率,懂得选择最优算法去解决问题,提高程序的性能。)
五、层层递进,任务拓展(高层次学生做)
拓展任务:在任务二的基础上,增加验证条件:“十位数是3的倍数,百位数是4的倍数”,提出问题:如何将数字里的十位数和百位数分离?
学生活动:学生通过教师提供的帮助材料,讨论分析问题,尝试去完成拓展任务 教师活动:教师观察,引导。
(设计理念:设计拓展任务,提高任务难度梯度,供高层次学生完成,以实施课堂中的分层教学。)
六、提交作品,课堂评价(3分钟)
学生提交作品,教师选择几个作品做总结性评价。
七、归纳总结、布置课后作业(1分钟)
1、通过“教师服务端”程序中学生“自我评价”中的知识点,进行课堂总结:(1)枚举算法的基本原理:
确定范围、逐一列举(既不遗漏,也不多余)(循环语句)确定条件、逐一验证
(条件语句)
(2)枚举算法中范围的确定及列举:循环语句(如for)实现
(3)枚举算法中验证条件的表示:利用if语句进行条件判断;条件表示主要运用VB中的算数运算符及逻辑运算符实现。(4)实现枚举算法的程序结构特点:
外层循环嵌套内层条件判断
2、布置课后作业: 找水仙花数(学生任务导航程序)
(设计理念:通过知识总结,帮助学生将知识系统化,便于学生理解记忆。通过知识的延伸,促使学生将知识内化,并进行能力迁移,进一步提高学生解决问题的能力。)
八、自我评价(1分钟)
让学生利用“课堂任务导航程序”中的自我评价功能进行自我评价。教师活动:展示学生自评结果。
(设计理念:通过评价,引导学生自我反思,加深对所学知识的认识与理解;教师查看学生自我评价结果能及时了解到学生对本堂课所学知识点的掌握情况,以便安排后续教学内容。)
第三篇:算法的快乐教学
算法的快乐教学
浙江省浦江中学 何菲
【摘要】:普通高中新课程信息技术学科包括五个选修模块,其中“算法与程序设计”模快是信息技术学习的核心内容之一。算法是逻辑性和抽象性思维很强的一门学科,它的“高深”“难度大”是学习算法这门课程经常听到的一些词。在教学中如果处理不当往往会导致学生丧失学习算法的兴趣,有挫折感,进而影响用算法来解决问题。为此,本文就从多个角度来探讨让学生乐于学习,来快乐的学习算法。
关键词:算法
程序设计
兴趣
经验
思维
生活
引言:新课程标准的教学已开展的红红火火,成为教学热点。信息技术是一门提高学生信息素养,并在信息化社会环境下以计算机为载体,融知识性、技能性和工具性于一体的重要的课程。它分为必修模块和选修模块。其中,“算法与程序设计”模块是我校选修模块,一提起“算法”,人们立刻会觉得这是一门高深,而且枯燥的学问,难度也很大。大多数学生对算法学习不感兴趣。随着教学的深入,学生个体差异的增加,算法学习反而成为部分学生学习一道难以逾越的屏障!即使同学通过会考,后来再回过头去问他们关于算法的问题,他们都认为在云里雾里一样,讲不出个所以然来。学生对“算法”的这种“可怕”的程度,可想而知。其实,这是一种误解。在日常生活中,我们时时处处都在与“算法”打交道。舞台上舞步的图谱;乐谱是乐队演奏和指挥的算法;菜谱是厨师烧菜的算法等等。不论是日常生活,还是信息技术,我们到处可找到“算法”。假如我们能把教科书上的算法生活化,那么,也可以把“算法”学得生动活泼。
那么,为什么学生对算法和程序设计不感兴趣呢?对算法又这么地不适应,存在哪些问题呢?
教学中存在的一些实际的问题: 因为我们是一个人口众多,地域广阔的一个大国。信息技术课的更新也飞快。而“程序设计”也一直占据着不可或缺的重要地位,也是成为难教之一。正因为有这样的一些方面,所以也导致以下几个方面实际的问题:
1、是高中学生的起点参差不齐,现在大部分同学在初中学习过电脑,但并未接触过算法的知识,处于一个初期的阶段,由于学生个性的差异,接受能力的不同,导致学生的水平上下相差比较大。
2、教学内容多,而课时少。这一门选修课是信息技术学习的核心内容之一。高中阶段学生课业繁重,很少会有学生安排课余的时间来学习“算法”这门课,他们的时间仅限在上课45分钟,学校设了每星期两课时的时间来进行教学,要求学生能初步使用一种程序设计语言编制程序实现算法以能从简单问题出发,设计解决问题。这对教师和学生来讲都是一个不小的挑战。
3、由于本身这一门学科的严密的逻辑性和语言的枯燥性导致学生失去对它的兴趣,增加了老师的授课难度。
如何能让算法思维成为学生学习生活的一部分?通过又一学期的算法学习与实践,我也逐渐地摸索出一些适合时下学生学习的解决方法。
一、要提高学生的学习兴趣,要尽量做到零起点分层教学
教师在算法与程序设计教学时,应循序渐进,尤其是尽量做到零起点教学,免得太抽象的问题把还未建立起来的兴趣的学生吓退。尊重学生的兴趣很重要,我们的目的不是让每个学生成为一个优秀的程序员,而是让学生学点算法思想去解决实际问题是我们的首要任务。首先对学生做一个信息技术能力的问卷调查的摸底工作,对学生基本解决能力有一个大体的了解,决定分层分组的学生。教学中也不要着急的引入具体程序,而应该从基本算法思想开始,从简单的生活实例出发,或从游戏着手,如让学生先学会画流程图,再进而学习具体的程序设计,让学生心中有个缓冲。比如:学习流程图的画法,可以先给学生一简单上体育课的生活实例,准备上体育课,是晴天,雨天,或下雪天,在操场上课,还是室内上课,把这一形为用图的形式表达出来,进而引出流程图的画法,再引入数学问题中稍复杂点的解决比较两数大小的问题。慢慢地,循序渐进的,学生就理解了用流程图的画法来解决问题理清思路的好处。并布置学生在课余时间也可以写几个简单的流程图进行巩固。
二、在教学中引入课堂角色扮演,师生互动,层层深入 课堂角色扮演是指在教学中由教师根据学生的特点,对教师及学生进行角色设定,根据教学内容设计规定动作,指导学生进入角色,领悟“剧情”,完成规定动作和自选动作。课堂角色扮演可以激发并保持学生的学习兴趣,启迪智慧,加深学生对问题的理解。
比如在学习教科书《算法与程序设计》2.3.2节的冒泡法排序时,我就挑了7位身高不等的学生站成一排,首先让他们逐个比较身高,最高个站在最右边,然后在剩下的6位同学里面挑出次高个,以此类推,直到他们从左到右按照个子从低到高的顺序排好。学生通过参与这种角色扮演,短短几分钟,冒泡排序的过程便牢牢印在脑海中。
角色扮演活动有利于教师体验学生的感受,站在学生的角度去理解教学,增强师生间的交流与沟通。有利于培养学生的学习兴趣,因为表演的语言和行为贴近他们的生活。参与表演的学生由被动地接受知识逐步转变为主动探究知识。在准备表演的过程中,学生的学习能力可以得到明显的提高。
在讲授4.3.3节的For循环结构时,我用了一节课的时间来进行讲解,用上生活中的一些关于循环的例子:星期,时间,月份,人造地球卫星,绕月卫星,引出“嫦娥一号”的发射,提出我们虽然没有能够到现场观看,但我们在教室中同样可以模拟感受。教师展示火箭发射倒计时程序及其源代码,让学生借助注释从整体上大概理解其实现的功能。然后进行简化,当程序设计中,当需要重复执行某一段代码时,可以采用循环结构。教师先不讲for…..next语句的格式和用法,而把重复的语句组提取出来,要求学生根据刚才的分析进行推测,把空白补充完整。然后,引出用for语句修改源程序,并调试运行。进而教师指出其中的循环体、循环变量、初值、终值、步长,进而由个别到一般,总结出for…next语句的基本格式。就这样,层层深入,直到学生理解并会运用此循环语句为止。
三、从学生已有的生活经验出发,习惯思维入手,巧妙的利用Flash的动画游戏,从先直观后抽象逐步接受算法的思维方式。在信息技术课程标准里,提高学生的信息素养是教学的目标,所以教学过程 完全不必拘泥于程序设计这个狭小的范围,可以结合其它学科,于游戏中学习,生活中学习,再加上信息技术学科本身有着综合性、更强发散性的特点,可以让我们的教学变得更加生动多彩。如在讲算法概念时,书上没有举出生动具体的例子,叫学生看书也很难引起一定的兴趣来理解这个概念。所以在上课是,教师可以举一些感性的例子来激发学生的思维和兴趣。如:一个人带三只老虎和三头牛过河。只有一条船,同船可以容一个人和两只动物。没有人在的时候,如果老虎的数量不少于牛的数量就会吃掉牛。请设计安全渡河的算法。通过学生感兴趣的内容来调度学生思考问题的积极性。在课程学习中,很多老师甚至家长排斥游戏,怕学生玩上隐。其实在教学中适当的引入游戏,不但可以提高学生学习的乐趣,还可以把游戏运用到算法中去。如可利用一些智慧技能型、益智型、演示型的游戏来进行引导。如,课后教师可以让学生玩flash小游戏《商人过河》:仆人3人,商人3人,其中小船最多同时2人,两岸不允许仆人多于商人,否则被打劫,游戏失败。或《三人三鬼》是同样的道理,游戏中感受到的刺激同样的也激发学生思维的开始,算法在游戏中的运用。从而使学生真正的理解算法,用算法去解决生活中碰到的一些问题。
算法中的枚举算法如果用学生感兴趣的内容去理解,去引导,其实还是比较好掌握的,教师可以引入提出有谁被盗取过QQ密码的,学生一定涌跃发言,然后可以问学生你的QQ密码是怎么被盗的呢?这时的学生就会异常的专心致至的等着老师揭开神秘的面纱,达到引入枚举算法,学生会豁然开朗。进而教育学生要懂得保护自己的密码,取什么样的密码才不会被盗,教育学生做个遵纪守法的公民。
也有许多人认为学习算法意义不大,因为他们认为专业的算法很难指导生活。当然,无论黑猫白猫,能抓老鼠就是好猫。生活中问题的解决方式有多种多样,算法以缜密的逻辑思维,通过使生活中繁复的问题抽象化的方式成为解决生活问题的一个重要途径,有时,甚至可以用来指导我们的生活。如解析法的教学,里面讲到银行存款利息的问题来源于生活有计算复利和不计复利两种方式。在实际生活中,还有住房贷款的还贷,股票和基金的投资方式等。在教学中,我们可以把它看成是一种投资理财问题,让学生以研究性课题的形势进行深入分析,可以获得良好的效果。从生活中选取算法实例出发,进而用算法来为生活服务。在这样的算法学习中,学生不仅学得不亦乐乎,而且还可以从中学到多种解决问题的方法,养成严谨的生活思维方式,那将是受益终生的。
第四篇:算法案例教学设计
算法案例——辗转相除法与更相减损术
唐劲松
一、教材解读
本节内容是在学习了算法的基础知识上,探究古代典型的算法案例——辗转相除法和更相减损术,巩固算法三种描述性语言(算法步骤,程序框图和程序语言),使学生对算法中的迭代思想有一个初步的认识。一方面以辗转相除法及更相减损术为载体,使学生通过模仿,操作,探索经历算法设计的全过程,帮助学生进一步体会算法的基本思想,感受算法在解决实际问题中的重要作用,另一方面让学生体会中国古代数学家对现代数学发展的贡献。
二、教学重难点
重点:辗转相除法与更相减损术的方法和步骤;
难点:辗转相除法的原理及其程序。
三、教学过程
Ⅰ引入新课
简单回顾短除法求两个数的最大公约数,并提出问题:当两个数较大时(如:8251与6105),如何求它们的最大公约数?引出课题——辗转相除法。
Ⅱ知识探究
1、以求8251与6105的最大公约数的过程为例,讲解如何利用辗转相除法求两个数的最大公约数。对于辗转相除法的原理,书本介绍的不是很详细,学生容易产生疑惑,需要教师讲解清楚。
2、通过这个实例,让学生能够模仿求任意两个数的最大公约数,体会这种迭代的思想,并能与前面学习的循环结构联系起来。
3、训练(学生演排),了解学生的掌握情况,及时指出问题。
4、简单介绍欧几里得其人,增强学生人文素养。
5、引导学生根据前面的过程画出辗转相除法的程序框图,并编写出程序。灵活运用直到型循环结构及当型循环结构,并能转化成语句。完成课本P45练习1:用辗转相除法求下列两个数的最大公约数:(1)225,135;(2)98,196;(3)72,168;(4)153,119.并用程序进行演示判断是否正确。
6、巩固提高:
(1)求三个数:324,243,135的最大公约数;(2)求228与1995的最小公倍数。
7、介绍另一种求最大公约数的方法——更相减损术,简单介绍相关数学史的知识,对学生进行数学文化熏陶,增强民族自豪感。
8、通过实例:求98与63的最大公约数 来理解更相减损术的原理和过程。
9、分别用辗转相除法和更相减损术求168与93的最大公约数,来体会和总结辗转相除法和更相减损术的区别。
Ⅲ课堂小结
学生回顾总结两种方法的步骤,教师加以补充和点评。
第五篇:算法教学设计
3.4算法及其表示 智能吸尘器算法简单分析
【教材分析】 本节教材的地位、作用等分析。
本节教材位于高中信息技术必修模块第三章中:“算法及其实现”部分内容,本节课的学习目的是使学生体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;体验信息技术中算法的魅力,为学生选修算法模块奠定基础。
【学情分析】
算法是我们信息技术基础模块的最难的一块内容,课时又少,只有两课时,如果初中信息技术正常开展,那么这个内容也容易开展。
【教学目标】
1.知识与技能
理解算法的含义,体会算法在程序设计中的地位; 培养用计算机编程解决现实问题的能力。2.过程与方法
能通过观察吸尘器的工作来分析其算法,培养学生用程序设计的思想来思考产品。3.情感态度与价值观
引导学生了解程序设计的更多知识,体验信息技术的强大魅力; 激发学生对计算机编程解决现实问题的学习欲望,提高学习兴趣。渗透人文教育,懂得感恩。
【重点难点】
教学重点:算法的特征;算法的表示 教学难点:对算法的理解,流程图
【设计思想】
新课标强调要“培养解决问题的能力,倡导运用信息技术进行创新实践”,以前教学中我一直从面到点,先讲算法的定义和特点,再举例,效果不是很好,学生印象不深,往往到学期结束的时候,对算法印象全无。
因此,这次在设计本节内容的时候,在选择实例的时候,我从两点考虑:一是生活化,选择的例子尽可能贴近生活,既要达到吸引学生的目的,又能体现技术的真实内涵(现在的学生,生活自理能力太差了);二是通过把抽象的问题分析成为具体步骤或方法,从而形成算法,让学生理解计算机解决问题的基本过程。
我在选择实例的时候,尽量让这个例子能贯穿整堂课,把一个问题分析透,印象会深刻。
【教学流程】
导入
师:喜欢干家务吗? 生:不喜欢
师:可是有一个人就是无怨无悔的做着家务(渗透人文教育,懂得感恩)生:谁?
师:“马大嫂”,你们认识“马大嫂”吗?每个家庭都有。生:领悟
师: “马大嫂”在我们同学们的年纪时,也是不喜欢干家务的,是什么让他们无怨无悔的干着家务?作为他们的孩子,我们有没有想过替他们分担一点?或者当我们长到“马大嫂”的年龄,我们能不能让家庭生活轻松一些?
生:讨论
师:家庭的智能化脚步离我们越来越近,我们的生活里随处可见,比如有定时功能的家电,洗衣机、洗碗机,今天我给大家推荐一款“买汰扫”的扫:智能吸尘器。(引导学生用计算机编程来解决现实问题)
首先声明,我不是搞推销的,而是带领大家去设计生产产品的。今天我们一起来分析、设计一款智能吸尘器。
首先,我们分析一下原始的手工操作吸尘器的工作需要几步? 新课(先把复杂的问题简单化,得出大的方向,然后逐步细化)生:三步,打开电源、开始工作、关闭电源
师:看来你们都是宋丹丹的徒弟,其实这也是我们用计算机解决实际问题的思维:先设计算法、再编制程序来实现算法。
师:什么是算法呢?算法是解决问题的方法和步骤,同学们用的是自然语言描述的算法,我是用流程图来描述算法。
算法描述的方法和步骤应该是有限的,有开必有关;有Begin必有End;
同学们是不是有被忽悠的感觉?有,就说明了我们的同学想的更远了,是啊,我这个算什么算法,跟本没解决什么问题,对了,算法还有一个定义,解题方法的精确描述,我这个算法的步骤有了,但不够精确描述,所以我们要自顶向下,逐步求精。师:你们说哪个步骤需要细化? 生:第二步
师:那你们觉得吸尘器要体现智能,应该从哪些方面考虑? 生:讨论
归结你们的观点,主要有三个:设定清洁路线模块,躲避障碍物模块,自动充电程序 设定清洁路线模块
师:你们拖过地吗?如果让你来拖地,你会选择怎样的路线既能减少重复路线,又能全部覆盖? 好,我们模拟一下,(用flash 规定几个相同的区域,然后计时擦除)把橡皮擦当成我们的吸尘器,擦除前景颜色并计时,……通过大家的实践,我们可以看出几种方案比较科学,通过这个试验,我们知道解决问题的方法有很多,生活中也一样,关键是要选择合适的一种,达到既快又好.这是我们在最优环境下的情况,没有考虑实际情况。我们看看具体的设计
前面同学们提到躲避障碍物是设计的关键。躲避障碍物模块
师:躲避障碍物模块是体现吸尘器智能的关键一点,我们先分析碰到墙壁怎么处理,只要碰到墙壁能处理,其他的是不是也是一个道理?
现在我请同学们描述一下碰到墙壁这个算法。
真了不起,你们用自然语言描述了这个算法,我习惯用流程图来描述。请看我的算法
这个算法同样比较粗糙,我们一起把它修正一下,首先要确定哪些地方需要细化,对了,是怎样判断“有没有碰到墙壁?”,这是核心,你们认为怎样判断好?请大家在纸上设计设计
还有没有其它需要修正的?对了,怎样“转变方向”也要细化,你们认为怎样改变方向好?
就这个流程图本身,还有什么地方需要修正的吗?Y和N线路里有相同的语句,我们可以把
它提出来,放在合并后的线路中.好,我们把经过大家修改后的算法称为智能清扫模块
自动充电程序
我们还少了一个关键模块,地没扫完,电没了怎么办?
现在请同学们参考智能清扫模块的流程图,画一画碰到电不足了那一刻怎么处理的算法。
学生上台画流程图,根据学生的流程图修正,得到循环结构。回顾小结
现在我们回顾一下我们设计智能吸尘器的过程:首先我们把复杂的问题简单化,设计了一个三步走的算法,然后,选择了一个最优路线,再设计了一个具有智能的障碍物躲避模块和自动充电模块,在第一个流程图里我们提出了算法要有开始和结束,即算法的有限性;最优路线里我们得出了最优算法;障碍物躲避模块我们提出了可行性和没有二义性。
针对以上算法,从开始到结束都离不开这三种情况,就像我们的生活,有可能一路直行、也有可能碰到分叉口、还有就是回到原路,还有没有其他的可能?这就如同我们的算法,所以这三种我们就称为基本结构,由这些基本结构组合成大的程序。
拓展
有了算法,程序实现就容易了,经过我们一起设计的第一代机器人初具模型,请看我们的作品(展示物体碰撞的动画),再看看我写的代码,一些简单的语句你们也看得懂,比如我们的核心模块„„
我们用一节课的时间就已经设计出这样的产品,如果学了一本书,读了四年的大学,你们的产品不知要好到哪里,到时候别忘了给全班同学发一个哦。
课外作业
研究了智能吸尘器,你们有什么启发?那么我们就一起设计一下自己未来的家庭生活吧?
只有想不到的,没有做不到的。想法高于一切,这个想法就是我们今天讲的算法,它不单单存在于我们的计算机行业,生活中处处可见,希望大家做个有心人,好好设计自己未来的生活,设计不好,继续马大嫂的生活。