论文部分内容阅读
摘 要:针对课本中的一道练习题,我要求学生设计出算法步骤后,要嘗试画出程序框图,本来只是一个顺着教材知识顺序提出的要求,却由此引出后面很多的探究和反思,确实是我在前面备课工作中没有想到的.这是一个节外生枝的作业设想,在课本和教辅书中都没有提供标准答案,学生不再有可以参考的答案,反而激发了研究此题的极大兴趣,于是我们师生共同开始了一次“校本研究”之旅。
关键词:校本教研 反思 算法 框图
由于去年我才进入新课程教学的第一轮教学工作中,因此对必修3中第一章算法初步的内容感到很陌生.在对一道课本练习题的探究过程中,出现了一些错误的想法,在进一步教学的过程中,学生踊跃参与,师生共同探究,不仅纠正了错误,也取得了很多收获.比如在教学的过程中,进一步明确了程序框图的画法,对教材的编写意图也有了更清晰的认识.通过教学过程中及教学过程后的反思,我也深刻地体会到,做一个教学中的有心人,才能真正提高自己的教学水平.
这道题目是人教A版必修3第5页练习中的第二题,要求“任意给定一个大于1的整数n,设计一个算法求出n的所有因数。”在此处我要求学生设计出算法步骤后,要尝试画出程序框图,本来只是一个顺着教材知识顺序提出的要求,却由此引出后面很多的探究和反思,确实是我在前面备课工作中没有想到的,这是一个节外生枝的作业设想,在课本和教辅书中都没有提供标准答案,学生不再有可以参考的答案,反而激发了研究此题的极大兴趣,于是我们师生共同开始了一次“校本研究”之旅。
在《教师教学用书》必修3第12页提供这道题的算法步骤是(以下称解法一):
第一步,给定一个大于1的正整数n,第二步,令i=1,第三步,用i除n,得到余数r,第四步,判断“r=0”是否成立,若是,则i是n的因数;否则,i不是n的因数,第五步,使i的值增加1,仍用i表示,第六步,判断“i>n”是否成立,若是,则结束算法;否则,返回第三步。
此处有说明:本题是继例一之后又一个可以用“遍历”的算法解决的问题.
在《王后雄学案——教材完全解读》必修3第13页对这道题的算法给出了这样的解答:
根据因数的定义,可设计出下面一个算法(以下称解法二):
第一步,判断n是否等于2,若n=2,则n的因数为1,n;若n>2,则执行第二步.第二步,依次从2到n-1检验是不是能整除n,若能整除n,则是n的因数;若不能整除n,则不是n的因数,第三步,在n的因数中加入1和n,第四步,得到n的所有因数。
此处还有评注:这是求n的所有因数的最基本的算法,其设计核心是从2到n-1依次检验。
在阅读解法二的过程中,学生提出了以下疑问:(1)第一步有必要吗?我们都知道2是最小的质数,把2归入质数不就行了吗?(2)第二步作为算法步骤能体现出明确性吗?对于第二个问题,在《教师教学用书》必修3第6页分析例一时已经明确指出“整数n是否为质数等价于2~(n-1)中是否有整数能整除n”,那么也就是说这里的第二步包含了课本例题解法中的好几步,继续进行程序框图和语句的学习,就会发现这里要用循环结构才能实现目的,所以应该像课本例题解法那样详细才行。于是我们带着第一个问题继续进行探究。
首先借鉴教材第4页提出的问题“判断整数n(n>2)是否为质数”的算法及第7页提供的程序框图的画法,我们画出了解法二的程序框图。
但经过检验,发现这种画法有严重的错误:在判断r=0成立后,执行输出1,n,i后结束,就意味着只输出了除1,n外的唯一一个或者说是第一个因数i。比如以n=35为例,i=5即结束算法了,没有下一步的循环,也就不能再有继续输出因数7的可能性了,因此不满足此题输出n的所有因数的要求.反思出现这种错误的主要原因是受到课本例题思路的影响,实质上还是只关注了n是否为质数,而未体现出在判断出n不是质数后还要经循环结构才能输出n的所有因数,那么应该如何修改呢?是在原有结构上改良,还是彻底改写呢?应该要用i与n的大小来控制i的输出,但是怎样做才更合理呢?
带着这些困惑,我和学生又继续回头研究课本上的例题,现在我们对这个问题的认识有了很大的变化,逐渐领会到教材编写者的匠心所在,看来这道例题是练习题的“源头”,练习题是例题的“引申”,那么能不能先从改变例题的框图画法入手呢?经过师生讨论首先将教材第7页框图修改如下:
此处的修改分离了原来判断框中的两个条件“r=0?”和“i>n-1”,更符合课本第4页对算法步骤的描述,也没有改变例题的算法功能,还是表示了一旦找到一个不同于1和n的因数就判断n不是质数,则结束算法.那么,要体现不断地输出新的i值——这样一种循环应该如何实现?显然只判断出n是质数是不够的!必须要把“r=0?”这个判断条件及“输出i”,“i=i+1”这两个功能联系起来才行,这样每次判断整除后的因数i都会被及时输出,这才是符合题意的.经过思考画出对应练习第2题解法一的程序框图如下:
这是最后确定的一种画法,其实在画图的过程中还出现过这样的两个错误画法:
错因分析:此处i=1时,r=0总成立,于是进入死循环,无法达到输出n的所有因数的算法功能.
错因分析:此处没有理解前面框图中执行“输出i”的步骤已经包含了因数1和n,因为解法一中的i是从1取到n的,而对于质数而言,所有质数被1,n除均得r=0,所以此处“输出i”的步骤已经包含了因数1和n,不能再画蛇添足了.
最后还是回到练习题第2题的解法二,修改后的程序框图如下:
可知解法二与解法一的区别在于i的值从2取到n-1时进入循环,所以算法步骤中必须要体现添加1,n这一步!这时再考虑学生对解法二提出的第一个问题,如果去掉判断n=2是否成立的这一步,写出的框图会更简洁,更好吗?注意n=2,i=2时会得到r=0,于是执行“输出1,n,i”后i与n值是重复的,如果要修改,恐怕要从i的起始值开始改起了,那么解法二就会失去存在的基础了,所以经过尝试,最终还是保留了原来的算法。
现在回顾从课本的例题到这道练习题,编写者给我们埋下了一条螺旋上升的学习通道,从判断质数到写出因数,我们收获良多,特别是分离两个判断条件提供了一类问题的通解,比如筛选运动员成绩的算法(见教材第20页B组第2题,要求在9人成绩中输出小于6.8s的成绩)就成为一个容易解决的问题,只需将解法一两个判断框中的数据改一下,框图的结构可以完全保留,所以学习难度自然降低了。
经过这一次从节外生枝的作业设想到脚踏实地的校本教研之旅,我才真正体会了校本教研并不神秘,其实素材就在教材中的题目中,只要做个有心人,就会有收获。
作者简介:1994年毕业于北京师范大学,一直从事数学教学工作,并长期任班主任、数学组备课组长。是中学高级教师,并被授予“省级青年教学能手”、“市级教学骨干”、“兰州市优秀班主任”等称号。所主持市级课题获得省级一等奖;在省级刊物上发表多篇论文,并多次获得省市级一、二等奖。
关键词:校本教研 反思 算法 框图
由于去年我才进入新课程教学的第一轮教学工作中,因此对必修3中第一章算法初步的内容感到很陌生.在对一道课本练习题的探究过程中,出现了一些错误的想法,在进一步教学的过程中,学生踊跃参与,师生共同探究,不仅纠正了错误,也取得了很多收获.比如在教学的过程中,进一步明确了程序框图的画法,对教材的编写意图也有了更清晰的认识.通过教学过程中及教学过程后的反思,我也深刻地体会到,做一个教学中的有心人,才能真正提高自己的教学水平.
这道题目是人教A版必修3第5页练习中的第二题,要求“任意给定一个大于1的整数n,设计一个算法求出n的所有因数。”在此处我要求学生设计出算法步骤后,要尝试画出程序框图,本来只是一个顺着教材知识顺序提出的要求,却由此引出后面很多的探究和反思,确实是我在前面备课工作中没有想到的,这是一个节外生枝的作业设想,在课本和教辅书中都没有提供标准答案,学生不再有可以参考的答案,反而激发了研究此题的极大兴趣,于是我们师生共同开始了一次“校本研究”之旅。
在《教师教学用书》必修3第12页提供这道题的算法步骤是(以下称解法一):
第一步,给定一个大于1的正整数n,第二步,令i=1,第三步,用i除n,得到余数r,第四步,判断“r=0”是否成立,若是,则i是n的因数;否则,i不是n的因数,第五步,使i的值增加1,仍用i表示,第六步,判断“i>n”是否成立,若是,则结束算法;否则,返回第三步。
此处有说明:本题是继例一之后又一个可以用“遍历”的算法解决的问题.
在《王后雄学案——教材完全解读》必修3第13页对这道题的算法给出了这样的解答:
根据因数的定义,可设计出下面一个算法(以下称解法二):
第一步,判断n是否等于2,若n=2,则n的因数为1,n;若n>2,则执行第二步.第二步,依次从2到n-1检验是不是能整除n,若能整除n,则是n的因数;若不能整除n,则不是n的因数,第三步,在n的因数中加入1和n,第四步,得到n的所有因数。
此处还有评注:这是求n的所有因数的最基本的算法,其设计核心是从2到n-1依次检验。
在阅读解法二的过程中,学生提出了以下疑问:(1)第一步有必要吗?我们都知道2是最小的质数,把2归入质数不就行了吗?(2)第二步作为算法步骤能体现出明确性吗?对于第二个问题,在《教师教学用书》必修3第6页分析例一时已经明确指出“整数n是否为质数等价于2~(n-1)中是否有整数能整除n”,那么也就是说这里的第二步包含了课本例题解法中的好几步,继续进行程序框图和语句的学习,就会发现这里要用循环结构才能实现目的,所以应该像课本例题解法那样详细才行。于是我们带着第一个问题继续进行探究。
首先借鉴教材第4页提出的问题“判断整数n(n>2)是否为质数”的算法及第7页提供的程序框图的画法,我们画出了解法二的程序框图。
但经过检验,发现这种画法有严重的错误:在判断r=0成立后,执行输出1,n,i后结束,就意味着只输出了除1,n外的唯一一个或者说是第一个因数i。比如以n=35为例,i=5即结束算法了,没有下一步的循环,也就不能再有继续输出因数7的可能性了,因此不满足此题输出n的所有因数的要求.反思出现这种错误的主要原因是受到课本例题思路的影响,实质上还是只关注了n是否为质数,而未体现出在判断出n不是质数后还要经循环结构才能输出n的所有因数,那么应该如何修改呢?是在原有结构上改良,还是彻底改写呢?应该要用i与n的大小来控制i的输出,但是怎样做才更合理呢?
带着这些困惑,我和学生又继续回头研究课本上的例题,现在我们对这个问题的认识有了很大的变化,逐渐领会到教材编写者的匠心所在,看来这道例题是练习题的“源头”,练习题是例题的“引申”,那么能不能先从改变例题的框图画法入手呢?经过师生讨论首先将教材第7页框图修改如下:
此处的修改分离了原来判断框中的两个条件“r=0?”和“i>n-1”,更符合课本第4页对算法步骤的描述,也没有改变例题的算法功能,还是表示了一旦找到一个不同于1和n的因数就判断n不是质数,则结束算法.那么,要体现不断地输出新的i值——这样一种循环应该如何实现?显然只判断出n是质数是不够的!必须要把“r=0?”这个判断条件及“输出i”,“i=i+1”这两个功能联系起来才行,这样每次判断整除后的因数i都会被及时输出,这才是符合题意的.经过思考画出对应练习第2题解法一的程序框图如下:
这是最后确定的一种画法,其实在画图的过程中还出现过这样的两个错误画法:
错因分析:此处i=1时,r=0总成立,于是进入死循环,无法达到输出n的所有因数的算法功能.
错因分析:此处没有理解前面框图中执行“输出i”的步骤已经包含了因数1和n,因为解法一中的i是从1取到n的,而对于质数而言,所有质数被1,n除均得r=0,所以此处“输出i”的步骤已经包含了因数1和n,不能再画蛇添足了.
最后还是回到练习题第2题的解法二,修改后的程序框图如下:
可知解法二与解法一的区别在于i的值从2取到n-1时进入循环,所以算法步骤中必须要体现添加1,n这一步!这时再考虑学生对解法二提出的第一个问题,如果去掉判断n=2是否成立的这一步,写出的框图会更简洁,更好吗?注意n=2,i=2时会得到r=0,于是执行“输出1,n,i”后i与n值是重复的,如果要修改,恐怕要从i的起始值开始改起了,那么解法二就会失去存在的基础了,所以经过尝试,最终还是保留了原来的算法。
现在回顾从课本的例题到这道练习题,编写者给我们埋下了一条螺旋上升的学习通道,从判断质数到写出因数,我们收获良多,特别是分离两个判断条件提供了一类问题的通解,比如筛选运动员成绩的算法(见教材第20页B组第2题,要求在9人成绩中输出小于6.8s的成绩)就成为一个容易解决的问题,只需将解法一两个判断框中的数据改一下,框图的结构可以完全保留,所以学习难度自然降低了。
经过这一次从节外生枝的作业设想到脚踏实地的校本教研之旅,我才真正体会了校本教研并不神秘,其实素材就在教材中的题目中,只要做个有心人,就会有收获。
作者简介:1994年毕业于北京师范大学,一直从事数学教学工作,并长期任班主任、数学组备课组长。是中学高级教师,并被授予“省级青年教学能手”、“市级教学骨干”、“兰州市优秀班主任”等称号。所主持市级课题获得省级一等奖;在省级刊物上发表多篇论文,并多次获得省市级一、二等奖。