内容正文:
《非数值计算之递归程序》教学设计
【学科核心素养】
1.能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型。
(计算思维)
2.总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。(计算思维)
【内容要求】
1.掌握一种程序设计语言的基本知识,能够使用程序设计语言实现简单算法。
2.通过解决实际问题,体验程序设计的基本算法思想。
【学业要求】
掌握一种程序设计语言的基本知识,利用程序设计语言实现基本算法,解决实际问题。
【学情分析】
从学生的认知水平来看,高中学生的逻辑思维能力趋于成熟,能够有条理地表达一个过程或规则,为进一步发展学生的计算思维创造了条件。
通过前面章节的学习,学生已经初步掌握了用 Python 语言实现顺序结构、选择结构程序、循环结构的程序、可以复用的代码。这些前置知识为本节课递归程序的学习做好了铺垫。因此,本节课将通过前面学习过的一个函数的例子出发,引导学生理解递归的概念及递归程序的执行过程,学会使用递归编写解决实际问题的程序。
【教学目标】
1.了解递归是计算科学领域中一种重要的计算思维模式
2.理解递归的概念及递归程序的执行过程。
3.体验递归算法在解决实际生活问题中的应用,感受计算机编程的魅力。
【教学重难点】
教学重点:递归的概念;递归定义在解决具体问题中的建立。教学难点:递归定义在解决具体问题中的建立。
【教学过程】
教学环节
教师活动
学生活动
设计意图
问题导入
回顾第 2 单元“编程计
算”中第 4 节“可以复用的代码”中 python 函数“求阶乘” 的定义与调用的例子。
知识回顾
复习回顾函数的定义及调用,为后续学习做铺垫。
提出递归算法
将累乘求n!与(n-1)!等式对比,提出求n!的递推公
式,进而提出求n!的的递归定义,写出求n!的递归程序
聆听思考
分析、对比,提出递归算法
分析递归算法的执行过程
1、提出递归算法的特点:自己调用自己。
2、以求 4!为例,分析递归程序的执行过程。
聆听思考
让学生认识递归程序的特点和执行过程
总结递归程序
1、总结递归程序的定义、特点
2、总结递归程序的组
成要素
聆听思考
让学生认识递归的定义及组成元素
项目任务
1、提出“汉诺塔” 游
戏的两个任务
2、分析第一个任务,提出递归算法