您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 汉诺塔问题与递归思想教学设计
..一、教学思想(包括教学背景、教学目标)1、教学背景本课程“递归算法”,属于《数据结构与算法》课程中“栈和队列”章节的重点和难点。数据结构与算法已经广泛应用于各行各业的数据存储和信息处理中,与人们的社会生活密不可分。该课程是计算机类相关专业核心骨干课程,处于计算机学科的核心地位,具有承上启下的作用。不仅成为全国高校计算机类硕士研究生入学的统考科目,还是各企业招聘信息类员工入职笔试的必考科目。数据结构与算法课程面向计算机科学与技术、软件工程等计算机类学生,属于专业基础课。2、教学大纲通过本课程的学习,主要培养学生以下几个方面的能力:1)理解递归的算法;2)掌握递归算法的实现要素;3)掌握数值与非数值型递归的实现方法。根据学生在学习基础和能力方面的差异性,将整个课程教学目标分成三个水平:合格水平(符合课标的最低要求),中等以上水平(符合课标的基本要求),优秀水平(符合或超出课标提出的最高要求)。具体如下表:水平等级衡量标准合格可以正确理解递归算法的概念,并理解递归算法的递归分解和递归结束条件设计。中等以上在合格水平的基础上,能熟练掌握数值型问题的递归算法设计;理解非数值型问题的递归算法设计。..优秀在中等水平基础上,可以独立分析并实现数值与非数值型问题递归的设计,解决复杂问题求解的递归方法。二、课程设计思路(包括教学方法、手段)“递归算法”课程以故事引入、案例驱动法、示范模仿、启发式等多元化教学方法,设计课程内容。具体的课堂内容如下所示:教学环节课堂内容设计教法方法导入新课引导学生学习热情明确教学目标课程教学一、故事导入:结合故事突出主题生活中大人给小孩讲故事时,讲了掩耳盗铃、入木三分后,若实在没故事了,就会讲说:从前有座山,山里有个庙,庙里有个老和尚讲故事,讲的什么呢?讲的是从前有个山,山里有个庙,庙里有个老和尚讲故事,讲的什么呢?这就是一个典型的递归故事,可以无限次的递归下去。可以把这个故事比喻成函数的递归调用,但和故事不同的是,在程序设计中,不可能无限递归下去,必须要有递归的结束条件。而且每次递归都应该朝着能够结束的条件去运行,直到满足条件时终止递归调用。重点学习内容:1.理解递归的概念;2.掌握递归算法的实现要素;3.掌握数值与非数值型递归的实现方法。二、案例引入:结合实例“阶乘”讲解递归算法的特征和设计方法。编写代码:intfact(intn){intvalue;if(n==0)value=1;elsevalue=n*fact(n-1);故事引入、知识迁移法讲授法案例引入法、示范模仿法结果展示..returnvalue;}main(){printf(%d,fact(5));}分析执行过程:前提:1)原问题可以层层分解为类似的子问题,且子问题比原问题规模更小;2)规模最小的问题具有直接解。设计方法:1)寻找分解方法:将原问题转化为子问题求解;2)设计递归出口:根据规模最小的子问题确定递归终止条件。三、案例引入:结合故事突出主题结合hanoi典型实例,使学生能深入理解递归函数的设计方法,以及在实际问题中的应用,培养学生分析问题的能力。设有三座塔座(A、B、C),在一个塔座(设为A)上有64个盘片,盘片不等,按大盘在下,小盘在上的顺序依次叠放。现要将A塔上的盘片借助于B塔,移到C塔上并保持同样顺序叠排,移动盘片时必须遵守以下规则:1)每次只能移动一个圆盘;2)圆盘可以插在A、B、C任意一个塔座上;3)任何时候都不能将一个较大的圆盘放到较小的圆盘之上。实物演示:根据一段动画演示,观察并共同分析hanoi的移动步骤,并总结递归函数的分解方法和递归出口。设计思想(三步法):启发式教学法故事引入、任务驱动法示范模仿法、实物n=3的实例演示、..1)把A塔上的n-1个盘片借助C塔移至B塔;2)把第n个盘片从A塔移至C塔;3)把B塔上的n-1个盘片借助A塔移至C塔。递归出口:当n=1时,无需借助,直接移动即可。编写代码:根据算法设计思想编写程序代码。#includestdio.hintcount=0;voidmove(intn,charx,charz){printf(%d:%c--%c\n,n,x,z);count++;}voidhanoi(intn,charx,chary,charz){if(n==1)move(1,x,z);else{hanoi(n-1,x,z,y);move(n,x,z);hanoi(n-1,y,x,z);}}main(){intn;printf(pleaseinputn:);scanf(%d,&n);hanoi(n,'A','B','C');printf(\nthecountis%d\n,count);}运行程序:为了查看运行执行次数,增加count计数器以便统计移动次数。观察n和count之间的数值关系。ncount112337415启发式教学法环境下实际演示代码分析算法深入分析利用计算器计算次数..课程总结思考拓展531count=2n-1思考:若移动速度为1个/秒,则需要(264-1)/365/24/3600=5849亿年。四、总结和思考总结:对于阶乘这类数值型问题,可以表达成数学公式,然后从相应的公式入手推导,解决这类问题的递归定义,同时确定这个问题的边界条件,找到结束递归的条件。对于汉诺塔这类非数值型问题,虽然很难找到数学公式表达,但可将问题进行分解,问题规模逐渐缩小,直至最小规模有直接解。思考:数值型问题:斐波那契数列的递归设计。非数值型问题:八皇后问题的递归设计。阐述总结知识拓展三、教学特色(总结教学特色和效果)递归算法课程主要讨论递归设计的思想和实现。从阶乘实例入手,由浅入深,层层深入介绍了递归的设计要点和算法的实现。从汉诺塔问题,通过“边提问,边思考”的方式逐层深入地给出算法的分析和设计过程。通过故事引入、案例导入、实例演示、PPT展示、实现效果等“多元化教学方式”,努力扩展课堂教学主战场。加上逐步引导、问题驱动,启发学生对算法的理解,并用实例演示展示算法的分析过程,在编译环境下实现该算法,加深对算法实现过程的认识。1、知识点的引入使用故事诱导法讲授通过“老和尚讲故事”引入函数的递归调用,并通过“世界末日问题”故事引入非数值型问题的递归分析,激发学习积极性,挖掘学生潜能。..2、重点、难点内容采用案例驱动式教学方法课程内容通过案例驱动,培养学生计算思维能力和设计能力;学生不但可以激发学习积极性和主动性,提高学生独立思考,深入研究,分析问题、解决问题的能力,从而促进学生综合能力发展。3、注重应用性的实例教学法整个教学实例都围绕递归分析的寻找分解方法和递归出口设计这两个要素展开引导、分析、演示和总结。通过实际问题的解决,使学生不但掌握“递归算法”这一知识点,同时锻炼学生分析和解决复杂问题的能力,将两者结合完成分析和程序设计实现,满足应用型人才的培养要求。..4、用启发引导式教学法实现知识点的拓展和延续本课程中的“递归算法”是以阶乘这类数值型问题和汉诺塔这类非数值型问题分别讨论。对于现实生活中,斐波那契数列这类数值型和八皇后这类非数值型情况,在设计中提出了不同的分析策略,在课程结束启发大家思考,实现知识点的拓展和延续。5、运用现代化教学手段丰富教学形式在讲授相关知识的时候,采用动画演示、视频资料、编译环境、Windows计算器以及相关的图片资料等多元化方式。这样在增加学习兴趣的同时,更容易让学生深入理解和清晰把握。例如:在汉诺塔讲解时,借助实物演示、PPT逐步动画展示递归分解过程、编译环境下实现、修改程序讨论算法效率,加深学生对算法分析过程、实现细节的理解。..“递归算法”课程在基础理论知识教学的基础上,注重知识的实践和应用,力求理论与实践相联系,将原理与实现有机结合。辅以课后思考题,延伸知识点的理解。
本文标题:汉诺塔问题与递归思想教学设计
链接地址:https://www.777doc.com/doc-6230526 .html