2023-05-26
01 计算机早期历史
2023-05-26 ~ 2023-09-07

i.e. Early Computing

Hello world!我是 Carrie Anne,欢迎收看计算机科学速成课(Crash Course Computer Science)!

![[assets/Pasted image 20230526114242.png|350]]

> Carrie Anne 小姐姐

2023-05-26
02 电子计算机
2023-05-26 ~ 2023-09-07

i.e. Electronic Computing

上集讲到 20 世纪初,当时的早期计算设备都针对特定用途,比如制表机(tabulating machines),大大推进了政府和企业。它们帮助,甚至代替了人工。然而人类社会的规模在以前所未有的速度增长,20 世纪上半叶,世界人口几乎翻倍。一战动员 7 千万人,二战 1 亿多人。全球贸易和运输更加紧密,工程和科学的复杂度也达到新高。我们甚至开始考虑造访其他行星,复杂度的增高导致数据量暴增,人们需要更多自动化,更强的计算能力。

![[assets/Pasted image 20230526114513.png|400]]

很快,柜子大小的计算机变成房间大小,维护费用高,而且容易出错,而正是这些机器为未来的创新打下基础。

2023-05-26
03 布尔逻辑和逻辑门
2023-05-26 ~ 2023-09-07

i.e. Boolean Logic and Logic Gates

今天我们开始"抽象"(abstraction)的旅程!不用管底层细节,把精力用来构建更复杂的系统。

2023-05-26
04 二进制
2023-05-26 ~ 2023-09-07

i.e. Representing Numbers and Letters with Binary

今天,我们讲计算机如何存储和表示数字,所以会有一些数学,不过别担心,你们的数学水平绝对够用了。

上集我们讲了,怎么用晶体管(transistors)做逻辑门(logic gates),逻辑门可以判断布尔语句,布尔代数只有两个值:True 和 False 。

但如果只有两个值,我们怎么表达更多东西 ❓ 这就需要数学了!

2023-05-26
05 算数逻辑单元
2023-05-26 ~ 2023-09-07

i.e. How Computers Calculate-the ALU

上集,我们谈了如何用二进制表示数字,比如二进制 00101010 是十进制的 42,表示和存储数字是计算机的重要功能。但真正的目标是计算(computation),有意义的处理数字,比如把两个数字相加,这些操作由计算机的 “算术逻辑单元 (Arithmetic and Logic Unit)“处理,但大家会简称:ALU。

ALU 是计算机的数学大脑,等你理解了 ALU 的设计和功能之后,你就理解了现代计算机的基石。

2023-05-26
06 寄存器和内存
2023-05-26 ~ 2023-09-07

i.e. Registers and RAM

上集,我们用逻辑门做了个简单 ALU,它能执行算术 (Arithmetic) 和逻辑 (Logic) 运算 ,ALU 里的 A 和 L 因此得名。当然,算出来之后如果扔掉就没什么意义了,得找个方法存起来,可能还要进行多个连续操作,这就用到计算机内存了。

2023-05-26
07 中央处理器
2023-05-26 ~ 2023-09-07

i.e. The Central Processing Unit(CPU)

今天我们讲 处理器(processors),提示下 - 这集可能是最难的一集,所以一旦你理解了,就会变得超厉害 der~ 😈

2023-05-26
08 指令和程序
2023-05-26 ~ 2023-09-07

i.e. Instructions & Programs

上集我们把 ALU, 控制单元,RAM, 时钟 结合在一起,做了个基本,但可用的"中央处理单元", 简称 CPU ,它是计算机的核心。

我们已经用电路做了很多组件,这次我们给 CPU 一些指令来运行! CPU 之所以强大,是因为它是可编程的(programmable)- 如果写入不同指令,就会执行不同任务。CPU 是一块硬件,可以被软件控制!

2023-05-26
09 高级 CPU 设计
2023-05-26 ~ 2023-09-07

i.e. Advanced CPU Designs

随着本系列进展,我们知道计算机进步巨大,从 1 秒 1 次运算,到现在有千赫甚至兆赫的 CPU ,你现在看视频的设备八成也有 GHz 速度 ,1 秒十亿条指令 ,这是很大的计算量!

早期计算机的提速方式是减少晶体管的切换时间 ,晶体管组成了逻辑门,ALU 以及前几集的其他组件,但这种提速方法最终会碰到瓶颈,所以处理器厂商发明各种新技术来提升性能,不但让简单指令运行更快,也让它能进行更复杂的运算。

2023-05-26
10 早期的编程方式
2023-05-26 ~ 2023-09-07

i.e. Early Programming

前几集我们把重点放在计算机的原理,怎么从内存读写数据,执行操作,比如把两个数字加在一起,还简单讲了下指令的执行,也就是计算机程序。

但我们还没讲的是:程序如何"进入"计算机。你应该记得在第 7, 8 集,我们一步步讲了例子程序,当时为了简单,我们假设程序已经魔法般在内存里了,但事实是,程序需要加载进内存,这不是魔法,是计算机科学!

2023-05-26
11 编程语言发展史
2023-05-26 ~ 2023-09-07

i.e. The First Programming Languages

之前我们把重点放在硬件 - 组成计算机的物理组件,比如电,电路,寄存器,RAM,ALU,CPU ,但在硬件层面编程非常麻烦。

所以程序员想要一种更通用的方法编程 - 一种"更软的"媒介。

没错,我们要讲软件!

2023-05-26
12 编程原理 - 语句和函数
2023-05-26 ~ 2023-09-07

i.e. Programming Basics - Statements & Functions

上集讲到用机器码写程序,还要处理那么多底层细节,对写大型程序是个巨大障碍。为了脱离底层细节,开发了编程语言,让程序员专心解决问题,不用管硬件细节。

:: 底层各类太多了,编写麻烦,调试麻烦,改动麻烦……

2023-05-26
13 算法入门
2023-05-26 ~ 2023-09-07

i.e. Intro to Algorithms

前两集,我们"初尝"了高级编程语言(比如 Python 和 Java),我们讨论了几种语句 - 赋值语句,if 语句,循环语句,以及把代码打包成 “函数”,比如算指数。重要的是,之前写的指数函数只是无数解决方案的一种,还有其它方案 - 用不同顺序写不同语句,也能得到一样结果。

不同的是"算法",意思是:解决问题的具体步骤,即使结果一致,有些算法会更好。 一般来说,所需步骤越少越好,不过有时我们也会关心其他因素,比如占多少内存。

2023-05-26
14 数据结构
2023-05-26 ~ 2023-09-07

i.e. Data Structures

上集讲了一些经典算法,比如给数组排序,找图的最短路径,而上集没讲的是 算法处理的数据 存在内存里的格式是什么。

你肯定不想数据像 John Green 的大学宿舍一样乱 ,到处都是食物,衣服和纸,我们希望数据是结构化的,方便读取,因此计算机科学家发明了 “数据结构”!

2023-05-26
15 CSCC 其他1
2023-05-26 ~ 2023-09-07

后续章节为概念性章节,统一汇总在该章节内。

2023-05-26
16 CSCC 其他2
2023-05-26 ~ 2023-09-07

好吧,内容不少,为了后续插入图片之后,页面太大,我们这里拆分到两个页面中。

2022-03-26
00 计算机科学速成课
2022-03-26 ~ 2023-09-07

i.e. cs (computer science) crash course

![[assets/Pasted image 20230526113630.png]]

这个系列来自于 CRASH COURSE 的一个视频系列课程(共有 40 课程,每个课程 10 分钟左右),多谢热心的 CRASH COURSE 字幕组配上了优质的字幕 - B 站地址 📺 。