公务员期刊网 论文中心 正文

计算机数学教学法分析

计算机数学教学法分析

一、高等数学

高等数学是绝大多数理工科学生刚踏入大学的校门就要学习一整个学年的基础课程。高等数学、大学物理和英语是大学期间仅有的要学习两个学期以上的三门课程。高等数学课程的重要性由此可见一斑。然而当前高校中普遍存在的一种怪现象是:在很多高校的入学考试中,计算机都是收分最高的专业之一,学生的高中数学基础在全校也是名列前茅,大学期间数学类课程的课时数也仅次于数学专业,但学完之后的效果却几乎是倒数第一。其中原因何在,发人深思。计算机专业的学生,对数学的要求固然跟数学专业不同,跟物理专业的差别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机专业来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机专业的学生来说,追求算来算去的所谓“工科数学”已经彻底地走进了魔道。记上一堆曲面积分的公式,难道就能算懂了高等数学?其实计算机专业的学生只学高等数学是不够的,也应该像数学专业的学生一样学数学分析。计算机专业的学生对于数学分析这门课程有一种很复杂的感情。数学分析是偏向于证明型的数学课程,这对培养学生良好的分析问题、解决问题的能力极有帮助。因此,计算机专业的学生学习高等数学的时候,要知其然更要知其所以然。学习的目的应该是将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想。对于定理的学习不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。

二、线性代数

线性代数是计算机专业的一门重要基础课程,也是较抽象难学的一门课程。由于它概念多,抽象度高,思维方式独特,一直是教学与初学者感到困难的“老难题”。而老师在教学中由于教学任务重,为了赶进度,存在直接用“定义、定理、证明”的短平快教学模式,从而影响了教学效果,也达不到教学的目的。俄罗斯和美国的《线性代数》的教学内容和教学大纲,与我国当前《线性代数》课程和教材的知识体系并没有多大的差别。但美国的教材强调知识的应用,在每章节后都会有针对性地介绍用MALAB求解相应的线性代数题目,重视培养学生的动手能力,同时也激发了学生对于数学的浓厚兴趣。然而我国的《线性代数》课程和教材却出现了畸形的发展,理论越来越抽象,应用和实际计算则毫无关联,这使得它成了一门非常抽象和困难的课程。例如由于很多教师讲课时没有介绍相关的应用背景,后续课程中又往往怕麻烦而避开矩阵,使得学生在理论上害怕利用矩阵建模,实践中不会用矩阵解决问题,即使成绩优秀的学生也感觉《线性代数》太抽象。而我们传统的教学方法又过分强调准确、快捷的计算和证明过程严密的逻辑性,使学生感到《线性代数》的知识与现实脱节,看不见,摸不着,枯燥乏味,致使学生学习兴趣日下。学生刚进入大学,其思维方式很难从初等数学的那种直观、简洁的方法上升到线性代数抽象复杂的方式,故思维方式在短期内很难达到线性代数的要求。大部分同学习惯于传统的公式,用公式套题,不习惯于理解定理的实质,用一些已知的定理、性质及结论来推理、解题等。而线性代数这一抽象的数学理论和方法体系是由一系列抽象的概念构成的。因此,教师在教学中,要首先解释这些抽象概念在现实世界中的实际背景,教师要研究概念的认识过程的特点和规律性,根据学生的认识能力发展的规律来选择适当的教学方式。在教学过程中一再体现由具体事物抽象出一般的概念,再以一般概念回到具体事物去的辨证观点和严格的逻辑推理。

三、概率论与数理统计

概率论与数理统计这门课很重要,可惜缺少了随机过程的章节。对于计算机专业的学生来说,到毕业还没有听说过Markov过程是非常不应该的。没有随机过程,我们就不知如何分析网络和分布式系统,就不会设计随机化算法和协议。据说清华大学计算机专业开有“随机数学”课程,并且早就是必修课。另外,离散概率对计算机专业的学生来说有特殊的重要性。现在,美国已经有些学校开设了“离散概率论”课程,直接略去连续概率的知识,深入分析离散概率。虽然我们不一定要这么做,但应该更加强调离散概率是没有疑问的。

四、计算方法

计算方法是一种研究并解决数值问题的近似解的数学方法,虽然是数学方法,但是它有别于高等数学、线性代数等基础课程,是一门与计算机结合密切的具有很强实践性的课程。目前已经成为计算机科学与技术专业学牛的一门专业基础课,它要求学生掌握算法的原理、误差分析和收敛性分析等理论知识,还需要掌握这些算法的应用。很多学生对这门课的重视程度有限,以为没什么用。其实这是一门非常重要的课程,在很多科学工程中的应用计算都是以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原理和算法;另一个是现在日趋流行的“科学与工程计算”,直接教学生用软件包编程。作为计算机科学与技术专业的教师,一定要让学生认识清楚自己为什么要学这门课,要清楚的知道所学的算法最终需要编程来实现。因此学生只有在清楚的了解算法所需的条件,算法的步骤的前提下,才能转换成清晰的程序流程并用某种编程语言实现。

五、离散数学

最常和理论计算机科学放在一起的一个词是什么?答曰:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。传统上,数学是以分析为中心的。数学专业的学生要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理、化学、工程上的应用的也以分析为主。随着计算机科学的出现,一些以前不太受到重视的数学分支突然变得重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分、积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。离散数学是计算机专业开设的必修课,包括集合论、数理逻辑、抽象代数和图论等。这么多重要的内容挤在离散数学一门课程里面,老师不可能面面俱到,每个内容都讲得很透彻,学生自然也就不可能深入理解。即便是这样,仍然有些高校对于离散数学的教学课时数一减再减。另外,计算机系学生不懂组合数学和数论,对于将来从事科学研究来说,也是巨大的缺陷。从理想的状态来看,最好分开六门课:集合论、数理逻辑、抽象代数、图论、组合数学和数论。这样安排当然不够现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑、图论与组合数学、代数与数论。

六、总结

计算机科学和数学的关系有点奇怪。几十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是themathematicalunderpinningofcomputerscience(计算机科学的数学基础)———也就是理论计算机科学。