计算机科学的发展史
人们在解决问题时,经常使用探索法。这种方法具有“试错法”的性质,也就是说,尝试几种方法,当一种方法失败时,再尝试另一种方法,直到解决问题。机器可以模拟人通过探索解决问题的思维活动。然而,由于可能的途径非常多,因此不可能详尽无遗地探索。一般来说,人们只会选择最有希望的方式去探索。这种能力就是创造性思维的能力。这是机器极难模拟的。从算法的角度来说,在使用特定的解题算法或半可决法时,你会遇到另一个难点。也就是当问题的复杂度很高时(比如指数级),即使问题有了结果,机器也无法在一个实用的时间内得到结果。在计算机的早期,人们曾寄希望于机器的高速度,认为在模拟人类思维时,机器可能会用它的高速度换取它所不具备的创造性思维。但通过“组合爆炸”问题(“组合爆炸”是指组合数学中的一些问题,当参数增加时,计算时间的增长速度往往是指数级的,甚至高于指数级),人们认识到单靠速度是无法绕过组合爆炸带来的障碍的。有没有办法克服这个困难,还有待进一步研究。与其他学科的关系计算机是由物理元件组成的,到目前为止主要由电子元件组成。因此,物理学和电子工程的一些分支构成了计算机科学的基础。同时,计算机科学在一定意义上是算法的科学,算法是一个数学概念。因此,数学的一些分支,如算法理论(可计算性理论,又称递归函数理论)也构成了计算机科学的基础。但是计算机科学已经发展成为一门独立的技术科学,它既不是电子学的分支,也不是数学的分支。这是就整个主题而言的。至于理论计算机科学,因为可以看作是计算机科学的数学基础,所以在一定意义上可以看作是数学的一个分支。另一个与计算机科学密切相关的学科是控制论。控制论作为一门应用数学方法研究机械系统和生命系统中控制和通讯现象的学科,在内容上与计算机科学有所重叠,但后者并不是其中的一部分。自从20世纪40年代制造出数字计算机以来,它的性能已经大大提高了。但系统结构变化不大。一些拥有先进计算技术的国家正在开发新一代计算机。这台计算机的系统结构将与过去40年的机器有很大不同,使用的编程语言也将是新的。计算机科学将研究由此产生的新问题,如并行计算。
对计算的数学性质的研究大多是关于串行计算的,而对并行计算性质的研究是从20世纪70年代才开始发展起来的,有望成为计算机科学的中心课题之一。另一个问题是编程的自动化。在编程中,明显的趋势是把机器能做的事情尽可能留给机器。程序环境的研究构成了软件工程的中心课题。形式化方法越来越受到重视,因为它是提高自动化程度的必要手段。
在早期,虽然英国的剑桥大学和其他大学已经开始教授计算机科学课程,但它只是被视为数学或工程学的一个分支,而不是一门独立的学科。剑桥大学号称是世界上第一个教授计算的大学。世界上第一个计算机科学系由美国普渡大学于1962年建立,第一个计算机学院由美国东北大学于1980年建立。大部分大学都把计算机科学作为一个独立的系,有的和工程系、应用数学系或者其他学科结合。