高中数学教学论文《“算法初步”教学浅谈》.doc
高中数学教学论文“算法初步”教学浅谈人教A版必修3教材相对集中地介绍了算法的基本思想、基本结构和基本语句等。“在本模块中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验程序框图在解决问题中的作用;通过模仿、操作、探索学习设计程序框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力(普通高中数学新课程标准)”。算法可以说是贯穿整个中学数学内容的一条主线,因此,教学中要将算法思想渗透在其他模块内容的教学中;反过来,也应从算法角度去重新认识函数、方程、不等式以及在几何上涉及到的位置关系、度量关系等等。“毫不夸张地说,算法既是数学科学的重要基础,也是计算机科学的核心。”因此,该部分内容教学的重要性不言而喻。一、从整体上把握算法思想的含义 加深对这一思想重要性的认识教材中所涉及的算法,通常是指可用计算机来解决某一类问题的程序或步骤。这些程序或步骤首先具有整体化的方案,其次具有程序化的结构,并具有可操作性、有限步骤及普适性的特征。算法一方面具有具体化、程序化、机械化的特点,同时又有抽象性、概括性和精确性的特点。其实质是将人的思维过程处理成计算机能够一步一步执行的步骤,进而转化为一步一步执行的程序。算法的学习让学生认识到有计划、有步骤的一步一步去完成一件事,同时也形成有条理的思考和数学化的表达思考的能力。算法的基本思想是程序化思想,通常有顺序结构、条件结构和循环结构三种基本结构组成。而三种基本结构中蕴涵了比较深刻的思想:顺序结构反映的是“step by step”的分步推进思想,即把解决问题的方法步骤化,一步一步地执行;计算机区别于其他机械的能力就来自于对算法做判断和按判断的结果行动的能力,反映在条件结构是“先判断、后执行”的思想;而循环结构是将一个复杂的问题简单化,即通过一个循环结构来完成, 例如,二分法、辗转相除法、秦九韶算法等都包含循环的思想;如何计算S=1+2+3+4+100?这里先设置一个变量S来记录和,再设置一个变量i来记录项数,这个程序要实现递推,用到i=i+1,S=S+i等语句,蕴涵的是“递推”的思想。算法既重视“算则”,更重视“算理”,学习算法重要的是“算理”。框图是表示算法的好形式,是算法的核心部分。在绘制框图的过程中,要做好以下几方面的事情:一是要明确算理;二是确定变量;三是按照算理和自然语言的描述去绘制算法框图。由于算法思想贯穿整个高中数学内容之中,有很丰富的层次递进的素材,而在算法的具体实现上又可以和信息技术相联系,因而,算法有利于培养学生理性精神和实践能力,是实施探究性学习的良好素材。算法是思维的条理化、逻辑化。培养学生的逻辑思维能力不仅可通过几何证明、代数运算等手段来进行,还可以通过算法设计的学习来完成。 算法的思想, 不仅仅用于数字计算,它可以广泛地描述许多操作过程。可以分为数值性和非数值性两种类型。例如,填报志愿的步骤,农夫、羊和白菜过河问题,分油问题等。 二、澄清几种认识 改进几点做法1、由于受高考指挥棒的影响,广大师生会对这一章的教学给以足够的重视。因为凡是在高考中涉及的内容,只要到了高中教师手里,都会把重量加大加重,往往与课标的要求相去甚远, 将部分内容简单处理成程序语言的学习和程序设计,让学生过早地纠缠于程序的编写和调试。而本模块的主要目的是“使学生体会算法的思想,提高逻辑思维能力。”2、有的教师认为这些内容缺乏“数学味”,属于信息技术课程的内容。特别是,目前的高考出题受到很大的限制,不重视该知识的教学,或者只重视 “高考能出题、有法考”的内容,随意删减内容、减少课时。3、进行算法的教学不能脱离计算机程序设计。这是因为,我们要讲的算法是“用计算机来解决某一类问题的程序或步骤”。在条件允许的学校,要使其能在计算机上实现。算法教学必须通过实例进行,使学生在解决具体问题的过程中学习一些逻辑结构和语句,应鼓励学生尽可能上机尝试,在尝试中认识掌握程序语言的基本算则。“ 注重信息技术与数学课程的整合”是新课程基本理念之一。4、引导、要求学生在设计算法时,调整以往的解数学题的思维方式,设计出明确、有效、有限、可以转化为计算机程序的算法步骤。同时,还要理解一些在计算机程序设计中所惯用的做法,主要是设置变量和赋值。例如,在求前100个正整数的和的“累加器”中,包含的“ss+n”“nn+1”,课本24页例3中“A=10 A=A+15”给一个变量重复赋值,例四“X=A A=B B=X”是交换两个变量的值等,很多学生在初学算法时难以理解。5、在数学课中,算法的教学更应该关注的是算法对问题的抽象过程和算法的构建过程。在这个过程中,使学生着重理解算法的“算理”,同时体会算法的特点,学习设计和描述算法以解决实际问题和与人交流,发展有条理的思维和表达能力,提高逻辑判断能力。因此,应该尽力让学生在简单的计算机语言环境中学习算法的基本知识,把程序框图作为描述算法的主要工具。 三、对算法教学的几点体会1、把握教材内容前后的连贯性。算法的三种表现形式是:自然语言、程序框图和程序语言。自然语言表现的算法通俗易懂,但是不够精确,算法的基本结构也不清晰为此,我们可以用程序框图表示算法,这样不仅使算法的基本逻辑结构(顺序结构、条件结构、循环结构)清楚,而且使算法的步骤更直观,也更精确。但像算法步骤一样,程序框图表示的算法仍不能被计算机所执行。因此,我们可以将算法写成计算机能执行的程序。这一过程体现了算法“逐渐精确”的过程。2、设计算法的基本过程是:通过对问题进行详细地分析,抽象出相应的数学模型;确定使用的数据结构,并在此基础上设计对此数据结构实施各种操作的算法;选用某种语言将算法转换成程序;调试并运行这些程序。3、在教学的过程中,必须以三种基本逻辑结构为基础来构建算法,因为任何算法都可以由这三种基本逻辑结构构成,教学时不必增加其他逻辑结构。在教学三种基本逻辑结构时,结合程序框图帮助学生理解三种基本逻辑结构的含义,然后,在设计一个算法的程序框图的过程中,选择合适的基本逻辑结构表示算法步骤。4、循环结构的学习是重点也是难点,对于循环结构按照(1)循环前,初始化变量的值,(2)确定循环体,(3)设置循环终止条件。循环结构一定要在某个条件下终止循环,这就需要条件结构来做出判断,因此,循环结构中一定包含条件结构。当型循环先判断后执行,直到型循环先执行后判断。WHILE语句中是当条件满足时执行循环体,而UNTIL语句中是当条件不满足时执行循环体。对同一算法来说,他们的条件互为反条件。课本对直到型循环结构和当型循环结构的特征描述的非常清楚,这两种结构有对应的循环语句。所以在画程序框图时要尽量按照这个要求来写,避免将这两种循环结构混淆,否则跟后面的循环语句就不统一了。同时注意计数变量的取值范围,以免出现多一次或少一次循环的错误。输入p开始n=1,s=0s=s+1/2nn=n+1输出n结束是否s<p?? 开始i=1输入m,na=m*in整除a?输出a,i结束i=i+1是否 (2008年山东卷理13文14图) (2008广东卷9图)从2008年新课标地区的四套高考试卷无论文、理科看,考查的核心是算法的三种基本逻辑结构和程序框图,特别是带有循环结构的程序框图。例(2008年山东卷理13文14)执行上图的程序框图,若p=0.8,则输出的n=_。江苏卷7考查的明确程序框图中循环结构的含义,循环体执行的次数,对i 5的正确理解;广东卷9(上图)考查的也是带有循环结构的程序框图,若输入m=4,n=6,则输出a=_,i=_。解决的关键是按照题目所给程序框图,模仿计算机,进行一次次的计算和判断。5、在进行条件结构的教学时,可以将条件结构与分段函数联系起来,让学生设计含有条件结构的算法来计算分段函数的值。6、程序语言的书写是非常规范的。教材对几种语句的书写规范都给出了格式,要让学生清楚。如:从INPUT “a,b,c=”;a,b,c中读出字母的大写、空格、提示信息用“”,“;”、变量之间用“,”隔开,INPUT后面只能是变量,不能是表达式等,另外DO单行、*、/的运用,一个赋值语句只能给一个变量赋值,赋值号左边只能是变量,右边是一个常数或表达式,有IF后面必须有END IF,ELSE单行,后必有可执行的语句体,条件语句IF 条件 THEN 后面不能跟其它语句,一定要换行;WHILE 条件换行循环体等等。如果有条件让学生自己把自己编写的程序上机调试一次那当然非常好,如果没这个条件,教师自己调试几次,把几种常见的错误展示一下,让学生明白算法语言书写的规范性。四、重视课本13算法案例的教学教材在1.3节安排了“辗转相除法与更相减损术”、“秦九韶算法”与“进位制”这3个中国古代数学及西方数学中的经典算法案例,将算法与数学教学内容紧密地结合在一起,教材还在“阅读与思考”中对中国古代的又一典型算法“割圆术”进行了详细的阐述。这几个古代算法较为复杂,教师用书中建议安排4课时,而在实际教学中,有的教师只用两课时,甚至有的让学生自己阅读了解,这是不妥的。三例中蕴涵的算法思想极为深刻,也更能体现算法的重要性。在教学中,要注意抓住这3个算法的关键步骤,如,辗转相除法中“r=m MOD n m=n n=r”语句的意义、作用;更相减损术的“可半者半之,副置分母、子之数,以少减多”等语言要向学生解释透彻、明白;秦九韶算法中,乘法、加法运算的次数,特别是n次多项式中有缺项,如f(x)=anxn+an-1xn-1+a0时,该算法的形式仍然为f(x)=(anx+an-1)x+0)x+0)x+a0,即用计算机来循环计算时,乘法、加2 89 余数2 44 12 22 02 11 0 2 5 1 2 2 12 1 0 0 1 (除2取余法)法的次数不变。让学生真正理解v=vx+ai的意义;进位制之间的互换,十进制是“中转站”,“除K取余法”即是把K进制数化为十进制时,各位次上的系数。例,89化为二进制(上图)1011001(2) =1×26+0×25+1×24+1×23+0×22+0×21+1×20=89,其实质是K进制转化成十进制的逆向操作等。引导学生理解其中的核心思想,可以通过讲解、画程序框图、举简单例子、学生自己归纳等多种途径,帮助学生克服理解上的困难。三个案例都有一定的难度,不要求画完整的程序框图以及编写完整的算法程序,但要注意抓住这三个案例的关键步骤,理解其中的“算理”。通过学习这些古代算法,可以使学生通过模仿、操作、探索、经历设计程序框图表达解决问题的过程,以及将程序框图转化为程序语句的过程,帮助学生进一步体会算法的基本思想,以及算法在解决问题的过程中所体现的特点,“帮助学生了解数学在人类文明发展中的作用,逐步形成正确的数学观”。五、发挥典型算法模型的作用 认识优化或改造算法的意义课本例题是经过编者反复论证精心设计的,具有典型的示范作用,蕴含着基本的解题思想和方法,具有很高的教学价值。在教学时要把握好前后内容的连贯,吃透教材、把握教材,理解课本中编写的例题和习题的意图。课本“所介绍的语句形式及程序稍加修改就可以变为某些具体的程序设计语言形式的程序,并可以在计算机上执行”。实践证明,在进行算法教学的过程中,应尽可能选取最简单、最典型的算法模型作为载体。这是因为,一方面进行算法教学的目标是介绍算法的基本思想和初步知识,另一方面,算法本身就是与具体问题结合在一起的,空讲理论只能导致学生不能真正理解算法和不会设计具体问题的算法。而从简单、典型、学生熟悉的算法模型中挖掘、提炼出来的思想和方法,更容易被学生接受。同一个算法稍加改造,可以用于解决不同的问题。对算法的优化或改造,有利于学生看清算法的结构和更好地把握“算理”,是帮助学生理解算法的通用性、有效性等的良好素材。例如,对于课本13页例六。让学生改造求1+2+100的值的“累加器”的程序框图(下图),表示 求1+2+m(mZ*)的值的过程; 求3+5+(2m+1) (mZ*)的值的过程; 输出1,1+2,1+2+3,1+2+3+100的过程(课本P15思考题); 求2+22+2100的值的过程; 求使2+22+2n(nZ*)的和大于100的最小正整数n的过程等等。其中,(1)只需在循环结构前给定变量m的初始值,并将循环的终止条件变为“nm?”即可;需要改变变量初始值和循环的终止条件,循环体变为“SS+(2n+1)”; 在循环体中增加输出框“输出 S”,就可以得到前n(n=1,2,100)个正整数的和了; 需要将循环体变为“SS+2n”; 除了需要将循环体变为“SS+2n”,还需要将循环的终止条件变为“S100?”。开始s=0s=s+ii=i+1i>100 ?输出s结束否是如果学生能解决以上问题,以下问题便会迎刃而解:(1) 求12+22+32+1002的值的过程(课本P20A组2题)(2) 求13+23+33+1003的值的过程(3) 求1+3+5+7+99的值的过程(4) 求1+的值的过程(课本P50 A组4题)(5) 求1+的值的过程(6)计算n个数的和:2, ,(课本P33 A组3题)等等。教材中可以这样进行变式教学的例题还有很多,重要的例题,如,二分法求方程的近似解(无理数的近似值)、判断一个数是否为质数、三个数按顺序排列、一元二次方程求解等,要对它们进行变换训练,加深理解。还有许多看似平淡但却很精彩的题目,忽视对这些题目的研究和运用,是很可惜的。通过这样的练习,学生不仅可以更好地把握算法的“算理”,而且也能体会到算法在解决问题中的强大威力。同时,通过这样的练习,可以大大激发学生的学习积极性,对学生的创新意识的培养和创新能力的提高也具有很强的现实意义。纵观近几年高考数学试卷,源于课本的题型占了很大的比重,大多是将课本题型进行变式提高,灵活应用,这与高考命题中的“源于课本,高于课本”的原则是一致的。搞好课本例题的多种形式教学,不仅能加深基础知识的理解和掌握,更重要的是在开发学生智力、培养和提高学生能力等方面,能发挥其独特的功效。教师只有充分地利用教材,发挥课本例题的潜能,才能达到优化学生的认知结构,开阔学生的眼界,活跃学生的思维,提高学生解题能力的目的。当然,对于算法知识的教学,只是通过本章相对集中的学习是远远不够的,更重要的是在以后各模块教学中的渗透。