是计算机科学,应用数学,工程学,艺术,哲学吗?“其他”?
为了提供背景知识,这是史蒂文·沃蒂克(Steven Wartik)在《科学美国人》上发表的博客文章,标题是“ 我不是真正的科学家,没关系。” 本文涵盖了该问题的一些不错的主题,但开放性远远超出了答案。
如果您能想到该学科,计算机科学将如何适应其定义?计算机科学的学科应该基于程序员的工作还是学者的工作?您从似乎对此有深刻思考的人那里得到什么样的答案?他们给出什么原因?
是计算机科学,应用数学,工程学,艺术,哲学吗?“其他”?
为了提供背景知识,这是史蒂文·沃蒂克(Steven Wartik)在《科学美国人》上发表的博客文章,标题是“ 我不是真正的科学家,没关系。” 本文涵盖了该问题的一些不错的主题,但开放性远远超出了答案。
如果您能想到该学科,计算机科学将如何适应其定义?计算机科学的学科应该基于程序员的工作还是学者的工作?您从似乎对此有深刻思考的人那里得到什么样的答案?他们给出什么原因?
Answers:
有两种不同的IT学科:
计算机科学-是使用科学方法进行计算机和计算的学科研究。
软件工程-是遵循正确的工程原理设计和实施软件的学科。
两者有些重叠,但是区别实际上是科学与工程的预期结果。科学学科的理想结果是知识。工程学科的理想结果是行之有效。
因此,回答您的问题:
是计算机科学,应用数学,工程学,艺术,哲学吗?“其他”?
正确完成计算机科学就是科学。但是,像其他学科一样,CS与数学,工程学,物理科学,社会科学,哲学等学科重叠。
我还要补充一点,大多数程序员所做的既不是计算机科学也不是软件工程。它更像是工匠所做的。
而痛心地说,无论是学术计算机科学或软件工程专业是一样严格的旧的科学和工程学科。(计算机科学领域历来是严格的;例如,具有强大的数学基础的领域。但是对于许多领域,对真正重要的问题进行适当的科学研究实在太困难/太昂贵了。)
程序员很少“做计算机科学”。他们主要使用显然, “软件工程”的结果,这是一门工程学科。
除此之外,计算机科学是应用数学。如果将CS与应用数学中不可或缺的东西进行比较,您会发现很多相似之处。
计算机科学家设计和研究了计算方式(算法),并从数学(逻辑,图论,组合数学等)中吸取了大部分理论,并同时对此做出了贡献。就像其他应用数学一样。
他们从理论上评估这些模型和算法的属性,并进行建模实验(编写测试程序)。就像应用数学家在群集上模拟管中液体的流动一样,计算机科学家也使用计算机来实验其算法的实现。这些实验的结果直接进入生产:炼油厂或库存分析软件。
在我完成的大学中,甚至没有专门的计算机科学系:在非计算机领域,计算机科学系主任是应用数学系的一部分。
如今,计算机科学这个术语涵盖了许多很多方面:
请注意,以上所有内容具有独特的命名方式,而不仅仅是“计算机科学家”。区别仅在于计算机科学太新了,无法命名。
首先,它是计算机科学。这涉及计算背后的数学。
还有其他一些学科更注重工程学。
区别与任何相关的科学和工程学科相同。一个是关于准确性,另一个是关于准确性。计算科学是理论性的,其他则是应用于问题的科学:工程学的分支。
在我检查过的大多数大学中,最准确地称为“计算机科学”的学科是一门类似于工程学科的应用科学。如果您主修该课程,您将获得“ BS”或“ MS”。德克萨斯理工学院的CS学位由工程学院提供。正如所教授的,该学科大部分是理论性的;您将学习图灵机,DA / NDA以及其他一些基本概念,而这些“日常”程序员实际上并不需要在他们的头骨上四处乱窜。您还会得到更高的数学要求。得克萨斯理工学院CS学位,我也会打赌其他很多人,几乎会给你一个数学辅修课程。为此,大多数大学的学位课程都大量增加了实际的低层次应用。您会学习汇编语言,第三代语言,
但是,大多数以代码为生的人不是“计算机科学家”,而是“计算机科学家”。严格来说,他们是“软件开发人员”或(当您添加分析/设计时)“软件工程师”;这项工作的硬件水平要低得多(尽管您必须了解该基础知识),而系统分析,设计和直接编码则要多得多。为此,许多大学有不同的发展方向。在德州理工大学,它被称为“信息系统管理”,并且是商业学位(BBA / MBA)。该课程在高等数学上比较轻松(关于代数的知识和微分/积分calc被压缩为“商务数学”的两个学期,并且不包括向量/张量calc,线性代数等),在金融数学(每学期统计和金融,会计和经济学各两个)。在操作系统上更轻,在“堆栈”技术上更重,例如数据库,Web服务器,网络和常规系统管理。轻度使用低级语言,电路设计和AI,重度使用第3代和第4代语言,系统分析和项目管理。我是从德州理工学院获得这个学位的,到我离开时,我至少有一个学期的Java,VB,C#和Web语言(HTML / CSS / PHP),再加上一年的OOA&D和其他各种课程在IT项目管理中。
在现实世界中哪个更好?我获得了MIS BBA,我的兄弟获得了CS BS,并且我们两个人的薪资水平都与高级软件工程师大致相同(根据生活成本进行调整)。他必须学习很多在工作中必需的OOA&D,并且必须从他的基本C ++知识中快速学习C#/ Java。就我而言,我希望我有两个学期的概念算法研究,这是他在我被商务管理课程卡住时获得的(是的,MIS是“管理”学位,但我发现我有99%的知识是关于如何通过示例学习管理和不管理其他人)。