《算法和算法的描述》教学设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法和算法的描述》教学设计
一、教材处理
本节课以教育科学出版社教材《算法与程序设计》的第一章《如何用计算机解决问题》和第二节《算法描述与设计》作为基本教学内容,用一节课时间完成。
本节课学生第一次接触算法,如果只讲解算法的概念就要求学生对实际问题进行分析、建模、设计合理算法,感觉难度较大。
因此,我从“人鬼过河”这一智力游戏开始,通过实例介绍算法的概念,再例举学生熟悉的数学问题,让学生在分析问题中学会设计算法,并让他们采用算法描述工具描述相应的算法。
二、教学目标
1.理解算法的含义。
2.掌握用自然语言、流程图描述算法。
3.了解算法的基本特征。
4.通过流程图形象直观地了解顺序、选择、循环三种基本结构。
三、教学重点与难点
重点:让学生经历分析问题、设计算法,用自然语言、流程图等方法描述算法的过程。
难点:对算法概念的理解,设计出合理的算法。
四、教学媒体
多媒体课件、VB小程序、网络教室
五、教学过程
教师活动:介绍游戏规则,让学生在“人鬼过河”这一Flash游戏中思考解决问题的步骤。
学生活动:在游戏中亲身经历分析问题、解决问题的过程。
(设计意图:算法的含义比较抽象,如果一下子抛出算法的定义,学生无法真正理解,所以引入趣味游戏,让学生在游戏中思考。
)
(一)引入新课
教师活动:
①请个别学生讲解操作这个游戏的步骤,教师进行归纳
总结,用自然语言描述出来。
②由解决游戏的步骤引出算法的定义――算法是解决
问题的方法和步骤。
③算法需要将它描述出来才能为人所知。
学生描述“人鬼过河”游戏的各步骤就是算法的一种描述方法――自然语言描述法。
教师介绍如何用自然语言描述算法。
学生活动:
①理解算法的定义。
②初步体会用自然语言描述算法的过程。
(设计意图:①引导学生总结游戏步骤,由具体事例引出算法的概念。
②学生体会用自然语言描述算法的过程。
)(二)学生实践一
1.布置任务
教师活动:讲述“水仙花数”问题,让学生判断任一三位数是否为水仙花数,并引导学生用自然语言将自己设计的算法描述出来。
学生答案1:取百、十、个位数字,求他们的立方和,判断立方和是否等于原数,如果相等就是水仙花数,否则就不是水仙花数。
学生答案2:设x=abc,若a3+b3+c3=x,则x是水仙数,否则不是水仙花数。
2.指导实践
教师活动:
①肯定学生作答的正确之处,指出学生答案中的不足。
②教师讲述:在算法的基础上,用计算机语言把算法描述出来(编程),提交给计算机,计算机按程序执行。
在用自
然语言描述算法时,既要考虑到人的描述习惯,更要兼顾编程的需要。
算法描述中的每一步都应该是计算机能接受的算术运算、逻辑运算或能执行的动作。
就答案1和2而言,这样的描述对具备独立逻辑分析能力的人来说,解决相关问题已经足够,但对于只具有基本算术运算和逻辑运算的计算机而言,“取出百、十、个位上数字”、“设x=abc”这样的描述,计算机根本无法理解,不会
智能地运行,所以应该明确告知具体的运算对象和运算方法。
这也是算法的特征――算法的确定性和可行性,即每一步都要有确切的含义,能够被计算机执行。
③引导学生细化、完善他们刚才设计的算法。
(设计意图:①让学生了解,设计算法并不等同于用数学方法解决问题。
②算法的每一步都必须是计算机所能明白的,能够被执行的,指出算法的特征。
③通过实践一,学生对算法的概念有了比较深刻的理解,初步掌握了用自然语言描述算法的方法。
)
3.演示VB程序
教师活动:演示用VB编写的应用程序,并将程序代码
展示给学生。
学生活动:对照自然语言描述算法的各步骤,理解程序代码的意思。
(设计意图:使学生加深印象,理解算法描述与编程之间的关系。
)
(三)阶段小结
教师讲述:算法描述应按数字化输入、存储、计算、输出方式来描述,才符合数字计算机本质。
这是确保算法编码化(程序化)的关键。
每一步必须明确告诉计算机所要处理的具体对象和准确的处理过程,也就是说,算法的描述要尽可能精确、详尽。
(四)用流程图描述算法
教师活动:
①回顾先前的“人鬼游戏”和“水仙花数”的算法描述,分析用自然语言描述算法的优缺点,并引出用流程图描述算法的方法。
②以“水仙花数”问题为例,详细介绍流程图的基本图形、功能以及如何用流程图描述算法。
学生活动:掌握用流程图描述算法的方法。
(设计意图:让学生掌握用自然语言、流程图描述算法的方法。
通过实例,掌握对顺序结构、分支结构的流程图画法。
)
(五)学生实践二
教师活动:布置学生实践任务――用流程图描述“人鬼过河”游戏的算法。
(设计意图:通过实践练习,让学生掌握顺序结构流程图的画法,并记住流程图各图形的功能。
)
(六)学生实践三
教师活动:
①布置学生实践任务――设计实现两数交换的算法,并用自然语言和流程图描述。
②教师点拨:这个问题看起来简单,但很多学生却出现了错误。
教师以实际生活中两杯不同溶液进行交换为例,提示学生,引入第三个变量解决此问题。
③教师提问:除了引进第三个变量外,也可从数学的运算入手实现两数交换,这应该怎样设计算法?
学生活动:学生运用刚学的知识解决问题。
经教师点拨,马上改正错误。
(设计意图:①学生通过实践掌握用自然语言、流程图描述算法。
②让学生在探究中提高:同一问题可以有不同的算法。
)
(七)学生实践四
教师活动:布置学生实践任务――设计求出所有水仙花数的算法,并用自然语言和流程图描述。
教师点评:要求出所有水仙数,只需要把所有的三位数判断出来就可以。
可设置要判断的数为X,X的值从100开始,每判断完一次X,X的值便增加1,进而进行下一轮对X 的判断,直至X的值变化至999为止。
学生活动:学生分析问题,设计算法。
(设计意图:提高难度,让学生对三种不同程序结构的流程图都掌握。
)
(八)自主归纳
教师活动:引导学生从这几个题目的算法归纳总结出算法的特征。
学生活动:在教师的提示、引导下归纳总结算法特征,得出结论――至少有一个输出、可行性、确定性、有穷性、可以有多个输入,也可以有零个输入。
(设计意图:培养学生归纳总结的能力。
)
(九)总结
教师:计算机不管解决什么问题,都得经历编写程序、执行程序、解决问题的过程。
编程就是用计算机语言实现算法,可见算法在程序设计中的地位。
从前面两数交换的例子可以看出,一个问题的算法并不是唯一的,不同的算法之间也有优劣之分,在设计算法时应追求最优算法。
那么如何判断一个算法的优劣呢?“水仙花数”问题有没有最好的算法呢?
(作者单位:福建泉州第五中学)。