目录
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
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
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
28. 计算机网络-Computer Networks 12:20
30. 万维网-The World Wide Web 11:37
32. 黑客&攻击-Hackers & Cyber Attacks 11:53
34. 机器学习&人工智能-Machine Learning & Artificial Intelligence 11:51
35. 计算机视觉-Computer Vision 11:10
36. 自然语言处理-Natural Language Processing 11:50
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的表示法
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
寄存器 & 内存
存储的作用:因为算出来扔掉就没意义了,也许要做连续的操作,所以要存起来。
寄存器的本质:现在你这存一小下下,我马上就拿走
锁存器的结构如下,一组锁存器构成一个寄存器
(当允许写入线打开时,数据可以输入,当允许写入线被关闭时候,数据即可存在data out 里面不允许被改变了,每个寄存器只能存一个数,这个数是多少位,寄存器的位宽就是多少,比如16位的寄存器本质是由16个二进制单元位构成的)
- 内存结构(太喜欢他们做的图了,又好看又明了)
内存的地址是由位数决定的,位数越大,能表示的门牌号(地址)越多,内存数量也就越大,所谓的内存大。
内存的重要特性是可以随时访问任何位置,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
CPU的工作是负责处理程序,程序是由一条条操作构成的,操作就是指令(因为它们指示计算机要做什么)
构建一个CPU
寄存器:临时存储和操作数据
指令地址寄存器:追踪程序运行到哪条指令了(存下指令的地址)
指令寄存器:存当前是什么指令(指令的内容)
时钟:以精准的节奏释放电信号,控制单元会用这个信号推进CPU的内部操作
(取指令-解码-执行,这三个操作算一个步骤,步骤的执行速度叫做时钟速度,就是需要多长时间才可以执行完这一步,)
ALU:用来计算
CLU:用来控制
3.运行程序
第一阶段:取址阶段(fetch phase)
第二阶段:解码阶段(decode):对照指令表,把01串翻译成要做的实际操作,并找到被操作数,这个阶段由控制单元完成,控制单元底层也是电路
第三阶段:执行阶段:去操作数的地址处取出操作数放到寄存器里(寄存器是由操作所指定的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 个问题
光的波长不足以制作更精细的设计
量子隧穿效应
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 有两种绘图方式:
矢量扫描 Vector Scanning
光栅扫描 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) 的三种方式:
What you know, 你知道什么
What you have, 你有什么
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
学生已经学会的概率
瞎猜的概率
失误的概率
做题过程中学会的概率
教育数据挖掘 Educational Data Mining
40.奇点,天网,计算机的未来-The Singularity, Skynet, and the Future of Computing
奇点,天网,计算机的未来
普适计算 Ubiquitous Computing
奇点 Singularity
把工作分为4个象限,讨论自动化带来的影响
机器人的存在时间可能长过人类,可以长时间探索宇宙
学无止境,谦虚上行