@ 2015.08.18 , 14:00
34

开学季:为什么物理课应该教授编程?

[-]
理论物理学家Kip Thorne帮助《星际穿越》的Jessica Chastain计算更真实的黑洞

新一学年又要开始了,很多教员正在研究他们的物理学导论课程。应该设置几次考试?留多少作业?需要教流体吗?那数值计算呢?就让我们来谈谈数值计算吧:

杯具的是,我(原文作者)认为大多数物理教员甚至都不会考虑在物理课程中包括数值计算。当然,我所指的数值计算是把复杂问题分解成很多(更容易的)问题的过程。由于这样做会产生很多个问题要求解,最简单的策略就是使用某些类型的计算机。因此一些人可能会称之为计算物理学,甚至物理编码学。随便你喜欢叫什么,但我认为这是导论课需要涵盖的一个重要课题。

那教员不教数值计算的原因又是什么呢?下面是一些常见顾虑以及我的回答。

[-]
理论物理学家Richard Feynman

“这不是一门计算机科学科。”

好吧,是这样的,这是一门物理课。然而,这也不是一门英语文学科,这是否意味着课上就不应该有读写?这也不是数学课,但是大家还是在用数学。这不是艺术课,但学生们还是应该能够画力学示意图。

物理学不是与其它所有事物隔离的。说实话,根本没有一门课程是完全自成一体的,你能想象一门不使用文字只使用表情图片的课吗?不,大家都会挂科的。物理学必须使用很多不同领域知识来研究宇宙的本质,这也是其牛逼之处。

当然不仅仅教员会说“这不是一门计算机科”——学生也会这么想。这个我在另一篇文章里回答过

[-]
天文学家Carl Sagan

“我的特定物理领域不使用数值计算。”

首先,这多半不正确。我猜想你可以说有些实验物理领域用不到数值计算,但大部分领域确实使用它们。哦,而且不仅仅是在物理学,想想气象学,或者量化交易(利用数值模型选股)?数值计算无处不在,学生们越早学它越好。

其次,仅仅因为你不做一件特定的事情并不意味着就不应该在课程里包括它。对不?物理学导论课程的目的并不是复制出一个迷你你(或者迷你我),相反,是为了向学生介绍物理学的基本思想。

[-]
计算机科学家Stephen Wolfram

“数值计算太过复杂,用在导论课程中所需前提太多了。”

我承认这看法曾经是对的——但现在不比从前了。过去,对于非程序员来说,要进入某种类型的计算环境真是蛋疼无比,唯一可行的方法就是用电子表格做计算,但即便是这样,学生们也要拥有Excel或类似软件才行。

[-]
Python设计者Guido van Rossum

但现在再也不是1995年了,对于新生,甚至对于物理教员来说,数值计算不再是遥不可及,我们现在有了如下这些优秀的工具:

# PythonVPython:Python是非常易学易用的语言,而VPython是为物理上的东西创建出色可视化效果的模块,它们的好处难以言喻。

# GlowScript:这样么说吧,这是跑在浏览器里的VPython。很了不起吧?是的,现在一名学生只要在任何一台电脑上装有现代浏览器,就能开始研究数值计算。有经验的教员会知道要在实验室电脑上安装新软件会搞得有多复杂,这可不是好玩的。

# Trinket:同样的,这实质上也是跑在浏览器里的VPython。不过,Trinket允许你分享和嵌入python代码,并让其他人能修改和观察会发生什么。这里有一个帖子展示用python和trinket能做些什么很酷的事情

当然还有很多其他工具你能用来进行数值计算,你仍然能使用电子表格(你甚至能使用Google Docs的电子表格),你也可以用Mathematica或类似的东西。重点是,开展这种类型的计算起步门槛变低了——比十年前的情况低多了。

[-]
未来学家加來道雄

“我已经在物理学导论里涵盖了太多东西,没时间讲数值计算。”

是的,在物理课程里可以包括很多东西,对我来说,有三个重要概念一定要放在第一学年的物理学里:

# 动量原理——或者你愿意叫牛顿力学也可以
# 功能原理
# 角动量原理

几乎任何其他东西都涵盖于这三个概念中的一个或多个中。我理解要往已经很满的学期里再塞进更多课题会有困难,但不要把它想成是一件新事物——相反,它只是解决同样问题的新方法。哦,但是你不喜欢这个新方法?没问题,但如果一个物理教员说“嘿,我不喜欢用代数求解有两个变量的物理问题”会如何?当然,你可以避免需要求解两个变量的所有物理问题,不过这样就有点蠢萌了。现在这对于数值计算来说也是同样成立的。

[-]
摇滚物理学家Brian Cox

数值计算从哪里开始呢?

好,我们同意数值计算足够重要包括到物理学导论里。但然后怎么做?首先,你可以采用一本支持数值计算的教科书。我个人喜欢Chabay和Sherwood写的《物质和相互作用》教材,它很棒而且本身就包括了vpython内容。其次,你可以在几乎所有课程中实施GlowScript活动。如果你想要一些上手教程,这里有一些我整理的东西,或者你也可以使用亚马逊Kindle店里我写的《物理刚刚够》电子书——有一整章讲数值计算的基本概念。

外面还有很多其他资源,但这些就足够你上手了。哦,最后一件事,一旦上手,你可能会发现用python编程求解会促使学生更多地讨论物理学而不是编程。是的,这一点也总让我大吃一斤。

[-]
科普家Bill Nye

本文译自 Wired,由译者 王丢兜 基于创作共用协议(BY-NC)发布。


给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名: 打赏金额:

0.0
赞一个 (7)

TOTAL COMMENTS: 34+1

  1. 蘑菇
    @2 years ago
    2902965

    大吃一斤

  2. Infire
    @2 years ago
    2902966

    原本挂两科的可以只挂一科了,好事啊好事。

    [70] XX [1] 回复 [0]
  3. 周日游鱼
    @2 years ago
    2902970

    王丢兜 : 令人惊讶的是,学会用编程求解物理,会促使学生更多地讨论物理学而不是编程。
    =============
    嗯,我理解这就是做一行恨一行的意思。别人眼中的编程高手,和自己眼中的码农,完全是两个概念。

  4. lucita
    @2 years ago
    2902984

    matlab呢。学thermo的时候莫名其妙要用这个也是郁闷。

  5. gogogo
    @2 years ago
    2902990

    计算物理是必修课。。。

    [10] XX [0] 回复 [0]
  6. 2903000

    有些东西就得让计算机做

  7. 邻家怪蜀黍
    @2 years ago
    2903001

    真正搞这某行的都知道自己领域有哪些工具,不知道的其实也懒得用

  8. 野龙
    @2 years ago
    2903006

    作为数学系的表示,物理课需要计算的东西不算太复杂,只不过是公式特别多而已(而考试是要考公式的,因此反而背公式比计算要难)

  9. 2903015

    因为物理系毕业的能找到的最好的工作是码农。

    [25] XX [1] 回复 [0]
  10. 邻家怪蜀黍
    @2 years ago
    2903021

    @aaa: 有一个分支叫做统计物理 现在炙手可热

  11. ekansrm
    @2 years ago
    2903029

    想想如果当初坚持自己的理想, 现在自己可能是个设计师/心理学家/物理学家, 而不是像现在这样要去当个码农了…

  12. 2903030

    国外本科课程也是挺水的

  13. 2903055

    @邻家怪蜀黍: 物理方向研究生表示统计物理只是一种方法,按照你的理解恐怕除了某些纯理论领域,大部分物理分支无论是材料半导体还是高能核物理都可以叫做统计物理学

  14. 幫肆
    @2 years ago
    2903083

    本人制作的视频。。求赞

  15. 喵大大
    @2 years ago
    2903199

    反正学到最后发现不会编程就得累死。。

  16. 2903204

    反正学物理的肯定都得学编程不然得累死。
    我上学期修了一门单片机课程,老师就是个核物理方面专业的博士,据他自述,核物理越往深处学,越感到计算机科学的重要性,后来干脆完全转投计算机了……

  17. 哲学大叔
    @2 years ago
    2903211

    其实你们真的误解编程了。也主要这个词被用滥了。很多很多时候,就像是沙盘。程序就像沙子跟沙子槽。你重点放在沙子如何造型上,还是重点放在沙子表达的地形含义上?

  18. 哲学大叔
    @2 years ago
    2903215

    另配图挺赞

  19. iovejrj
    @2 years ago
    2903229

    万物皆数

  20. 2903306

    @aaa:
    我就是物理系的,目前在投行做quan,我也可以说,这是很大一部分物理系毕业生最终就职的职位。只有最差的物理系毕业生才会当码农。
    我们掌握的将最潮的数学应用到解决需要问题上的学问,以及系统科研的经验,可以让我们胜任任何工作,注意,是任何。我同届有60%就业率,40%去哪了呢?分布在30多个不同专业的博士项目里。
    另外,我们能够心理准备好了读基础学科,也代表我们对未来有着绝对的自信。
    我发现很多媒体上宣传的科学家形象误导了大众,认为物理学家就是一群书呆子。我认识的同学里,没有一个人是那样的形象,没有一个人除了刨书本什么都不懂,大部分人本科阶段就有3个以上专业领域的知识和技能。大部分物理学家,他们的才能用于赚钱的话,在这个计算的世界里,可以把市场里的其他求职者虐成渣。但是他们选择物理,因为这是最困难也是最有意义的工作。人生没有选择他们,他们在选择人生。
    计算机,从来不是工科生的作品,这是一群纯数学家和物理学家的杰作,一开始根本没有什么计算机系。

    [10] XX [10] 回复 [0]
  21. 2903307

    TAOCP由计算机系的人读,你看看他们能坚持多少页。对于物理系学生,只是休闲读物而已。
    一旦你学到了更深层次的时候,你捡起某些其他领域的论文,就像是看幼儿园小朋友的牙牙学语一样,最大的乐趣,是看着其他领域里面企图攀附物理学成果刷文的工科小朋友对各种物理公式的误用和各种思想的胡乱解释。随便一个物理学大四学生,拿起一个工科在读博士的论文,都可以迅速给你们排出一大堆错。
    物理学家最骄傲的是对世界的理解,数学家最骄傲的是准确性。前者深知道数学该怎么用于让我们明白未知,后者深明白数学世界绝对精致的准确。这些东西,是在别的领域里找不到的品质。
    什么时候别的都专业都能对物理系建立优越感了?

    [6] XX [10] 回复 [0]
  22. mirleller
    @2 years ago
    2903394

    @lis: 其实任何学科学科想要学得精都不是件容易的事。我也喜欢物理,物理学通常很复杂,更善于发现事物的本质,相比之下,其他学科,比如计算机其实是一些简单逻辑的不断叠加,显得比较简单,但如果你深入研究,就会发现,简单的事不断地重复,并不是件容易的事,它的原理很简单,并不意味着你能轻易地利用它做出非凡的成就。
    在任何领域里想要取得成就都是要付出努力的,假若一个物理系的看不起计算机领域的研究,让他去研究计算机,他会静下心来去研究吗?

  23. mirleller
    @2 years ago
    2903398

    @mirleller: 在我看来,优越感是个贬义词,他体现了一个人沾沾自喜,固步自封的心态

  24. 丧心病狂大薯条
    @2 years ago
    2903407

    @lis: 哲学系的表示数学物理都是渣渣

  25. 丧心病狂大薯条
    @2 years ago
    2903435

    @lis: 求一个能过图灵测试的ai。

  26. 山神
    @2 years ago
    2903475

    感觉物理学更像数学

  27. 啦啦啦
    @2 years ago
    2903507

    上帝说不定就是个程序员,闲来无聊开发了一个宇宙,学物理的人们也可以尝试一下编一个宇宙出来运行一下。

  28. 2903585

    楼上那位物理系毕业做quant的,我是北美那四家投行的中台,也做过后台的quant,不知你是quant analysis还是quant trader,我所知做quant analysis的通常都是顶级大学的数学,物理,cs和少量工程等其他领域的phd,并不是来个物理系的人就能胜任。至于quant trader,我觉得并不是什么skillful的工作,写代码的能力、反应速度乃至所谓的灵性都比对那些模型的理解能力重要的多。还有你真了解北美收入的行情吗,一个入门quant年收入顶多200-300k,压力特别大,一周工作100小时是常态,无论哪个方面比硅谷都差远了。

  29. 2903592

    还有那位lips先生提到同届40%去读博士,说明他是本科毕业生。但是按他的意思有很多本科毕业生做quant?我所知本科生进后台quant的数量应该远少于在世的诺贝尔奖获得者人数。

  30. Twitter
    @2 years ago
    2903649

    黑白上的各种公式慎比黑洞

  31. 2903678

    物理系BS转计量生物PhD一枚。
    记得本科跟教授做科研的时候,我被各种论文中随意蹦出来数学概念折磨地痛不欲生,大部分的时间我却是泡在数学系图书馆里,我问教授,如果以物理为生的话,我应该学习多少数学?教授回答我,越多越好,最好全部。然后他马上补充了,当然,掌握的层次不同,我们在意对基本概念的直觉理解和流畅运用,而不很在意严谨性,后者是数学家花费力气的原因。我按照他的建议,把大三大四全部投入到数学上,为我现在做好了很好的准备,至少我博一就可以独自发论文,同个组的其他博三博四的都是合作发。
    物理系的人转入其他系的PhD,成为别的系教授是很常见的一件事,但别的系要转成物理系的PhD,或者教授,却不容易。我认为,物理系本科教育培养目的,是培养科学思维以及系统的数学教育,为科研生活以及高等教育教职做准备的,这是社会分工的不同。认为物理系只能做物理或者码农的,有失偏颇了。

  32. 2903686

    建议阅读Daniel Kahneman《Thinking, Fast and Slow Paperback 》, 物理学就是一种慢思考的模式,它志于培养学生避开人自身的逻辑误区,深入解析一个问题的量化技巧。这些技巧放之四海皆准。工程学思考,譬如软件工程,很多时候一种fast hack,一种快思考模式。在工程学审美中很聪明的一个东西,在物理学审美可能是恶劣的。

    很多人很奇怪为什么一些博士脑子里似乎可以记下无穷无尽的公式,可以没有讲稿情况下滔滔不绝地讲四五小时的课,画下7、8个黑板的推导。并把这样归结于他聪明。事实上,其实大部分人都不记忆公式,脑子里形成是对于整个领域框架的理解,顺着这个框架所有的细节都可以衍生出来,当一些人被随机抽上去讲课的时候,他们有可能早就忘了公式长什么样了,但他们能马上推出来。在观众的角度里,就像他们背诵了一切一样。重视理解本质而非流利使用公式的教学目的,是物理系高等教育给于人最大的财富。

  33. 2903850

    国内物理系毕业的表示学物理还可以不学数值计算的吗?

  34. Anubis
    @2 years ago
    2903885

    ……你们在说什么,我就觉得有个学物理的帮忙做做CADD挺好的

发表评论


24H最赞