CS: An Overview · 第0章
Computer Science · An Overview

第0章 绪论
Introduction

走进计算学科:从算法、计算历史,到本课程的学习路线与七大思想。

教材:J. Glenn Brookshear · Computer Science: An Overview · 13th Global Edition · 2022

计算机科学是算法的科学——它既是当今计算机应用的支柱,也是未来计算基础设施的基础。

关键词:算法 Algorithm · 抽象 Abstraction · 七大思想 Seven Big Ideas

ALGORITHM
→ PROGRAM → SOFTWARE
Overview · 本章导览

本章回答四个问题:什么是计算机科学?我们从哪里来?到哪里去?

  1. 01
    算法的作用 The Role of Algorithms
    算法、程序、软件、硬件等基本术语。
  2. 02
    计算的历史 The History of Computing
    从算盘到智能手机的关键里程碑。
  3. 03
    学习大纲 An Outline of Our Study
    全书12章的自底向上路线。
  4. 04
    首要主题 Overarching Themes
    贯穿全书的“七大思想”。

学习目标

  • 解释算法在计算机科学中的重要性
  • 识别计算史上的主要里程碑
  • 讨论计算技术引发的社会、伦理与法律问题

学完本章,你应当能用自己的话说明: 算法是什么、计算如何演变、这门课学什么。

0.1 学科定义 · Definition

计算机科学:为“计算”建立科学基础的学科

中文定义

计算机科学是寻求为计算机设计、计算机程序设计、信息处理、问题的算法解决方案和算法过程本身等主题建立科学基础的学科。

EN: Computer science is the discipline that seeks to build a scientific foundation for computer design, programming, information processing, algorithmic solutions, and the algorithmic process itself.

研究对象

  • 计算机设计 Computer design
  • 计算机程序设计 Computer programming
  • 信息处理 Information processing
  • 问题的算法解决方案 Algorithmic solutions
  • 算法过程本身 The algorithmic process

它既支撑今天的应用,也奠定未来计算基础设施的基础。

0.1 The Role of Algorithms

算法是完成一项任务所遵循的一系列步骤

算法 Algorithm

完成一项任务所遵循的一系列步骤。

An algorithm is a set of steps that defines how a task is performed.

生活中的算法

  • 菜谱 Recipe
  • 路线指引 Directions
  • 乐谱 Sheet music
  • 操作说明 Instructions

经典示例:欧几里得算法 Euclidean Algorithm

M ← 较大值,N ← 较小值
用 N 除 M,余数记为 R
若 R ≠ 0:M ← N,N ← R,回到第2步
否则:N 即为最大公约数

GCD(24,18) → R=6 → GCD(18,6) → R=0 → 答案 6

一旦找到算法,执行任务便不再需要理解其原理——解题的“智能”被编码进了算法。

0.1 基本术语 · Key Terms

算法需要被表示、被编码,最终由机器执行

01

算法 Algorithm

完成任务的步骤序列。

02

程序 Program

算法的表示。

03

软件 Software

程序及其所表示算法的统称。

编程 / 编码 Programming / Coding

开发程序、以机器兼容形式编码并输入机器的过程。

硬件 Hardware

运行软件的机器本身。

算法(思想)→ 程序(表示)→ 软件(统称)→ 硬件(载体)

0.1 算法的局限 · Limits

哥德尔不完备性定理:算法能力也存在边界

从算法到机器能力

  • 解题智能可以被编码进算法
  • 只有存在完成任务的算法,才能造出完成该任务的机器
  • 若不存在解决某问题的算法,该问题超出这种机器能力

1931 · Kurt Gödel

在任何包含传统算术系统的数学理论中,总存在这样的命题:其真假无法通过算法手段判定。

Incompleteness Theorem可判定性算法边界

意义: 对算法能力及其局限的研究,成为后来计算机科学形成的重要思想基础。

0.2 计算的历史 · History of Computing

从存储数据的算盘,到可编程的机器

古代
算盘 Abacus
珠的位置存储数据;算法靠人执行。
1642–1673
Pascal / Leibniz
齿轮结构实现运算。
1801
Jacquard
穿孔卡片思想。
1830s
Babbage
分析机:设计层面的可编程。
1843
Ada Lovelace
阐述分析机编程方法。
1890
Hollerith
穿孔卡用于人口普查。
1946+
ENIAC → Transistor → IC
电子化与微型化。

可编程性是计算史的重要主线:算法从“固化在机器结构里”走向“可读取、可更换的指令”。

0.2 关键跃迁 · Milestones

数据存储 → 固定算法 → 可编程 → 电子通用

机器数据表示算法控制可编程性
算盘 Abacus算珠位置人(操作者)
帕斯卡 / 莱布尼茨机齿轮位置固化在机器结构中
巴贝奇分析机齿轮 + 穿孔卡片读取卡片上的指令是(设计层面)
ENIAC 及以后电子信号存储 / 输入的程序是(工程实现)

后续: 家用电脑 → IBM PC → Internet / Web → 搜索引擎 → Smartphone。

0.3 学习大纲 · An Outline of Our Study

全书路线:自底向上,从具象的机器到抽象的理论

第1–2章 · 机器层 数据存储 Data Storage · 数据操控 Data Manipulation
信息如何编码、存储,以及机器如何执行基本操作。
第3–4章 · 系统层 操作系统 Operating Systems · Networking and the Internet
计算机系统如何管理资源并彼此连接。
第5–7章 · 算法与软件层 Algorithms · Programming Languages · Software Engineering
从算法到语言,再到大型软件系统。
第8–12章 · 数据与理论层 Data Abstraction · Databases · Graphics · AI · Theory of Computation
抽象程度不断提高,研究范围从数据到智能与计算边界。

学习将由浅入深、从具象到抽象推进:先理解机器,再构建越来越强大的抽象工具。

0.4 Seven Big Ideas

七大思想贯穿全书:算法是核心

7
  1. 01
    算法 Algorithms — 计算学科的核心
  2. 02
    抽象 Abstraction — 分离外部特征与内部细节
  3. 03
    创新 Creativity — 发现并应用新算法
  4. 04
    数据 Data — 离散化、数字化的信息
  5. 05
    程序设计 Programming — 将意图翻译成可执行算法
  6. 06
    因特网 The Internet — 连接全球计算与信息
  7. 07
    影响 Impact — 技术对社会、伦理与法律的冲击
0.4 Algorithms & Abstraction

算法是核心;抽象是驾驭复杂的方法

算法研究的焦点问题

  • 哪些问题可由算法过程解决?
  • 如何更容易地发现算法?
  • 如何改进算法的表示与传达?
  • 如何分析与比较算法的特征?
  • 如何用算法操作信息、产生智能行为?
  • 算法的应用如何影响社会?

抽象 Abstraction

定义: 一个实体的外部特征与其内部构成细节之间的分离。

the distinction between the external properties of an entity and the details of its internal composition.

例:开车不必懂发动机原理;使用微波炉不必懂磁控管;计算器可以即取即用。

抽象把复杂系统变成“可用的整体”。

0.4 Creativity · Data · Programming

创新是人的本能,数据驱动发现,编程连接意图与执行

03

创新 Creativity

发现并应用新算法是人类的活动,源于用工具解决问题的欲望。

04

数据 Data

计算机能表示可被离散化与数字化的信息。数据处理可以产生新的知识和见解。

05

程序设计 Programming

将人类意图翻译成可执行的计算机算法;抽象语言帮助我们表达复杂解法。

数据不只是被搬来搬去——算法对数据的处理正在产生新知识和新见解。

0.4 The Internet & Impact

因特网连接了世界,也把隐私、安全与伦理问题推到台前

因特网 The Internet

  • 连接全世界的计算机与电子设备
  • 改变信息存储、检索与共享方式
  • 商业、新闻、娱乐、通信日益依赖网络
  • 隐私与个人信息安全使密码学和网络安全更加重要

影响 Impact

  • 法律:知识产权的归属与责任
  • 伦理:新选择挑战传统社会行为准则
  • 政府:技术及其应用应如何监管
  • 哲学:智能行为与智能本身

技术的每次跃迁都同时带来新自由与新约束——这正是本课程要反复讨论的问题。

0.4 Social Issues

许多问题没有标准答案:解决方案常常是多方观点的折中

讨论方法

倾听辨别其他观点理性讨论修正观点

三个意识

  • 一个问题牵扯多位利益相关者 stakeholders
  • 一个问题有多个解决方案
  • 每个方案同时具有短期与长期效应

课堂讨论

① 有没有计算机革命,我们的社会会更好还是更糟?

② 公民是否有义务理解他们投票决定其用途的技术?

③ 自动化提高后,政府监控公民活动是好事还是坏事?

伦理思考可从结果、义务、契约、品格等不同视角展开。

Summary · 本章小结

一条主线:算法是核心;三个事实:历史、路线、主题

  1. 01
    计算机科学围绕算法建立:算法 → 程序 → 软件 → 硬件
  2. 02
    计算史的重要主线是可编程性的演进:算盘 → 分析机 → 电子计算机 → PC / Smartphone。
  3. 03
    全书自底向上,从数据存储走向计算理论,抽象工具逐层增强。
  4. 04
    七大思想——算法、抽象、创新、数据、程序设计、因特网、影响——将贯穿全书。

留给你的问题

你身边哪个日常流程可以被写成算法?

哪个问题可能永远没有算法?

Key Terms · 中英术语对照

本章关键术语

中文
English
一句话说明
算法
Algorithm
完成一项任务所遵循的一系列步骤
程序
Program
算法的表示
编程 / 编码
Programming / Coding
开发程序并以机器兼容形式编码输入机器的过程
软件
Software
程序及其所表示的算法的统称
硬件
Hardware
运行软件的机器本身
抽象
Abstraction
实体外部特征与内部构成细节的分离
个人计算机
Personal Computer (PC)
通用的个人计算设备
万维网
World Wide Web
通过因特网把文档相互链接的信息系统
搜索引擎
Search engine
筛选并归类Web信息的软件系统
智能手机
Smartphone
手持通用计算机,通话只是其应用之一
哥德尔不完备性定理
Gödel's Incompleteness Theorem
存在无法通过算法手段判定其真假的命题
课后任务:预习第1章 Data Storage;从 Social Issues 中任选一题,写200字观点。
Classroom Quiz · 课堂练习

快速检查:选择题(A / B / C / D)

1. 下列哪项最符合“算法”的定义?

参考答案:B

2. 欧几里得算法主要用于求什么?

参考答案:B

3. 巴贝奇分析机的重要思想是什么?

参考答案:B

4. “抽象”的核心作用是什么?

参考答案:C

5. 下列哪一项属于“七大思想”?

参考答案:A

6. 本课程的学习路线总体上是怎样的?

参考答案:C