文档介绍:浅谈《递归法的实现》课堂教学
摘要:随着《普通高中技术课程标准(实验稿)》的颁布与实施,《算法与程序设计》成为了五大选修模块之一,是教学中比较难教和难学的一个课程。而在《算法与程序设计》中,“递归法的实现”是学生最难理解的一节内容,因此我对本节内容采用了“从游戏来引入课题”,“从简单、典型例题来讲解知识”,“从简到难来完善巩固知识”,教学效果较为满意。
关键词:递归法自定义函数
“递归法的实现”是教育科学出版社高中《算法与程序设计》(选修)第三章第五节第三小节的内容。该教材选用了Visual 。在前面学习了数据的表示与处理、程序的基本结构等内容,特别是自定义函数的学习,为本节内容打下了一定得基础。“递归法的实现”这一节内容的教学重点就是要求学生能够理解递归法,并学会用递归法分析问题、编写程序解决问题,其中用自定义函数实现递归法编写程序解决问题又是难点内容。如何激发学生的学习兴趣;如何让学生达到本节课的教学要求……我对本小节教授制定了一定的教学策略,“从游戏来引入课题”,“从简单、典型例题来讲解知识”,“从简到难来完善巩固知识”,从而完成教学任务。
用游戏引入课题,激发学生兴趣
我们学校学生的整体知识基础比较低,“算法与程序设计”与数学又有很大的关联,递归法对学生来说是非常难的,学生无法理解和想象。因此我通过设计游戏,让学生亲身体验,在欢快的气氛中理解递归法。游戏内容:将一句诗“柳暗花明又一村”的七个字写在七张纸上,请八个同学排成一排,七张纸依次贴在第一个到第七个同学的背后,每一个同学只能看前一个同学背后的字,从第一个同学开始依次问下一个同学是句什么诗,然后由最后一个同学开始依次告诉前一个同学他所知道的所有内容,最后第一个同学就能猜出是句什么诗了。这个游戏清楚明了的蕴含了递归法——递推和回归。前面学习了自定义函数,这个游戏用自定义函数可以这样描述:
Private Function what(number)
如果我是最后一个,我就告诉你是什么字;
否则,我问了下一个同学后再一起告诉你
End Function
这个函数的作用就是得到第number个学生知道的字,所以要知道这句诗是什么,就要不停的用这个函数,从而引出,递归法就是函数自己调用自己。通过游戏的引入学生会比较感兴趣,能激发学生学习的积极性。
用简单、典型例题,分析讲解知识
教材上用了兔子繁殖的例题来实现递归法,对学生来说是比较难的,就算是让学生用数学的方法来做,学生也不一定能正确的算出答案,更不用说用刚学习的递归法了,并且在这个程序中用到了在函数中两个同时调用函数自己,那对学生来说就是难上加难了,所以我就用简单、典型的例题来讲解,帮学生一起用递归法来分析问题。例:计算5!。这个题如果让学生用数学来做是非常简单的,人人都会,这样再用递归法来分析就简单了。分析如下:用递归法的思想,5!可以看成(4!*5),4!可以看出(3!*2)……直到最后一定要知道1!等于1。通过图来演示:
5!= 4!*5
4!= 3!*4
3!= 2!*3
2!= 1!*2
1!=1
递推
回归
图1
根据图1所示,能够分析出,某一个数的阶乘都看以看成是它前一个数的阶乘乘以它自己本身,根据分析能够编写这样的自定义函数,作用是计算某个数的阶乘。代码