计算机科学

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机科学(Computer Science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学科。[1][2]它通常被形容为对那些创造、描述以及转换信息的算法处理的系统学习。计算机科学包含很多分支领域;其中一些,比如计算机图形学强调特定结果的计算,而另外一些,比如计算复杂性理论是学习计算问题的性质。还有一些领域专注于挑战怎样实现计算。比如编程语言理论学习描述计算的方法,而程序设计是应用特定的编程语言解决特定的计算问题,人机交互则是专注于挑战怎样使计算机和计算变得有用、可用,以及随时随地为人所用。

有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。

早期计算机科学创建的基础得追溯到现代电子计算机的发明。那些计算固定数值任务的机器,比如算盘,自古希腊时期即已存在。Wilhelm Schickard在1623年设计了世界上第一台机械计算器,但没有完成它的建造。[4]布莱兹·帕斯卡在1642年设计并且建造了世界上第一台可以工作的机械计算器Pascaline。Ada Lovelace协助[5]查尔斯·巴贝奇在维多利亚时代设计了差分机。[6] 1900年左右,打孔机[7]问世。然而以上这些机器都局限在只能完成单个任务,或者充其量是所有可能任务的子集。

到了20世纪40年代,随着更新更强大的计算机器被发明,术语“计算机”开始用于指代那些机器而不是它们的祖先。[8]计算机的概念变得更加清晰,它不仅仅用于数学运算,总的来说计算机科学的领域也扩展到了对于计算的研究。20世纪50年代至20世纪60年代早期,计算机科学开始被确立为不同种类的学术学科。[9]世界上第一个计算机科学学位点由普渡大学在1962年设立。[10]随着实用计算机的出现,很多计算的应用都以它们自己的方式逐渐转变成了研究的不同领域。

虽然最初很多人并不相信计算机可能成为科学研究的领域,但是随后的50年里也逐渐被学术界认可。[11]IBM公司是那段时期计算机科学革命的参与者之一。在那段探索时期,IBM(International Business Machines的缩写)发布的IBM 704以及之后的IBM 709计算机被广泛使用。“不过,使用IBM电脑工作仍然是一件很沮丧的事情。如果你弄错了一条指令中的一个字母,程序将会崩溃,而你也得从头再来。”[11]到了20世纪60年代后期,计算机科学学科得到了长足发展,这在当时是一件很寻常的事情。

随着时间的推移,计算机科学技术在可用性和有效性上都有显著提升。现代社会见证了计算机从仅仅由专业人士使用到被广大用户接受的重大转变。最初,计算机非常昂贵,要有效利用它们,某种程度上必须得由专业的计算机操作员来完成。然而,随着计算机变得普及和低廉,已经几乎不需要专人的协助,虽然某些时候援助依旧存在。

虽然计算机科学被认定为正式学术学科的历史很短暂,但仍对科学和社会作出了很多基础贡献。包括:

▪“数字革命”的开端:信息时代与互联网。[13]

▪对于计算和可计算理论的正式定义,证明了存在计算上不可解及难解型问题。[14]▪编程语言的概念,一种在不同抽象级别上精确表达方法信息(methodological information)的工具。[15]

▪在密码学领域,恩尼格玛密码机的破译被视为盟军在二战取得胜利的重要因素。

[12]

▪科学计算实现了高复杂度处理的实用价值,以及完全使用软件进行实验。同时也实现了对人类思想的深入研究,使得人类基因组计划绘制人类基因成为可能。[13]还有探索蛋白质折叠的分布式计算项目Folding@home。

▪算法交易增长了金融市场的经济效益与市场流通性,通过人工智能,机器学习及大规模的统计和数值技术。[16]

▪图像合成\

▪自然语言处理,包括语音到文字(speech-to-text)转换、语言间的自动翻译\▪对各种过程的模拟,包括计算流体力学、物理、电气、电子系统和电路,以及同人类居住地联系在一起的社会和社会形态(尤其是战争游戏,war games)。现代计算机能够对这些设计进行优化,如飞机设计。尤其在电气与电子电路设计中,SPICE 软件对新的物理实现(或修改)设计具有很大帮助。它包含了针对集成电路的基本设计软件。

尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。[23]三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。[24]术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik (德语),informatika(斯拉夫语族)。

著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。

计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。[21]早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。

计算机科学和软件工程的关系是一个有争议的话题,随后关于什么是“软件工程”,计算机科学又该如何定义的争论使得情况更加混乱。David Parnas从其它工程和科学学科

相关文档
最新文档