高中信息技术浙教版选择性必修1:5.1 数据结构与算法效率-教学设计.docx

高中信息技术浙教版选择性必修1:5.1 数据结构与算法效率-教学设计.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

教学设计

课程基本信息

学科

信息技术

年级

高二

学期

秋季

课题

5.1数据结构与算法效率

教学目标

课标内容要求:

1.6通过比较解决同一个问题的不同算法,体验算法效率的差别,理解算法的正确性、可读性、健壮性,掌握算法分析的一般方法和过程,会计算算法的时空复杂度。

核心素养指向:

计算思维:学生通过分析和计算算法的时间复杂度,学会从复杂的实际问题中提取出关键要素,构建数学模型,从而锻炼了计算思维能力。

信息意识:学生能感知到算法效率在生活中的应用以及重要性。在面对具体问题时,学生能够根据算法的效率差异,选择合适的算法来解决问题。

教学目标

(1)通过比较解决同一个问题的不同算法,体验算法效率的差别,体会算法效率必要性。

(2)分析具体程序,理解算法效率分析的一般方法,会计算程序时间复杂度。

(3)回顾线性结构的特性,总结不同数据结构对算法效率的影响。

教学重难点

教学重点:

计算简单程序时间复杂度。

对比链表和数组在访问、插入删除元素的效率差异。

教学难点:

1.计算简单程序时间复杂度。

教学过程

教学环节

教学活动

设计意图

情境导入

根据传说中高斯计算从1加到100的总和的方法和其他同学的计算方法对比,引出算法的效率的概念。

用故事的方式激发学生兴趣,引导学生理解算法效率的概念,对提高算法效率的重要性有初步感受。

知识讲解

教师讲授:算法效率、时间复杂度、空间复杂度的概念。明确本节课研究时间复杂度,引出时间复杂度是反映算法执行所需要的时间。

承上启下,解释导入中算法效率的概念。展开知识体系,并将着力点聚集于时间复杂度,引出测试执行时间。

活动:

测试执行时间

教师讲授:用Python中的time模块,记录算法开始前和结束后的系统时间,其差值就是运行时间。

importtime#导入time模块

start=time.time()#算法开始前的系统时间

#在此处添加需要执行的程序

end=time.time()#算法结束后的系统时间

print(%.10f%(end-start))#计算差值并保留10位小数

算法1

算法2

defsum1(n):

sum=0

foriinrange(1,n+1):

sum=sum+i

returnsum

defsum2(n):

sum=n*(n+1)/2

returnsum

学生活动:

1.连续运行算法1和算法2五次,并记录每次运行时间。

2.改变变量n的值,观察运行时间的变化情况。

算法1:

第1次

第2次

第3次

第4次

第5次

n=?10000

?

?

?

?

?

n=?100000

?

?

?

?

?

n=?1000000

?

?

?

?

算法2:

第1次

第2次

第3次

第4次

第5次

n=?10000

?

?

?

?

?

n=?100000

?

?

?

?

?

n=?1000000

?

?

?

?

观察记录下的结果,可以得到什么结论?

请同学来回答得到的结论。

利用学生能理解并使用的程序段来测量程序的执行时间。例子选用“计算从1加到100的总和”的两种方法,例子选取时和导入相呼应,同时算法1运行时间会线性增长,呈现的数值关系较为清晰。在看到两个算法时,学生会产生哪个算法效率高的模糊设想。通过测试运行时间让学生具体的、直观地体会到高斯的计算方法和其他同学的计算方法在运行时间上的差异。由于一旦计算数据过小,运行时间展示得不明显,所以n的值选取了10000,100000,1000000。通过多次运行同一算法,观察随着输入规模的增加,运行时间如何变化,并总结得出结论。

学生总结结论。预设学生提出(1)不同计算机运行时间不相同。(2)算法1呈线性增加,算法2运行时间与n无关且近似为0。

反思过渡

教师讲授:根据学生得到的结论,分析直接运行程序测试运行时间来评判算法效率的不妥之处。引发学生疑问如何找一种不需要运行程序,且与外界因素无关的度量指标来评估算法的执行时间。并通过如下推导将评估算法执行时间的指标定为语句的总执行次数。

通过结论反思测试执行时间的方法虽然可以直观地看出算法效率,但是有不妥之处。学生理解外部环境对算法运行时间的影响。通过讨论不同编程语言、不同设备对算法运行时间的影响,以及引入基于代码本身的评估方法,鼓励学生从更高的层面思考问题,培养他们的抽象思维能力。

知识讲解

教师讲授:分析算法1和算法2的语句执行次数T。1.对代码进行编号。2.逐句分析语句执行次数。最终得到语句的总执行次数和n相关的函数,并解释问题规模n的概念。

教师讲授:分析T(n)的式子,通过具体数值代入,感受对T(n)起主导作用的部分是n。并提出“大O记法”的概念,介绍推导大

您可能关注的文档

文档评论(0)

K12教育资源 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年02月03日上传了教师资格证

1亿VIP精品文档

相关文档