数据结构—第九周教学

一、课程目标

  1.  理解递归的算法;
  2.   掌握递归算法的基本要素;
  3.   掌握递归算法的设计与实现

      通过本周内容学习,旨在让学生们掌握递归的基本概念,主要是对于汉诺塔的游戏进行递归分析,能够单独实现汉诺塔游戏,并且进行相关代码编程,解决相关实际问题。

 

二、重难点

 课程的教学重点:

(1)递归算法的基本要素

  (2)   递归算法的设计

教学难点:

  (1) 递归算法的设计:如何找到递归体,如何找到递归出口

    

 

三、课程思政点

 1.递归的思想是要把“大问题”转化成“小问题”,然后小问题再逐个突破。其实这种思想随处可见,大到国家的人口普查,小到同学的个人学习生活。都可以用到递归的思想。我们主要的难点在于,这个递推关系的推导,和递归出口的确定。

 2.在玩汉诺塔游戏时,我们通过递归方法,直接能够将汉诺塔游戏通关,这也近一步告诉同学们,不要沉迷于玩游戏,游戏的本质其实就是算法,沉迷于游戏,其实就是困于算法。

四、信息技术应用点

 1.使用云班课进行投票,感知同学们的学习程度

 2.使用PTA,培养学生的编程能力

 3.汉诺塔游戏,加强同学对于递归的理解

 

五、互动点

  • 提问1:大家有没有写过方法里面再调用自己的方法??

          写过,比如n的阶乘,以此引出递归的概念

  • 提问2:方法里面能一直调用自己吗?

          不能,会出现死循环,所以需要找到递归的出口

  • 提问3:一只青蛙,一次可以跳一个台阶也能跳两个台阶,请问跳到第n个台阶,有多少种跳法??
    采用递归,不要一个一个去算,f(n)=f(n-1)+ f(n-2)

 六、总结

        上一周,在课堂上跟他们也分析了目前班级数据结构存在的问题,这周上来,实验报告的质量比上周高很多,同学们会把自己遇到的问题一个一个都记录下来(包括解决办法)。还有同学会将自己遗漏的知识点,再自己总结归纳出来。也有同学会拿着题目过来讨论,到底哪里错了。从PTA上的提交结果也能看到,同学们在深夜也有在敲PTA的代码。这或许就是学数据结构的必经之路吧,曾经的自己第一遍学习满脸懵逼,到第二遍学习似懂非懂,到第三遍,第四遍。。。。

posted @ 2021-11-09 22:46  逗号5  阅读(237)  评论(0)    收藏  举报