内容正文:
递归法与问题解决教学设计
一、学情分析
高一学生对程序设计有一定的了解,学习了程序设计的三种基本结构,初步学习了解析法”和“穷举法”,已经积累了用计算机编程解决现实中的问题的初步经验。递归算法知识具有一定的抽象性,理论性比较强,如果以理论和编程教学为主,只是难度比较大,很难吸引学生的兴趣,学生无法做到有意义学习。因此教学过程中设置了比较真实的问题情境,在解决问题的过程中,重点是引导学生分析、归纳递归法的含义和适用条件,编程要求学生能够在教师提供的半成品程序上加以完善,目的是为了学生在有限的课堂中能更清楚的了解算法与程序设计思想。
二、教学目标
(一)双基层:
了解“递归法”的基本概念和适用范围,能利用“递归法”设计算法、编写程序。
(二)问题解决层:
通过真实情境,总结归纳用递归法解决问题的过程,体会将复杂问题逐步分解为简单问题的分而治之思想,增强解决问题的能力。
(三)学科思维层:
理解计算机解决复杂问题过程中的分而治之的思想方法,在神奇的编程体验中进一步培养和提升学生的分析、归纳、总结、解决问题的能力,体会如何用递归的思想解决生活中的问题。
三、教学重难点
(一)重点:
掌握递归法的适用条件,能够设计递归算法,写出递归函数关系式。
(二)难点:
应用自定义函数方法实现递归算法的编程。
四、教学活动
(1) 设疑激趣,启发引入
内容
教师活动
学生活动
设计意图
引出汉诺塔问题,设置悬念。
1.课程开始之前我们先来看三幅图像,你能找到他们的相同之处吗?请两位同学回答。
同学回答的很好,同学们认为三幅图片中都使用了由小到大的自身n次,构成了新的图片。咱们可不可以理解为图片调用了自身?
既然图片是这样的,那么生活中有没有这样的实例呢?比如说一件事情的完成需要不断重复使用一样的方法?现在老师想请一位同学玩一个游戏。大家看老师手里有一套游戏设备,大家知道叫什么名字吗?
2.介绍汉诺塔的游戏规则:有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都只能出现小盘子在大盘子上方
首先请一位同学完成3个盘子任务,再请两位同学比赛完成4个盘子任务,再请获胜的同学挑战五个盘子任务。
挑战成功:询问同学在移动盘子的过程中使用了什么样的方法。
挑战不成功:老师可以教给你们一个神