解读算法教学与数学思维训练的关系
龙源期刊网 http://www.qikan.com.cn
解读算法教学与数学思维训练的关系
作者:廖丽鸳
来源:《中国信息技术教育》2013年第10期
这是一道微软的招聘测试题:中间只隔一个数字的两个素数被称为素数对,如5和7,17和19,证明素数对之间的数字总能被6整除(假设这两个素数都大于6),现在证明没有由三个素数组成的素数对。这是一道显而易见的数学题,微软为何要出这样一道题?对于一名能够灵活自如编写各种程序的人,数学是程序的灵魂。电脑与数学原本就有着千丝万缕的联系,早先的许多电脑专家都是学数学出身的。数学的原理、思想和方法与技术的结合形成了属于高科技的数学技术,数学技术是信息技术的基础,又是信息技术的支撑学科。
在新课程理念下,高中信息技术与数学的整合也不再是单纯的技术支持,而是教学内容上的融合、教学方式和学习方式的变革。信息技术教师要尽可能地向学生提供充分从事数学活动的机会,有意识地在课堂中渗透各种数学思维方法。
● 由算法教学延伸到数学思维训练
程序设计思想中最重要的是算法,而算法是建立在数学思维上的。可以说,程序只是一件衣服,算法才是它的灵魂。
算法来自于数学,没有深厚的数学思维功底很难真正懂得算法。一个具有数学修养的程序员在写代码时更有可能写出逻辑严密的最简化的高质量代码。微软公司总裁比尔·盖茨年轻时对数学很痴迷,而微软的项目经理,必须得具备超强的数学思维,而且有些还是数学专业的博士,从这也可以看出微软公司对数学人才的重视程度。
大学计算机专业学生对此普遍有感触,计算机专业课程中最难的几门课程莫过于离散数学、编译原理、数据结构,当然像组合数学、密码学、计算机图形学等课程也令许多人学起来相当吃力,很多自认为数据库学得很好的学生在范式、函数依赖、传递依赖等数学性比较强的概念面前感到力不从心,这些都是因为数学基础或者说数学知识的缺乏所造成的。
数学是计算机的基础,这也是计算机专业研究生数学考试都采用最难试题(数学一)的原因。学计算机的学生之所以觉得《数据结构》这门课程很难,就是因为他们的数学思维锻炼得不够!其实生活中有很多这样的例子:对于一个刚毕业、编应用软件的大学生,在编程中用到《线性代数》的矩阵时,恐怕便会想,在大学把线性代数学好就好了;当在程序中用到动态链表、树时,恐怕也会想“在大学时花点时间去学《数据结构》,会多么有意义”;当学数据结构时,恐怕也会想“学《离散数学》时为什么要逃那么多课”。所以,数学思维不够,在软件编程时就会有很多疑虑,显得有点缩手缩脚,而且写的程序也不够健全,缺乏逻辑。