论文部分内容阅读
摘 要:算法走进新一轮数学课程,反映了人们对数学的新审视.算法课程有着丰富的数学思想教育价值,为此应针对客观存在的学习现状及需求,正确地定位算法教学,联系实际突破学习难点,优化或改造算法,以算法思想看待和解决问题,发展数学思维能力.
关键词:算法;教育价值;新视角;若干思考
算法是计算机科学的理论核心和重要基础,是人脑转化为“电脑”的具体体现. 随着算法在科学技术、社会发展中的作用日趋加重,其基本知识、思想和方法日益融入社会生活的许多方面,算法思想已经成为现代人必须具备的一种素质.学习算法基础知识,体验其思想教育价值是算法教学的根本任务.
■算法课程设置的背景
算法就是将人类的思维能力形式化为计算机可以执行的步骤. 算法的设置有其重要的历史、文化和应用背景.
1. 算法的历史背景
古代的中国已出现了一些经典算法,如贾宪的《黄帝九章算法细草》、杨辉的《详解九章算法》及《杨辉算法》、割圆术等,“算术”作为数学的称呼一直沿用到上个世纪末. 在国外,公元前2000年,美索不达米亚人已有了乘法表,其中包含六十进制的算法,古埃及已有将乘法简化为加法的算法.近代数学发展史上,求方程近似解的牛顿切线法、求定积分近似值的梯形法等,都是学生将进一步学习的典型算法. 由此可见,算法有着悠久的历史,只不过在计算机上的实现是当代的事.
2. 算法的文化背景
我国传统数学是以构造性与机械化为其特色的算法体系,而西方传统数学则以演绎推理为主要体系,其代表作品是欧几里得的《几何原本》. A·哈蒙德说:“数学是看不见的文化.” 在中学数学中设置算法课程,体会中国古代数学对世界数学发展的贡献,对于继承和发展传统数学,体会算法的科学价值、应用价值、人文价值,弘扬传统文化,培养学生人文素养,都有着十分重要的意义.
3. 算法的应用背景
从小学的四则混合运算、初中的方程组解法到高中求函数零点的二分法等,都是算法的经典. 还有质数的判定、数列的求和、线性规划、立体几何性质定理的证明等,都体现算法广泛的应用性和包容性.
■算法课程的思想教育价值
算法是对一类问题的机械的、统一的求解方法,是对解题方案的准确而完整的描述,具有程序性与简约性的特点. 算法使数学在高度抽象和严格的逻辑演绎里呈现出现代的气息,蕴涵着丰富的数学思想,可从简单、典型、学生熟悉的算法模型中挖掘、提炼.
1. 程序化思想
算法的实质是将人的思维过程处理成计算机能够一步一步操作的步骤,进而转化为一步一步执行的程序,结构分明,明确简练. 在解决数学的每一个问题中,如求解一个方程、计算一个函数值、证明一个结果等,都需要一个清晰的思路,采用一系列的步骤去完成,此即程序化的思想.
2. 选择的思想
算法中的条件结构和IF…ELSE…THEN语句,使得计算机因为有了选择而能进行逻辑判断,因而具备“思维”能力,这对于学生了解计算机的人工智能有很好的作用.
3. 循环的思想
数学中有大量的问题重复烦琐,而计算机擅长重复与复杂运算,这种重复在程序中就是循环. 如数学家花费多日进行的概率抛掷硬币的试验,计算机在几秒钟内即可完成,质数判定、辗转相除法、数列求和、二分法、秦九韶算法等,都体现了循环的思想. 循环的过程依赖于循环变量取值的变化而一步步实现,这种依赖关系呈现了函数的本质.
4. 递推的思想
在设计1!+2!+3!+…+100!的算法中,既要设置一个变量S记录和,还要设置一个变量n记录项数.从第二项起,每一项都由前一项乘以n得到,这就是递推.在整个程序中要实现递推,就要用到n←n+1,S←S+T,T←T×n等语句,可从数列迭代的角度让学生理解,明确替换方式的实际意义,体验递推的思想.
5. 通法的思想
由定义即知算法的基本思想就是解决问题的一般方法,虽然显得有些呆板,但却渗透着通性通法. 设计一个算法的过程是一个思维的整理过程,是一个精确化、条理化的过程,这种具有普适价值的可行性方法,就是一种构造性的论证,丰富了学生解决问题的经验.
■算法课程实施中的新视角
算法是一种程序,在关注算法应用的过程中,体验算法“物化知识、思维与方法”,享受算法的直观、简约、形象与有效.
1. 重视算理,提倡算法多样化
算法中,程序化步骤呈现的“算则”固然重要,但步骤依据的“算理”有着更基本的价值. 算理是算则的基础,算则是算理的表现. “讲算法,重算理”意味着算法教学重在强调体会算法思想、提高逻辑思维能力. 通过案例的分析、模仿、探索、设计、操作,把算法思想渗透和贯穿于高中数学课程之中,鼓励学生主动设计、使用和讨论所开发的算法,体验解决问题策略的多样性和解决问题的多样化,论证哪种方式最适合解决问题,体验算法的程序性与简约性、直观性与有效性,充分享有“再创造”的自由.
2. 渗透算法的文化价值
在数学发展过程中,一种重要算法的形成往往标志着数学的重要进步. 在数学算法教学过程中,借助数学史,运用算法自然语言或流程图描述古代的九章算法、张丘建算经、欧几里得算法及当今实际生活中的问题解决等,充分展现算法思想的历程,让学生真正体会算法的教育价值,感受数学文化的无穷魅力.
3. 关注现实情境和实际应用
关注现实背景,强调应用,淡化计算,其意图是使学生体会算法在解决数学问题和实际问题中的应用,重视其应用价值及包容性. 因此,算法必须从具体的学生熟悉的实例出发,在数学问题的情景设计中,在处理具体问题过程中,融入流程图、程序语言,使之成为系统有效的算法课程,使学生理解算法的基本思想、基本结构和基本语句.
4. 加强与信息技术的整合
新课标提倡“信息技术与数学课程的整合”,借此来呈现教学中难以呈现的课程内容,有利于对数学本质的理解. 适时安排学生上机,一般在以下三个内容之机,一是赋值语句、输入输出语句和条件语句,二是循环语句,三是算法全章学完.把自己设计的算法变为计算机的操作语句,这样的教学使得学生既有理性上的认知,也有感性上的认识,可激发学生兴趣,更好地把握程序的语句,更能直观感受到算法的奇妙.
■实施算法课程的若干思考
基于算法产生于具体问题及算法的教学目标,准确地定位算法教学,有效地突破难点,优化或改造算法的意义,对于培养数学思维能力十分有益.
1. 客观存在的学习现状及需求
在实际教学中,由于算法内容的独特性,出现了一些学习上的困难,比如,①难以将实际问题模型化;②流程图不能与语句很好的转化,难以运用“直到型”或“当型”循环;③循环变量理解不清,不能恰当地使用循环变量(“计数变量”“累加变量”)或其他条件终止循环,特别是不能正确地处理循环变量接近临近点的情况;④缺乏相关背景知识而难以找到恰当的算法;⑤在条件结构中难以解决多于两个选择的问题;⑥条件语句和循环语句嵌套使用时的规范书写等,需要寻求突破和化解.
2. 正确地定位算法教学
算法教学目标的定位是学习在计算机上可以实现的算法,即具有确定、有效、有限的特征,为此选择数学中具有重要价值的算法范例为内容,主要围绕计算机是如何解决问题的. 如通过一次方程组的消元法、二分法求方程近似根、迭代求和、比较许多数的大小等问题的教学,培养学生运用计算机思维的素养、体会数学中所蕴涵的算法思维,让学生多角度设计算法,逐步地引导到一般的算法. 如苏教版必修3教材P30习题2,将函数与方程、二分法与数形结合、近似与精确等知识与方法纳为一体,融入了算法的一般解题步骤和方法.
3. 联系实际,突破学习难点
针对教学中的难点,应注意开发相关的生活实例,在内容的呈现与设计上贴近学生的生活,使学生乐于、易于接受.
难点之一:“n←n+1”含义的理解.它表示的是赋值过程,而赋值的逻辑关系是环环相扣. 此时可以形象地把变量看做成一个存放乐曲n的磁盘,执行这一语句就相当于磁盘中的“新曲n+1”取代了“旧曲n”.如利用赋值语句写出的“交换两个变量的值”的算法有三步“S1?摇p←x,S2?摇x←y,S3?摇y←p.” 学生不易理解,可先引入“如何交换两个相同的杯子中的不同液体”的生活实例,然后再进一步抽象成算法.
难点之二:条件结构的构造.计算机识别的是两元系统,借鉴分段函数根据自变量取值范围的不同而有不同的形式,由此可将条件结构与分类讨论联系起来构造算法. 如苏教版必修3教材P10习题3,写出解方程ax+b=0(a,b为常数)的一个算法:S1,输出a,b;S2,若a≠0,则输出x=-■;S3,若a=0,b=0,则输出方程的解为全体实数;S4,若a=0,b≠0,则输出方程没有实数解.
难点之三:循环语句中的循环变量.循环的基础在于设计累加器,如I←I+1,S←S+x等.如苏教版必修3教材P6习题4,写出1+2+…+100的一个算法.在求和循环体Sn=Sn-1+n中使用了100个变量,可选取共同的结构,即用算法表示为S←S+n,使学生经历把“递推求和”转化为“循环求和”的过程,同时经历“初始化变量”“确定循环体”“设置循环终止条件”三个构造步骤,从而初步理解和学习构造循环结构的一般方法.
难点之四:三种语言的转换.算法初步由“自然语言、图形语言(流程图)、程序语言(伪代码)”组成,要求学生熟练地进行三种语言的转换,并设计出明确、有效、有限、可以转化为计算机程序的算法步骤. 其中将解决问题的一些隐性思维过程转化为流程图,不仅形象直观,而且让学生学会以图形的方式分析思维过程,以此简化解题的思路.
难点之五:经典案例的学习.在算法初步中有许多经典案例,体现的是算法的基本思想和思维方法. 通过学习使学生能理解它们的算法原理、算法程序设计的方法,领悟其中的思想与智慧. 由此,教学中应以理解案例的算法为重点,利用它们解决一些简单的相关问题.
4. 优化或改造算法
解决同一个问题,可以有不同的算法;同一个算法稍加改造,可以用于解决不同的问题. 对算法的优化或改造,是帮助学生理解算法的通用性、有效性等的有效途径,也有利于学生认清算法结构和把握“算理”.
在写出1+2+…+100的算法之后,改造“累加器”的流程图可以得到下列问题的算法:①求1+2+…+m(m∈Z*)的值;②求3+5+…+(2m+1)(m∈Z*)的值;③求2+22+…+2100的值;④求使2+22+…+2n(n∈N*)的和大于100的最小正整数n.
说明:①推广为求前m个正整数的和,将循环的终止条件变为“n>m”即可;②求m个正整数的和,初值变为3,步长变为2,此时需要改变变量初值和循环的终止条件,循环体变为“S←S+(2n+1)”;③将循环体变为“S←S+2n”;④在③的基础上,需要将循环的终止条件变为“n>100”. 通过练习,学生不仅可以更好地把握算法的“算理”,而且体会到算法在解决问题中的强大威力.
计算机工作靠的是程序,而程序的灵魂就是算法. 现在,科学计算继实验、理论之后,已经成为第三种科学研究的手段.有意识地培养学生的算法思想,增强算法意识,实现科学计算和论证,以“算法的视角”看待和解决问题,必将有利于未来的发现与创新. 由此可见,“算法初步”引入中学数学教学,贯注知识新血液,是符合教育现状和时代发展要求的.我国著名数学家吴文俊院士发明了一种被称为“吴方法”的算法,将现代算法理论与中国的传统算法相结合,极大地推动了算法的发展,在世界上得到了高度评价.
算法作为高中数学必修内容的一部分,反映了人们在现代社会对数学的新的审视. 如何将算法的基本思想渗透并融入数学的各方面内容之中,是一个全新的课题,为此探索算法的思想教育价值和课程设置,引发人们对数学中新的算法研究和数学模型的理解,对传统和未来的数学都会产生深远的影响.
关键词:算法;教育价值;新视角;若干思考
算法是计算机科学的理论核心和重要基础,是人脑转化为“电脑”的具体体现. 随着算法在科学技术、社会发展中的作用日趋加重,其基本知识、思想和方法日益融入社会生活的许多方面,算法思想已经成为现代人必须具备的一种素质.学习算法基础知识,体验其思想教育价值是算法教学的根本任务.
■算法课程设置的背景
算法就是将人类的思维能力形式化为计算机可以执行的步骤. 算法的设置有其重要的历史、文化和应用背景.
1. 算法的历史背景
古代的中国已出现了一些经典算法,如贾宪的《黄帝九章算法细草》、杨辉的《详解九章算法》及《杨辉算法》、割圆术等,“算术”作为数学的称呼一直沿用到上个世纪末. 在国外,公元前2000年,美索不达米亚人已有了乘法表,其中包含六十进制的算法,古埃及已有将乘法简化为加法的算法.近代数学发展史上,求方程近似解的牛顿切线法、求定积分近似值的梯形法等,都是学生将进一步学习的典型算法. 由此可见,算法有着悠久的历史,只不过在计算机上的实现是当代的事.
2. 算法的文化背景
我国传统数学是以构造性与机械化为其特色的算法体系,而西方传统数学则以演绎推理为主要体系,其代表作品是欧几里得的《几何原本》. A·哈蒙德说:“数学是看不见的文化.” 在中学数学中设置算法课程,体会中国古代数学对世界数学发展的贡献,对于继承和发展传统数学,体会算法的科学价值、应用价值、人文价值,弘扬传统文化,培养学生人文素养,都有着十分重要的意义.
3. 算法的应用背景
从小学的四则混合运算、初中的方程组解法到高中求函数零点的二分法等,都是算法的经典. 还有质数的判定、数列的求和、线性规划、立体几何性质定理的证明等,都体现算法广泛的应用性和包容性.
■算法课程的思想教育价值
算法是对一类问题的机械的、统一的求解方法,是对解题方案的准确而完整的描述,具有程序性与简约性的特点. 算法使数学在高度抽象和严格的逻辑演绎里呈现出现代的气息,蕴涵着丰富的数学思想,可从简单、典型、学生熟悉的算法模型中挖掘、提炼.
1. 程序化思想
算法的实质是将人的思维过程处理成计算机能够一步一步操作的步骤,进而转化为一步一步执行的程序,结构分明,明确简练. 在解决数学的每一个问题中,如求解一个方程、计算一个函数值、证明一个结果等,都需要一个清晰的思路,采用一系列的步骤去完成,此即程序化的思想.
2. 选择的思想
算法中的条件结构和IF…ELSE…THEN语句,使得计算机因为有了选择而能进行逻辑判断,因而具备“思维”能力,这对于学生了解计算机的人工智能有很好的作用.
3. 循环的思想
数学中有大量的问题重复烦琐,而计算机擅长重复与复杂运算,这种重复在程序中就是循环. 如数学家花费多日进行的概率抛掷硬币的试验,计算机在几秒钟内即可完成,质数判定、辗转相除法、数列求和、二分法、秦九韶算法等,都体现了循环的思想. 循环的过程依赖于循环变量取值的变化而一步步实现,这种依赖关系呈现了函数的本质.
4. 递推的思想
在设计1!+2!+3!+…+100!的算法中,既要设置一个变量S记录和,还要设置一个变量n记录项数.从第二项起,每一项都由前一项乘以n得到,这就是递推.在整个程序中要实现递推,就要用到n←n+1,S←S+T,T←T×n等语句,可从数列迭代的角度让学生理解,明确替换方式的实际意义,体验递推的思想.
5. 通法的思想
由定义即知算法的基本思想就是解决问题的一般方法,虽然显得有些呆板,但却渗透着通性通法. 设计一个算法的过程是一个思维的整理过程,是一个精确化、条理化的过程,这种具有普适价值的可行性方法,就是一种构造性的论证,丰富了学生解决问题的经验.
■算法课程实施中的新视角
算法是一种程序,在关注算法应用的过程中,体验算法“物化知识、思维与方法”,享受算法的直观、简约、形象与有效.
1. 重视算理,提倡算法多样化
算法中,程序化步骤呈现的“算则”固然重要,但步骤依据的“算理”有着更基本的价值. 算理是算则的基础,算则是算理的表现. “讲算法,重算理”意味着算法教学重在强调体会算法思想、提高逻辑思维能力. 通过案例的分析、模仿、探索、设计、操作,把算法思想渗透和贯穿于高中数学课程之中,鼓励学生主动设计、使用和讨论所开发的算法,体验解决问题策略的多样性和解决问题的多样化,论证哪种方式最适合解决问题,体验算法的程序性与简约性、直观性与有效性,充分享有“再创造”的自由.
2. 渗透算法的文化价值
在数学发展过程中,一种重要算法的形成往往标志着数学的重要进步. 在数学算法教学过程中,借助数学史,运用算法自然语言或流程图描述古代的九章算法、张丘建算经、欧几里得算法及当今实际生活中的问题解决等,充分展现算法思想的历程,让学生真正体会算法的教育价值,感受数学文化的无穷魅力.
3. 关注现实情境和实际应用
关注现实背景,强调应用,淡化计算,其意图是使学生体会算法在解决数学问题和实际问题中的应用,重视其应用价值及包容性. 因此,算法必须从具体的学生熟悉的实例出发,在数学问题的情景设计中,在处理具体问题过程中,融入流程图、程序语言,使之成为系统有效的算法课程,使学生理解算法的基本思想、基本结构和基本语句.
4. 加强与信息技术的整合
新课标提倡“信息技术与数学课程的整合”,借此来呈现教学中难以呈现的课程内容,有利于对数学本质的理解. 适时安排学生上机,一般在以下三个内容之机,一是赋值语句、输入输出语句和条件语句,二是循环语句,三是算法全章学完.把自己设计的算法变为计算机的操作语句,这样的教学使得学生既有理性上的认知,也有感性上的认识,可激发学生兴趣,更好地把握程序的语句,更能直观感受到算法的奇妙.
■实施算法课程的若干思考
基于算法产生于具体问题及算法的教学目标,准确地定位算法教学,有效地突破难点,优化或改造算法的意义,对于培养数学思维能力十分有益.
1. 客观存在的学习现状及需求
在实际教学中,由于算法内容的独特性,出现了一些学习上的困难,比如,①难以将实际问题模型化;②流程图不能与语句很好的转化,难以运用“直到型”或“当型”循环;③循环变量理解不清,不能恰当地使用循环变量(“计数变量”“累加变量”)或其他条件终止循环,特别是不能正确地处理循环变量接近临近点的情况;④缺乏相关背景知识而难以找到恰当的算法;⑤在条件结构中难以解决多于两个选择的问题;⑥条件语句和循环语句嵌套使用时的规范书写等,需要寻求突破和化解.
2. 正确地定位算法教学
算法教学目标的定位是学习在计算机上可以实现的算法,即具有确定、有效、有限的特征,为此选择数学中具有重要价值的算法范例为内容,主要围绕计算机是如何解决问题的. 如通过一次方程组的消元法、二分法求方程近似根、迭代求和、比较许多数的大小等问题的教学,培养学生运用计算机思维的素养、体会数学中所蕴涵的算法思维,让学生多角度设计算法,逐步地引导到一般的算法. 如苏教版必修3教材P30习题2,将函数与方程、二分法与数形结合、近似与精确等知识与方法纳为一体,融入了算法的一般解题步骤和方法.
3. 联系实际,突破学习难点
针对教学中的难点,应注意开发相关的生活实例,在内容的呈现与设计上贴近学生的生活,使学生乐于、易于接受.
难点之一:“n←n+1”含义的理解.它表示的是赋值过程,而赋值的逻辑关系是环环相扣. 此时可以形象地把变量看做成一个存放乐曲n的磁盘,执行这一语句就相当于磁盘中的“新曲n+1”取代了“旧曲n”.如利用赋值语句写出的“交换两个变量的值”的算法有三步“S1?摇p←x,S2?摇x←y,S3?摇y←p.” 学生不易理解,可先引入“如何交换两个相同的杯子中的不同液体”的生活实例,然后再进一步抽象成算法.
难点之二:条件结构的构造.计算机识别的是两元系统,借鉴分段函数根据自变量取值范围的不同而有不同的形式,由此可将条件结构与分类讨论联系起来构造算法. 如苏教版必修3教材P10习题3,写出解方程ax+b=0(a,b为常数)的一个算法:S1,输出a,b;S2,若a≠0,则输出x=-■;S3,若a=0,b=0,则输出方程的解为全体实数;S4,若a=0,b≠0,则输出方程没有实数解.
难点之三:循环语句中的循环变量.循环的基础在于设计累加器,如I←I+1,S←S+x等.如苏教版必修3教材P6习题4,写出1+2+…+100的一个算法.在求和循环体Sn=Sn-1+n中使用了100个变量,可选取共同的结构,即用算法表示为S←S+n,使学生经历把“递推求和”转化为“循环求和”的过程,同时经历“初始化变量”“确定循环体”“设置循环终止条件”三个构造步骤,从而初步理解和学习构造循环结构的一般方法.
难点之四:三种语言的转换.算法初步由“自然语言、图形语言(流程图)、程序语言(伪代码)”组成,要求学生熟练地进行三种语言的转换,并设计出明确、有效、有限、可以转化为计算机程序的算法步骤. 其中将解决问题的一些隐性思维过程转化为流程图,不仅形象直观,而且让学生学会以图形的方式分析思维过程,以此简化解题的思路.
难点之五:经典案例的学习.在算法初步中有许多经典案例,体现的是算法的基本思想和思维方法. 通过学习使学生能理解它们的算法原理、算法程序设计的方法,领悟其中的思想与智慧. 由此,教学中应以理解案例的算法为重点,利用它们解决一些简单的相关问题.
4. 优化或改造算法
解决同一个问题,可以有不同的算法;同一个算法稍加改造,可以用于解决不同的问题. 对算法的优化或改造,是帮助学生理解算法的通用性、有效性等的有效途径,也有利于学生认清算法结构和把握“算理”.
在写出1+2+…+100的算法之后,改造“累加器”的流程图可以得到下列问题的算法:①求1+2+…+m(m∈Z*)的值;②求3+5+…+(2m+1)(m∈Z*)的值;③求2+22+…+2100的值;④求使2+22+…+2n(n∈N*)的和大于100的最小正整数n.
说明:①推广为求前m个正整数的和,将循环的终止条件变为“n>m”即可;②求m个正整数的和,初值变为3,步长变为2,此时需要改变变量初值和循环的终止条件,循环体变为“S←S+(2n+1)”;③将循环体变为“S←S+2n”;④在③的基础上,需要将循环的终止条件变为“n>100”. 通过练习,学生不仅可以更好地把握算法的“算理”,而且体会到算法在解决问题中的强大威力.
计算机工作靠的是程序,而程序的灵魂就是算法. 现在,科学计算继实验、理论之后,已经成为第三种科学研究的手段.有意识地培养学生的算法思想,增强算法意识,实现科学计算和论证,以“算法的视角”看待和解决问题,必将有利于未来的发现与创新. 由此可见,“算法初步”引入中学数学教学,贯注知识新血液,是符合教育现状和时代发展要求的.我国著名数学家吴文俊院士发明了一种被称为“吴方法”的算法,将现代算法理论与中国的传统算法相结合,极大地推动了算法的发展,在世界上得到了高度评价.
算法作为高中数学必修内容的一部分,反映了人们在现代社会对数学的新的审视. 如何将算法的基本思想渗透并融入数学的各方面内容之中,是一个全新的课题,为此探索算法的思想教育价值和课程设置,引发人们对数学中新的算法研究和数学模型的理解,对传统和未来的数学都会产生深远的影响.