内容正文:
《1.3 算法的分析和评价》教案
课 题
《1.3 算法的分析和评价》
课 型
讲授
课 时
4
授课班级
计算机专业学生
授课时间
授课教师
教材分析
教教材采用《算法与程序设计——C#》(河北科学技术出版社),此章节是全书第一章节第三节,是非重点考试部分,仅要求学生了解,无需掌握。本章与后面的章节关系链接密切,应做好过度,不可直接略过。
学情分析
此章节的内容面向学生一般为:中等职业学校计算机专业新生或与计算机相关专业新生。学生具有基础能力一般,有参加对口升学考试的期望,对计算机相关内容有一定兴趣,对于编程相关思维和内容大概率是0基础状态,应该让知识更加的深入浅出。
学习目标
1.了解算法的时间复杂度、了解和算法执行时间相关有哪几部分因素。
2.了解算法的空间复杂度、理解一个算法在计算机存储器上所占用的存储空间与哪些因素有关。
学习重难点
重点:算法时间复杂度的定义,算法空间复杂度的定义
难点:算法时间复杂度的因素和常见分类,算法空间复杂度的分类
教学方法
讲授法、任务驱动法、项目式学习
课前准备
教学课件
教学媒体
PPT,可联网计算机
教学过程
教学环节
教师活动设计
学生活动设计
设计意图
活动一:
创设情境
生成问题
案例:
小明家里来了客人,小明要烧一壶水冲茶叶,具体步骤如下:
取茶叶2分钟,烧水10分钟,洗茶杯5分钟,冲茶3分钟
我们可以怎样尽快让完成为客人泡茶的任务?
方法一:按照上面步骤依次执行,共需要20分钟
方法二:在烧水的同时去取茶叶,洗茶杯,然后水烧开后再冲茶叶。
思考老师所提问内容
并评价一下两个案例。
引出:对比以上两种方法我们可以发现,方法不同所用的时间是不同的,因此当输出结果相同时,我们也能分析和评价不同算法的优劣。在我们计算机领域,评价算法的主要看算法的时间复杂度和空间复杂度。
活动二:
调动思维
探究新知
新知讲解:时间复杂度
(1)是衡量算法执行时间随输入规模增长而变化的度量(注意:时间复杂度并不是一个具体的时间,而是一个函数)
(2)作用:估计算法在最坏情况下所需要的资源
尝试理解时间复杂度的意义,注意和时间的概念是否会混淆
强调时间复杂度具体的意义
活动三:
深入分析
素质提升
项目例子:在陌生的找出班级中的一名同学。(手上有这个班级学生的基本信息,无照片)
1.学生思考并回答:
方法(以下为同学回答的参考):
(1)让每个学生写一块带有自己名字牌子,和手中信息对比直接轻松找到
(2)依次每个同学报名字,直到报到对应的同学
(3)确定要找同学的信息,每次都描述一条同学信息,不符合的回到座位,最后剩下的就是要找的学生
感受算法不同对实际解决问题的时间带来的影响。
活动四:
调动思维
探究新知
和算法执行时间有关的因素(以引入案例和计算机数据处理为例)
(1)问题中数据存储的存储结构
案例实例:茶放在哪里了?洗茶壶在哪?
计算机实例:数据结构是否复杂
(2)算法采用的数据模型
案例实例:茶壶大小,茶杯个数和形状
计算机实例:数据特征的抽象
(3)算法设计的策略
案例实例:如上述案例所示方法一和方法二的策略是不同的
计算机实例:常见的排序算法
(4)问题的规模
案例实例:要招待的客人数量(冲多少杯茶水)
计算机实例:要处理信息的规模
(5)实现算法的程序语言
案例实例:洗茶杯、冲茶叶的工具
计算机实例:使用的编程语言
(6)编译出算法的质量
案例实例:要洗出怎么茶杯,烧多少度的水
计算机实例:编译方式和代码简洁度
(7)计算机的执行速度
案例实例:执行这些任务的速度
计算机实例:计算机运行的速度
1.尝试理解教师讲解的内容
2.思考引入例子属于在哪个因素中做了优化
利用一个贯穿的实例帮助同学们理解算法的时间复杂度
活动五:
调动思维
探究新知
新知讲解:空间复杂度
定义:该算法消耗的存储空间
主要表达为三个方面:
(1)存储算法本身所占用的存储空间。
它与算法书写的长短成正比,要压缩这方面的存储空间,就必须编写出较短的算法。
(2)算法的输入输出数据所占用的存储空间。
它由要解决的问题决定,是通过参数表由调用函数传递而来的,不随本算法的不同而改变。
(3)算法在运行过程中临时占用的存储空间
它随算法的不同而异,有的算法只需要占用少量的临时工作单元,而且不随问题规模的大小而改变,我们称这种算法是就地进行的,是节省存储的算法;有的算法需要占用的临时工作单元数与解决问题的规模n有关,它随着n的增大而增大,当n较大时,将占用较多的存储单元,例如快速排序和归并排序算法就属于这种情况。
1.尝试理解老师提到的时间复杂度概念
2.利用具体现实中计算机的定义解释:
(1)存储算法本身所占用的存储空间:例如我们平时下载的软件前端;
(2)算法的输入输出数据所占用的存储空间:我们在使用软件时候生成的数据;
(3)算法在运行过程中临时占用的存储空间:相当于运行内存存储的内容
尝试理解空间复杂度具体的意义
课堂小结
作业布置
作业:
(1)完成练习的对应内容。
(2)记忆有关算法复杂度的内容。
板书设计
教学反思
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$