《算法》教学设计
发布: 2007-1-26 00:00 | 作者: 荷园中学 王梦晓 | 来源: | 查看:
16次
一、教学目标
1.知识目标
(1)理解算法的定义;
(2)了解描述算法的两种方法——自然语言、流程图;
(3)掌握用流程图描述算法的方法。
2.技能目标
培养学生分析问题、解决问题的能力,会用流程图描述算法,解决问题。
3.情感目标
让学生明白解决任何问题都需要有清晰的解决思路和解题步骤,人是这样,计算机也是这样。提高学生对算法和程序的兴趣,培养学生利用计算机解决问题的能力。在教学过程中拉近师生和生生间的距离,给学生营造一个良好的学习模式和学习环境。
二、教材分析
本节内容为课本3.4节的内容,由于本节内容与3.1节内容具有较大的知识连贯性,所以将其提前到3.2、3.3节内容之前来上。经过3.1节内容的学习,学生已经基本了解了利用计算机解决问题的途径和方法,即寻找解决问题的算法,这就是本节课所要学习的内容。算法是编制程序的前提和依据,算法设计完成后我们才可以选择合适的计算机语言编制相应的程序,算法的好坏直接影响程序和软件的质量。美国著名计算机科学家克努特教授提出了“计算机科学就是研究算法的科学”的著名论断,足以说明学习算法的重要性。
信息技术课程的教学设计是以建构主义理论为主要指导思想的,建构主义认为,知识是通过意义建构的方式而获得的。“意义建构”是指学习者对事物的性质、特征、现象的概括,对事物之间内在联系和规律的归纳。因此让学生充分理解算法的概念,对于他们学好算法和编程是相当重要的。但由于学生对于算法的概念是陌生的,因此在介绍算法概念这点上,我花了较大的精力,以游戏的方式来引入算法的概念。以游戏来导课我觉得有以下几点好处:一、可以吸引学生的注意力和提高他们的学习兴趣;二、有利于学生理解算法的概念;三、有利于构建一个轻松和谐的课堂环境和学习气氛。
算法属于理论知识,具有一定的抽象性,学生学起来会觉得有难度,为了不让学生觉得害怕学习算法和编程,在本节课的设计中我穿插了较多的活动,在选例时也选择了难度比较小,贴近学生的学习生活,易于学生理解的例子。所谓“好的开始等于成功的一半”,本节课是学生学习算法和编程的第一课,本堂课教学效果的好坏直接关系到后面的学习,关系到学生学习算法和编程的兴趣。
三、教学重难点
重点:
1.如何分析问题、设计算法。
2.流程图的画法。
难点:
1.如何分析问题、设计算法。
2.流程图的画法。
四、学情分析
通过对学生的调查分析了解到,基本上所有的学生在此之前都没有接触过算法和程序,这两个概念对于学生来说是陌生的。在学生的意识里设计算法和编写程序是很难的,是工程师们才能做的事情,对他们而言是遥不可及的,所以他们会害怕学习这块内容。这节课是学生学习算法和编程的第一课,不能让学生感到有太大的难度,要让他们觉得算法是一个很好理解的概念,设计算法也并不是难事。因此在选择例子时我选择了每个学生都会的“设计求解一元二次方程的实数根的算法”的例子,这样可以培养学生的自信心,提高他们的学习兴趣。我在课堂中设计了很多的学生活动,这样可以提高学生学习的主动性,提高学生学习算法和编程的兴趣,培养学生利用计算机解决问题的能力。
五、教学环境
多媒体网络教室
六、教学过程
(一)算法的概念
【教师】在上课之前老师先和大家来玩一个游戏,现在很多电视节目里有“价格竞猜”这种活动,谁猜对了商品的价格就可以把商品拿回家。今天老师就和大家来玩一个猜数游戏,谁猜对了,老师也给他发奖品。
【游戏1】
游戏名称:猜数
游戏过程:先由教师来写数(写在一张纸上,学生是看不到的),学生来猜数;再由学生来写数,教师猜数。比较谁的猜数速度比较快。
【教师】刚才那个游戏同学们都很积极的参与了,也猜得很好,但是同学们觉得老师猜数的速度比较快,还是同学们的猜数速度比较快啊?
〖学生〗老师!
【教师】那同学们知道老师为什么猜得比你们快吗?那是因为老师在猜数时使用了一种算法,叫二分法。
让学生再写一数,向学生展示使用二分法猜数的过程。让学生领会到算法的作用和优点,并引出算法的概念。
算法:计算机解决问题的方法和步骤。
【教师】其实不单单计算机解决问题要用到算法,我们的日常生活中处处都要用到算法,这在我们刚才的游戏中就有体现,还有其他很多例子,如:同学们解数学题时都首先要确定解题的方法和步骤,这就是同学们解题的算法,还有音乐家演奏时用的乐谱,就是他们演奏的算法。下面请同学们举一些生活中我们用到的算法。
〖学生〗妈妈做菜时用的菜谱;
我们学广播体操时用的图谱;
我们找地方时用的地图;
.
.
.
【教师】同学们的例子举得很好,这说明大家的理解能力很强,对算法的概念都有了一定的认识。其实我们每个人做事都会有自己的方法和步骤,这就是我们解决问题的算法。通常针对同一个问题会有好多不同的算法,就像刚才猜数时,同学们有同学们的猜数算法,而老师又有老师自己的算法,但同学们也知道了,老师的算法比同学们的好,为什么?
〖学生〗因为老师比我们猜得快、效率高。
【教师】所以选择一个合适的、优化的算法对于有效解决问题很重要。
〖学生讨论〗什么样的算法才是优质的算法。
【答案展示】算法具有优劣性,简单省时、步骤少的算法才是好的算法。
(二)算法的表示
【游戏2】请同学们打开自己电脑上“D:\课堂活动”目录下的文件:狼菜羊过河。老师将书本上“问题思考”里第一小题的问题制作成了一个动画游戏,看看哪位同学能最快把这三样东西运过河。成功的同学请马上举手,我请他来给大家讲讲他是如何将这三样东西运过河的。
图1 游戏2
【教师】好!已经有同学举手了,我们请他来给我们描述一下他是如何将物品运过河的。
〖学生〗第一步:先将羊运过河;
第二步:农夫撑船回来将菜运过河;
第三步:农夫撑船将养带回;
第四步:将狼带过河;
第五步:农夫撑船回来将养带过河。
【教师】请同学们验证一下这位同学说得对不对。
〖学生〗对!
【教师】那刚才那位同学是用自然语言将他的算法描述了出来,但有时用自然语言描述算法会产生歧义。请同学们看下面这句话:
这人连我都不认识!
请同学们思考这句话有没有歧义。
〖学生〗有!
【教师】所以用自然语言来描述算法不够科学、严谨,下面我们来学习另外一种算法表示方法:流程图。
流程图:用图框及流程线来表示算法。
【课件展示】展示及讲解几种最常用的流程图符号及它们的含义和作用。
【课堂练习】请同学们写出求一元二次方程ax2 + bx + c =
0的实数根的解题步骤,并用流程图表示出来。
【答案展示】(1)根据a、b、c的值,求出 (delta)的值;
(2)根据 (delta)的值,判断该方程根的情况;
(3)如果方程有实数根,计算x1、x2的值;
(4)输出x1、x2的值。
用流程图表示:
图2 求解一元二次方程实数根算法的流程图
(三)课堂小结
【教师】通过这堂课的学习我们已经知道了如何根据问题去设计算法(即找到解决问题的方法和步骤),并利用流程图将算法表示出来。根据我们上堂课所学的知识,同学们说我们接下去的任务是什么?
〖学生〗根据算法选择合适的计算机语言编制相应的程序。
【教师】同学们回答得很好,这就是我们后面几节课的任务,我们将学习如何用QBASIC语言来编制程序。希望同学们去预习“程序设计”的相关内容,并试着编写求一元二次方程实数根的程序。
(四)课后作业
在大屏幕上播放课后作业的内容:
1.阅读下面“棋盘上的麦粒”的故事梗概,请同学们写出求麦粒数量的算法。
在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人——宰相西萨班达依尔。国王问他想要什么,他对国王说:“陛下,请您在这张棋盘的第1个小格里,赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有的64格的麦粒,都赏给您的仆人吧!”国王觉得这要求太容易满足了,就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。那么,宰相要求得到的麦粒到底有多少呢?
2.请同学们用流程图表示打电话的算法。
3.上网查找“韩信点兵”这个故事,回答下面四个问题:
(1)韩信是采用什么样的方法点兵的?
(2)韩信采用了什么样的数学原理?
(3)韩信为什么能迅速由3、5、7的余数知道总数?他借助了什么工具或算法?
(4)韩信能否点出任意人数的士兵?