一、教师应先理解算法的概念,才能让学生了解算法的概念
随着时代的发展,算法的概念也在不断发展.到目前为止,我们还很难给算法下一个确切的定义.但在现代数学中,人们对算法概念是有共识的,那就是教材所言,“可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.”所以,教学应该围绕教材对算法概念的描述展开,关注以下问题:
1.算法与解法既有区别又有联系
初学算法的人大多会误认为算法就是研究解法的优劣.如果在算法概念的教学中不首先解决这一问题,那么学生的学习目标就不明确.我们应该让学生清楚,算法可表现为解决某一类问题的程序或步骤,它可以不呈现问题的结果;而解法主要是针对某一个具体问题的步骤,其程序性也不一定强,按教学习惯它还必须给出结果.如果把教学生解法比喻为“授之以鱼”,那么教学生算法就是“授之以渔”.不过,虽然算法与解法有区别,但二者也有联系.算法是建立在解法基础之上的,是在某个具体问题解法过程的分析之后,归纳出的解决一类相关问题的程序或步骤;如果一个具体问题具有代表性,其解法又具有程序性,那么这样的解法也能体现算法思想.所以,在了解了算法和解法的关系后,就应将教学重点放在解决一类问题的算法上,而非仅仅适用于某个具体问题的解法上.例如,两堂课中所举的“带羊、狼、蔬菜过河”、“交换两杯液体”等问题的解决,就不具有一般意义,教学也没能由此归纳出一类问题的算法.又如,其中一位教师提供的解方程x2-2x-3=0的两种算法:
算法1:第一步,移项,得:x2-2x=3; ①
第二步,①式两边同加1并配方,得:(x-1)2=4; ②
第三步,②式两边开方得:x-1=±2; ③
第四步,解③得:x=3或x=-1.
算法2:第一步,计算方程的判别式并判断其符号:△=22+4×3=16 > 0;
第二步,将a=1,b=-2,c=-3代入求根公式 ,得:x=3或x=-1.
从教材的概念来看,上述两种所谓的算法只能算作两种解法.因为它们还不具有一般意义,不能以此来解决其他一元二次方程,要上升到算法还需要作进一步的归纳.另外,教材所介绍的算法是可供计算机执行的,而上述两种解法还不能够直接编程供计算机执行.
如果在算法概念的教学中,不能让学生对算法与解法的关系有一个了解,那么必然会影响学生对算法的认知.能否用一些简单的例子,引导学生去思考算法与解法的区别呢?这里以高斯求和问题来加以说明.
已知S=1+2+3+…+99+100,求S的值.
高斯的解法:S=(1+100)+(2+99)+(3+98)+…+(50+51)
=101+101+101+…+101
=50×101
=5 050.
高斯同学的解法:S1=1,
S2=S1+2=3,
S3=S2+3=6,
……
S99=S98+99=4 950,
S=S100=S99+100=5 050.
学生都知道高斯的解法优于其同学的解法.在此基础上,可以告诉学生,高斯的解法虽然简单,但每一步都不相同,并且让计算机去做都不容易,还需要进一步加工,所以不适宜进行算法研究;而高斯同学的解法虽然麻烦,但每一步做的都是同一件事“累加”,并且这种重复的事让计算机做起来都很简单,对于其他同类问题也一样,所以适宜进行算法研究.由此可见,算法并非是研究解法的优劣,而是供计算机执行的,在解法基础上归纳出的可解决一类问题的程序或步骤.这样的例子应该很多,例如教材中解二元一次方程组的例子.通过这些例子还可以让学生明白,算法是怎么来的(从解决具体问题的过程中抽象得到的),学算法有什么用(提供了解决某一类问题的一种方法.通过分析算法,可以提高概括能力和逻辑思维能力,发展有条理的思考和数学表达的能力).
2.教学应紧扣教材,研究的问题以数学问题为主,避免将算法概念泛化
在两堂课中,教师为了激发学生的学习兴趣,列举了“带羊、狼、蔬菜乘船过河”、“交换两杯液体”、“给出商品价格范围猜准确价格”等问题,虽然这些问题中也蕴含着算法的思想,但它们与学生所学数学知识联系不大,不属于教材算法研究的范畴.在学生建立算法概念时,教师举这样的例子,容易使学生受这些例子的影响,不利于形成教材所给的算法概念.所以,如果我们不将研究的内容限定在所学数学知识范围内,那么算法的概念就会被泛化,与教材的算法概念就会相去甚远,教学和学习都不易把握.
3.了解算法概念需要一个循序渐进的过程
两堂课中,教师都试图让学生全面了解算法的概念,并将算法概念的了解作为教学的一个重点.但是,这一目标都没能实现.出现这种情况的主要原因,在于教师对算法概念教学的定位不准,教学操之过急.由于目前对算法还没有一个统一的定义,教材是根据整章教学内容的实际,给出了一个描述性的定义,但它并非是算法的准确定义.所以,算法定义并不是本节课教学的重点.作为算法的第一节内容,教材有必要首先给出一个算法的概念,这有利于学生的认知.但是,学生由于受所学知识的局限,对算法概念的了解有一个循序渐进的过程,教师不能只通过一节课就让学生全面了解算法的概念.本节课只需立足让学生清楚,算法是解决某一类问题的步骤,而且能在有限步之内完成,并初步认识到这样的步骤是明确有效的.而对概念中涉及到的用计算机解决问题,以及程序或步骤的明确性和有效性的全面认识,可以在程序框图、算法语句和上机实践中逐步认识.
[1] [2] [3] 下一页 |