汉诺塔问题与递归思想教学设计.doc

汉诺塔问题与递归思想教学设计.doc

ID:55143790

大小:3.21 MB

页数:7页

时间:2020-04-28

汉诺塔问题与递归思想教学设计.doc_第1页
汉诺塔问题与递归思想教学设计.doc_第2页
汉诺塔问题与递归思想教学设计.doc_第3页
汉诺塔问题与递归思想教学设计.doc_第4页
汉诺塔问题与递归思想教学设计.doc_第5页
资源描述:

《汉诺塔问题与递归思想教学设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、教学思想(包括教学背景、教学目标)1、教学背景本课程“递归算法”,属于《数据结构与算法》课程中“栈和队列”章节的重点和难点。数据结构与算法已经广泛应用于各行各业的数据存储和信息处理中,与人们的社会生活密不可分。该课程是计算机类相关专业核心骨干课程,处于计算机学科的核心地位,具有承上启下的作用。不仅成为全国高校计算机类硕士研究生入学的统考科目,还是各企业招聘信息类员工入职笔试的必考科目。数据结构与算法课程面向计算机科学与技术、软件工程等计算机类学生,属于专业基础课。2、教学大纲通过本课程的学习,主要培养学生以下几个

2、方面的能力:1)理解递归的算法;2)掌握递归算法的实现要素;3)掌握数值与非数值型递归的实现方法。根据学生在学习基础和能力方面的差异性,将整个课程教学目标分成三个水平:合格水平(符合课标的最低要求),中等以上水平(符合课标的基本要求),优秀水平(符合或超出课标提出的最高要求)。具体如下表:水平等级衡量标准合格可以正确理解递归算法的概念,并理解递归算法的递归分解和递归结束条件设计。中等以上在合格水平的基础上,能熟练掌握数值型问题的递归算法设计;理解非数值型问题的递归算法设计。优秀在中等水平基础上,可以独立分析并实现数值

3、与非数值型问题递归的设计,解决复杂问题求解的递归方法。二、课程设计思路(包括教学方法、手段)“递归算法”课程以故事引入、案例驱动法、示范模仿、启发式等多元化教学方法,设计课程内容。具体的课堂内容如下所示:教学环节课堂内容设计教法方法导入新课引导学生学习热情明确教学目标课程教学一、故事导入:结合故事突出主题生活中大人给小孩讲故事时,讲了掩耳盗铃、入木三分后,若实在没故事了,就会讲说:从前有座山,山里有个庙,庙里有个老和尚讲故事,讲的什么呢?讲的是从前有个山,山里有个庙,庙里有个老和尚讲故事,讲的什么呢?这就是一个典型的

4、递归故事,可以无限次的递归下去。可以把这个故事比喻成函数的递归调用,但和故事不同的是,在程序设计中,不可能无限递归下去,必须要有递归的结束条件。而且每次递归都应该朝着能够结束的条件去运行,直到满足条件时终止递归调用。重点学习内容:1.理解递归的概念;2.掌握递归算法的实现要素;3.掌握数值与非数值型递归的实现方法。二、案例引入:结合实例“阶乘”讲解递归算法的特征和设计方法。编写代码:intfact(intn){intvalue;if(n==0)value=1;elsevalue=n*fact(n-1);returnv

5、alue;}main(){printf("%d",fact(5));}故事引入、知识迁移法讲授法案例引入法、示范模仿法结果展示分析执行过程:前提:1)原问题可以层层分解为类似的子问题,且子问题比原问题规模更小;2)规模最小的问题具有直接解。设计方法:1)寻找分解方法:将原问题转化为子问题求解;2)设计递归出口:根据规模最小的子问题确定递归终止条件。三、案例引入:结合故事突出主题结合hanoi典型实例,使学生能深入理解递归函数的设计方法,以及在实际问题中的应用,培养学生分析问题的能力。设有三座塔座(A、B、C),在一个

6、塔座(设为A)上有64个盘片,盘片不等,按大盘在下,小盘在上的顺序依次叠放。现要将A塔上的盘片借助于B塔,移到C塔上并保持同样顺序叠排,移动盘片时必须遵守以下规则:1)每次只能移动一个圆盘;2)圆盘可以插在A、B、C任意一个塔座上;3)任何时候都不能将一个较大的圆盘放到较小的圆盘之上。实物演示:根据一段动画演示,观察并共同分析hanoi的移动步骤,并总结递归函数的分解方法和递归出口。设计思想(三步法):1)把A塔上的n-1个盘片借助C塔移至B塔;2)把第n个盘片从A塔移至C塔;3)把B塔上的n-1个盘片借助A塔移至C

7、塔。递归出口:当n=1时,无需借助,直接移动即可。启发式教学法故事引入、任务驱动法示范模仿法、实物n=3的实例演示、启发式教学法课程总结思考拓展编写代码:根据算法设计思想编写程序代码。#includeintcount=0;voidmove(intn,charx,charz){printf("%d:%c-->%c",n,x,z);count++;}voidhanoi(intn,charx,chary,charz){if(n==1)move(1,x,z);else{hanoi(n-1,x,z,y);

8、move(n,x,z);hanoi(n-1,y,x,z);}}main(){intn;printf("pleaseinputn:");scanf("%d",&n);hanoi(n,'A','B','C');printf("thecountis%d",count);}运行程序:为了查看运行执行次数,增加count计数器以便统计移动次数。观

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。