《算法的概念与描述》教学设计谷爱清


打开文本图片集

学习内容分析

算法就是解决问题的方法与步骤。程序设计时,首先分析所要解决的问题,然后进行算法设计,再选用一种计算机语言来描述算法,形成计算机程序,因此算法是程序设计的基础。设计了一个算法之后,不能只是心知肚明,还必须准确清楚地将它记录下来,或提供交流,或依靠它来编写程序。描述算法的方法有很多,常用的有自然语言、流程图、伪代码等。解决同一个问题的算法可能有多种,也会有优劣之分。

学习者分析

本课的学习对象是八年级学生,他们处于皮亚杰认知理论阶段的形式运算阶段,好奇心强,有—定的探索能力和表达欲望,并且能够在原有知识的基础上进行迁移,生活中也接触过各种各样的“算法”。但是,绝大多数学生没有接触过程序设计,即使接触过程序设让也不够熟悉。很少有学生用计算机实现过算法,从生活算法出发,可以帮助学生形成算法的概念,但难以形成全面、透彻的认识。虽然在日常生活中经常遇到各种各样的流程图,但对流程图的认识只是停留在直观感受的层面,也不知道如何规范地使用流程图符号来描述算法。

学习目标

(1)理解算法的概念,明确算法对于程序设计的重要性。

(2)学会使用自然语言和流程图描述算法。

(3)理解算法的三种基本结构

(4)在用不同方法解决查找问题的过程中,体会算法的效率。

教学重点及难点

教学重点:使用自然语言和流程图描述算法,明确算法对于程序设计的重要性。

教学难点:使用流程图描述算法。

教学过程

1.感知生活,走进算法

腹有诗书气自华,最是书香能致远。读书可以让人保持思想活力,让人得到智慧启发,让人滋养浩然之气。

活动1:为了营造良好的阅读环境,小明去新华书店为班级采购图书。思考以下问题:

(1)生活中买书的流程是什么?(①选书;②付款)

(2)购买了某种图书后,如何计算付款额?(①已知购书数量和图书单价;②将数量乘以单价;③得出付款额)

小结:这种为解决一个问题而采取的方法和步骤,就称为算法。买书的流程、计算付款额的步骤,其实就是算法。

设计意图:通过计算图书的付款额这个“现实”中的问题,引导学生对问题进行分析,找到解决问题的方法和步骤,感知生活中的算法,从而揭开算法的神秘面纱,初步建立算法的概念。

2.解决问题,描述算法

为便于交流,设计好算法之后,还必须把它准确清楚地表示出来。描述算法的方法有多种,活动1采用的是自然语言也就是日常生活中使用的汉语、英语等语言。还可以用流程图描述算法,流程图是用一组规定式样的几何图形、简明扼要的文字和带箭头的流线来表示算法。

活动2:用流程图描述“计算图书付款额”的算法(如图1)。

(1)结合生活经验,说一说表1中各流程图符号的作用。

(2)教师演示“画程”软件中的图标工具及使用方法。学生参照自然语言描述的算法,尝试绘制“计算图书付款额”的流程图。(图书数量为x,单价为y,付款额为pay)

(3)观察并执行“计算图书付款金额”流程图,总结该算法的结构特点。

小结:①算法可以用自然语言和流程图来进行描述;②这个流程图中的各个操作能够按照自上而下的顺序执行,因此称为顺序结构。

活动3:“五一”到了新华书店搞优惠促销活动,全场享受九折优惠,凡购书满200元打八五折。请用流程图来描述优惠购书时计算付款额的算法。

(1)用自然语言描述打折算法。

①输入书的数量x(本)和单价y(元);

②计算pay=xy;

③判断:如果()成立,则打九折,pay pay*0.9,否则打八五折,();

④輸出付款金额payo

(2)参照自然语言描述的算法,使用“画程”软件绘制流程图(如图2),执行该流程图,输入不同的购书数量及单价,思考:

①这个流程图中是用哪种图形符号实现条件判断?

②这个问题中的条件是什么?条件成立时执行什么操作?不成立又执行什么操作?

小结:虚线框内利用“判断选择”框对条件进行判断,根据给定的条件是否成立,从两个分支路径中选择执行其中之一,这种控制结构称为分支结构(或选择结构)。

活动4:小明在新华书店看到了多种喜爱的图书,决定全部购买下来,又该如何计算付款额呢?

(1)思考分析:

①假如小明买了两种图书,如何计算付款额?购买多种图书时,又如何计算付款额呢?

②如何实现循环?又该如何结束循环?(以输入的图书数量0作为结束循环的标志)

(2)请用自然语言描述该算法。

①付款额pay清0;

②输入书的数量x(本)和单价y(元);

③如果()成立,则:

计算pay=x*y+pay.();

回到③,重复执行;

否则结束循环;

④输出付款金额pay

(3)使用“画程”软件绘制流程图(如图3),执行流程图,输入各种图书的数量及单价,思考:

①用什么图形符号可以描述重复执行的过程?

②该流程图是如何执行的?

小结:虚线框内利用“判断循环”框对条件进行判断,若条件成立,重复执行某个操作,这种控制结构称为循环结构。

通过计算图书付款额系列问题,我们发现:①自然语言描述算法容易理解;②流程图描述算法直观、简洁、易懂,并且逻辑关系清晰;③算法有三种基本结构,即顺序结构、分支结构和循环结构。在实际编程过程中常将这三种结构进行组合以实现各种算法。

设计意图:从分析计算图书付款额的问题出发,分别利用自然语言及流程图来描述算法,体会自然语言、流程图描述算法的特点。在解决计算“购买一种图书付款额”“优惠购书”“购买多种图书”付款额等系列问题过程中,理解算法的三种基本结构,学生分析问题、解决问题的能力也得到提升。选用“画程”工具来绘制流程图,学生只需用拖拽图标的方式就能轻松地绘制流程图,而且这个流程图是可以执行的,以验证算法是否可行,使得算法学习能够以“学生”和“思维”为中心,在没有接触程序设计语言的情况下’也能够研究和设计算法,大大降低了算法学习的门槛。

3.实例分析,再认算法

前面图书的单价都是由用户输入的,而在实际生活中,往往是通过输入商品编码,从数据库中查找对应商品的单价。

活动5:根据图书ISBN编码,在表2“图书信息表”中查找图书单价(表中的图书信息是按照图书ISBN编码从小到大排序的)。如果查找到该图书信息,则输出单价,如果没有查找到,则输出“未入库!”。请你设计一种实现图书单价查询的算法。

(1)先结合日常经验说一说你的查找方法。

(2)选择几种图书,使用你所选定的查找方法,根据"ISBN编码”在“图书信息表”中查找该编码对应的单价,并记录相关数据,如表3。

(3)与同学交流,比较各种查找算法的效率。

小结:解决问题的算法可能有多种,不同的算法有优有劣,这当中的差异甚至可以很大。我们在设计算法时要尽可能地对算法进行优化,以提高程序的效率。

设计意图:通过按码索价活动初步体验算法的应用,感受算法的价值。各组学生根据搭建的支架探究解决查找问题的方法,如顺序查找和二分查找。通过这些查找方法的比较,学生感受到同一个问题可能有多种解决方法,而且方法也有优劣之分,优秀算法能提高解决问题的效率,从而更好地理解“算法是程序的灵魂”这句话的含义。

4.思维导图,梳理知识

课件展示,引导学生利用思维导图对算法知识加以梳理(如上页图4)。

结束语:算法是程序的灵魂。在用计算机编程解决问题时,首先要分析问题,确定算法,然后才能用计算机语言编写程序。著名计算机科学家李国杰院士对算法作了精辟论述:“算法设计是人类智慧的结晶,计算机的知识创新,主要就是算法的创新,创建一种新算法其意义不亚于建造一种新机型。”

设计意图:借助思维导图,引导学生将关键知识点整合并以结构化方式呈现,进一步巩固学生的认知结构。最后借用李国杰院士的一段话作结束语,凸显出算法是程序的灵魂,让学生更加清晰地了解算法在程序设计中的地位和作用,为后续学习做好铺垫。

点评

在信息化社会中,生产、生活中许多问题的解决需要运用各种信息化设备,这些设备的运作都是靠人用程序来指挥的,而程序只是用某种计算机语言所描述或表示的算法。所以说,算法是计算机信息处理的核心和基础。掌握算法的基本思想,可以更好地理解这些信息化设备的内在运行机制,从而更有利于掌握各种信息化设备的应用,更陕适应时代的步伐。算法是对特定问题求解步骤的一种精确描述,算法这种确定性的特征,使得算法的学习对提高学生逻辑思维能力具有直接的促进作用。然而,初学者对算法概念及流程图的图形符号既熟悉又陌生,老师的教学往往过于注重算法形式的学习而淡化对算法本质的理解,学生虽然也能明白教科书上的算法案例,却不能正确应用算法来解决问题。本节课克服了上述不足,其教学具有以下几个方面的特色:

一是关注了计算机算法的本质特征。算法可分为三种形式:第一种是生活算法,即完成某一项工作的方法和步骤;第二种是数学算法,即数学运算法则和解题规则;第三种是计算机算法,即求解某一类问题的一个运算序列。由于生活算法与计算机算法有非常相似的地方,许多老师常常使用生活算法来类比计算机算法,例如“狼羊过河”的问题,通过游戏的方式模拟狼羊过河的步骤引出算法的概念,这里呈现的过河的过程并不是算法实施的结果,这个问题实际上人事先已经解决好了。而计算机算法则强调通过一系列的运算之后,由计算机输出问题解决的结果,例如在用递归法解决“汉诺塔”问题时,计算机给出的移动金盘的过程就是算法实施的結果,所以说,计算机算法实际上是使用机械化的方法进行问题的自动求解,我们并不能简单地把生活算法映射到计算机算法。本课则回到了计算机信息处理的原始含义——数值计算,通过计算图书付款额这个“现实”中的问题,引导学生对问题进行分析,找到解决问题的方法和步骤,其中内隐了计算机解决问题的基本过程,即输入信息

处理输出信息,既引出了算法的概念,又较好地体现.了计算机算法的本质。

二是创设真实的问题情境。以往的算法教学,算法的三种基本结构常常以去情境化的方式教给学生,学生未能经历可信可靠的“真正的学习”,难以形成篇决实际问题的能力。本课则创设了“计算图书付款额”的真实问题,设计了系列的四个活动:活动1对“购买图书付款”的—般过程进行分析,通过用自然语言精确描述解决这个问题的步骤,引出算法的概念;活动2则将活动1中用自然语言描述的算法转化为流程图,在实施算法的过程中引导学生发现顺序结构;活动3中学生在对优惠购书方式分析的基础上,尝试用分支结构描述算法,以解决优惠购书问题;活动4是用循环结构解决“计算多种图书付款额”问题。学生在不断尝试的过程中,逐步学会运用算法解决实际问题,理解和掌握算法的三种基本结构。三个子问题的复杂度是不断增加的,学生又较好地体会到了运用迭代思维解决复杂问题的思路和方法。

三是使用画程工具降低算法学习的门槛。算法学习存在两大障碍:一是在用自然语言描述算法之后,怎么把它转化为流程图,无论是用纸笔,还是用wbrd、visio等软件,都比较费时费力;二是画好的流程图,怎么转化为程序?流程图是人与人之间交流算法思想的工具,对于初学者来说,还不会编写程序,因此无法写出代码验证算法,最终使算法学习沦为纸上谈兵。画程软件较好地解决了这两个问题,只用拖拽图标的方式就能轻松地绘制流程图,这个流程图还是可以执行的,学生能够通过算法的实施来检验问题解决的效果,那么在研究和设计算法时,就可以暂时不理会程序设计的细节,只需专注于算法思想,大大降低了算法学习的门槛。

四是通过实验体会算法在程序设计中的地位和作用。对于同一个问题,可能有多种算法,这些算法虽然功能相同,但性能却可能不完全一样,也就是说,算法有优劣之分。最后的“按码索价”活动,通过思想实验的方式进行推演,在没有编程的情况下,对“顺序查找”和“二分查找”这两种算法进行比较,感受优秀的算法可以提高解决问题的效率,从而真正理解“算法是程序的灵魂”这句话的含义。

推荐访问:教学设计 算法 描述 概念 谷爱清