第0章 绪论
Introduction
走进计算学科:从算法、计算历史,到本课程的学习路线与七大思想。
教材:J. Glenn Brookshear · Computer Science: An Overview · 13th Global Edition · 2022
计算机科学是算法的科学——它既是当今计算机应用的支柱,也是未来计算基础设施的基础。
关键词:算法 Algorithm · 抽象 Abstraction · 七大思想 Seven Big Ideas
→ PROGRAM → SOFTWARE
本章回答四个问题:什么是计算机科学?我们从哪里来?到哪里去?
- 01算法的作用 The Role of Algorithms
算法、程序、软件、硬件等基本术语。 - 02计算的历史 The History of Computing
从算盘到智能手机的关键里程碑。 - 03学习大纲 An Outline of Our Study
全书12章的自底向上路线。 - 04首要主题 Overarching Themes
贯穿全书的“七大思想”。
学习目标
- 解释算法在计算机科学中的重要性
- 识别计算史上的主要里程碑
- 讨论计算技术引发的社会、伦理与法律问题
学完本章,你应当能用自己的话说明: 算法是什么、计算如何演变、这门课学什么。
计算机科学:为“计算”建立科学基础的学科
中文定义
计算机科学是寻求为计算机设计、计算机程序设计、信息处理、问题的算法解决方案和算法过程本身等主题建立科学基础的学科。
研究对象
- 计算机设计 Computer design
- 计算机程序设计 Computer programming
- 信息处理 Information processing
- 问题的算法解决方案 Algorithmic solutions
- 算法过程本身 The algorithmic process
它既支撑今天的应用,也奠定未来计算基础设施的基础。
算法是完成一项任务所遵循的一系列步骤
算法 Algorithm
完成一项任务所遵循的一系列步骤。
An algorithm is a set of steps that defines how a task is performed.
生活中的算法
- 菜谱 Recipe
- 路线指引 Directions
- 乐谱 Sheet music
- 操作说明 Instructions
经典示例:欧几里得算法 Euclidean Algorithm
用 N 除 M,余数记为 R
若 R ≠ 0:M ← N,N ← R,回到第2步
否则:N 即为最大公约数
例 GCD(24,18) → R=6 → GCD(18,6) → R=0 → 答案 6
一旦找到算法,执行任务便不再需要理解其原理——解题的“智能”被编码进了算法。
算法需要被表示、被编码,最终由机器执行
算法 Algorithm
完成任务的步骤序列。
程序 Program
算法的表示。
软件 Software
程序及其所表示算法的统称。
编程 / 编码 Programming / Coding
开发程序、以机器兼容形式编码并输入机器的过程。
硬件 Hardware
运行软件的机器本身。
算法(思想)→ 程序(表示)→ 软件(统称)→ 硬件(载体)
哥德尔不完备性定理:算法能力也存在边界
从算法到机器能力
- 解题智能可以被编码进算法
- 只有存在完成任务的算法,才能造出完成该任务的机器
- 若不存在解决某问题的算法,该问题超出这种机器能力
1931 · Kurt Gödel
在任何包含传统算术系统的数学理论中,总存在这样的命题:其真假无法通过算法手段判定。
Incompleteness Theorem可判定性算法边界
意义: 对算法能力及其局限的研究,成为后来计算机科学形成的重要思想基础。
从存储数据的算盘,到可编程的机器
珠的位置存储数据;算法靠人执行。
齿轮结构实现运算。
穿孔卡片思想。
分析机:设计层面的可编程。
阐述分析机编程方法。
穿孔卡用于人口普查。
电子化与微型化。
可编程性是计算史的重要主线:算法从“固化在机器结构里”走向“可读取、可更换的指令”。
数据存储 → 固定算法 → 可编程 → 电子通用
| 机器 | 数据表示 | 算法控制 | 可编程性 |
|---|---|---|---|
| 算盘 Abacus | 算珠位置 | 人(操作者) | 否 |
| 帕斯卡 / 莱布尼茨机 | 齿轮位置 | 固化在机器结构中 | 否 |
| 巴贝奇分析机 | 齿轮 + 穿孔卡片 | 读取卡片上的指令 | 是(设计层面) |
| ENIAC 及以后 | 电子信号 | 存储 / 输入的程序 | 是(工程实现) |
后续: 家用电脑 → IBM PC → Internet / Web → 搜索引擎 → Smartphone。
全书路线:自底向上,从具象的机器到抽象的理论
信息如何编码、存储,以及机器如何执行基本操作。
计算机系统如何管理资源并彼此连接。
从算法到语言,再到大型软件系统。
抽象程度不断提高,研究范围从数据到智能与计算边界。
学习将由浅入深、从具象到抽象推进:先理解机器,再构建越来越强大的抽象工具。
七大思想贯穿全书:算法是核心
- 01算法 Algorithms — 计算学科的核心
- 02抽象 Abstraction — 分离外部特征与内部细节
- 03创新 Creativity — 发现并应用新算法
- 04数据 Data — 离散化、数字化的信息
- 05程序设计 Programming — 将意图翻译成可执行算法
- 06因特网 The Internet — 连接全球计算与信息
- 07影响 Impact — 技术对社会、伦理与法律的冲击
算法是核心;抽象是驾驭复杂的方法
算法研究的焦点问题
- 哪些问题可由算法过程解决?
- 如何更容易地发现算法?
- 如何改进算法的表示与传达?
- 如何分析与比较算法的特征?
- 如何用算法操作信息、产生智能行为?
- 算法的应用如何影响社会?
抽象 Abstraction
定义: 一个实体的外部特征与其内部构成细节之间的分离。
the distinction between the external properties of an entity and the details of its internal composition.
抽象把复杂系统变成“可用的整体”。
创新是人的本能,数据驱动发现,编程连接意图与执行
创新 Creativity
发现并应用新算法是人类的活动,源于用工具解决问题的欲望。
数据 Data
计算机能表示可被离散化与数字化的信息。数据处理可以产生新的知识和见解。
程序设计 Programming
将人类意图翻译成可执行的计算机算法;抽象语言帮助我们表达复杂解法。
数据不只是被搬来搬去——算法对数据的处理正在产生新知识和新见解。
因特网连接了世界,也把隐私、安全与伦理问题推到台前
因特网 The Internet
- 连接全世界的计算机与电子设备
- 改变信息存储、检索与共享方式
- 商业、新闻、娱乐、通信日益依赖网络
- 隐私与个人信息安全使密码学和网络安全更加重要
影响 Impact
- 法律:知识产权的归属与责任
- 伦理:新选择挑战传统社会行为准则
- 政府:技术及其应用应如何监管
- 哲学:智能行为与智能本身
技术的每次跃迁都同时带来新自由与新约束——这正是本课程要反复讨论的问题。
许多问题没有标准答案:解决方案常常是多方观点的折中
讨论方法
倾听 → 辨别其他观点 → 理性讨论 → 修正观点
三个意识
- 一个问题牵扯多位利益相关者 stakeholders
- 一个问题有多个解决方案
- 每个方案同时具有短期与长期效应
课堂讨论
① 有没有计算机革命,我们的社会会更好还是更糟?
② 公民是否有义务理解他们投票决定其用途的技术?
③ 自动化提高后,政府监控公民活动是好事还是坏事?
伦理思考可从结果、义务、契约、品格等不同视角展开。
一条主线:算法是核心;三个事实:历史、路线、主题
- 01计算机科学围绕算法建立:算法 → 程序 → 软件 → 硬件。
- 02计算史的重要主线是可编程性的演进:算盘 → 分析机 → 电子计算机 → PC / Smartphone。
- 03全书自底向上,从数据存储走向计算理论,抽象工具逐层增强。
- 04七大思想——算法、抽象、创新、数据、程序设计、因特网、影响——将贯穿全书。
留给你的问题
你身边哪个日常流程可以被写成算法?
哪个问题可能永远没有算法?
本章关键术语
快速检查:选择题(A / B / C / D)
1. 下列哪项最符合“算法”的定义?
2. 欧几里得算法主要用于求什么?
3. 巴贝奇分析机的重要思想是什么?
4. “抽象”的核心作用是什么?
5. 下列哪一项属于“七大思想”?
6. 本课程的学习路线总体上是怎样的?