浅谈穷举法的教学设计

时间:2022-08-20 04:00:38

浅谈穷举法的教学设计

摘 要:编写计算机程序解决问题时,算法及代码实现是两个重要环节。教学中,如何引出算法,理清思路,并在代码学习中帮助学生维持学习兴趣,一直是程序设计课的关注点。

关键词:穷举法;趣味故事;代码实现

中图分类号:G633.67

1 学情分析

学生已掌握程序设计的三种基本结构,对算法有了一定认识,熟悉VB常用语句,具备使用解析法进行简单程序设计的能力,但对VB程序设计语言的代码学习感到枯燥乏味,学习兴趣较难维持。

2 教学目标

(1)了解穷举法的特点,掌握用穷举法设计算法的基本要求。

(2)学会编写程序实现穷举法[1]。

3 教学过程

3.1 创设情境,引入穷举算法。古希腊有位著名的数学家叫丢番图,其年龄史籍上没有明确记载,据说从碑文上可以得知一二:丢番图长眠于此。神赐予他生命的1/6是童年,再过了生命的1/12,他长出了胡须,其后丢番图结了婚,这样度过了一生的1/7,再5年,他获得了头生子,然而爱子早逝,只活了丢番图寿命的一半,丧子后,他在数学研究中寻求慰藉,又过了4年,在悲痛中结束了自己的一生。设计意图:

(1)由故事引入教学内容,营造生动有趣的学习环境。

(2)为解析算法到穷举算法的学习提供过渡。过程描述:多数学生选择列方程求得问题答案。当问及“计算机会列方程吗?”学生的思维发生逆转。“可以一个数一个数的试!”教师借机由“试”引入穷举的算法思想。

3.2 呈现概念,编程实现穷举法。穷举法也叫枚举法、列举法,它是将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件。穷举完所有对象,问题将最终得以解决。[1]设计意图:

(1)由概念分析穷举法的算法思想。

(2)由概念分析穷举法的程序结构。

程序代码:

3.3 提升难度,进行变式练习。问题一:一个大笼子里关了一些鸡和兔子。数它们的头,一共有36个;数它们的腿,共100条。则鸡有多少只,兔有多少只?[2]程序代码:

问题二:京城有位卖鸡的张老汉,他有个儿了非常聪明,擅长算术,是远近闻名的“小神童”。宰相听说后想试探究竟,于是派仆人到店里打听鸡的价钱,张老汉告知“公鸡五文钱一只,母鸡三文钱一只,小鸡一文钱三只”。仆人给他一百文钱,要求公鸡、母鸡、小鸡都要,数量不多不少一百只。张老汉怎么也想不明白,只好问儿子。小神童不慌不忙,掐指一算就给出了答案。请用穷举法编写程序求出问题答案。[1]程序代码:

设计意图:

(1)变换故事场景,帮助学生在代码学习环节维持越高的学习兴趣。

(2)通过趣味小故事逐步展开教学内容,将枯燥乏味的代码学习变得活泼生动。

3.4 抛出问题,进行教学收尾。在求“丢番图年龄”时,有同学选择的范围是1~100;有同学选择了1-50;还有同学说是1-00,请问选取不同的对象范围程序在运行时会产生怎样的变化?

4 教学反思

4.1 趣味小故事的设计。第一次使用“鸡兔同笼”游戏直接引入教学内容,由于问题背景熟悉,只在一定程度上起到了将问题形象化的作用,并没有使学生的思维达到预期的活跃度。导入不到位,学生的思维没有打开,自主思考的预期没能达成,学生思维停留在“问什么答什么”的初级阶段。第二个班教学时,用数学家丢番图的故事创设情境。故事的引入调动了学生的积极性,充实了教学内容。随后《鸡兔同笼》、《百鸡百钱》两个趣味小故事的相继引入,使整个教学过程呈现出梯度,内容从单层循环到循环嵌套,逐步展开,衔接紧凑。

4.2 对教学收尾环节的思考。第一个班级的授课,在分析算法思想时,同学们对对象范围的确定给出了不同答案。因为时间关系,教师只能稍做点评,然后通过分析程序运行过程得出“减少循环体的执行次数可以提高程序运行效率”。因教学重点是穷举的算法思想,没有充足的时间留给学生思考优化程序的重要性,以致在后面的巩固练习中学生对“对象范围的确定”仅限于解题,并不能在确定对象范围的同时考虑到程序的优化因素。第二个班级的授课,由故事引入,从解析法自然过渡到穷举法;再用故事衔接,由单层循环的应用深入到双重循环、三重循环。结尾处,把优化程序的教学内容以问题的形式抛给学生,为后面习题课的导入做了很好的铺垫,也给学生留下了广阔的思考空间。下课铃响时,学生的思维没有停滞在那一刻,问题的抛出使课堂45分钟得到了拓展与延伸。

4.3 对任务呈现环节的思考。学生对VB程序设计语言自主学习能力较弱,不能尝试完全放手让其进行合作探究。如果以数学家丢番图的故事和“鸡兔同笼”同时导入,以分组探究的方式,让学生自主实践,在活动中比较两个任务的不同,归纳穷举算法的解题要点。这种设计更能体现“学本”的教学理念,能使学生的思维得到更充分调动,让学生在达到基本学习要求的前提下,有个性的发展,真正体验到程序设计的乐趣。

参考文献:

[1]普通高中课程标准实验教科书.《算法与程序设计(选修)》[M].北京:教育科学出版社,2004.

[2]李生元,朱军.《算法与程序设计实践指导》[M].北京:教育科学出版社,2011.

[3]张亚明.以教材为依托,探索趣味教学――教科版新课标实验教材《算法与程序设计(选修)》教学有感[J].基础教育课程,2007(07).

[4]刘军辉.浅谈VB语言在高中阶段的教学方法[J].中小学电教(下),2011(01).

[5]顾建东.生活:程序设计教学的本质回归[J].职业教育研究,2010(01).

作者单位:徐州市王杰中学,江苏徐州 221004

上一篇:计算机应用背景下的高校计算机教学模式优化 下一篇:任务驱动式教学法在JAVA程序设计教学中的应用