学院 | 数理信息学院 | 课程名称 | 程序设计与算法语言 |
授课教师 | 许淑华 | 授课班级 | 数学与应用数学(师范)171 |
教学切入点 | 第8章 函数 8.5 函数递归调用 |
德育元素 (预期目标) | 理论与实践一致:使学生知道软件编程思想运行的严密性、理论方法与实现技术的高度一致是计算机科学与技术学科同数学学科密切相关的根本原因。 |
内容、方法及实施过程 | 本节让同学们玩汉诺塔的游戏,导入递归问题,从用普通程序解决斐波那契的兔子问题入手,引导学生用自定义了一个以递归方式解决的函数过程解决问题,同时让同学们做三个递归练习,巩固提高。然后让学生做形式相差很远的两道题目,但方法和答案却是完全相同的练习,体会其中的奥妙,加深对递归算法的了解。最后用函数解决汉诺塔的经典问题。 |
教学体会 | 通过这个实例,我们可以看出,递归算法书写简单,代码很少。但是将递归算法非递归化,可以节省存储空间,而且算法的执行效率也有很大的提高。但是,究竟哪种算法更优一些,这要看实际的问题求解过程。某种算法是可行的,但不一定就是最佳的。在一定的问题域里看似最佳的算法,当参数出现变化时,又会出现许多问题。所以,算法教学首要的是教会学生一种思想,不是固定不变的程式。好的思想和灵活的编程技术相结合,是我们算法教学的最终目的。 |