计算科学是否涉及编程?


16

我在Wikipedia上了解了计算科学,但是我的理解不是很清楚。

计算科学是否涉及编程?计算科学与计算_ ____有什么不同?计算_____的空白可以是任何学科(材料科学,工程学,化学,生物学等)?(我将从事计算材料科学。)


5
我建议您在这里查看:scicomp.stackexchange.com/questions/1148/…。关于计算科学的事情是,它以某种形式适用于大多数物理科学(它可能不是解决问题的最有效方法,但这完全是另一个问题)。
Godric Seer 2012年

许多事情很难用数学来证明。很好,当您可以对事物进行编程并尝试一下时。当然,计算科学并不容易,但是通过大量的工作,您应该能够做到。
vanCompute 2012年

1
欢迎来到scicomp,Sheryl。我想你在这里问了几个问题。请编辑您所写的内容,以便仅一个问题。如果需要,您可以一次提交其他问题。
David Ketcheson,2012年

我让这个问题持续一会儿,因为沃尔夫冈(Wolfgang)回答得非常好,但是在这一点上,需要先对其进行关闭和编辑,然后再重新打开,以使问题更加集中。
Geoff Oxberry

Answers:


14

戈德里克在问题中指出的联系是完全正确的。它很好地概述了计算科学家必须拥有的许多人才。

通常,作为计算X(X =数学家,土木工程师,材料科学家)与作为理论X或实验X的区别在于,前者使用计算机而不是实验或理论来解决问题。显然,使用计算机的能力-尤其是对计算机进行编程-是X本身的技能的重要组成部分,也是对X本身的良好理解。

计算科学家是不立即加入X社区但通常具有数学或计算机科学背景的人。我认为自己是一个。我要说的是,大多数人本身对任何特定的应用程序(例如X)都没有太大的兴趣,而是考虑解决字段X中的问题,以此作为开发和应用新的数值和计算方法的方式,即作为测试用例。适用于更广泛的方法。许多计算科学家都是优秀的程序员,也许更重要的是软件设计师和工程师。擅长于此当然是计算科学家工作描述的重要组成部分。


1
说得好。
Jack Poulson

什么是计算数学家?
Milind R

目标是为计算问题开发数学方法的人。例如,开发有限元法,线性或非线性的解算器,等等
沃尔夫冈Bangerth

1
很好,除了计算机可以进行“计算实验”(例如在数学或CS研究中)。(一种不同类型/类型的实验。)在这些领域中也称为“经验研究”,可能不是最好的术语,而是所使用的术语。这是一个新的/新兴的范例。尤其是带有“大数据”的esp
vzn13年

6

简而言之,如果您声称要学习“计算科学”但不懂编程,那么您将不是一个好的专业人员。

要进行计算,您需要一个工具。而计算机就是这样的工具。编程是教计算机如何做事的唯一方法。因此,编程是计算科学的重要组成部分。这并不是说它是其中的唯一部分。理论有其神圣的地位。如果您在理论方面非常擅长,那么您将设计更好,并且更重要的是正确的算法。

据我所知,您也可以在不了解编程的情况下生存:通过理论上设计算法。但是随后您必须雇用其他懂编程的人来验证您的算法是否实时有效。

此外,现代世界的事实是,了解编程的人的薪水更高。恕我直言!


3

我不知道有关计算科学的定义或描述的教科书版本,但是根据我的经验,这里有两美分:

计算科学涉及处理计算过程。关键过程之一是编程。因此,是的,它涉及编程。无论计算科学家是否是某个程序的作者,这都是一个不同的问题,但是她很可能是为特定科学领域编写的程序的用户。而且,她越来越有可能不得不编写“胶水”代码来制作适合自己需求的东西。希望这能回答您的第一个问题。

我并不了解计算材料科学,但假设它是具有计算需求的科学的一个分支,例如,对于能量模拟和元素之间的相互作用等。因此,是的,它将涉及与其他科学领域相同的计算科学一般原理:算法,过程,粘合代码,文件操作,配置,可视化等。希望这接近回答您的第二个问题。

您的计算机科学背景一定会有所帮助。是否在范围内有点主观。但是,我要说的是,考虑到您所学的科目,应该在舒适度上。


好。实际上,关于工程物理,化学等学科,我并不科学。近年来,我的主要重点是计算机科学-具体的编程。如果有人问我量子物理学以及所有问题,那我就不好了。
谢里尔2012年

如果该项目主要是关于具有良好物理意义的“编程”;我想我能应付。(此外,力学是我在物理学中最喜欢的部分,在那里我拥有很深的基础。)
Sheryl 2012年

5
教科书中没有关于计算科学的定义,但这就是美国能源部所说的。 计算科学是一种跨学科的方法,它使用算法,数学和计算机来分析和解决科学和工程问题。
Aron Ahmadia 2012年

3

这是另一种答案,但我认为这很有趣。

我查看了该Beta的所有用户,这些用户的信誉超过1000。我认为这些人可以被视为从事计算机科学。对于他们每个人,我查看了个人资料,看看他们是否在StackOverflow上拥有一个帐户,这可以看作是对编程感兴趣的标志。结果如下:

25 users having more than 1000 reputation

  • 4 (16%)没有帐户。
  • 5 (20%)刚开户就没有获得声誉。
  • 16个(64%)对StackOverflow的贡献。

因此,至少84%他们对编程感兴趣。在我看来,这表明编程是科学计算工作的重要组成部分:-)这只是对其他答案的肯定!

另一个有趣的事实(我没有量化)是,所有这些用户在很多主题上都有自己的账户,而不仅仅是计算科学和StackOverflow!我认为这只是在向Wolfgang Bangerth的答案方向发展。


2

从我的个人经验来看,我认识相当出色的计算科学家,他们几乎没有或根本没有实际的编程知识或经验。另一方面,我认识的大多数计算科学家确实知道如何对计算机编程。

您的问题的那部分没有最终答案。您必须问自己的问题是:我是否有可用的软件可以让我解决问题,或者我的工作一部分就是编写可以首先解决问题的软件,然后使用它来解决问题。实际问题。答案将决定您是否需要了解编程。


1

有趣的问题,我正在学习计算材料科学,并且是物理学专业的研究生。到目前为止,我已经完成了很少的编程工作,但这仅代表我自己。通常,项目的特定目标将确定您将要进行编码的确切数量。如果使用标准技术和软件查看特定化合物,最糟糕的是,您最终将编写Bash / Python脚本来使正在使用的代码周围的事情自动化。我认为您可能会进行一些编程以实现您想要验证的内容,所以答案很简短:不能代表计算科学,但是对于计算材料科学,如果有的话,编程的数量将由您的项目。


1

我将回答第二部分。虽然一般计算科学家和专业计算X之间可能存在许多重叠,具体取决于人的兴趣,但是计算科学家的主要关注点是引入新的计算技术来研究领域中的问题。计算技术中的新事物可能是新的计算,由于缺乏适当的计算工具或更快的方法而无法进行。另一方面,计算X将最有兴趣使用这些新工具来研究新问题。因此,通常,计算科学家首先会提出问题陈述,解释解决问题的一般框架,对工具的适用性(速度/错误等)施加一些限制,并将解决问题作为概念证明。至于第一部分

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.