物理学与计算机科学联合课程和教科书的构想


13

我想写(并开始概述)一本物理教科书,假设它的读者是有能力的计算机程序员。普通物理学教科书教授物理公式,并给出用笔,纸和计算器解决的问题。我想提供一本强调计算物理学的书,一本有关计算机如何建模物理系统并给出此类问题的书:编写一个可以解决一系列物理问题的程序。第三方开源库将用于处理大多数计算,而我想使用Java或C#之类的高级语言。

除了我乐于从事这一工作外,我认为应该在学校提供物理-计算机科学联合课程,这是实现这一目标的更大议程的一部分。我认为物理学系的学生(像我一样)应该学习如何使用和利用计算机来解决抽象问题和问题集。我认为编程语言应该被认为是从事许多研究领域的有用媒介。

这是一个值得追求的想法吗?以大学本科课程形式合并这两个科目是否可行?有什么我应该利用的特定工具或应该意识到的陷阱?有没有人听说过大学课程或采用这种方法的其他方法?有没有像我正在描述的书(物理或任何其他学科)那样的书/教科书?


3
抱歉,这本书的计算机科学方面在哪里?听起来像物理学和计算机编程,这是完全不同的。
彼得·泰勒

2
物理书中有足够的CS空间。例如,建筑古典或量子物体的模拟时,我们肯定要与国家,并发算法,表示等的权衡摔跤
limist

2
从@Peter Taylor的评论中可以推断出,请确保书中有一些不错的CS。另外,与Java或(特别是)C#相比,imo Python将是更好的选择。根据我的经验(在科学环境中工作19年以上),科学家比您提到的其他人更可能了解Python。当我目前正在使用Java时,我不知道科学中使用C#的人。
GreenMatt 2011年

2
据我了解,R也许也是一个不错的选择,我听说它对于数值分析非常有用。如果要编写一个模拟实验的程序,则可能需要编写另一个程序来分析结果。可能是两种语言最好,一种用于编写模拟,一种用于分析结果数据。
FrustratedWithFormsDesigner

1
经过几年的考虑,有一点需要提一下。引述各种人的话,“物理学是一门经验科学。” 没有什么可以替代的,可以在现实世界中看到真实的东西,自己进行测量,并意识到数学模型与真实的现象相匹配。(在我个人的情况下,看到一分钱和一根羽毛以完全相同的速度落入一个抽空的透明管内。完全让我惊呆了!用最小二乘法计算重力引起的加速度就在那儿。)
约翰R.Strohm

Answers:


7

您的想法通常是一个好主意,并且正在被追寻:您是否看过Sussman和Wisdom的《经典力学的结构和解释》?它使用Scheme教授高级古典物理学:

顺便说一句,我认为有一个很强的理由-因此有必要-用计算基础全面改革许多学科的教学,因为计算从根本上扩展了我们的建模能力,更不用说教学,学习和思考了。在《编程大师》一书中,Haskell的Paul Hudak提出了这样的彻底改革。当然,萨斯曼还呼吁使用计算机教授“旧”主题的新方法。SICM是他这样做的一个很好的例子。我希望他接下来可以教授量子力学!


5

博士 UT奥斯汀分校的David Gavenda和Luther Frommhold试图在1970年代中期使用共享的Data General Nova系统来做这件事。我认为Gavenda博士已经退休,而且我不知道Frommhold博士的情况如何。(Dave Gavenda绝对是“好家伙”之一。)

UT奥斯汀CS系的Gordon Novak博士正在为此工作。他的论文是“计算语言学”,它是一个可以理解和解决大一水平的静力学阶梯问题的程序。(完全公开:戈登很久以前是朋友。)

您也可以看看Sussman和Wisdom撰写的《古典力学的结构和解释》

不过,我不确定这是个好主意。您可以做一些漂亮的演示,并且可以更轻松地看到一些东西,但是许多基础物理学都在教给学生方法,并直观地掌握材料,而这也许是老式方法更好的方法。办法。


3

我认为这是一个绝妙的主意,只要您选择的计算机语言不太晦涩,就可以成功。如果您选择一种科学界以外的人都不会使用的语言,那么您就没有任何成就。


根据我的经验(在过去20年的大部分时间里,使用几乎没有计算机科学背景的科学家编写的代码来处理),如果编写得当,并在科学课程中使用它,并且改进了科学家开发的代码,它将即使它使用FORTRAN而不是Java,C#或其他“更常见”的东西也可以改善很多!
GreenMatt 2011年

@GreenMatt当然,我想它更像LISP和Matlab,是典型的学术语言,很少在其他地方使用。
biziclop 2011年

@biziclop:同意w / LISP晦涩难懂,但是我已经看到Matlab使用了很多。
GreenMatt 2011年

LISP,晦涩吗?尊敬的主...
安托

2
@Anto晦涩难懂,因为很少在学术界和少数高度专业化的领域使用。
biziclop 2011年

0

这是一个值得追求的想法吗?

我当然是这么认为的!这样的想法让我希望自己还是一个本科生。说实话,我曾经在一个实验室中进行过人工计算,该实验由我编写的Perl脚本解决。我也附上了源代码。TA并不了解太多程序设计,但是当我终于把它拿回来的时候,它的分数很高。而且花费更少的时间来完成实验室。

以大学本科课程形式合并这两个科目是否可行?

我不明白为什么不!

有什么我应该利用的特定工具或应该意识到的陷阱?

令我烦恼的是,Weka可能是数据分析的好工具。我认为它具有Java API,因此Java开发人员应该可以轻松访问它,并且它可能会带来一些有趣的练习。


0
以大学本科课程形式合并这两个科目是否可行?

长期以来,我一直认为三重合并,物理,应用数学和计算是有意义的。也许甚至添加第四个计算机图形-至少足以生成足够的图形来获得inutition。从某种意义上说,计算已成为继实验和理论之后的第三种科学方法,为了真正做到这一点,您需要在这三方面都有基础。也有说科学的程序员的专业支持工作,他们的第一爱好是计算机,而数学/科学则是次要的。理想情况下,将有一种方法可以满足具有不同主要兴趣的小组,其中一些人首先需要计算机,其他人则应用数学,还有一些人将科学作为他们的主要重点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.