又到周末了,冷空气袭来,不如窝在被窝和孩子一起看纪录片。今天为大家推荐的纪录片,叫《计算机科学速成课》,一共40集,每集只有10分钟左右。我最喜欢这种10分钟小短片,节奏快,看着不累。
片子是一个专业团队通过图解等方法,生动有趣地讲解计算机知识点。让你了解计算机几百年的发展中,是如何普及渗透进我们生活的。
什么计算机网络,加密,人工智能,网络安全,黑客与攻击,汇编方面的,计算机指令,算法,数据结构等方面都有涉及,绝对可以扩展视野,增长见识,家长和孩子可以一起看喔!
今天,为大家整理了前十集的内容
第 1 集:计算机早期历史
提到的设备:算盘 → 步进计算器 → 差分机 → 分析机 → 打孔卡片制表机
提到的人名:Charles Babbage, Ada Lovelace
02:27 最早的计算设备是算盘,举例如何使用
04:31 Computer 从指代职业变成指代机器
04:57 机器里有名的是:步进计算器。第一个可以做加减乘除的机器
06:44 炮弹为了精准,要计算弹道,二战是查表来做。但每次改设计了就需要做一张新表
07:30 Charles Babbage 提出了 “差分机”, 在构造差分机期间,想出了分析机, 分析机是通用计算机
08:50 Lovelace 给分析机写了假想程序,因此成为了第一位程序员
09:25 人口普查 10 年一次. Herman Hollerith 的打孔卡片制表机大大提升了效率
第 2 集:电子计算机
提到的设备:继电器 → 真空管 → 晶体管
00:17 20世纪的发展要求更强的计算能力。柜子大小的计算机发展到房间大小
01:06 哈佛 Mark 1 号,IBM 1944 年做的
02:25 继电器,继电器一秒最多 50 次开关
03:24 继电器出 bug
03:49 1904 年,热电子管出现,第一个真空管。改进后变成和继电器的功能一样
05:34 “巨人1号” 计算机在英国 布莱切利园 首次大规模使用真空管。但编程麻烦,还要配置
06:40 1946 年,宾夕法尼亚大学的 ENIAC 是第一个通用可编程计算机
07:36 1947 年,贝尔实验室做出了晶体管,晶体管有诸多好处,IBM 很快全面转向晶体管
09:27 硅谷的典故:很多晶体管和半导体的开发都是这里做的。而生产半导体最常见的材料是硅
09:41 肖克利半导体 → 仙童半导体 → 英特尔
第 3 集:布尔逻辑和逻辑门
01:00 什么是二进制, 为什么用二进制, 布尔逻辑
02:46 3个基本操作:NOT,AND,OR
02:51 解释3个基本操作
07:11 XOR 异或
第 4 集:二进制
00:46 用十进制举例二进制的原理,演示二进制加法。存储单位 MB GB TB 等
05:30 正数,负数,整数,浮点数的表示
07:20 美国信息交换标准代码 – ASCII, 用来表示字符
09:00 UNICODE 1992 年诞生,是字符编码标准, 解决 ASCII 不够表达所有语言的问题
第 5 集:算数逻辑单元 – ALU
00:03 简单介绍 ALU ,英特尔 74181
01:24 ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元
01:32 算术单元,半加器 (处理1个 bit,2个输入),全加器 (处理1个 bit,3个输入),8 bit 加法 (1个半加器,7个全加器),溢出的概念,吃豆人的例子,乘法除法
07:32 逻辑单元,检测数字是否为 0 的电路(一堆 OR 门最后加个 NOT 门),ALU 抽象成一个 V 符号,Flag 标志(是否相等,是否小于,是否溢出等等)
第 6 集:寄存器和内存
本集的重点是 Memory (存储 / 内存 两种含义)
03:30 存 1 位 (Gated Latch – 锁存器)
04:48 存 8 位 (Register – 寄存器)
05:46 16×16 的矩阵存 256 位,数据选择器/多路复用器 (Multiplexer) 解码 8 位地址,定位到单个锁存器
07:38 4 位代表行, 4 位代表列
08:16 组合 256 位内存 + 多路复用器
09:01 可寻址的 256 字节 内存,一条1980年代的内存,1M 大小
10:14 8个模块,每个模块有32个小方块,,每个小方块有 4 个小块,每个小块是 128 位 x 64 位
第 7 集:中央处理器(CPU)
本集的重点是拼个 CPU 出来以及CPU 怎么执行命令
01:00 RAM + 寄存器 + ALU 做个 CPU
04:00 解释 “取指令→解释→执行” 这个循环
08:00 时钟是什么, 时钟速度和赫兹
10:00 超频提升性能, 降频省电
第 8 集:指令和程序
本集重点是一步步带你运行一遍程序
00:45 回顾上集的例子程序,一步步讲解。介绍”指令集”的概念。LOADA,LOADB,SUB,JUMP,ADD,HALT 等指令
05:16 带条件跳转,JUMP NEGATIVE 是负数才跳转,还有其他类型的 JUMP
08:00 真正现代 CPU 用更多指令集。位数更长。
09:07 1971年的英特尔 4004 处理器,有 46 个指令
09:36 如今英特尔酷睿 i7, 有上千条指令
第 9 集:高级 CPU 设计
00:24 早期是加快晶体管切换速度,来提升 CPU 速度
01:20 给 CPU 专门的除法电路 + 其他电路来做复杂操作,比如游戏,视频解码
02:28 给 CPU 加缓存,提高数据存取速度,更快喂给 CPU,用计算餐馆销售额举例
05:13 脏位 – Dirty bit
05:33 流水线设计,用 1 个洗衣机和 1 个干燥机举例
06:01 并行处理 – parallelize
07:33 乱序执行 – out-of-order execution
08:21 推测执行 – speculative execution
08:50 分支预测 – branch prediction
09:34 多个 ALU
09:54 多核 (Core)
10:11 多个独立 CPU
10:52 超级计算机,中国的”神威 太湖之光”
第 10 集:早期的编程方式
本集重点:早期计算机如何编程
打孔纸卡 → 插线板 → 面板拨开关
00:00 开头说本集重点:程序如何进入计算机
00:53 拿纺织业举例,给机器编程的需求远在计算机出现前就有了
01:41 打孔纸卡 – Punched card
02:36 插线板 – Plugboard
04:20 冯诺依曼架构 – Von Neumann Architecture
07:00 面板编程 – Panel programming
07:29 第一款取得商业成功的家用计算机: Altair 8800
08:15 编程依然很困难,人们需要更友好更简单的方式编程
08:44 下周主题:编程语言