什么是计算机科学--CS for All

| 分类 Computer Science  | 标签 Programming  《csforall》  Pi 

什么是计算机科学

许多其它科学都是研究事物的运行机理的:物理学试图了解物理世界,化学试图了解物质的构成,而生物学试图了解生命。那么计算机科学试图了解什么?计算机?可能不会:因为计算机是由人设计和建造的,因此它们的内部机理是已知的。

编程吗?编程对于计算机科学家来说确实很重要,就像语法对于一个作家来说很重要,或者望远镜对于天文学家来说很重要一样。但是没人会争辩说写作就是关于语法的或者天文学就是关于望远镜。同样,编程是计算机科学的一个重要部分,但它不是 CS 的全部。

论起源,计算机科学源自不同的领域,包括工程学、数学、认知科学等等。一些计算机科学家设计事物,非常类似工程师。其他的则探求解决计算问题的新方法,分析他们的方案,证明它们的正确性,非常类似数学家。还有其他的则思考人类如何与计算机和软件交互,这与认知科学和心理学密切相关。所有这些都是计算机科学的组成部分。

有一个主题能统一(几乎)所有计算机科学家:他们对从人工智能到生物进化等的任务的自动化都感兴趣。换一种说法,计算机科学家致力于为各种各样的计算问题寻找解决方案。他们分析这些方案,以确定它们的 “优点”,然后根据这些优良方案为人们创造有用的软件。这种多方的努力,在某种程度上来说,使 CS 变得如此有趣。

计算机科学有许多重要的概念,包括:数据、问题解决、算法、编程、抽象、创造力。

数据

根据 International Data Corporation 描述,到 2010 年,我们的 “Digital Universe” 大小达到了 1.2 zettabytes。这有多大?Jeffrey Heer,一位专门从事大数据管理和可视化的计算机科学这样描述:将 DVD 堆起来,一直到达月亮,再回来,这么多的 DVD 大约能存储 1.2 zettabytes 的数据。处理大数据,需要来自计算机科学的思想和工具。

算法

一个算法就是针对如何完成一项任务的精确步骤序列。算法通常能类比作用于营养成分(数据)的菜谱。

计算 $\pi$ 值的算法:

  1. 画一个 2*2 英尺的正方形。
  2. 在正方形内画一个半径为 1 英尺的圆(直接刚好为 2 英尺)。
  3. 拿来一桶共 n 个飞镖,带上眼罩。
  4. 每次取一个飞镖,并且:

    a. 在眼被蒙住的情况下,随机扔飞镖(假设飞镖都能落在正方形内)。 b. 记录飞镖是否落在圆内。

  5. 扔完所有飞镖后,将落在圆内的个数除以总数 n,并乘以 4,得到的就是 π 的近似值。

算法原理:

因为半径为1,故圆的面积为 $\pi{r^2} = \pi$,而正方形的面积为 4。假设飞镖是随机落在正方形和圆上的,那么落在圆内的概率为 $\frac{\pi} 4$。因此,当有 k 个飞镖落在圆内时,$\frac{\pi} 4 = \frac{k} n$,故 $\pi = 4\frac{k} n$。

编程

学习编程有点像学习用一门新语言来说话和写作。

抽象

软件通常极其复杂,因此对于一个人来说,将软件的所有交互情况全部记在脑中是极其困难甚至是不可能的。要设计这样的复杂系统,计算机科学家使用 抽象 思维:当设计程序的某一部分时,我们可以忽略程序的其它部分的细节,只要在较高层次上了解它们的功用即可。

例如,一辆车会有一个引擎,一个动力传动系统,一套电子系统,以及其它部件。这些部件可以被单独设计然后再组装起来。动力传动系统的设计师无需了解引擎的每一个细节,只需了解动力传动系统如何能与引擎连接即可。对动力传动系统的设计师来说,引擎就是一种 抽象

软件系统甚至比汽车还要复杂。设计软件要求我们思考抽象,从而确保多人能共同在一个项目上合作,而无需每人个都需要了解每一个部件,从而使软件能被有条理地测试,从而在以后能够简单地通过更换一个新的组件实现更新。因此抽象是设计复杂系统,特别是软件系统的关键思想。

问题解决和创造力

计算机科学是一种巨大的创造性努力,需要创新的解决问题,探索甚至实验。

参考:


上一篇     下一篇