计算机科学,应用数学,工程,艺术,哲学是吗? “其他”?

为了提供背景,这是史蒂文·瓦蒂克(Steven Watik)的博客帖子,撰写了《科学美国人》的题为“我不是一个真正的科学家,没关系。”文章涵盖了这个问题的一些好主题,但它的开放量超过了答案。

如果您能想到该学科,计算机科学将如何适合其定义? 计算机科学学科是否应该基于什么 程序员 做什么,或什么 学术界 做?您从似乎对此深入思考的人那里得到了什么样的答案?他们给出什么原因?

有帮助吗?

解决方案

有两个不同的IT学科:

  • 计算机科学 - 是使用科学方法对计算机和计算的学科研究。

  • 软件工程 - 是按照适当的工程原则设计和实施软件的学科。

这两个重叠有些重叠,但这种区别实际上是关于科学与工程学的期望结果。科学学科的期望结果是知识。工程学科的期望结果是有效的事情。

因此,回答您的问题:

计算机科学,应用数学,工程,艺术,哲学是吗? “其他”?

计算机科学是科学...正确完成后。但是,像其他学科一样,CS与数学,工程,物理科学,社会科学,哲学等有重叠。

我还要补充说,大多数程序员都不是计算机科学或软件工程。这更像是工匠所做的。

令人遗憾的是,学术计算机科学或软件工程专业都不像较旧的科学和工程学科一样严格。 (传统上有一些计算机科学领域;例如,数学基础很强。但是对于许多领域来说,对真正重要的问题进行适当的科学研究实在太难 /昂贵。)

其他提示

程序员很少“做计算机科学”。他们主要是 利用 显然,“软件工程”的结果是工程学科。

除此之外,计算机科学是应用数学。如果将CS与不可避免地属于应用数学的东西进行比较,您会发现很多相似之处。

计算机科学家的设计和研究计算方法(算法),从数学(逻辑,图理论,组合学等)中获取大多数理论,并同时促进它。就像其余的应用数学一样。

他们从理论上评估了这些模型和算法的属性,并进行建模实验(编写测试程序)。就像应用数学家模拟簇中的液体流动一样,计算机科学家使用计算机来实验其算法的实现。这些实验的结果直接进入生产:要么是炼油厂或用于库存分析的软件。

在大学里,我甚至没有一个特殊的计算机科学部门:除其他非计算机域外,计算机科学主席是应用数学系的一部分。

计算机科学是如今涵盖许多事情的一个术语:

  • 大师工匠根据自己的工具(并拥有学徒等)为他人做工作。
  • Smiths发明和为工匠创建新工具的工具
  • 研究人员为史密斯工具开发了新的合金和其他材料(例如塑料)。
  • 理论科学家弄清楚东西是如何工作的,因此合金制造商知道如何 他们的 工具工作。

请注意,上面的所有内容如何具有独特的命名,而不仅仅是“计算机科学家”。不同之处在于,计算机科学太新了,无法定居。

首先,是 计算 科学。这涉及计算背后的数学。
还有其他学科更朝着工程学方向发展。

差异与任何相关的科学和工程学科相同。一个是关于准确性,另一个是关于精度。计算科学是理论上的,其他是适用于问题的科学:工程分支。

应用计算机科学,并 实验 数学。

计算机科学是涉及计算自动机的设计和应用的应用数学分支。软件工程是计算机科学的适当子集,它为冯·诺伊曼体系结构的正式设计和构建提供了代码。冯·诺伊曼(Von Neumann)体系结构只是实现计算机的一种方法。例如,用于破坏谜团编码消息的机器不是冯·诺伊曼机器。

软件工程是一门从业者纪律。计算机科学是面向研究的学科。大多数计算机科学家的本科生最终都在软件开发中,因为研究要求至少掌握硕士学位,这强制认为计算机科学是光荣的编程证书。

在我检查过的大多数大学中,该学科最准确地称为“计算机科学”,类似于工程学科。如果您在其中主修,则会收到“ BS”或“ MS”。德州理工大学的CS学位由工程学院提供。所教的学科主要是理论上的。您将学习Turing机器,DAS/NDAS和其他基本概念的概念,这些概念“日常”程序员并不一定真的不必在头骨上乱七八糟。您还会得到更高数学的忙碌;德州理工学院的CS学位,我也会敢打赌,几乎可以给您一个数学未成年人。为此,大多数大学的学位轨道增加了大量实用的低级应用;您可以学习一种组装语言,第三代语言,探索计算机图形,操作系统,甚至是大量的电气工程/数字设计。

但是,大多数代码为生的人不是“计算机科学家”。严格来说,它们是“软件开发人员”或(当您添加分析/设计时)“软件工程师”;该工作要少得多(尽管您必须了解这一点的基础),更多的系统分析,设计和直接编码。许多大学为此有不同的轨道。在德州理工大学,它被称为“信息系统管理”,它是商业学位(BBA/MBA)。该曲目在更高的数学上更加轻松(您必须了解的关于代数和差异/积分计算被挤入“商业数学”的两个学期,并且不包括矢量/tensor calc,线性代数等),更重得多。金融数学(每个统计数据和财务中的一个学期,每个会计和经济学都有两个)。在操作系统上更轻,“堆栈”技术(例如数据库,Web服务器,网络和通用系统管理)更重。在低级语言,电路设计和AI上更轻,在第三代和第四代语言上更重,系统分析和项目管理。我从德克萨斯理工大学获得了这个学位,到我离开时,我至少要有Java,VB,C#和网络语言(HTML/CSS/PHP)的每个学期,以及一年的OOA&D以及其他各种课程在IT项目管理中。

在现实世界中哪个更好?我得到了MIS BBA,我的兄弟获得了CS BS,并且我们俩的薪水水平大致与高级软件工程师的薪水水平大致相同(调整生活成本)。他必须在工作中学习很多所需的OOA&D,并且从他的基本C ++知识中很快就可以在C#/Java中旋转。就我而进管理和 不是 以身作则,管理别人的人已经学到了)。

许可以下: CC-BY-SA归因
scroll top