《数值分析》课程教学改革探讨

2012-08-15 00:50刘明方海林
铜陵学院学报 2012年3期
关键词:数值分析计算机专业数值

刘明 方海林

(1.铜陵学院,安徽铜陵 244000;2.铜陵县职业和成人教育中心,安徽铜陵 244000)

《数值分析》课程教学改革探讨

刘明1方海林2

(1.铜陵学院,安徽铜陵 244000;2.铜陵县职业和成人教育中心,安徽铜陵 244000)

“数值分析”是一门集理论、抽象和实践于一体的计算机科学与技术专业的重要基础课程,已然成了计算机专业教学改革的重要内容之一。文章结合该课程教学现状,以培养应用型本科人才为目标,深入课堂教学与实践教学各环节,对该课程的教学改革提出了一些设想。

数值分析;教学改革;教学方法

基础理论、抽象基础和设计基础是计算机科学与技术专业基础教育的三个相辅相成的组成部分。当前计算机本科教育改革的当务之急就是加强理论基础教育、抽象思维能力和设计实践能力教育。《数值分析》这门课程正是集理论、抽象和实践于一体,以“高等数学”、“线性代数”等课程的基本内容为基础,以“程序设计语言”为工具,介绍科学计算的理论基础与基本方法,重点研究如何运用数值方法去处理实际工程问题,是一门应用性极强的课程[1]。通过本课程的学习,可以培养学生的逻辑思考能力,熟练掌握各种常用数值算法的构造原理和过程分析,巩固学生的高等数学和线性代数等理论基础知识;同时还可以提高学生算法设计和分析的能力,并且能把实际问题抽象成数学模型,然后选择合适的数值计算方法,运用程序设计语言编写程序得出结果。这门课程研究的不仅是自身的理论,而且更多地与实践相结合(数值分析这门课程的理论很多也都是源自工程实践),提供真正具有应用价值的理论成果。可见重视数值分析的基本理论及其应用不但对计算机专业的学生今后从事研究工作具有重要意义,还与应用型本科院校“培养具有较强社会适应能力和竞争能力的高素质应用型人才”这一宗旨不谋而合。

1.数值分析课程的教学现状

数值分析既是一门数学方法,又是一种实用技能,传统的数值分析课程把重点放在理论的完整性和严谨性上,而忽视了其实用性和实验性的技术特点。笔者担任了近几年铜陵学院计算机专业该课程教学,铜陵学院计算机专业这门课的学时是68个,其中14个学时是实践教学。在54个课堂教学学时里要讲述求解数学问题的各种数值计算方法,同时对每个算法进行理论分析。针对近似算法要保证收敛性和数值稳定性,还要进行误差分析;针对逼近问题要保证达到实际的精度要求;最后的实践教学更要保证算法能在计算机上切实可行,这就要求算法还要具有好的时间复杂度和空间复杂度。可见教学课时是非常紧张的,学生学习的任务也是非常繁重的!

尽管课程的教学大纲和教学内容由教育部统一设定,但是每本教材和每个教师讲授的内容又有所侧重。这门课程有很多冗长难记的公式:有的公式是“构造”的,也就是说要把问题的计算公式具体构造出来,并以此来完成存在性证明;有的是把连续变量的数学问题离散化得到的;有的是递推公式,还有的是近似替代的公式。学生往往课堂上“听懂了”、“记住了”,但下次上课时发现上次学的公式又全忘记了。对于计算机专业的本科生来说,不应该选择过于注重理论推导和定理证明的教材,避免学生拿到课本就先入为主地认为这门课程太难,没兴趣学下去。

也有很多学生也明白这门课程实践的重要性,希望能在实验室运用已经熟练掌握的程序设计语言编制相应程序来解决实际问题,但学生对于课堂讲授的知识理解不深,自然就很难应用到实践中去,编起程序来不知从何下手,实验教学的效果也就大大地打了折扣。这就形成了理论知识没兴趣学,操作又不知如何下手这样一个难以化解的恶性循环。

根据笔者近几年的调查,计算机专业许多成绩优秀的学生在“数值分析”这门课的考核上也很难称得上优秀,可见不论是这门课的课堂教学、实践教学还是考核方式都确实是到了非改革不可的程度了!

2.数值分析课程教学改革的建议

针对上述问题,笔者就数值分析课程的教学提出以下建议:

(1)因“材”施教,合理选“材”

这里的第一个“材”指的是数值分析课程传授的对象,这里针对的是计算机专业的本科生。数值分析是一个庞大的理论体系,要让计算机专业的学生能够在有限的学时里系统地掌握其精髓,能够在面对实际问题时举一反三,就必须在教学内容上进行优化,尽量做到有点有面,除了讲授其理论与方法外,可酌情添加一些相关的背景知识;同时适当简化数学理论知识和证明过程,重点讲授各种算法的构造和实现。

第二个“材”指的是数值分析课程的教材。根据教学内容上的优化,也应该选择侧重于对公式、方法的应用和实践的教材,这类教材往往有很详细的方法讲解和例题演算。笔者采用过的教材有高等教育出版社王能超编著的《数值分析简明教程》、高等教育出版社杨一都编著的《数值计算方法》以及清华大学出版社张军编著的《数值计算》,教学实践证明《数值计算》这门教材效果最好,首先,它是“普通高校本科计算机专业特色教材选编”这套教材中的一册,该教材汇集了很多教师在计算机教学改革中的成果;其次,教材的每一章都以生动的图示开头,尝试用最直观的方式展现数值分析的基本应用过程,能够很好地引起学生继续阅读和学习的兴趣;同时该教材还为大部分算法提供了伪代码或流程图,提供了上机实验题,便于学生编程实现和联系[2]。

(2)讲好绪论,注重启发

笔者认为数值分析这门课程讲好了绪论,那么这门课程的教学就成功了一半。很多计算机专业本科生先入为主地认为这门课程就是门深奥的纯数学课程,这是对本课程特点的不清晰;也有些学生感觉微分、积分、常微分方程以及线性方程组等都在高等数学和线性代数上讲授过了,怎么还要讲什么数值方法,而且数值方法得出的解还不是准确的解;甚至还有的学生认为他根本就不需要学这门课程,只要学好编程就够了[3]。

我们教师就要针对这些学生心中的疑问和盲区进行解释和启发。首先让学生明确数值分析是一门应用性很强的学科,其理论和方法不仅在其他专业课程中经常使用,而且在解决实际问题时也常常用到。同时针对学生“习惯于准确的解”这种观念上的偏差让学生搞清楚数值解法和解析解法的区别。事实上大量实际问题寻求的都是近似的解,严格意义上讲,自然界中所有的一切都是近似的,而准确只是相对的,所谓准确,在实际问题中只不过是一种比较好的近似而已。最后针对计算机专业一些学生的“编程至上论”也应该给予厘清,首先应该鼓励学生重视编程的心态和做法,但也应该让其明白计算机编程的学习不能在乎每一种程序设计语言的兼容并包,学完了C语言接着学C++,再学.NET最后还想学JAVA等等,结果学的只是每一种语言的语法,没有把握各种编程语言共同的本质,编程最重要的还是抽象现实的逻辑思维能力,要能够准确地针对实际问题抽象出计算机能够处理的逻辑模型,然后选择合适的数据结构进行设计和开发。而数值分析这门课程就能够很好地培养学生逻辑思维的能力,运用计算机编程去解决许多实际的问题。

(3)创新方法,结合竞赛

数值分析课程的基本理论源自于科学计算中的实际问题,而“模型问题”教学法是我们实现理论联系实际的有效方法。因此在教学中,根据教学内容选取一些简化的实际问题或数学建模中的部分问题,例如将饮酒驾车问题、人口模型等问题引入到课堂教学中来,利用“数学建模”的思想组织教学。这样一来可以强化教学内容,增强学生解决实际问题的能力,另一方面也有助于学生参加大学生数学建模竞赛,因为数学建模竞赛的十大算法:a)蒙特卡罗算法;b)数据拟合、参数估计、插值等数据处理算法;c)线性规划、整数规划、多元规划、二次规划等规划类问题;d)图论算法;e)动态规划、回溯搜索、分治算法、分支定界等计算机算法;f)最优化理论的三大非经典算法(模拟退火法、神经网络、遗传算法);g)网格算法和穷举法;h)一些连续离散化方法;i)数值分析算法;j)图像处理算法,其中b)、h)、i)都属于数值分析的范畴。

同时国际大学生程序设计竞赛也是计算机专业学生不可多得的锻炼和展示平台,程序设计竞赛强调算法的高效性,它在一定程度上要求参赛学生要以最佳的方式解决指定的命题。它几乎涉及所有与计算机有关的知识:计算机科学、程序设计、数据结构、操作系统、算法分析与设计、离散数学、数论与图论、数值分析等。在数值分析课程中强调实践教学,让学生运用课堂上学过的理论知识针对实际问题,选择合适的算法和数据结构通过编写程序来得出实际问题的满意解。经过多次的上机演练无疑能够提高学生编写程序的能力和创新能力。这对于学生参加程序设计竞赛的帮助是显而易见的。

这种“模型问题”教学方法和结合竞赛进行教学的方式,无论是从学生的基础知识掌握还是到学生的高层次创新上来讲都是非常有益的,应该成为教学改革实践的一个方向。

(4)团队合作,上机考试

铜陵学院数值分析课程是考查课,学生不用参加期末的统一闭卷考试;考核方式以往都是“笔试+实验”,其中笔试成绩占70%,实验占30%。笔试考核采用闭卷形式,题目数量少,难度小;实验考核是根据学生每次实验情况打分汇总。这样的考核方式往往不能引起学生对本课程的重视,笔试考核往往都是临时突击,上机实验生成的实验报告千篇一律。

笔者认为这样的考核方式应该进行改革和完善。首先笔试考核应该采用半开卷的形式,即允许学生查阅基本公式等资料,试卷的题型应该多变灵活,覆盖面广,重点考核学生解决问题的方法与步骤上[4]。针对实验考核形同虚设的情况,笔者认为应该采取现场抽题,上机编程解决问题的方式。同时还应该加上一项“小论文”考核,将班级分成若干组,每组负责一个实际的问题,学生团队合作运用所学数值计算方法解决实际问题,编写出在计算机上可行的程序代码,并最终形成研究报告,即小论文。这种考核方式一方面有利于培养应用型本科人才,同时也可以促使那些准备攻读研究生的学生早日感受科学精神,进入科研角色。

3.结束语

以上是笔者关于数值分析教学改革的一些看法和措施,其中的一些措施已经应用于教学之中,并取得了不错的效果,同时笔者自身的教学素质也得到了加强。但是教学改革是一个长期的实践过程,还需要不断地尝试,不断地积累经验,总结经验。

[1]王能超.数值分析简明教程(第二版)[M].北京:高等教育出版社, 2003.1-8.

[2]张军.数值计算[M].北京:清华大学出版社,2008.

[3]令锋.关于数值分析课程教学的思考[J].肇庆学院学报,2004,(5): 76-79.

[4]周雪刚.浅谈“数值分析”课程的教学[J].中国电力教育,2011,(7): 110-111.

numerical analysis;teaching reform;teaching method

A Brief Discussion On Teaching Reform of the Course Numerical Analysis

Liu Ming
(Tongling University,Tongling Anhui 244000,China)

"Numerical analysis"is a major important basic in course computer science and technology,Setting theory,abstract and practicing in itself,had become one of the important elements of the computer specialty teaching reform.With the course teaching situation and the goal of training applied undergraduates,Proposed some proposals on the course of classroom teaching and teaching reform of practical teaching ideas.

G420

:A

:1672-0547(2012)03-0116-02

2011-10-27

刘明(1984-),男,安徽淮北人,铜陵学院数学与计算机科学系助教,硕士,研究方向:智能计算、企业信息化;

方海林(1975-),男,安徽池州人,铜陵县职业和成人教育中心教师,研究方向:计算机信息安全。

猜你喜欢
数值分析计算机专业数值
新工科背景下计算机专业创新创业人才培养探究
中职计算机专业产教融合混合式教学研究与实践
体积占比不同的组合式石蜡相变传热数值模拟
数值大小比较“招招鲜”
铝合金加筋板焊接温度场和残余应力数值模拟
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
压力溶腔对岩溶隧道施工安全影响的数值分析
土与支护结构相互作用及边坡稳定性分析
面向计算机专业的电路与模电教学方法研究
带凹腔支板的数值模拟