计算机速成课-Crash Course Computer Science

目录

1. 计算机早期历史-Early Computing 11:53

2. 电子计算机-Electronic Computing 10:44

3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates 10:07

4. 二进制-Representing Numbers and Letters with Binary 10:46

5. 算术逻辑单元-How Computers Calculate-the ALU 11:10

6. 寄存器 & 内存-Registers and RAM 12:17

7. 中央处理器-The Central Processing Unit(CPU) 11:38

8. 指令和程序-Instructions & Programs 10:36

9. 高级CPU设计-Advanced CPU Designs 12:23

10. 早期的编程方式-Early Programming 09:27

11. 编程语言发展史-The First Programming Languages 11:53

12. 编程原理-语句和函数-Programming Basics - Statements & Functions 11:57

13. 算法入门 - Intro to Algorithms 11:44

14. 数据结构-Data Structures 10:07

15. 阿兰·图灵-Alan Turing 13:05

16. 软件工程-Software Engineering 10:36

17. 集成电路&摩尔定律-Integrated Circuits & Moore’s Law 13:50

18. 操作系统-Operating Systems 13:36

19. 内存&储存介质-Memory & Storage 12:18

20. 文件系统-Files & File Systems 12:04

21. 压缩-Compression 12:48

22. 命令行界面-Keyboards & Command Line Interfaces 11:24

23. 屏幕&2D 图形显示-Screens&2D Graphics 11:32

24. 冷战和消费主义-The Cold War and Consumerism 11:19

25. 个人计算机革命-The Personal Computer Revolution 10:15

26. 图形用户界面-Graphical User Interfaces 12:59

27. 3D 图形-3D Graphics 12:41

28. 计算机网络-Computer Networks 12:20

29. 互联网-The Internet 11:59

30. 万维网-The World Wide Web 11:37

31. 计算机安全-Cybersecurity 12:30

32. 黑客&攻击-Hackers & Cyber Attacks 11:53

33. 加密-Cryptography 12:33

34. 机器学习&人工智能-Machine Learning & Artificial Intelligence 11:51

35. 计算机视觉-Computer Vision 11:10

36. 自然语言处理-Natural Language Processing 11:50

37. 机器人-Robots 12:26

38. 计算机心理学 - Psychology of Computing 12:39

39. 教育科技-Educational Technology 11:52

40.奇点,天网,计算机的未来-The Singularity, Skynet, and the Future of Computing12:30

YouTube -- CrashCourse频道出品

Crash Course Computer Science,是趣味科普计算机相关知识的一门课程(由youtube——CrashCourse频道出品,这个频道两岁了,创建此频道的哥俩旨在创造一些对人们有用的教育内容)。这套视频制作精良,里面的动画和配色(原谅我只能看到表面)时刻吸引着我,生怕眨眼一秒都会错过点细节,主讲人饱满的情绪让我一个哈欠都不会打,由此可见整个团队的心血,最后由衷感谢CrashCourse字幕组,让我可以在语境中理解很多中英文对应不上的专业词语(我才不会说我没有字幕根本看不懂)。

1. 计算机早期历史-Early Computing

计算机早期历史

学习:Bits(位),Bytes(字节),晶体管,逻辑门,操作系统,虚拟现实,机器人。

如果关掉所有计算机:电网会关闭,车辆会相撞,飞机会坠毁,冷水厂会关闭,证券市场会停止运作,卡车不知道运向何方,员工得不到薪水,甚至很多和计算机没有直接关系的东西,T恤,凳子都是在有计算机的厂房里生产的。

计算机推动全球发展的科技:

工业革命的动力,大幅提升了农业、工业、畜牧业的规模。机械化导致了更高的收成,更多的食物,商品可以大批量生产。旅行和通讯变得更加快捷和便宜,生活质量变得更好。

计算机和工业革命有相同的影响:从自动化农业和医疗设备,到全球通信和教育机会,还有虚拟现实和无人驾驶等新领域。这个时代很可能被后人总结为“信息时代”。

一个智能手机,有十亿个晶体管,它是通过一层层抽象,来做出复杂的操作,这里就将会讲解,0到1,逻辑门、CPU,操作系统,整个互联网,以及更多~

计算机的出现:

虽然计算机才出现不久,但人类对计算机的需求早就有了。

随着知识的增长和新工具的诞生,人工劳力会越来越少;

计算机的起源与发展简介

公元前2500年

先看计算的起源,人们早早就对计算产生了需求,早在,人们就发明了算盘,为什么要发明算盘?因为当时的社会规模已经超出了人们心算的能力,算盘的作用其实是将大脑的算力解放(工具的发明要么是解放人的体力,要么是解放人的智力),随后发明了度量各种别的可度量事物的计算设备,比如星盘算经纬度,时钟算日出,算潮汐。

1822年

charles babbage研究出了差分机制造方法,由于硬件限制,没有制造出来(后人依据草稿又造一台而且好用),但是在研究过程中有了制造分析机的灵感,分析机可以做很多事,不只是一种特定运算,所以是首个通用计算机(之前的都是专用的),甚至可以输入数据进行一系列的计算,这一些列的计算就是程序,程序是一个划时代的概念,而Ada由于为分析机写了第一个程序,被公认为第一个程序员,她还预言以后一定会有一门语言为分析而生。

1890年

人口越来越多,要进行人口普查费时费力费钱,而且往往普查时间太长,出来的结果与现实状况不符,没有意义了,这样的情况催生了机器的产生,打孔卡片制表机,在纸上打孔,然后把纸放进机器里,机器会根据所打的孔,自己统计符合条件的人数,比如男女各有多少,之后再通过纸把统计结果输出来。这就是后来计算机一开始采用的输入和输出模式。(后来制表机器公司与其他机械公司合并成立了IBM=international business machines)

1900

人口爆炸以及全球贸易(社会规模大幅度增长)导致数据大量增长,

1904-1906

发现真空管,二极管,三极管可代替继电器,开闭速度更加快,但像灯泡一样易碎,贵

1940

真空管成本开始降低,政府负担得起了,就应用于计算机(计算机从机电转向电子)

1941

阿兰图灵设计Bombo,用来破解纳粹的英格玛通讯加密设备(是一台解密码机不是计算机)

1943

巨人一号第一次用真空管制造的计算机,用于破解纳粹通信

1944

Harverd mark I最大的计算机之一,IBM给二战同盟国造的,是服务于曼哈顿计划的(政府和军方)。构件使用的是机械继电器(作用就是开关,控制电路开闭),速度慢,齿轮会磨损,故障率很大,甚至一直小虫都会因其故障(bug)。

1946

宾夕法尼亚大学发明了 世界上第一个真正通用的,可编程的,电子计算机,成本还是很高,而且很容易坏

1947

贝尔实验室,发明了晶体管,固态,小,速度快,很多晶体管半导体的开发在加州位于旧金山和圣荷西之间,后来被称为硅谷(因为材料大多是硅),晶体管创始人也搬过去了,创立了肖克利半导体,里面的员工后来创立了仙童半导体,里面的员工创立了Intel(最大计算机芯片制造商)。

计算机早期历史

  • 算盘 → 步进计算器 → 差分机 → 分析机 → 打孔卡片制表机

  • 最早的计算设备是算盘

  • Computer 最初用于指代职业

  • 步进计算器是第一个可以做加减乘除的机器

  • 炮弹为了精准,要计算弹道,二战是查表来做。但每次改设计了就需要做一张新表

  • Charles Babbage 提出了 “差分机”, 在构造差分机期间,想出了分析机, 分析机是通用计算机

  • Ada Lovelace 给分析机写了假想程序,因此成为了第一位程序员

  • 人口普查 10 年一次. Herman Hollerith 的打孔卡片制表机大大提升了效率

2. 电子计算机-Electronic Computing

电子计算机

  • 继电器 → 真空管 → 晶体管

  • 哈佛 Mark 1 号,由IBM 于1944 年制造

  • 继电器,继电器一秒最多 50 次开关

  • 继电器出 bug

  • 1904 年,热电子管出现,第一个真空管。改进后变成和继电器的功能一样

  • “巨人1号” 计算机在英国 布莱切利园 首次大规模使用真空管。但编程麻烦,还要配置

  • 1946 年,宾夕法尼亚大学的 ENIAC 是第一个通用可编程计算机

  • 1947 年,贝尔实验室做出了晶体管,晶体管有诸多好处,IBM 很快全面转向晶体管

  • 硅谷的典故:很多晶体管和半导体的开发都是这里做的。而生产半导体最常见的材料是硅

  • 肖克利半导体 → 仙童半导体 → 英特尔

3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates

布尔逻辑 和 逻辑门

  • 二进制, 布尔逻辑(真假), George Boole,Boolean Algebra

  • 3个基本操作:NOT,AND,OR

  • XOR 异或

4. 二进制-Representing Numbers and Letters with Binary

为啥采用二进制

二进制的本质是电路开关的两种状态(真和假,通路或断路),一开始其实有三进制或者五进制的(多种状态表示),但是进制越多,信号越不容易被区分,而且有一整个数学分支存在,叫布尔代数(George Boole,19世纪自学成才的英国 数学家,是布尔Boolean名字的由来),专门处理真和假的问题,法则和运算都给你处理好了,拿过来直接就能用。

Boolean代数里面常用的操作:逻辑与的本质是物理上的串联,逻辑或的本质是物理上的并联,这些操作在计算机里面由最底层的电路(组合晶体管,物理层面)来实现,操作只是电路的高一层次抽象。(抽象允许我们在高层思考而不必在意底层细节,抽象的本质是把复杂包装起来,只留一个简答的接口)

ASCLL读/asgi/

二进制

  • 用十进制与二进制的原理,二进制加法

  • 存储单位 MB(Megabyte)GB(Gigabyte)TB(Terabyte)

  • 正数,负数,整数,浮点数

  • 美国信息交换标准代码 - ASCII, 用来表示字符

  • UNICODE 1992 年诞生,16位,是字符编码标准,解决 ASCII 不够表达所有语言的问题

5. 算术逻辑单元-How Computers Calculate-the ALU

算术逻辑单元-How Computers Calculate-the ALU

算术逻辑单元(ALU)计算机的计算大脑。是计算机里负责运算的组件,包括一个算数单元(加减法,增量计算)和一个逻辑单元(逻辑与或非,判断正负)。

ALU的表示法

img

1970 第一个被封装在单个芯片内的完整ALU,Intel 74181

算术逻辑单元

  • ALU(Arithmetic and Logic Unit),英特尔 74181

  • ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元

  • 算术单元

    • 半加器 (处理1个 bit,2个输入)

    • 全加器 (处理1个 bit,3个输入)

    • 8 bit 加法 (1个半加器,7个全加器)

    • 溢出Overflow

    • 乘法除法

  • 逻辑单元

    • 检测数字是否为 0 的电路(一堆 OR 门最后加个 NOT 门)
  • 8位ALU 抽象成一个 V 符号

  • Flag 标志(是否相等,是否小于,是否溢出等)

6. 寄存器 & 内存-Registers and RAM

寄存器 & 内存

  1. 存储的作用:因为算出来扔掉就没意义了,也许要做连续的操作,所以要存起来。

  2. 寄存器的本质:现在你这存一小下下,我马上就拿走

  3. 锁存器的结构如下,一组锁存器构成一个寄存器

img

(当允许写入线打开时,数据可以输入,当允许写入线被关闭时候,数据即可存在data out 里面不允许被改变了,每个寄存器只能存一个数,这个数是多少位,寄存器的位宽就是多少,比如16位的寄存器本质是由16个二进制单元位构成的)

  1. 内存结构(太喜欢他们做的图了,又好看又明了)
img
img
img
img

内存的地址是由位数决定的,位数越大,能表示的门牌号(地址)越多,内存数量也就越大,所谓的内存大。

内存的重要特性是可以随时访问任何位置,RAM

寄存器 & 内存

  • Memory (存储 / 内存 两种含义)

  • 存 1 位 (Gated Latch - 锁存器)

  • 存 8 位 (Register - 寄存器)

  • 16x16 的矩阵存 256 位

  • Opcode

  • 数据选择器/多路复用器 (Multiplexer) 解码 8 位地址,定位到单个锁存器

  • 4 位代表行, 4 位代表列

  • 组合 256 位内存 + 多路复用器Multiplexer

  • 可寻址的 256 字节 内存

  • 一条1980年代的内存,1M 大小

  • 8个模块,每个模块有32个小方块,每个小方块有 4 个小块,每个小块是 128 位 x 64 位

7. 中央处理器-The Central Processing Unit(CPU)

CPU

  1. CPU的工作是负责处理程序,程序是由一条条操作构成的,操作就是指令(因为它们指示计算机要做什么)

  2. 构建一个CPU

img

寄存器:临时存储和操作数据

指令地址寄存器:追踪程序运行到哪条指令了(存下指令的地址)

指令寄存器:存当前是什么指令(指令的内容)

时钟:以精准的节奏释放电信号,控制单元会用这个信号推进CPU的内部操作

(取指令-解码-执行,这三个操作算一个步骤,步骤的执行速度叫做时钟速度,就是需要多长时间才可以执行完这一步,)

ALU:用来计算

CLU:用来控制

3.运行程序

第一阶段:取址阶段(fetch phase)

第二阶段:解码阶段(decode):对照指令表,把01串翻译成要做的实际操作,并找到被操作数,这个阶段由控制单元完成,控制单元底层也是电路

img

第三阶段:执行阶段:去操作数的地址处取出操作数放到寄存器里(寄存器是由操作所指定的Load_A就是寄存到寄存器a里)

执行过后,把指令地址寄存器加一,就完成了这条指令的执行,准备去执行下一条了

CPU

  • Instruction Register、Instruction Address Register

  • RAM + 寄存器 + ALU 做个 CPU

  • 解释 “取指令→解释→执行” 这个循环

  • 时钟clock, 时钟速度和赫兹

  • 超频提升性能, 降频省电

8. 指令和程序-Instructions & Programs

指令和程序

  • ”指令集”的概念

  • LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令

  • 带条件跳转,JUMP NEGATIVE 是负数才跳转,还有其他类型的 JUMP

  • 真正现代 CPU 用更多指令集。位数更长

  • 1971年的英特尔 4004 处理器,有 46 个指令

  • 如今英特尔酷睿 i7, 有上千条指令

9. 高级CPU设计-Advanced CPU Designs

高级 CPU 设计

  • 早期是加快晶体管切换速度,来提升 CPU 速度

  • 给 CPU 专门的除法电路 + 其他电路来做复杂操作,比如游戏,视频解码

  • 给 CPU 加缓存,提高数据存取速度,更快喂给 CPU

  • 脏位 - Dirty bit

  • 流水线设计-pipeline

  • 并行处理 - parallelize

  • 乱序执行 - out-of-order execution

  • 推测执行 - speculative execution

  • 分支预测 - branch prediction

  • 多个 ALU

  • 多核 (Core)

  • 多个独立 CPU

  • 超级计算机,中国的"神威 太湖之光"

10. 早期的编程方式-Early Programming

早期的编程方式

  • 打孔纸卡 → 插线板 → 面板拨开关

  • 纺织业,给机器编程的需求远在计算机出现前就有了

  • 打孔纸卡 - Punched card

  • 插线板 - Plugboard

  • 冯诺依曼架构 - Von Neumann Architecture

  • 面板编程 - Panel programming

  • 第一款取得商业成功的家用计算机: Altair 8800

  • 编程依然很困难,人们需要更友好更简单的方式编程

11. 编程语言发展史-The First Programming Languages

编程语言发展史

  • 编程:二进制 → 助记符mnemonic(汇编器assembler)→ A-0(编译器)→ FORTRAIN

  • 二进制写程序,先纸上写伪代码,手工转二进制,很快就烦了

  • 用 "助记符” 写代码(LOAD_A 14)为了把助记符转二进制,汇编器诞生 (Assembler)

  • 葛丽丝·霍普 (Grace Hopper) - 哈佛1号计算机首批程序员, 海军军官

  • Grace 设计了编程语言 A-0

  • Grace 1952 年做了第一个编译器 (Compiler),实现 A-0

  • 变量 (Variables)

  • FORTRAN(1957,IBM)

  • COBOL(Common Business-Oriented Language)

  • 新语言

    • 1960 年代:ALGOL,LISP,BASIC

    • 1970 年代:Pascal,C,Smalltalk

    • 1980 年代:C++,Objective-C,Perl

    • 1990 年代:Python,Ruby,Java

    • New millennium: Swift,C#,Go

12. 编程原理-语句和函数-Programming Basics - Statements & Functions

编程基础 - 语句和函数

  • 变量, 赋值语句

  • Grace Hopper 拍虫子游戏

  • if 判断

  • while 循环

  • for 循环

  • 函数

13. 算法入门 - Intro to Algorithms

算法入门

  • 选择排序 - Selection sort O(n^2)

  • 大 O 表示法 - Big O notation (算法复杂度)

  • 归并排序 - Merge sort O(n log n)

  • Dijkstra 算法(graph search algorithms) O(n log n +1)

14. 数据结构-Data Structures

数据结构

  • 数组 - Array

  • 下标 - Index (Begins at 0)

  • 字符串 - String

  • 矩阵 - Matrix

  • 结构体 - Struct

  • 指针 - Pointer

  • 节点 - Node

  • 链表 - Linked List

  • 队列 - Queue ---- FIFO(First in first out)

  • 栈 - Stack ---- LIFO(Last in first out) ----push、pop

  • 树 - Tree ----root/ leaf nodes

  • 二叉树 - Binary Tree

  • 图 - Graph

  • 红黑树和堆, 不同数据结构适用不同场景

15. 阿兰·图灵-Alan Turing

阿兰·图灵

  • 计算机之父 Born in 1912

  • 可判定性问题 Entscheidungs problem

  • 阿隆佐·丘奇,Lambda 算子

  • 图灵机 Turing machine、Turing complete

  • 停机问题 (it‘s a paradox)

  • Bombe破解德军英格玛加密机

  • 图灵测试

  • 图灵奖

16. 软件工程-Software Engineering

软件工程

  • 对象 Object

  • 面向对象编程 Object Oriented Programming

  • API Application Programming Interface

  • public, private

  • 集成开发环境, IDE - Integrated Development Environments

  • 调试 debugging

  • 文档和注释 - readme, comment

  • 版本控制 Version control

  • 质量控制 Quality Assurance testing,QA

  • Beta, Alpha

17. 集成电路&摩尔定律-Integrated Circuits & Moore’s Law

集成电路与摩尔定律

  • 晶圆的制作流程:光刻

  • 分立元件 Discrete components

  • 数字暴政 Tyranny of Numbers - 是 1960 年代工程师碰到的问题(如果想加强电脑性能,就要更多部件,这导致更多线路,更复杂。所以很难做)

  • 光刻 Photolithography

  • 晶圆 Wafer

  • 光刻胶 Photoresist

  • 光掩膜 Photomask

  • 掺杂 Doping

  • 摩尔定律 Moore’s Law.

  • 英特尔 Intel

  • 晶体管数量大幅度增长, 1980年三万个,1990年一百万个,2000年三千万个,2010年十亿个

  • 进一步小型化会碰到 2 个问题

    1. 光的波长不足以制作更精细的设计

    2. 量子隧穿效应

18. 操作系统-Operating Systems

操作系统

  • 操作系统 Operating systems

  • 批处理 Batch processing

  • 计算机变便宜变多,有不同配置,写程序处理不同硬件细节很痛苦,因此操作系统负责抽象硬件

  • 外部设备 Peripherals

  • 设备驱动程序 Device drivers

  • 多任务处理 Multitasking

  • 虚拟内存 Virtual Memory

  • 动态内存分配 Dynamic memory allocation

  • 内存保护 Memory Protection

  • 1970年代,计算机足够便宜,大学买了让学生用,多个学生用多个 “终端” 连接到主机

  • 多用户分时操作系统,Multics

  • Unix

  • MS-DOS

19. 内存&储存介质-Memory & Storage

内存&储存介质

  • 存储技术的发展

  • 纸卡 Paper punch cards

  • 延迟线存储器 Delay Line Memory

  • 磁芯 Magnetic Core Memory

  • 磁带 Magnetic Tape

  • 磁鼓 Magnetic Drum Memory

  • 硬盘 Hard Disk Drives

  • 内存层次结构 Memory Hierarchy

  • 软盘 Floppy Disk

  • 光盘 Compact Disk

  • 固态硬盘 Solid State Drives

20. 文件系统-Files & File Systems

文件系统

  • 文件格式:可以随便存文件数据,但按格式存会更方便

  • TXT 文本文件:ASCII

  • WAV 音频文件:每秒上千次的音频采样数字

  • BMP 图片文件:像素的红绿蓝 RGB 值

  • 文件系统:很早期时空间小,整个存储器就像一整个文件。后来随容量增长,多文件非常必要

  • 目录文件:用来解决多文件问题,存其他文件的信息,比如开头,结尾,创建时间等

  • 平面文件系统 - Flat File System:文件都在同一个层次,早期空间小,只有十几个文件,平面系统够用

  • 如果文件紧密的一个个前后排序会造成问题,所以文件系统会: 1. 把空间划分成一块块 2. 文件拆分存在多个块里

  • 文件的增删改查会不可避免的造成文件散落在各个块里,

  • 如果是磁带这样的存储介质就会造成问题,所以做碎片整理

  • 分层文件系统 - Hierarchical File System:有不同文件夹,文件夹可以层层嵌套

21. 压缩-Compression

压缩

  • 压缩的好处是能存更多文件,传输也更快

  • 游程编码 Run-Length Encoding

  • 无损压缩 Lossless compression

  • 霍夫曼树 Huffman Tree

  • “消除冗余"和"用更紧凑的表示方法”,这两种方法通常会组合使用

  • 字典编码 Dictionary coders, 游程编码 和 字典编码 都是无损压缩

  • 感知编码 Perceptual coding

  • 有损压缩 jpeg 格式

  • 时间冗余 Temporal redundancy

  • MPEG-4 视频编码

22. 命令行界面-Keyboards & Command Line Interfaces

命令行界面

  • 运行开始直到结束,中间没有人类进行操作,原因是计算机很贵,不能等人类慢慢输入,执行完结果打印到纸上

  • 到1950年代,计算机足够便宜+快,人类和计算机交互式操作变得可行

  • 为了让人类输入到计算机,改造之前就有的打字机,变成电传打字机

  • 到1970年代末,屏幕成本足够低,屏幕代替电传打字机,屏幕成为标配

  • 人机交互 Human-Computer Interaction

  • 早期输出数据是打印到纸上,而输入是用纸卡/纸带一次性把程序和数据都给进去

  • QWERTY 打字机的发展,克里斯托弗·莱瑟姆·肖尔斯 发明于 1868 年

  • 电传打字机 Teletype machine

  • 命令行界面 Command line interface

  • ls 命令

  • 早期文字游戏 Zork (1977年)

  • cd 命令

23. 屏幕&2D 图形显示-Screens&2D Graphics

屏幕与 2D 图形显示

  • PDP-1 计算机。键盘和显示器分开,屏幕显示临时值

  • 阴极射线管 Cathode Ray Tube (CRT)

  • CRT 有两种绘图方式:

    1. 矢量扫描 Vector Scanning

    2. 光栅扫描 Raster Scanning

  • 液晶显示器 Liquid Crystal Displays (LCD),像素 (Pixel)

  • 字符生成器 Character generator

  • 屏幕缓冲区 Screen buffer

  • 矢量命令画图

  • Sketchpad, 光笔 (Light pen)

  • 函数画线,矩形

24. 冷战和消费主义-The Cold War and Consumerism

冷战和消费主义

  • 范内瓦·布什 预见了计算机的潜力,提出假想机器 Memex,帮助建立 国家科学基金会,给科学研究提供资金

  • 1950 年代消费者开始买晶体管设备,收音机大卖

  • 日本取得晶体管授权后,索尼做了晶体管收音机,为日本半导体行业崛起埋下种子

  • 苏联 1961 年把宇航员加加林送上太空,导致美国提出登月

  • NASA 预算大大增加,用集成电路来制作登月计算机

  • 集成电路的发展实际上是由军事应用大大推进的,阿波罗登月毕竟只有 17 次

  • 美国造超级计算机进一步推进集成电路

  • 美国半导体行业一开始靠政府高利润合同活着,忽略消费者市场,1970年代冷战渐消,行业开始衰败 很多公司倒闭,英特尔转型处理器

  • 政府和消费者推动了计算机的发展,早期靠政府资金,让技术发展到足够商用,然后消费者购买商用产品继续推动产品发展

25. 个人计算机革命-The Personal Computer Revolution

个人计算机革命

  • 1970年代初成本下降,个人计算机变得可行

  • Altair 8800

  • 比尔·盖茨 和 保罗·艾伦写 BASIC 解释器

  • 乔布斯提议卖组装好的计算机,Apple-I 诞生

  • 1977年出现3款开箱即用计算机:“Apple-II”,“TRS-80 Model I”,“Commodore PET 2001”

  • IBM 意识到个人计算机市场

  • IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM 兼容)

  • 生态系统产生雪球效应:因为用户多,软硬件开发人员更愿意花精力在这个平台,因为软硬件多,用户也更乐意买 “IBM 兼容” 的计算机

  • 苹果选封闭架构,一切都自己来,只有苹果在非 “IBM 兼容” 下保持了足够市场份额

26. 图形用户界面-Graphical User Interfaces

图形用户界面 (GUI)

  • 图形界面先驱:道格拉斯·恩格尔巴特(Douglas Engelbart)

  • 1970年成立 帕洛阿尔托研究中心(Palo Alto Research Center)

  • 1973年完成 Xerox Alto(施乐奥托) 计算机

  • 举例:写一个简单的 GUI 程序

  • 1981年的 Xerox Star system(施乐之星系统)

  • 史蒂夫·乔布斯去施乐参观,所见即所得 WYSIWYG

  • 1983年推出 Apple Lisa

  • 1984年推出 Macintosh

  • 1985年推出 Windows 1.0,之后出到 3.1

  • 1995年推出 Windows 95 提供图形界面

  • 1995年微软做失败的 Microsoft Bob

27. 3D 图形-3D Graphics

3D 图形

  • 线框渲染 Wireframe Rendering

  • 正交投影 Orthographic Projection

  • 透视投射 Perspective Projection

  • 网格 Mesh

  • 三角形更常用因为能定义唯一的平面

  • 扫描线渲染 Scanline Rendering

  • 遮挡 Occlusion

  • 画家算法 Painter’s Algorithm

  • 深度缓冲 Z Buffering

  • Z Fighting 错误

  • 背面剔除 Back Face Culling

  • 表面法线 Surface Normal

  • 平面着色 Flat Shading

  • 高洛德着色 Gouraud shading, 冯氏着色 Phong Shading

  • 纹理映射 Texture Mapping

  • 图形处理单元 GPU, Graphics Processing Unit

28. 计算机网络-Computer Networks

计算机网络

  • 局域网 Local Area Networks - LAN

  • 媒体访问控制地址 Media Access Control address - MAC

  • 载波侦听多路访问 Carrier Sense Multiple Access - CSMA

  • 指数退避 Exponential Backoff

  • 冲突域 Collision Domain

  • 电路交换 Circuit Switching

  • 报文交换 Message Switching

  • 分组交换 Packet Switching

29. 互联网-The Internet

互联网

  • IP - 互联网协议 - Internet Protocol

  • UDP - 用户数据报协议 - User Datagram Protocol

  • 校验和 - Checksum

  • TCP - 传输控制协议 - Transmission Control Protocol

  • DNS - 域名系统 - Domain Name System

  • OSI - 开放式系统互联通信参考模型 - Open System Interconnection

30. 万维网-The World Wide Web

万维网

  • 超链接 Hyperlinks

  • URL - 统一资源定位器 - Uniform Resource Locator

  • HTTP - 超文本传输协议 - HyperText Transfer Protocol

  • HTML - 超文本标记语言 - HyperText Markup Language

  • 写一个简单网页,用到了 《h1》《 a》《h2》《 ol》《 li》 标签

  • 第一个浏览器和服务器是 Tim Berners-Lee 花了 2 个月在 CERN 写的

  • 1991年正式发布,万维网就此诞生

  • 开始讲搜索引擎的故事

  • Jerry 和 David 的万维网指南 后来改名成 Yahoo

  • 搜索引擎 JumpStation

  • 搜索引擎 Google

  • 网络中立性

31. 计算机安全-Cybersecurity

计算机安全

  • Secrecy, Integrity, Availability 保密性, 完整性, 可用性

  • Threat Model 威胁模型

  • 身份验证 (Authentication) 的三种方式:

    1. What you know, 你知道什么

    2. What you have, 你有什么

    3. What you are, 你是什么

  • 访问控制 Access Control

  • Bell LaPadula model 不能向上读取,不能向下写入

  • 隔离 Isolation, 沙盒 Sandbox

32. 黑客&攻击-Hackers & Cyber Attacks

黑客与攻击

  • 社会工程学 Social Engineering

  • 钓鱼 Phishing

  • 假托 Pretexting

  • 木马 Trojan Horses

  • NAND镜像 NAND Mirroring

  • 漏洞利用 Exploit

  • 缓冲区溢出 Buffer Overflow

  • 边界检查 Bounds Checking

  • 代码注入 Code Injection

  • 零日漏洞 Zero Day Vulnerability

  • 计算机蠕虫 Worms

  • 僵尸网络 Botnet

  • 拒绝服务攻击 DDoS

33. 加密-Cryptography

加密

  • 多层防御 Defence in depth

  • 加密 - Encryption,解密 - Decryption

  • 凯撒加密 Caesar cipher

  • 替换加密 Substitution cipher

  • 移位加密 Permutation cipher

  • 列移位加密 Columnar transposition cipher

  • 德国 Enigma 加密机

  • 1977年"数据加密标准" - Data Encryption Standard (DES)

  • 2001年"高级加密标准" - Advanced Encryption Standard (AES)

  • 密钥交换 - Key exchange

  • “单向函数"和"密钥加密”

  • 迪菲-赫尔曼密钥交换 - Diffie-Hellman Key Exchange

  • 非对称加密 - Asymmetric encryption

  • 非对称加密算法 RSA

34. 机器学习&人工智能-Machine Learning & Artificial Intelligence

机器学习与人工智能

  • 分类 Classification

  • 分类器 Classifier

  • 特征 Feature

  • 标记数据 Labeled data

  • 决策边界 Decision boundaries

  • 混淆矩阵 Confusion matrix

  • 未标签数据 Unlabeled data

  • 决策树 Decision tree

  • 支持向量机 Support Vector Machines

  • 人工神经网络 Artificial Neural Network

  • 深度学习 Deep learning

  • 弱AI, 窄AI Weak AI, Narrow AI

  • 强AI Strong AI

  • 强化学习 Reinforcement Learning

35. 计算机视觉-Computer Vision

计算机视觉

  • 检测垂直边缘的算法

  • 核/过滤器 kernel or filter

  • 卷积 convolution

  • Prewitt 算子 Prewitt Operators

  • 维奥拉·琼斯 人脸检测 Viola-Jones Face Detection

  • 卷积神经网络 Convolutional Neural Networks

  • 识别出脸之后,可以进一步用其他算法定位面部标志,如眼睛和眉毛具体位置,从而判断心情等信息

  • 跟踪全身的标记点,如肩部,手臂等

36. 自然语言处理-Natural Language Processing

自然语言处理

  • 词性 Parts of speech

  • 短语结构规则 Phrase structure rules

  • 分析树 Parse tree

  • 语音识别 Speech recognition

  • 谱图 Spectrogram

  • 快速傅立叶变换 Fast Fourier Transform

  • 音素 Phonemes

  • 语音合成 Speech Synthesis

37. 机器人-Robots

机器人

  • 法国吃饭鸭 - Digesting Duck, Canard Digerateur

  • 土耳其行棋傀儡, 下国际象棋

  • 第一台计算机控制的机器出现在1940年代晚期,叫数控机器, Computer Numerical Control(CNC)

  • 1960年 Unimate,第一个商业贩卖的 可编程工业机器人

  • 简单控制回路 simple control loop

  • 负反馈回路 negative feedback loop

  • 比例-积分-微分控制器 Proportional–Integral–Derivative controller PID 控制器

  • 机器人三定律 Three Laws of Robotics

38. 计算机心理学 - Psychology of Computing

计算机心理学

  • 我们需要了解人类心理学,做出更好的计算机

  • 易用度 - Usability

  • 颜色强度排序 和 颜色排序

  • 分组更好记,电话号码 317-555-3897 比 3175553897 好记

  • 直观功能 - Affordances

  • 认出 vs 回想 Recognition vs Recall

  • 让机器有一定情商以及 Facebook 的研究

  • 用软件修正注视位置。让视频通话时看起来像盯着对方,而不是盯着下方

  • 把机器人做的像人,恐怖谷理论

  • 有很多开放式的问题,心理学帮助我们明白不同选择可能带来的影响

39. 教育科技-Educational Technology

教育科技

  • 通过调速,暂停等技巧,加强学习效率

  • 大型开放式在线课程 - Massive Open Online Courses (MOOC)

  • 智能辅导系统 - Intelligent Tutoring Systems

  • 判断规则 - Production rule

  • 域模型 - Domain Model

  • 贝叶斯知识追踪 Bayesian knowledge tracing

    1. 学生已经学会的概率

    2. 瞎猜的概率

    3. 失误的概率

    4. 做题过程中学会的概率

  • 教育数据挖掘 Educational Data Mining

40.奇点,天网,计算机的未来-The Singularity, Skynet, and the Future of Computing

奇点,天网,计算机的未来

  • 普适计算 Ubiquitous Computing

  • 奇点 Singularity

  • 把工作分为4个象限,讨论自动化带来的影响

  • 机器人的存在时间可能长过人类,可以长时间探索宇宙

学无止境,谦虚上行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容