Answers:
计算机科学是用词不当-计算机科学实际上没有“科学”,因为计算机科学与观察自然无关。相反,计算机科学的一部分是工程学,一部分是数学。
计算机科学的更多理论部分是纯数学的。例如,什么是好的排序算法?我们如何定义编程语言的语义?我们如何确定密码系统是安全的?
应用计算机科学后,它变得更像工程学。例如,实现矩阵乘法算法的最佳方法是什么?我们应该如何设计一种计算机语言来帮助编写大型程序?我们如何设计一种密码系统来保护网上银行?
相反,科学与自然法则有关,更广泛地说与自然现象有关。计算机科学中涉及的现象是人为的。在这种意义上,计算机科学的某些方面可以看作是实验性的,例如对社交网络的实证研究,对计算机网络的实证研究,对病毒及其传播的实证研究以及计算机教育(教授计算机科学和使用计算机)教其他科目)。这些示例大多数是边界计算机科学,并且更恰当地说是多学科的。与计算机科学中的科学方法最接近的方法可能是对网络和其他硬件设备的研究,这是在非正式地称为“系统”的子区域中的主流。
尽管有这些示例,但计算机科学的大多数核心根本不是科学。计算机科学只是一个名字-不需要说得通。
至于计算机科学的范围,最好的定义可能是:计算机科学家所做的定义。像所有其他学术学科一样,计算机科学是一个广阔的领域,很难完全绘制图表。如果您想了解人们对计算机科学的看法,可以查看教师的研究领域。
让我们以现代计算机科学之父之一的话作为开始:“计算机科学与计算机无关,天文学与望远镜无关”-Edsger Wybe DIJKSTRA
因此,实际上,如果您对计算机和编程感兴趣,那么您对计算机科学并不真正感兴趣:-)
我认为Wikipedia有最好的描述之一:“计算机科学(简称CS或CompSci)是计算及其应用的科学和实践方法。它是对方法过程的可行性,结构,表达和机械化的系统研究。 (或算法)构成信息的获取,表示,处理,存储,通信和访问的基础,无论这些信息是按位和字节编码在计算机内存中还是在人类细胞中转录了引擎和蛋白质结构。专攻计算理论和计算系统设计”
但是实际上,正如尤瓦尔所说的那样,大多数大学/学院都已经脱离了理论/纯计算机科学,而计算机科学现在是科学,数学和工程学的混合体。不仅向我们传授纯计算机科学知识,而且向我们传授使用现代计算机,编程语言,操作系统和软件应用程序解决这些问题和其他问题的实践技能。
值得一提的是,“计算机科学”的德语术语是 Informatik,它融合了Infomation和Mathematik。我认为这是对计算机科学的简要描述。(意大利语术语是informatica,而且我敢肯定,还有很多其他语言遵循同一行)。
您可能对我们在meta上的讨论感兴趣。特别是,我坚持我的回答,转载于此:
计算机科学是计算科学。这似乎很清楚。还不清楚如何以有用和有意义的方式定义科学和计算。
通常,我们可以根据两种分类对科学进行划分:形式分类与经验分类,纯粹分类与应用分类。形式科学(例如数学和许多计算机科学)依赖于假设的事实的演绎推理,而经验科学(例如物理学和化学)则依赖于观察到的现象的归纳推理。纯粹科学的目标是促进科学理解的状态,而应用科学的目标是利用这种理解来利用自然的力量(从最广泛的意义上来说)来实现其他目标。
我们可能将计算定义为应用于一条信息的转换。从广义上讲,计算就是导致宇宙发生变化的任何过程。不需要提供任何比这更详细的定义。
然后,计算机科学由满足以下条件的人类活动组成:
这是科学,即:
它是(1)形式的或(2)经验的:
它可以是(1)纯或(2)应用
它研究计算,即:
我想对“科学”一词添加一个观点,该观点太长了,无法发表评论。
人们说计算机科学不是传统方式的科学,因为(在这里简化)我们要么做数学,要么做工程。那不是真的。我们可以运用科学的方法-可以说是对科学的基石-这是
系统的观察,测量和实验,以及假设的表述,测试和修改。
(通过维基百科的牛津英语词典 )
实际上,一些最早的算法工作都遵循这一原理。由于某些原因,某些方法已“丢失”,但我们仍然可以使用它。
基本过程¹如下所示:
顺便说一句,请不要相信我。罗伯特·塞奇威克(Robert Sedgewick)和菲利普·弗拉霍莱特(Philippe Flajolet)一直在致力于将科学重新纳入计算机科学领域,主要是通过开发能够提供可检验假设的分析组合学的正式框架。您可以找到Sedgewick提供的视频和MOOC,它们可以告诉您更多信息。
所有希望都不会丢失。
这可能是一个长期争论的古老问题,可以追溯到计算机科学的起源。研究/回答问题的一种自然方法是通过发表有关该主题的文献。怀疑有很多好的参考文献被埋在文献中,但尚未被引用。同样,与此相关的答案/观点也可能随着时间的推移而发生变化,也就是在该领域有些普遍的库恩氏位移,可能比其他科学领域更为普遍。研究此问题的另一个角度是如何在学术界教授该主题,以及如何使其适应现有的部门结构,该部门结构也随着时间而变化。
这是该领域权威Denning撰写的一些不错的论文/文章,直接解决了这个问题,是开始更多参考的好地方。两者均发表在该领域主要学术学会的期刊CACM上。
信息处理和计算继续在许多领域的深层结构中找到。计算不是(实际上从来没有)只是一种人工科学。
计算机科学满足成为科学的每个标准,但是它有一个自我强加的可信度问题。
从科学的定义出发
- 知识或研究的一个分支,处理系统地安排的事实或真相,并显示一般法则的运行:数学科学。
- 通过观察和实验获得的关于物理或物质世界的系统知识。
- 自然科学或自然科学的任何分支。
- 一般的系统化知识。
- 事实或原则方面的知识;通过系统学习获得的知识。
计算机科学与数学紧密相连,涉及大量研究(例如研究)。
计算机科学在许多方面与物理学有着广泛的联系。例如计算的物理/热力学,量子计算,作为物理定律的P =?NP,相变等
它是系统化的知识。
它经过系统的研究即研究。
术语“计算机科学”强调该领域不仅仅是关于已知原理的应用,例如在工程中。关于计算机科学,有很多关于土地的知识,该领域的许多基本问题尚未解决。全世界的研究人员数量很难估计,但数量却超过数千或数万。
但是,请注意,计算机科学的更多科学方面并没有在本科阶段真正受到过太多的教育/曝光,这可能会导致一些困惑。似乎也没有很多作为科学的高水平的实施例/庆祝/拥护者/拥护者,例如与LHC和希格斯玻色子的发现等其他领域形成对比[尽管CS在其发现!],或著名的卡尔·萨根(Carl Sagan)或霍金(Hawking)般的人口人物。但是,例如,看到启发CS的科普书籍