算 法
本节课是江苏省八年级信息技术第四章《程序设计》的第1节内容,前面已经介绍了程序设计的概念,了解了计算机程序解决实际问题的过程,本节课直指程序设计的核心——算法,在解决问题过程中算法的优劣直接影响所编程序的质量,引发学生对算法和程序语言的思考,也为后续学习程序设计语言提供基础和铺垫。
授课对象为八年级学生,该年龄段学生已经具备了一定的分析问题、解决问题的能力,逻辑思维能力正在逐渐增强。但是如何从生活实际中提炼解决问题的算法,如何筛选优秀算法解决问题优化方案,这方面的认知还是比较欠缺的。
通过生活中的实际问题“烧水泡茶”引发学生思考算法及算法优劣的影响,而在引出用流程图描述算法时,教师以“将a加b除以a减b的值赋给x 变量”这样一个略带歧义的句子为例,学生发现用自然语言描述解决问题的算法易因个人理解不同而失真。由此教师引出除用自然语言描述算法外,还可以用流程图来描述的基本概念。并提醒:任何算法的流程图都可以由顺序、选择和循环三个基本结构组合嵌套构成。
n 教学目标
(1)了解算法的基本概念与算法程序设计中的重要性。
(2)能够用自然语言、流程图来描述问题的算法。
(3)用多种算法解决同一问题,体验算法具有优劣之分。
(4)在解决实际问题的过程中能有意识地设计与筛选算法,优化问题解决的方案。
n 教学过程
环节一:情境导入
教师活动:烧水泡茶,它需要做4项工作,即洗好水壶(2分钟),洗好茶杯(3分钟),准备茶叶(1分钟),烧开水(10分钟)。
你会如何泡茶呢?
学生活动:回答泡茶的几种不同的方法。
教师活动:这是著名的华罗庚泡茶问题。
几种方法都能达成泡茶的目的,但是哪一种方法你觉得最好,为什么?
学生活动:思考各种方法的不同,发现在烧水同时洗好茶杯、准备好茶叶这种方法最节省时间。
教师活动:解决问题的方法和步骤我们称之为算法。那么刚才的几种方法都能解决泡茶这个问题,但是同学们发现有一种算法时间效率最高。
生活中我们要思考较好的算法,在编写程序时同样我们要探寻较好的算法。
设计意图:通过生活中的实际案例,体会解决问题方法的多样性,同时,引出为何要深入研究算法。
环节二:新授课——算法的重要性
教师活动:
给出例题:查数问题
编写一个包含有1000个有序数列(序号从1到1000)的数列,查找数字的程序:当输入某个数字时,程序立刻显示出该数字所在的序号。
应该如何查找数字呢?
解决该问题的算法有:(1)顺序查找;(2)随机查找;(3)二分查找……
学生活动:思考解决查数问题的多种方法,体会到算法的重要性,算法有优劣,选择较优的算法。
教师活动:向学生提出问题(1)哪一种算法比较好?为什么?(2)如何理解“算法的优劣直接影响所编程序的质量,算法是程序的灵魂”这句话呢?
学生活动:通过思考、回答问题,进一步理解算法的重要性。
设计意图:从查数程序引出算法的重要性,算法是程序的灵魂,选择合适的算法能提高整个程序的质量。并通过学生在描述多种解决问题的方法时引入可通过自然语言描述算法。
教师:同学们通过口头语言清晰地表述出了解决查数问题的各种方法,这种描述算法的方法我们称之为——“自然语言”。
引出自然语言描述算法。
鼓励学生设计出解决此问题的多种方法来。并分析不同算法解决问题的效果是否相同?
设计意图:进一步体会算法的优化可以大大提高工作效率。
环节三:新授课——如何描述算法
教师活动:查数问题的多种算法刚才是用自然语言来描述的,同学们都很容易理解,但用自然语言描述算法在某些时候会出现一些问题。
例题:阅读句子“将a加b除以a减b的值赋给x 变量”,填写出相应的赋值语句,然后统计全班同学所填写的是否一致。根据统计的结果,分析产生这种情况的原因。
所以在用自然语言描述算法的过程中要注意语言的严密性。
学生活动:体会自然语言的优缺点。
设计意图:掌握自然语言描述算法的方法,了解自然语言的优缺点和适用情况。
教师活动:可以用其他的方法描述出这个问题的算法,如下图。
图1 流程图
可以通过这样的几何图形把每一个步骤都清楚地表示出来。这样的表示方式我们称之为流程图。
学生活动:阅读几何图形描绘的算法,清晰表述出算法,引出流程图。
设计意图:引出流程图,并了解流程图的优缺点。
教师活动:流程图,就是用图形符号来描述解决问题的过程,其优点是直观、简洁、易懂,并且逻辑关系清晰。
教师介绍流程图各个图形符号所代表的含义。
表1 流程图中符号的含义
符 号 | 符号名称 | 含 义 |
起止框 | 表示算法的开始和结束 | |
处理框 | 表示对框内的内容进行处理 | |
输入/输出框 | 表示输入/输出操作 | |
判断框 | 表示对框内的条件进行判断 | |
流程线 | 表示流程的方向 |
学生活动:掌握流程图的使用方法,掌握各个几何图形在流程图中的作用。
教师活动:教师示范运用流程图描述顺序查找数字的方法。
表2 流程图描述顺序查找数字的优缺点
描述方法 | 自然语言 | 流程图 |
优点 | 容易理解 | 逻辑清晰 |
缺点 | 产生歧义 | 描绘麻烦 |
学生活动:理解自然语言和流程图的各自优缺点,掌握各自适用情况。阅读流程图,加深对流程图的理解。
设计意图:通过阅读流程图,巩固算法描述的知识。
教师活动:练习
(1)阅读流程图,说明该流程图描述的算法及功能。
图2 流程图
(2)用流程图描述前面“查数问题”的顺序查找算法。
学生活动:分析问题,找出算法,并能运用流程图描述算法。
设计意图:通过学生自主设计流程图,培养学生应用“算法描述”解决问题的能力。
教师活动:拓展练习
从键盘输入两个不同的数,然后显示大的数。请设计算法并画出流程图。
学生互动:尝试应用“画程”软件绘制流程图。
设计意图:知识螺旋上升。
环节四:总结
总结本课知识
归纳:1.算法的重要性。
2.描述算法的方法。
设计意图:归纳与建构知识体系。