-计算科学简介 Lecture 1 - Introduction to Comp
计算科学简介
看完你能讲清计算的本质、计算机科学的思维范式与可计算的边界
按 空格/→ 演示下一步
全部页面点击任意一页,跳回舞台从这页播放
计算科学简介
看完你能讲清计算的本质、计算机科学的思维范式与可计算的边界
什么是计算科学
手机、电脑、智能手表——你每天都在用这些设备。但计算科学家研究的不是这些铁盒子,而是铁盒子里正在发生的'计算'过程。这听起来有点反直觉,却是整个学科的认知起点。
天文学家透过望远镜研究宇宙,不研究玻璃镜片;计算科学家透过计算机研究计算,不研究电路
计算思维的核心
做一道年夜饭级别的硬菜——你不会试图同时处理切菜、调味、火候三件事,而是先拆分成小块、再各个击破。这正是程序员的思考方式。
备菜=分解、找菜谱共性=模式识别、只记关键步骤=抽象、按时操作=算法
陈述性知识
上页我们讲了计算思维的四大支柱。现在换个角度:你写代码时,是在告诉计算机「怎么做」,还是「我要什么」?这一字之差,就是陈述性与命令式的分界。
你对服务员说「要宫保鸡丁」,不关心厨师怎么炒;陈述式只声明结果,不写过程
过程性知识
上一页说「地球绕太阳转」是陈述性知识——只告诉你事实。但只背事实不会算具体轨道,计算机就帮不上忙。真正可执行的,是'怎么做'的过程性知识。
备料→热锅→翻炒→装盘,每一步对应一条可执行指令
两类知识的对比
知道 ≠ 会用——陈述与过程两类知识常被混为一谈,但在计算科学里必须分清本质。
- 回答「是什么」:描述事实与状态
- 静态记录:棋谱、地图、公式定理
- 可直接陈述:说出结论即完成
- 回答「怎么做」:描述方法与步骤
- 动态执行:下棋策略、算法推演
- 需展开演练:走一遍才知对错
图灵机:计算的抽象模型
前页留下一个根本问题——「怎样的过程才算真正可计算」?图灵的答案是:把它简化成一个工人、一条传送带、一本手册的数学模型。
传送带是纸带,工人是读写头,手册就是转移规则,工人当前在第几步就是状态
图灵机的运行机制
图灵机单步循环:读—查—写—移—变状态,再到判停机节点。
通用图灵机
一台机器能模拟任何其他机器——通用性的深远意义
冯·诺依曼架构
中心思想:指令与数据共存于同一存储器,由控制单元统一调度。
指令的执行周期
CPU 执行每条指令都要走完这四步,然后立刻从头开始下一条。
内存层级结构
执行一条指令时,CPU 拿到数据就开始干活。但数据放在哪里,速度差着几个数量级。从 CPU 内置的寄存器一路往外走,每远一步就慢一点,但能装的东西就多一点。
桌面 = 寄存器,抽屉 = 缓存,办公位 = 主存,档案室 = 外存
编译与解释
计算机只认 0 和 1 组成的机器指令,但程序员写的是 Python、Java 这种接近人类语言的代码。这中间怎么搭桥?主要有两条路——编译与解释。
整本译完装订成册再读,对应编译产出可执行文件;说一句翻一句,对应边读边执行
编程语言的本质
上一页看到编译器翻译代码,但它凭什么'读懂'你的程序?因为编程语言是种'形式语言'——它和自然语言一样,也分语法、语义、语用三个层次,只是规则严苛得多。
句式规范对应语法,条文内容对应语义,判案解释原则对应语用
语言的层次结构
从人能写什么,到机器能懂什么——三个层级如何递进又闭合。
静态类型 vs 动态类型
区分编译时检查与运行时检查的时机与代价——决定了一个错误在写代码时,还是在用户手里被发现。
- 检查时机:编译时一次性扫全部代码
- 类型与变量:声明时绑定,运行中不变
- 失败方式:编译报错,运行前已排除
- 检查时机:运行到那一行才检查
- 类型与变量:值带类型,变量可随时换
- 失败方式:运行时报错,可能漏到线上
高级语言的执行方式
很多人以为语言非编译即解释,实际还存在混合型;混淆根源在于把『语言的特性』和『实现的特性』混为一谈。
- 执行方式:一次性整体翻译为机器码再运行
- 中间产物:生成独立可执行文件(如 .exe)
- 权衡取舍:运行快、启动慢,跨平台需分别编译
- 执行方式:逐行读取、逐句翻译执行
- 中间产物:无独立产物,解释器即为执行环境
- 权衡取舍:启动快、运行慢,天然跨平台
核心概念自测
以下哪项最能准确概括编译器与解释器的本质区别?
知识体系回顾
- ✓问题、模型、机器:计算科学的三个分析层级
- ✓图灵机划定可计算性,冯·诺依曼主导实现
- ✓语言是对机器复杂度的逐级封装
- ✓类型系统是程序行为的形式契约
课后思考
先合上书自己想一分钟,再点开参考答案——好问题往往比标准答案更值得琢磨。
参考答案图灵机抽象出「状态+读写头+规则」,把指令也变成了数据;冯·诺依曼把程序放进内存,机器从此能修改自身行为。核心是从「专用」走向「通用」。
参考答案类比:源代码像菜谱,机器码像厨师的具体动作。收益是人能读、能跨平台;代价是性能开销和失去对底层的直接控制——所以 C/C++ 至今不可被替代。
参考答案图灵完备是能力天花板,不是效率保证。停机问题、指数复杂度问题理论可解但实际不可行。这提醒我们:选语言不只是语法偏好,更要看问题规模与生态约束。