|
我和几个普通高校的同行都表达过这样的观点,即应该缩减(或者弱化)理论课程的学习,加强《计算物理》的训练和教学。其理由如下。
第一、不是每个人都可以学懂纯理论知识。
我们应该相信,绝大部分人是无法真正学懂纯理论知识的。这是一个漫长的训练过程,需要耐心、优秀的老师、以及很好的学习方法,甚至一定的天赋。即便是中国最顶尖级高校,能真正学懂纯理论的,其比例也不高。绝大部分人止于理解,并能做一些简单的计算。至于掌握它们,并能驾驭它们,这样的人并不多---也没有必要。对于普通本科院校,能做到的就更加微乎其微了。这是因为他们缺乏优秀的老师,同时也缺乏很好的学习方法,以及持之以恒的耐心。
第二、绝大部分人在工作中不需要这些纯理论知识。
既然掌握不了,那么就要问,其后果是什么? 应该认识到,绝大部分普通的工作并不需要特别复杂的理论知识和纯粹的计算分析。我们的毕业生毕业后,最终都是从事一些普通的工作。对于那些需要纯理论的,肯定有专人负责,而且最终会做成一些比较简单的应用程序给大家。所以他们只需要看得懂原理,并理解每个符号的意思就可以了。就像盖楼一样,一个大楼的设计者可能是少数懂得设计理念的艺术家,但是真正执行的,是一些不懂这些原理的普通工人,他们只要能看懂图纸就足够了。
不是每个学生都需要掌握这些复杂的公式
第三、既然理论知识不是那么关键,那么重点在哪里?
应该将重点放在数值计算上。我曾经建议---当然纯粹是私人之间的聊天---将计算物理改为三个学期,大一、大二和大三连续开设三年,一定要通过编程达到对简单问题的建模、计算、画图、写报告等能力的培养。这是因为,尽管我们的学生不一定从事纯理论分析的工作,他们需要面对一些具体的细节的问题,以及大量的数据,所以如果他们有一定建模能力、分析能力、和报告能力,最终会大大提高他们解决具体问题的能力。
第四、非物理专业该怎么办,这个措施适用于其它专业吗?
肯定可以。《计算XX》中的XX,可以是化学、生物、力学等任何课程。其理由类似,即希望学生通过系统地编程训练能掌握对问题地建模、计算、模拟、分析的能力,并能独立地解决某些具体的问题。
第五、教学的具体措施是什么,怎么实施?
为什么开设三年?基础班,主要讲程序编写,希望学生掌握几门不同的软件;提高班,主要是关于数值计算以及一些简单的问题的模拟,提高解决问题的问题;高级班,即针对一些具体的科学问题,提出求解的方法,画图,查阅文献,撰写分析报告等。在报告中,应该强调文字要求和排版要求。这样的学生在具体工作中将具备上面提到的诸多能力。有这个能力的学生,可能可以解决在生活中碰到的各种一般性的问题。
第六、这个能力对基础知识有促进作用吗?
答案是肯定的。即通过对一些具体问题的模拟,可以大大提高学生对基础知识的理解和掌握情况。很多学生不能想象出这些抽象的符号背后的意思,但是通过具体的数值模拟,可以大大提高他们的认知能力。我自己在带学生、教学的时候,对这一点深有体会。我自己在碰到一些难以理解的概念的时候,也是采取这种迂回措施,即数值模拟,以检查自己理解上的误区。我见过一些数学家,他们也做一些模拟来检查自己的定理是否正确,或者为自己提供新的思路。
第七、掌握什么编程语言?
不同的领域不同,不适宜强求。物理学生,我建议c, c++, fortran, matlab, mathematica, python等。学生根据自己的兴趣学习和掌握其中几个。在一些比较专门的领域,有自己的模拟软件,比如comsol, vasp等。
总结:大学教育,到底要培养什么样的人才?不同学校的定位到底是什么?我认为,我们应该培养一些具备解决具体问题能力的学生,而不是一堆眼高手低,什么事情都不会的学生。《计算XX》完全可以达到这个目的。这样的训练可以大大提高大学生解决问题的能力,我对这一点深信无疑。我自己也有学生,对于那些没有很强分析能力的人,我建议他们从数值计算入手;对于极少数非常优秀的学生,我才会强调和训练他们的解析能力。
写作背景:本学期讲授《计算物理》,发现很多研究生不会编程。他们来自不同的学校,成绩都很不错。可惜,因为学校不重视编程,他们也就没有把编程当作重要的问题来抓。我认为,提高编程能力,比提高对物理学的认识,要容易得多。因为建立一个对物理问题的认识是一个蛮长的过程。
本文2020年10月完稿,当时第二次讲授《计算物理》。2022年9月补充写作背景,修改错别字,发表。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 15:01
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社