diff --git a/(字幕)全40集中英字幕文本.txt b/(字幕)全40集中英字幕文本.txt
new file mode 100644
index 0000000..518ad12
--- /dev/null
+++ b/(字幕)全40集中英字幕文本.txt
@@ -0,0 +1,25365 @@
+Hello world, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+Hello world!我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the course of this series, we're going to go from bits, bytes, transistors and logic gates,
+在这个系列中,我们会学习 Bits(位),Bytes(字节),晶体管, 逻辑门,
+
+all the way to Operating Systems, Virtual Reality and Robots!
+一直到操作系统,虚拟现实和机器人!
+
+We're going to cover a lot, but just to clear things up
+我们要学很多东西,但预先说明
+
+we ARE NOT going to teach you how to program.
+我们 *不会* 教你怎么编程
+
+Instead, we're going to explore a range of computing topics as a discipline and a technology.
+我们会从高层次上纵览一系列计算机话题
+
+Computers are the lifeblood of today's world.
+计算机是当今世界的命脉
+
+If they were to suddenly turn off, all at once,
+如果突然关掉所有的计算机
+
+the power grid would shut down, cars would crash, planes would fall,
+电网会关闭,车辆会相撞,飞机会坠毁
+
+water treatment plants would stop, stock markets would freeze,
+净水厂会关闭,证券市场会停止运作
+
+trucks with food wouldn't know where to deliver, and employees wouldn't get paid.
+装满食物的卡车不知运往何方,员工得不到薪水
+
+Even many non-computer objects -like DFTBA shirts and the chair I'm sitting on-
+甚至很多和计算机无关的东西,例如 DFTBA 的 T 恤和我现在坐的椅子
+
+are made in factories run by computers.
+也都是在计算机管理的工厂中制造的
+
+Computing really has transformed nearly every aspect of our lives.
+计算机改变了我们生活中几乎所有方面
+
+And this isn't the first time we've seen this sort of technology-driven global change.
+我们也不是第一次遇到推动全球发展的科技了
+
+Advances in manufacturing during the Industrial Revolution
+工业革命中生产能力的提高
+
+brought a new scale to human civilization - in agriculture, industry and domestic life.
+大幅提升了农业,工业,畜牧业的规模
+
+Mechanization meant superior harvests and more food, mass produced goods,
+机械化导致更好的收成,更多的食物,商品可以大批量生产
+
+cheaper and faster travel and communication, and usually a better quality of life.
+旅行和通讯变得更便宜更快,生活质量变得更好.
+
+And computing technology is doing the same right now
+计算机和工业革命有一样的影响
+
+- from automated farming and medical equipment,
+从自动化农业和医疗设备
+
+to global telecommunications and educational opportunities,
+到全球通信和教育机会
+
+and new frontiers like Virtual Reality and Self Driving Cars.
+还有 虚拟现实 和 无人驾驶汽车 等新领域
+
+We are living in a time likely to be remembered as the Electronic Age.
+现在这个时代很可能会被后人总结成 "信息时代"
+
+And with billions of transistors in just your smartphones, computers can seem pretty complicated,
+你的智能手机中有数十亿个晶体管,看起来好像很复杂
+
+but really, they're just simple machines
+但实际上它是很简单的机器
+
+that perform complex actions through many layers of abstraction.
+通过一层层的抽象 来做出复杂操作
+
+So in this series, we're going break down those layers,
+在这个系列中,我们会一层层讲解,
+
+and build up from simple 1's and 0's, to logic units, CPUs,
+从最底层的1和0,到逻辑门,CPU
+
+operating systems, the entire internet and beyond.
+操作系统,整个互联网,以及更多~~
+
+And don't worry, in the same way someone buying t-shirts on a webpage
+不用担心,正如在网上买T恤的人 不用知道网站代码是怎么写的
+
+doesn't need to know how that webpage was programmed,
+不用担心,正如在网上买T恤的人 不用知道网站代码是怎么写的
+
+or the web designer doesn't need to know how all the packets are routed,
+设计师不用知道数据包是怎么传输的
+
+or router engineers don't need to know about transistor logic,
+设计路由器的工程师不用理解晶体管的逻辑
+
+this series will build on previous episodes but not be dependent on them.
+本系列中每个视频会接着上集继续讲,但并不依赖前面的视频
+
+By the end of this series,
+等这个系列结束后
+
+I hope that you can better contextualize computing's role both in your own life and society,
+希望你能了解计算机在你的人生 以及社会中扮演什么角色
+
+and how humanity's (arguably) greatest invention is just in its infancy,
+以及这个人类史上最伟大的发明(可以这样说啦)是怎么开始的,
+
+with its biggest impacts yet to come.
+它对未来还会有更大的影响
+
+But before we get into all that, we should start at computing's origins,
+但深入之前,我们应该从计算的起源讲起,
+
+because although electronic computers are relatively new, the need for computation is not.
+虽然电子计算机才出现不久,但人类对计算的需求早就有了
+
+The earliest recognized device for computing was the abacus,
+公认最早的计算设备是 算盘
+
+invented in Mesopotamia around 2500 BCE.
+发明于"美索不达米亚",大约公元前 2500 年
+
+It's essentially a hand operated calculator,
+它是手动计算器,用来帮助加减数字
+
+that helps add and subtract many numbers.
+它是手动计算器,用来帮助加减数字
+
+It also stores the current state of the computation, much like your hard drive does today.
+它存储着当前的计算状态,类似于如今的硬盘
+
+The abacus was created because,
+人们制造算盘是因为
+
+the scale of society had become greater than
+社会的规模已经超出个人心算的能力
+
+what a single person could keep and manipulate in their mind.
+社会的规模已经超出个人心算的能力
+
+There might be thousands of people in a village or tens of thousands of cattle.
+一个村庄可能有上千个人和上万头牛
+
+There are many variants of the abacus,
+算盘有很多变种
+
+but let's look at a really basic version with each row representing a different power of ten.
+但我们来看一个基础版,每行代表 10 的不同次方
+
+So each bead on the bottom row represents a single unit,
+最底下那行,一个珠子代表 10 的 0 次方,也就是 1,
+
+in the next row they represent 10, the row above 100, and so on.
+再上面一行是 10 的 1 次方(也就是 10) \N 再上面一行是 10 的 2 次方 (以此类推)
+
+Let's say we have 3 heads of cattle represented by 3 beads on the bottom row on the right side.
+假设最底部的 3 颗珠子,代表 3 头牛
+
+If we were to buy 4 more cattle we would just slide 4 more beads to the right for a total of 7.
+假设再买 4 头牛,只需要向右移动 4 颗珠子,共 7 个珠子
+
+But if we were to add 5 more after the first 3 we would run out of beads,
+但如果再买 5 头,珠子就不够用了
+
+so we would slide everything back to the left,
+所以把所有珠子移回左边
+
+slide one bead on the second row to the right, representing ten,
+在第二排把 1 颗珠子向右移动,代表 10
+
+and then add the final 2 beads on the bottom row for a total of 12.
+然后最底下那行,向右移动 2 颗珠子,代表 12
+
+This is particularly useful with large numbers.
+这种方法处理大数字很有效
+
+So if we were to add 1,251
+假设要表示 1251
+
+we would just add 1 to the bottom row, 5 to the second row, 2 to the third row, and 1 to the fourth row
+从下往上:\N第一行移 1 个,第二行移 5 个\N第三行移 2 个,第四行移 1 个
+
+- we don't have to add in our head and the abacus stores the total for us.
+我们不用记在脑子里,算盘会记住.
+
+Over the next 4000 years, humans developed all sorts of clever computing devices,
+在接下来 4000 年,人类发明了各种巧妙的计算设备
+
+like the astrolabe, which enabled ships to calculate their latitude at sea.
+比如星盘,让船只可以在海上计算纬度
+
+Or the slide rule, for assisting with multiplication and division.
+或计算尺,帮助计算乘法和除法
+
+And there are literally hundred of types of clocks created
+人们还创造了上百种时钟
+
+that could be used to calculate sunrise, tides, positions of celestial bodies, and even just the time.
+算日出,潮汐,天体的位置,或纯粹拿来计时
+
+Each one of these devices made something that was previously laborious to calculate much faster,
+这些设备让原先很费力的事变得更快,更简单,更精确
+
+easier, and often more accurate
+这些设备让原先很费力的事变得更快,更简单,更精确
+
+- it lowered the barrier to entry,
+降低了门槛
+
+and at the same time, amplified our mental abilities -
+加强了我们的能力
+
+take note, this is a theme we're going to touch on a lot in this series.
+记笔记!(敲黑板)这个系列会多次提到这一点
+
+As early computer pioneer Charles Babbage said:
+计算机先驱 Charles Babbage 说过:
+
+"At each increase of knowledge, as well as on the contrivance of every new tool,
+"随着知识的增长和新工具的诞生,人工劳力会越来越少"
+
+human labour becomes abridged."
+"随着知识的增长和新工具的诞生,人工劳力会越来越少"
+
+However, none of these devices were called "computers".
+然而,这些设备那时都不叫 "计算机"
+
+The earliest documented use of the word "computer" is from 1613, in a book by Richard Braithwait.
+最早使用 "计算机" 一词的文献 \N 来自 1613 年的一本书,作者 Richard Braithwait
+
+And it wasn't a machine at all - it was a job title.
+然而指的不是机器,而是一种职业
+
+Braithwait said,
+Braithwait 说:
+
+"I have read the truest computer of times,
+"我听说过的计算者里最厉害的,能把好几天的工作量大大缩减"
+
+and the best arithmetician that ever breathed, and he reduceth thy dayes into a short number".
+"我听说过的计算者里最厉害的,能把好几天的工作量大大缩减"
+
+In those days, computer was a person who did calculations,
+那时, "Computer" 指负责计算的人
+
+sometimes with the help of machines, but often not.
+"Computer" 偶尔会用机器帮忙,但大部分时候靠自己
+
+This job title persisted until the late 1800s,
+这个职位一直到 1800 年代还存在
+
+when the meaning of computer started shifting to refer to devices.
+之后 "Computer" 逐渐开始代表机器
+
+Notable among these devices was the Step Reckoner,
+其中"步进计算器"最有名
+
+built by German polymath Gottfried Leibniz in 1694.
+由德国博学家 戈特弗里德·莱布尼茨 建造于 1694 年
+
+Leibniz said "... it is beneath the dignity of excellent men to waste their time in calculation
+莱布尼茨说过 "... 让优秀的人浪费时间算数简直侮辱尊严
+
+when any peasant could do the work just as accurately with the aid of a machine."
+农民用机器能算得一样准"
+
+It worked kind of like the odometer in your car,
+"步进计算器"有点像汽车里的里程表,不断累加里程数
+
+which is really just a machine for adding up the number of miles your car has driven.
+"步进计算器"有点像汽车里的里程表,不断累加里程数
+
+The device had a series of gears that turned;
+它有一连串可以转动的齿轮
+
+each gear had ten teeth, to represent the digits from 0 to 9.
+每个齿轮有十个齿,代表数字0到9
+
+Whenever a gear bypassed nine, it rotated back to 0 and advanced the adjacent gear by one tooth.
+每当一个齿轮转过 9,它会转回 0,同时让旁边的齿轮前进 1 个齿
+
+Kind of like when hitting 10 on that basic abacus.
+就像算盘超过 10 一样.
+
+This worked in reverse when doing subtraction, too.
+做减法时,机器会反向运作.
+
+With some clever mechanical tricks,
+利用一些巧妙的机械结构
+
+the Step Reckoner was also able to multiply and divide numbers.
+步进计算器也能做乘法和除法
+
+Multiplications and divisions are really just many additions and subtractions.
+乘法和除法 实际上只是多个加法和减法
+
+For example, if we want to divide 17 by 5, we just subtract 5, then 5, then 5 again,
+举例,17除以5,我们只要减5,减5,再减5
+
+and then we can't subtract any more 5's… so we know 5 goes into 17 three times, with 2 left over.
+直到不能再减 5,就知道了 17=5x3+2
+
+The Step Reckoner was able to do this in an automated way,
+步进计算器 可以自动完成这种操作
+
+and was the first machine that could do all four of these operations.
+它是第一台能做"加减乘除"全部四种运算的机器
+
+And this design was so successful it was used for the next three centuries of calculator design.
+它的设计非常成功,以至于沿用了 3 个世纪.
+
+Unfortunately, even with mechanical calculators,
+不幸的是,即使有机械计算器
+
+most real world problems required many steps of computation before an answer was determined.
+许多现实问题 依然需要很多步
+
+It could take hours or days to generate a single result.
+算一个结果可能要几小时甚至几天
+
+Also, these hand-crafted machines were expensive, and not accessible to most of the population.
+而且这些手工制作的机器非常昂贵,大部分人买不起
+
+So, before 20th century,
+所以在 20 世纪以前
+
+most people experienced computing through pre-computed tables
+大部分人会用预先算好的计算表
+
+assembled by those amazing "human computers" we talked about.
+这些计算表由之前说的 "人力计算器" 编撰
+
+So if you needed to know the square root of 8 million 6 hundred and 75 thousand 3 hundred and 9,
+如果你想知道 867,5309 的平方根
+
+instead of spending all day hand-cranking your step reckoner,
+与其花一整天来手摇 "步进计算器"
+
+you could look it up in a huge book full of square root tables in a minute or so.
+你可以花一分钟在表里找答案
+
+Speed and accuracy is particularly important on the battlefield,
+速度和准确性在战场上尤为重要
+
+and so militaries were among the first to apply computing to complex problems.
+因此军队很早就开始用计算解决复杂问题
+
+A particularly difficult problem is accurately firing artillery shells,
+如何精确瞄准炮弹是一个很难的问题
+
+which by the 1800s could travel well over a kilometer (or a bit more than half a mile).
+19世纪,这些炮弹的射程可以达到 1 公里以上(比半英里多一点)
+
+Add to this varying wind conditions, temperature, and atmospheric pressure,
+因为风力,温度,大气压力会不断变化
+
+and even hitting something as large as a ship was difficult.
+想打中船一样大的物体也非常困难
+
+Range Tables were created that allowed gunners to look up environmental conditions
+于是出现了射程表,炮手可以查环境条件和射击距离
+
+and the distance they wanted to fire,
+于是出现了射程表,炮手可以查环境条件和射击距离
+
+and the table would tell them the angle to set the canon.
+然后这张表会告诉他们,角度要设成多少
+
+These Range Tables worked so well, they were used well into World War Two.
+这些射程表很管用,二战中被广泛应用
+
+The problem was, if you changed the design of the cannon or of the shell,
+问题是如果改了大炮或炮弹的设计,就要算一张新表
+
+a whole new table had to be computed,
+问题是如果改了大炮或炮弹的设计,就要算一张新表
+
+which was massively time consuming and inevitably led to errors.
+这样很耗时而且会出错
+
+Charles Babbage acknowledged this problem in 1822
+Charles Babbage 在 1822 年写了一篇论文
+
+in a paper to the Royal Astronomical Society entitled:
+向皇家天文学会指出了这个问题
+
+"Note on the application of machinery to the computation of astronomical and mathematical tables".
+标题叫: "机械在天文与计算表中的应用"
+
+Let's go to the thought bubble.
+让我们进入思想泡泡
+
+Charles Babbage proposed a new mechanical device called the Difference Engine,
+Charles Babbage 提出了一种新型机械装置叫 "差分机"
+
+a much more complex machine that could approximate polynomials.
+一个更复杂的机器,能近似多项式.
+
+Polynomials describe the relationship between several variables
+多项式描述了几个变量之间的关系
+
+- like range and air pressure, or amount of pizza Carrie Anne eats and happiness.
+比如射程和大气压力,或者 Carrie Anne 要吃多少披萨才开心
+
+Polynomials could also be used to approximate logarithmic and trigonometric functions,
+多项式也可以用于近似对数和三角函数
+
+which are a real hassle to calculate by hand.
+这些函数手算相当麻烦
+
+Babbage started construction in 1823,
+Charles Babbage 在 1823 年开始建造差分机
+
+and over the next two decades, tried to fabricate and assemble the 25,000 components,
+并在接下来二十年,试图制造和组装 25,000 个零件
+
+collectively weighing around 15 tons.
+总重接近 15 吨
+
+Unfortunately, the project was ultimately abandoned.
+不幸的是,该项目最终放弃了
+
+But, in 1991,
+但在 1991 年
+
+historians finished constructing a Difference Engine based on Babbage's drawings and writings
+历史学家根据 Charles Babbage 的草稿做了一个差分机
+
+- and it worked!
+而且它还管用!
+
+But more importantly, during construction of the Difference Engine,
+但更重要的是,在差分机的建造期间
+
+Babbage imagined an even more complex machine - the Analytical Engine.
+Charles Babbage 构想了一个更复杂的机器 - 分析机
+
+Unlike the Difference Engine,
+不像差分机,步进计算器 和以前的其他计算设备
+
+Step Reckoner and all other computational devices before it
+不像差分机,步进计算器 和以前的其他计算设备
+
+- the Analytical Engine was a "general purpose computer".
+分析机是 "通用计算机"
+
+It could be used for many things, not just one particular computation;
+它可以做很多事情,不只是一种特定运算
+
+it could be given data and run operations in sequence;
+甚至可以给它数据,然后按顺序执行一系列操作
+
+it had memory and even a primitive printer.
+它有内存 甚至一个很原始的打印机
+
+Like the Difference Engine, it was ahead of its time, and was never fully constructed.
+就像差分机,这台机器太超前了,所以没有建成
+
+However, the idea of an "automatic computer"
+然而,这种 "自动计算机" 的概念
+
+- one that could guide itself through a series of operations automatically,
+-计算机可以自动完成一系列操作
+
+was a huge deal, and would foreshadow computer programs.
+是个跨时代的概念,预示着计算机程序的诞生
+
+English mathematician Ada Lovelace wrote hypothetical programs for the Analytical Engine, saying,
+英国数学家 Ada Lovelace 给分析机写了假想的程序,她说:
+
+"A new, a vast, and a powerful language is developed for the future use of analysis."
+"未来会诞生一门全新的,强大的,专为分析所用的语言"
+
+For her work, Ada is often considered the world's first programmer.
+因此 Ada 被认为是世上第一位程序员.
+
+The Analytical Engine would inspire, arguably, the first generation of computer scientists,
+分析机激励了(可以这么讲)第一代计算机科学家
+
+who incorporated many of Babbage's ideas in their machines.
+这些计算机科学家 \N 把很多 Charles Babbage 的点子融入到他们的机器
+
+This is why Babbage is often considered the "father of computing".
+所以 Charles Babbage 经常被认为是 "计算之父"
+
+Thanks! Thought Bubble
+谢啦!思想泡泡
+
+So by the end of the 19th century,
+到了 19 世纪末
+
+computing devices were used for special purpose tasks in the sciences and engineering,
+科学和工程领域中的特定任务 会用上计算设备
+
+but rarely seen in business, government or domestic life.
+但公司,政府,家庭中很少见到计算设备
+
+However, the US government faced a serious problem for its 1890 census
+然而,美国政府在 1890 年的人口普查中面临着严重的问题
+
+that demanded the kind of efficiency that only computers could provide.
+只有计算机能提供所需的效率
+
+The US Constitution requires that a census be conducted every ten years,
+美国宪法要求 10 年进行一次人口普查
+
+for the purposes of distributing federal funds, representation in congress, and good stuff like that.
+目的是分配联邦资金,国会代表,等等
+
+And by 1880s, the US population was booming, mostly due to immigration.
+到 1880 年代,美国人口迅速增长,大部分因为移民
+
+That census took seven years to manually compile
+人口普查要七年时间来手工编制,等做完都过时了
+
+and by the time it was completed, it was already out of date
+人口普查要七年时间来手工编制,等做完都过时了
+
+- and it was predicted that the 1890 census would take 13 years to compute.
+而且 1890 年的人口普查,预计要 13 年完成
+
+That's a little problematic when it's required every decade!
+但人口普查可是 10 年一次啊!
+
+The Census bureau turned to Herman Hollerith, who had built a tabulating machine.
+人口普查局找了 Herman Hollerith,他发明了打孔卡片制表机
+
+His machine was "electro-mechanical"
+他的机器是 "电动机械的"
+
+- it used traditional mechanical systems for keeping count,
+- 用传统机械来计数
+
+like Leibniz's Step Reckoner - but coupled them with electrically-powered components.
+结构类似莱布尼茨的乘法器,但用电动结构连接其他组件
+
+Hollerith's machine used punch cards
+Hollerith 的机器用打孔卡
+
+which were paper cards with a grid of locations that can be punched out to represent data.
+一种纸卡,上面有网格,用打孔来表示数据.
+
+For example, there was a series of holes for marital status.
+举个例子,有一连串孔代表婚姻状况
+
+If you were married, you would punch out the married spot,
+如果你结婚了,就在 "结婚" 的位置打孔
+
+then when the card was inserted into Hollerith's machine, little metal pins would come down over the card
+当卡插入 Hollerith 的机器时,小金属针会到卡片上
+
+- if a spot was punched out, the pin would pass through the hole in the paper
+-如果有个地方打孔了,针会穿过孔
+
+and into a little vial of mercury, which completed the circuit.
+泡入一小瓶汞,联通电路
+
+This now completed circuit powered an electric motor,
+电路会驱动电机
+
+which turned a gear to add one, in this case, to the "married" total.
+然后给 "已婚" 的齿轮 + 1
+
+Hollerith's machine was roughly 10x faster than manual tabulations,
+Hollerith 的机器速度是手动的 10 倍左右
+
+and the Census was completed in just two and a half years
+使人口普查在短短两年半内完成
+
+- saving the census office millions of dollars.
+给人口普查办公室省了上百万美元
+
+Businesses began recognizing the value of computing,
+企业开始意识到计算机的价值
+
+and saw its potential to boost profits by improving labor- and data-intensive tasks,
+可以提升劳动力以及数据密集型任务 来提升利润
+
+like accounting, insurance appraisals, and inventory management.
+比如会计,保险评估和库存管理等行业
+
+To meet this demand, Hollerith founded The Tabulating Machine Company,
+为了满足这一需求,Hollerith 成立了制表机器公司
+
+which later merged with other machine makers in 1924
+这家公司后来在 1924 年与其它机械制造商合并
+
+to become The International Business Machines Corporation or IBM
+成为了 "国际商业机器公司",简称 IBM
+
+- which you've probably heard of.
+-你可能听过 IBM
+
+These electro-mechanical "business machines" were a huge success, transforming commerce and government,
+这些电子机械的 "商业机器" 取得了巨大成功,改变了商业和政府.
+
+and by the mid-1900s, the explosion in world population and the rise of globalized trade
+到了 1900 年代中叶,世界人口的爆炸和全球贸易的兴起
+
+demanded even faster and more flexible tools for processing data,
+要求更快,更灵活的工具来处理数据
+
+setting the stage for digital computers,
+为电子计算机的发展奠定了基础
+
+which we'll talk about next week.
+我们下周讨论
+
+Our last episode brought us to the start of the 20th century,
+上集讲到 20 世纪初
+
+where early, special purpose computing devices, like tabulating machines,
+当时的早期计算设备都针对特定用途 比如 制表机
+
+were a huge boon to governments and business
+大大推进了政府和企业
+
+- aiding, and sometimes replacing, rote manual tasks.
+它们帮助, 甚至代替了人工
+
+But the scale of human systems continued to increase at an unprecedented rate.
+然而人类社会的规模 在以前所未有的速度增长
+
+The first half of the 20th century saw the world's population almost double.
+20世纪上半叶,世界人口几乎翻倍
+
+World War 1 mobilized 70 million people, and World War 2 involved more than 100 million.
+一战动员7千万人,二战1亿多人
+
+Global trade and transit networks became interconnected like never before,
+全球贸易和运输更加紧密
+
+and the sophistication of our engineering and scientific endeavors reached new heights
+工程和科学的复杂度也达到新高
+
+- we even started to seriously consider visiting other planets.
+- 我们甚至开始考虑登陆其他行星
+
+And it was this explosion of complexity, bureaucracy, and ultimately data,
+复杂度的增高导致数据量暴增
+
+that drove an increasing need for automation and computation.
+人们需要更多自动化 更强的计算能力
+
+Soon those cabinet-sized electro-mechanical computers grew into room-sized behemoths
+很快,柜子大小的计算机变成房间大小
+
+that were expensive to maintain and prone to errors.
+维护费用高 而且容易出错
+
+And it was these machines that would set the stage for future innovation.
+而正是这些机器 为未来的创新打下基础
+
+One of the largest electro-mechanical computers built was the Harvard Mark I,
+最大的机电计算机之一是 哈佛马克一号
+
+completed in 1944 by IBM for the Allies during World War 2.
+IBM 在 1944 完成建造,给二战同盟国建造的.
+
+It contained 765,000 components, three million connections, and five hundred miles of wire.
+它有76万5千个组件,300万个连接点和500英里长的导线
+
+To keep its internal mechanics synchronized,
+为了保持内部机械装置同步
+
+it used a 50-foot shaft running right through the machine driven by a five horsepower motor.
+它有一个50英尺的传动轴,由一个 5 马力的电机驱动
+
+One of the earliest uses for this technology was running simulations for the Manhattan Project.
+这台机器最早的用途之一 是给"曼哈顿计划"跑模拟
+
+The brains of these huge electro-mechanical beasts were relays:
+这台机器的大脑是"继电器"
+
+electrically-controlled mechanical switches.
+继电器是:用电控制的机械开关
+
+In a relay, there is a control wire that determines whether a circuit is opened or closed.
+继电器里,有根"控制线路",控制电路是开还是关
+
+The control wire connects to a coil of wire inside the relay.
+"控制线路" 连着一个线圈
+
+When current flows through the coil, an electromagnetic field is created,
+当电流流过线圈,线圈产生电磁场
+
+which in turn, attracts a metal arm inside the relay, snapping it shut and completing the circuit.
+吸引金属臂,从而闭合电路
+
+You can think of a relay like a water faucet.
+你可以把继电器 想成水龙头
+
+The control wire is like the faucet handle.
+把控制线路 想成水龙头把
+
+Open the faucet, and water flows through the pipe.
+打开水龙头,水会流出来
+
+Close the faucet, and the flow of water stops.
+关闭水龙头,水就没有了
+
+Relays are doing the same thing, just with electrons instead of water.
+继电器是一样的,只不过控制的是电子 而不是水
+
+The controlled circuit can then connect to other circuits, or to something like a motor,
+这个控制电路可以连到其他电路,比如马达
+
+which might increment a count on a gear,
+马达让计数齿轮 +1
+
+like in Hollerith's tabulating machine we talked about last episode.
+就像上集中 Hollerith 的制表机一样
+
+Unfortunately, the mechanical arm inside of a relay *has mass*,
+不幸的是,继电器内的机械臂 *有质量*
+
+and therefore can't move instantly between opened and closed states.
+因此无法快速开关
+
+A good relay in the 1940's might be able to flick back and forth fifty times in a second.
+1940 年代一个好的继电器 1 秒能翻转 50 次
+
+That might seem pretty fast, but it's not fast enough to be useful at solving large, complex problems.
+看起来好像很快,但还不够快,不足以解决复杂的大问题
+
+The Harvard Mark I could do 3 additions or subtractions per second;
+哈佛马克一号,1 秒能做 3 次加法或减法运算
+
+multiplications took 6 seconds, and divisions took 15.
+一次乘法要花 6 秒,除法要花 15 秒
+
+And more complex operations, like a trigonometric function, could take over a minute.
+更复杂的操作 比如三角函数,可能要一分钟以上
+
+In addition to slow switching speed, another limitation was wear and tear.
+除了速度慢,另一个限制是齿轮磨损
+
+Anything mechanical that moves will wear over time.
+任何会动的机械都会随时间磨损
+
+Some things break entirely, and other things start getting sticky, slow, and just plain unreliable.
+有些部件会完全损坏,有些则是变黏,变慢,变得不可靠
+
+And as the number of relays increases, the probability of a failure increases too.
+并且随着继电器数量增加,故障概率也会增加
+
+The Harvard Mark I had roughly 3500 relays.
+哈佛马克一号 有大约 3500 个继电器
+
+Even if you assume a relay has an operational life of 10 years,
+哪怕假设继电器的使用寿命是 10 年
+
+this would mean you'd have to replace, on average, one faulty relay every day!
+也意味着平均每天得换一个故障继电器!
+
+That's a big problem when you are in the middle of running some important, multi-day calculation.
+这个问题很严重,因为有些重要运算要运行好几天
+
+And that's not all engineers had to contend with.
+而且还有更多其他问题要考虑
+
+These huge, dark, and warm machines also attracted insects.
+这些巨大,黑色,温暖的机器也会吸引昆虫
+
+In September 1947, operators on the Harvard Mark II pulled a dead moth from a malfunctioning relay.
+1947年9月,哈佛马克2型的操作员从故障继电器中,拔出一只死虫
+
+Grace Hopper who we'll talk more about in a later episode noted,
+Grace Hopper(这位我们以后还会提到)曾说
+
+"From then on, when anything went wrong with a computer,
+"从那时起,每当电脑出了问题,
+
+we said it had bugs in it."
+我们就说它出了 bug(虫子)"
+
+And that's where we get the term computer bug.
+这就是术语 "bug" 的来源
+
+It was clear that a faster, more reliable alternative to electro-mechanical relays was needed
+显然,如果想进一步提高计算能力
+
+if computing was going to advance further,
+我们需要更快更可靠的东西,来替代继电器
+
+and fortunately that alternative already existed!
+幸运的是,替代品已经存在了!
+
+In 1904, English physicist John Ambrose Fleming
+在 1904 年,英国物理学家 "约翰·安布罗斯·弗莱明"
+
+developed a new electrical component called a thermionic valve,
+开发了一种新的电子组件,叫"热电子管"
+
+which housed two electrodes inside an airtight glass bulb
+把两个电极装在一个气密的玻璃灯泡里
+
+- this was the first vacuum tube.
+-这是世上第一个真空管
+
+One of the electrodes could be heated, which would cause it to emit electrons
+其中一个电极可以加热,从而发射电子
+
+– a process called thermionic emission.
+-这叫 "热电子发射"
+
+The other electrode could then attract these electrons to create the flow of our electric faucet,
+另一个电极会吸引电子,形成"电龙头"的电流
+
+but only if it was positively charged
+但只有带正电才行
+
+- if it had a negative or neutral charge, the electrons would no longer be attracted across the vacuum
+- 如果带负电荷或中性电荷,电子就没办法被吸引,越过真空区域
+
+so no current would flow.
+因此没有电流
+
+An electronic component that permits the one-way flow of current is called a diode,
+电流只能单向流动的电子部件叫 "二极管"
+
+but what was really needed was a switch to help turn this flow on and off.
+但我们需要的是,一个能开关电流的东西
+
+Luckily, shortly after, in 1906, American inventor Lee de Forest
+幸运的是,不久之后在 1906 年,美国发明家 "李·德富雷斯特"
+
+added a third "control" electrode that sits between the two electrodes in Fleming's design.
+他在"弗莱明"设计的两个电极之间,加入了第三个 "控制" 电极
+
+By applying a positive charge to the control electrode, it would permit the flow of electrons as before.
+向"控制"电极施加正电荷,它会允许电子流动
+
+But if the control electrode was given a negative charge,
+但如果施加负电荷
+
+it would prevent the flow of electrons.
+它会阻止电子流动
+
+So by manipulating the control wire, one could open or close the circuit.
+因此通过控制线路,可以断开或闭合电路
+
+It's pretty much the same thing as a relay
+和继电器的功能一样
+
+- but importantly, vacuum tubes have no moving parts.
+- 但重要的是,真空管内没有会动的组件
+
+This meant there was less wear,
+这意味着更少的磨损
+
+and more importantly, they could switch thousands of times per second.
+更重要的是,每秒可以开闭数千次
+
+These triode vacuum tubes would become the basis of radio, long distance telephone,
+因此这些"三极真空管"成为了无线电,长途电话
+
+and many other electronic devices for nearly a half century.
+以及其他电子设备的基础,持续了接近半个世纪
+
+I should note here that vacuum tubes weren't perfect
+我应该提到,真空管不是完美的
+
+- they're kind of fragile, and can burn out like light bulbs,
+-它们有点脆弱,并且像灯泡一样会烧坏
+
+they were a big improvement over mechanical relays.
+但比起机械继电器是一次巨大进步
+
+Also, initially vacuum tubes were expensive
+起初,真空管非常昂贵
+
+– a radio set often used just one,
+收音机一般只用一个
+
+but a computer might require hundreds or thousands of electrical switches.
+但计算机可能要上百甚至上千个电气开关
+
+But by the 1940s,
+但到了 1940 年代
+
+their cost and reliability had improved to the point where they became feasible for use in computers….
+它的成本和可靠性得到改进,可以用在计算机里
+
+at least by people with deep pockets, like governments.
+至少有钱人负担得起,比如政府
+
+This marked the shift from electro-mechanical computing to electronic computing.
+这标志着计算机 从机电转向电子
+
+Let's go to the Thought Bubble.
+我们来进入思想泡泡
+
+The first large-scale use of vacuum tubes for computing was the Colossus MK 1,
+第一个大规模使用真空管的计算机是 "巨人1号"
+
+designed by engineer Tommy Flowers and completed in December of 1943.
+由工程师 Tommy Flowers 设计,完工于1943年12月
+
+The Colossus was installed at Bletchley Park, in the UK,
+巨人1号 在英国的"布莱切利园", 用于破解纳粹通信
+
+and helped to decrypt Nazi communications.
+巨人1号 在英国的"布莱切利园", 用于破解纳粹通信
+
+This may sound familiar because two years prior Alan Turing,
+听起来可能有点熟,因为 2 年前 阿兰·图灵
+
+often called the father of computer science,
+他经常被称为"计算机科学之父"
+
+had created an electromechanical device, also at Bletchley Park, called the Bombe.
+图灵也在"布莱切利园"做了台机电装置,叫 "Bombe"
+
+It was an electromechanical machine designed to break Nazi Enigma codes,
+这台机器的设计目的是 破解纳粹"英格码"通讯加密设备
+
+but the Bombe wasn't technically a computer,
+但 Bombe 严格来说不算计算机
+
+and we'll get to Alan Turing's contributions later.
+我们之后会讨论"阿兰·图灵"的贡献
+
+Anyway, the first version of Colossus contained 1,600 vacuum tubes,
+总之,巨人1号有 1600 个真空管
+
+and in total, ten Colossi were built to help with code-breaking.
+总共造了 10 台巨人计算机,来帮助破解密码
+
+Colossus is regarded as the first programmable, electronic computer.
+巨人 被认为是第一个可编程的电子计算机
+
+Programming was done by plugging hundreds of wires into plugboards,
+编程的方法是把几百根电线插入插板
+
+sort of like old school telephone switchboards,
+有点像老电话交换机
+
+in order to set up the computer to perform the right operations.
+这是为了让计算机执行正确操作
+
+So while "programmable", it still had to be configured to perform a specific computation.
+虽然"可编程" ,但还是要配置它
+
+Enter the The Electronic Numerical Integrator and Calculator - or ENIAC -
+电子数值积分计算机 "ENIAC"
+
+completed a few years later in 1946 at the University of Pennsylvania.
+几年后在 1946 年,在"宾夕法尼亚大学"完成建造
+
+Designed by John Mauchly and J. Presper Eckert,
+设计者是 John Mauchly 和 J. Presper Eckert
+
+this was the world's first truly general purpose, programmable, electronic computer.
+这是世上第一个真正的通用,可编程,电子计算机
+
+ENIAC could perform 5000 ten-digit additions or subtractions per second,
+ENIAC 每秒可执行 5000 次十位数加减法
+
+many, many times faster than any machine that came before it.
+比前辈快了很多倍
+
+It was operational for ten years,
+它运作了十年
+
+and is estimated to have done more arithmetic than the entire human race up to that point.
+据估计,它完成的运算,比全人类加起来还多
+
+But with that many vacuum tubes failures were common,
+因为真空管很多,所以故障很常见
+
+and ENIAC was generally only operational for about half a day at a time before breaking down.
+ENIAC 运行半天左右就会出一次故障
+
+Thanks Thought Bubble.
+谢了 思想泡泡
+
+By the 1950's, even vacuum-tube-based computing was reaching its limits.
+到 1950 年代,真空管计算机都达到了极限
+
+The US Air Force's AN/FSQ-7 computer, which was completed in 1955,
+美国空军的 AN/FSQ-7 计算机于 1955 年完成
+
+was part of the "SAGE" air defense computer system,
+是 "SAGE" 防空计算机系统的一部分
+
+which we'll talk more about in a later episode.
+之后的视频还会提到.
+
+To reduce cost and size, as well as improve reliability and speed,
+为了降低成本和大小,同时提高可靠性和速度
+
+a radical new electronic switch would be needed.
+我们需要一种新的电子开关
+
+In 1947, Bell Laboratory scientists John Bardeen, Walter Brattain, and William Shockley
+1947 年,贝尔实验室科学家 \N John Bardeen,Walter Brattain,William Shockley
+
+invented the transistor,
+发明了晶体管
+
+and with it, a whole new era of computing was born!
+一个全新的计算机时代诞生了!
+
+The physics behind transistors is pretty complex, relying on quantum mechanics,
+晶体管的物理学相当复杂,牵扯到量子力学
+
+so we're going to stick to the basics.
+所以我们只讲基础
+
+A transistor is just like a relay or vacuum tube
+晶体管 就像之前提过的"继电器"或"真空管"
+
+- it's a switch that can be opened or closed by applying electrical power via a control wire.
+-它是一个开关,可以用控制线路来控制开或关
+
+Typically, transistors have two electrodes separated by a material that sometimes can conduct electricity,
+晶体管有两个电极,\N 电极之间有一种材料隔开它们,这种材料有时候导电
+
+and other times resist it
+有时候不导电
+
+- a semiconductor.
+- 这叫"半导体"
+
+In this case, the control wire attaches to a "gate" electrode.
+控制线连到一个 "门" 电极
+
+By changing the electrical charge of the gate,
+通过改变 "门" 的电荷
+
+the conductivity of the semiconducting material can be manipulated,
+我们可以控制半导体材料的导电性
+
+allowing current to flow or be stopped
+来允许或不允许 电流流动
+
+- like the water faucet analogy we discussed earlier.
+- 就像之前的水龙头比喻
+
+Even the very first transistor at Bell Labs showed tremendous promise
+贝尔实验室的第一个晶体管就展示了巨大的潜力
+
+- it could switch between on and off states 10,000 times per second.
+每秒可以开关 10,000 次
+
+Further, unlike vacuum tubes made of glass and with carefully suspended, fragile components,
+而且,比起玻璃制成,小心易碎的真空管
+
+transistors were solid material known as a solid state component.
+晶体管是固态的
+
+Almost immediately, transistors could be made smaller than the smallest possible relays or vacuum tubes.
+晶体管可以远远小于继电器或真空管
+
+This led to dramatically smaller and cheaper computers, like the IBM 608, released in 1957
+导致更小更便宜的计算机,比如1957年发布的IBM 608
+
+– the first fully transistor-powered, commercially-available computer.
+- 第一个完全用晶体管,而且消费者也可以买到的计算机
+
+It contained 3000 transistors and could perform 4,500 additions,
+它有 3000 个晶体管,每秒执行 4500 次加法
+
+or roughly 80 multiplications or divisions, every second.
+每秒能执行 80 次左右的乘除法
+
+IBM soon transitioned all of its computing products to transistors,
+IBM 很快把所有产品都转向了晶体管
+
+bringing transistor-based computers into offices, and eventually, homes.
+把晶体管计算机带入办公室,最终引入家庭
+
+Today, computers use transistors that are smaller than 50 nanometers in size
+如今,计算机里的晶体管小于 50 纳米
+
+- for reference, a sheet of paper is roughly 100,000 nanometers thick.
+- 而一张纸的厚度大概是 10 万纳米
+
+And they're not only incredibly small, they're super fast
+晶体管不仅小,还超级快
+
+- they can switch states millions of times per second, and can run for decades.
+- 每秒可以切换上百万次,并且能工作几十年
+
+A lot of this transistor and semiconductor development happened
+很多晶体管和半导体的开发在"圣克拉拉谷"
+
+in the Santa Clara Valley, between San Francisco and San Jose, California.
+这个地方在加州,位于"旧金山"和"圣荷西"之间
+
+As the most common material used to create semiconductors is silicon,
+而生产半导体最常见的材料是 "硅"
+
+this region soon became known as Silicon Valley.
+所以这个地区被称为 "硅谷"
+
+Even William Shockley moved there, founding Shockley Semiconductor,
+甚至 William Shockley 都搬了过去,创立了"肖克利半导体"
+
+whose employees later founded Fairchild Semiconductors,
+里面的员工后来成立了"仙童半导体"
+
+whose employees later founded Intel - the world's largest computer chip maker today.
+这里面的员工后来创立了英特尔 - 当今世界上最大的计算机芯片制造商
+
+Ok, so we've gone from relays to vacuum tubes to transistors.
+好了,我们从"继电器"到"真空管"到"晶体管"
+
+We can turn electricity on and off really, really, really fast.
+我们可以让电路开闭得非常非常快
+
+But how do we get from transistors to actually computing something,
+但我们是如何用晶体管做计算的?
+
+especially if we don't have motors and gears?
+我们没有马达和齿轮啊?
+
+That's what we're going to cover over the next few episodes.
+我们接下来几集会讲
+
+Thanks for watching. See you next week.
+感谢观看 下周见
+
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science!
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Today we start our journey up the ladder of abstraction,
+今天我们开始"抽象"的旅程
+
+where we leave behind the simplicity of being able to see every switch and gear,
+不用管底层细节,把精力用来构建更复杂的系统
+
+but gain the ability to assemble increasingly complex systems.
+不用管底层细节,把精力用来构建更复杂的系统
+
+Last episode, we talked about how computers evolved from electromechanical devices,
+上集,我们谈了计算机最早是机电设备
+
+that often had decimal representations of numbers
+一般用十进制计数
+
+- like those represented by teeth on a gear
+- 比如用齿轮数来代表十进制
+
+- to electronic computers with transistors that can turn the flow of electricity on or off.
+- 再到晶体管计算机
+
+And fortunately, even with just two states of electricity,
+幸运的是,只用 开/关 两种状态也可以代表信息
+
+we can represent important information.
+幸运的是,只用 开/关 两种状态也可以代表信息
+
+We call this representation Binary
+这叫 二进制
+
+-- which literally means "of two states",
+- 意思是"用两种状态表示"
+
+in the same way a bicycle has two wheels or a biped has two legs.
+就像自行车有两个轮,双足动物有两条腿
+
+You might think two states isn't a lot to work with, and you'd be right!
+你可能觉得两种状态不多,你是对的!
+
+But, it's exactly what you need for representing the values "true" and "false".
+但如果只需要表示 true 和 false,两个值就够了
+
+In computers, an "on" state, when electricity is flowing, represents true.
+电路闭合,电流流过,代表 "真"
+
+The off state, no electricity flowing, represents false.
+电路断开,无电流流过,代表"假"
+
+We can also write binary as 1's and 0's instead of true's and false's
+二进制也可以写成 1 和 0 而不是 true 和 false
+
+- they are just different expressions of the same signal
+- 只是不同的表达方式罢了
+
+- but we'll talk more about that in the next episode.
+- 我们下集会讲更多细节
+
+Now it is actually possible to use transistors for more than just turning electrical current on and off,
+晶体管的确可以不只是 开/关,还可以让不同大小的电流通过
+
+and to allow for different levels of current.
+晶体管的确可以不只是 开/关,还可以让不同大小的电流通过
+
+Some early electronic computers were ternary, that's three states,
+一些早期电子计算机是三进制的,有 3 种状态
+
+and even quinary, using 5 states.
+甚至五进制,5 种状态
+
+The problem is, the more intermediate states there are,
+问题是,状态越多,越难区分信号
+
+the harder it is to keep them all seperate
+问题是,状态越多,越难区分信号
+
+-- if your smartphone battery starts running low or there's electrical noise
+- 如果手机快没电了或者附近有电噪音
+
+because someone's running a microwave nearby,
+因为有人在用微波炉,
+
+the signals can get mixed up...
+信号可能会混在一起...
+
+and this problem only gets worse with transistors changing states millions of times per second!
+而每秒百万次变化的晶体管会让这个问题变得更糟!
+
+So, placing two signals as far apart as possible
+所以我们把两种信号尽可能分开
+
+- using just 'on and off' - gives us the most distinct signal to minimize these issues.
+- 只用"开"和"关"两种状态,可以尽可能减少这类问题
+
+Another reason computers use binary
+计算机用二进制的另一个原因是
+
+is that an entire branch of mathematics already existed that dealt exclusively with true and false values.
+有一整个数学分支存在,专门处理"真"和"假"
+
+And it had figured out all of the necessary rules and operations for manipulating them.
+它已经解决了所有法则和运算
+
+It's called Boolean Algebra!
+叫"布尔代数"!
+
+George Boole, from which Boolean Algebra later got its name,
+乔治·布尔(George Boole)是布尔二字的由来
+
+was a self-taught English mathematician in the 1800s.
+是一位 19 世纪自学成才的英国数学家
+
+He was interested in representing logical statements that went "under, over, and beyond"
+他有兴趣用数学式子 扩展亚里士多德基于哲学的逻辑方法
+
+Aristotle's approach to logic, which was, unsurprisingly, grounded in philosophy.
+他有兴趣用数学式子 扩展亚里士多德基于哲学的逻辑方法
+
+Boole's approach allowed truth to be systematically and formally proven, through logic equations
+布尔用 逻辑方程 系统而正式的证明真理(truth)
+
+which he introduced in his first book, "The Mathematical Analysis of Logic" in 1847.
+他在 1847 年的第一本书"逻辑的数学分析"中介绍过
+
+In "regular" algebra -- the type you probably learned in high school -- the values of variables
+在"常规"代数里 - 你在高中学的那种 - 变量的值
+
+are numbers, and operations on those numbers are things like addition and multiplication.
+是数字,可以进行加法或乘法之类的操作
+
+But in Boolean Algebra, the values of variables are true and false, and the operations are logical.
+但在布尔代数中,变量的值是 true 和 false,\N 能进行逻辑操作
+
+There are three fundamental operations in Boolean Algebra: a NOT, an AND, and an OR operation.
+布尔代数中有三个基本操作:NOT, AND 和 OR
+
+And these operations turn out to be really useful so we're going to look at them individually.
+这些操作非常有用,我们一个个来看
+
+A NOT takes a single boolean value, either true or false, and negates it.
+NOT 操作把布尔值反转,\N把 true 进行 NOT 就会变成 false,反之亦然
+
+It flips true to false, and false to true.
+NOT 操作把布尔值反转,\N把 true 进行 NOT 就会变成 false,反之亦然
+
+We can write out a little logic table that shows the original value under Input,
+我们可以根据 NOT 操作的输入和输出,做出这个表
+
+and the outcome after applying the operation under Output.
+我们可以根据 NOT 操作的输入和输出,做出这个表
+
+Now here's the cool part -- we can easily build boolean logic out of transistors.
+酷的地方是 - 用晶体管可以轻松实现这个逻辑
+
+As we discussed last episode, transistors are really just little electrically controlled switches.
+上集说过,晶体管只是电控制的开关
+
+They have three wires: two electrodes and one control wire.
+有 3 根线:2 根电极和 1 根控制线
+
+When you apply electricity to the control wire,
+控制线通电时
+
+it lets current flow through from one electrode, through the transistor, to the other electrode.
+电流就可以从一个电极流到另一个电极
+
+This is a lot like a spigot on a pipe
+就像水龙头一样
+
+-- open the tap, water flows,
+- 打开水龙头,就有水流出来
+
+close the tap, water shuts off.
+关掉水龙头,就没水了
+
+You can think of the control wire as an input,
+可以把控制线,当做输入 ( input ) \N 底部的电极,当做输出(output)
+
+and the wire coming from the bottom electrode as the output.
+可以把控制线,当做输入 ( input ) \N 底部的电极,当做输出(output)
+
+So with a single transistor, we have one input and one output.
+所以 1 个晶体管,有一个输入和一个输出
+
+If we turn the input on, the output is also on because the current can flow through it.
+如果我们打开输入(input on) \N 输出也会打开(output on) \N 因为电流可以流过
+
+If we turn the input off, the output is also off and the current can no longer pass through.
+如果关闭输入(input off) \N 输出也会关闭(output off)\N 因为电流无法通过
+
+Or in boolean terms, when the input is true, the output is true.
+或者用布尔术语来说\N 输入为 真,输出为 真
+
+And when the input is false, the output is also false.
+输入为 假 \N 输出为 假
+
+Which again we can show on a logic table.
+我们也可以把这个做成"真值表"
+
+This isn't a very exciting circuit though because its not doing anything
+这个电路没什么意思,因为它没做什么事
+
+-- the input and output are the same.
+- 输入和输出是一样的
+
+But, we can modify this circuit just a little bit to create a NOT.
+但我们可以稍加修改,实现 NOT
+
+Instead of having the output wire at the end of the transistor, we can move it before.
+与其把下面那根线当做 输出,我们可以把 输出 放到上面
+
+If we turn the input on, the transistor allows current to pass through it to the "ground",
+如果打开 输入,电流可以流过然后 "接地"
+
+and the output wire won't receive that current
+输出就没有电流,所以输出是 off
+
+- so it will be off.
+输出就没有电流,所以输出是 off
+
+In our water metaphor grounding would be like
+如果用水来举例
+
+if all the water in your house was flowing out of a huge hose
+就像家里的水都从一个大管子流走了
+
+so there wasn't any water pressure left for your shower.
+打开淋浴头一点水也没有
+
+So in this case if the input is on, output is off.
+如果输入是 on,输出是 off
+
+When we turn off the transistor, though, current is prevented from flowing down it to the ground,
+当输入是 off,电流没法接地,就流过了输出,所以输出是 on
+
+so instead, current flows through the output wire.
+当输入是 off,电流没法接地,就流过了输出,所以输出是 on
+
+So the input will be off and the output will be on.
+如果输入是 off,输出是 on
+
+And this matches our logic table for NOT, so congrats, we just built a circuit that computes NOT!
+和 NOT 操作表一样!太棒了!我们做了个有点用的电路!
+
+We call them NOT gates - we call them gates because they're controlling the path of our current.
+我们叫它 "NOT 门" \N 之所以叫 "门",是因为它能控制电流的路径
+
+The AND Boolean operation takes two inputs, but still has a single output.
+"AND"操作有 2 个输入,1 个输出
+
+In this case the output is only true if both inputs are true.
+如果 2 个输入都是 true,输出才是 true
+
+Think about it like telling the truth.
+你可以想成是 说真话
+
+You're only being completely honest if you don't lie even a little.
+如果完全不说谎,才是诚实
+
+For example, let's take the statement,
+举例,看如下这个句子
+
+"My name is Carrie Anne AND I'm wearing a blue dress".
+我叫 Carrie Anne "而且"我穿着蓝色的衣服
+
+Both of those facts are true, so the whole statement is true.
+2 个都是真的,所以整个是真的
+
+But if I said, "My name is Carrie Anne AND I'm wearing pants" that would be false,
+但如果说,我叫 Carrie Anne"而且"我穿了裤子, 就是假的
+
+because I'm not wearing pants.
+因为我没穿裤子
+
+Or trousers.
+或长裤,如果你是英国人你会用这个词……(英/美单词不同梗)
+
+If you're in England.
+或长裤,如果你是英国人你会用这个词……(英/美单词不同梗)
+
+The Carrie Anne part is true, but a true AND a false, is still false.
+虽然前半句是真的,但是 真 "AND" 假,还是假
+
+If I were to reverse that statement it would still obviously be false,
+就算把前后顺序反过来,也依然是 假
+
+and if I were to tell you two complete lies that is also false,
+如果我说 2 个假的事情,那么结果是假。
+
+and again we can write all of these combinations out in a table.
+和上次一样,可以给"AND"做个表
+
+To build an AND gate, we need two transistors connected together
+为了实现 "AND 门",我们需要 2 个晶体管连在一起
+
+so we have our two inputs and one output.
+这样有 2 个输入和 1 个输出
+
+If we turn on just transistor A, current won't flow because the current is stopped by transistor B.
+如果只打开 A,不打开 B \N 电流无法流到 output,所以输出是 false
+
+Alternatively, if transistor B is on, but the transistor A is off,
+如果只打开 B,不打开 A ,也一样,电流无法流到 output
+
+the same thing, the current can't get through.
+如果只打开 B,不打开 A ,也一样,电流无法流到 output
+
+Only if transistor A AND transistor B are on does the output wire have current.
+只有 A 和 B 都打开了,output 才有电流
+
+The last boolean operation is OR
+最后一个是 OR (前面讲了 NOT 和 AND)
+
+-- where only one input has to be true for the output to be true.
+只要 2 个输入里,其中 1 个是 true,输出就是 true
+
+For example, my name is Margaret Hamilton OR I'm wearing a blue dress.
+比如,我叫 Margaret Hamilton"或"我穿着蓝色衣服
+
+This is a true statement because although I'm not Margaret Hamilton unfortunately,
+结果是 true,虽然我不是 Margaret Hamilton
+
+I am wearing a blue dress, so the overall statement is true.
+但是我穿着蓝色衣服,所以结果是 true
+
+An OR statement is also true if both facts are true.
+对于"OR 操作"来说,\N如果 2 个 输入都是 true,输出也是 true
+
+The only time an OR statement is false is if both inputs are false.
+只有 2 个输入都是 false,OR 的结果才是 false
+
+Building an OR gate from transistors needs a few extra wires.
+实现 "OR 门" 除了晶体管还要额外的线
+
+Instead of having two transistors in series -- one after the other --
+不是串联起来。而是并联
+
+we have them in parallel.
+不是串联起来。而是并联
+
+We run wires from the current source to both transistors.
+然后左边这条线有电流输入
+
+We use this little arc to note that the wires jump over one another and aren't connected,
+我们用"小拱门"代表 2 条线没连在一起,只是跨过而已
+
+even though they look like they cross.
+虽然看起来像连在一起
+
+If both transistors are turned off, the current is prevented from flowing to the output,
+如果 A 和 B 都是 off,电流无法流过
+
+so the output is also off.
+所以输出是 off
+
+Now, if we turn on just Transistor A, current can flow to the output.
+如果打开 A,电流可以流过。输出是 on
+
+Same thing if transistor A is off, but Transistor B in on.
+如果只打开 B 也一样
+
+Basically if A OR B is on, the output is also on.
+只要 A OR B 是 on, 输出就是 on
+
+Also, if both transistors are on, the output is still on.
+如果 A 和 B 都 on,结果是 on
+
+Ok, now that we've got NOT, AND, and OR gates,
+好,现在 NOT 门, AND 门, OR 门 都搞定了
+
+and we can leave behind the constituent transistors and move up a layer of abstraction.
+我们可以进行一次抽象
+
+The standard engineers use for these gates are a triangle with a dot for a NOT,
+NOT 门的画法是三角形前面一个圆点
+
+a D for the AND, and a spaceship for the OR.
+AND 门用 D 表示 ,OR 门用太空船表示
+
+Those aren't the official names, but that's howI like to think of them.
+"D 形状和太空船"不是标准叫法, 只是我喜欢这样叫而已
+
+Representing them and thinking about them this way allows us to build even bigger components
+我们可以用这种方法表示它们,构建更大的组件
+
+while keeping the overall complexity relatively the same
+就不会变得很复杂
+
+- just remember that that mess of transistors and wires is still there.
+- 晶体管和电线依然在那里,我们只是用符号来代表而已
+
+For example, another useful boolean operation in computation is called an Exclusive OR
+除了前面说的三个\N 另一个有用的布尔操作叫 "异或"
+
+- or XOR for short.
+- 简称 XOR
+
+XOR is like a regular OR, but with one difference:
+XOR 就像普通 OR,但有一个区别:
+
+if both inputs are true, the XOR is false.
+如果 2 个输入都是 true,XOR 输出 false
+
+The only time an XOR is true is when one input is true and the other input is false.
+想要 XOR 输出 true \N 一个输入必须是 true,另一个必须是 false
+
+It's like when you go out to dinner and your meal comes with a side salad OR a soup
+就像你出去吃晚饭,你点的饭要么配沙拉,要么配汤
+
+- sadly, you can't have both!
+- 你不能两个都要!
+
+And building this from transistors is pretty confusing,
+用晶体管实现 XOR 门有点烧脑子
+
+but we can show how an XOR is created from our three basic boolean gates.
+但我可以展示一下\N 怎么用前面提到的 3 种门来做 XOR 门
+
+We know we have two inputs again -- A and B -- and one output.
+我们有 2 个输入,A 和 B ,还有 1 个输出.
+
+Let's start with an OR gate, since the logic table looks almost identical to an OR.
+我们先放一个 OR 门. 因为 OR 和 XOR 的逻辑表很像
+
+There's only one problem - when A and B are true, the logic is different from OR,
+只有 1 个问题 - 当 A 和 B 都是 true 时 \N OR 的输出和想要的 XOR 输出不一样
+
+and we need to output "false".
+我们想要 false
+
+And XOR turns out to be a very useful component,
+XOR 超有用的
+
+and we'll get to it in another episode,
+我们下次再说它
+
+so useful in fact engineers gave it its own symbol too -- an OR gate with a smile :)
+因为超有用,\N 工程师给了它一个符号,一个 OR 门 + 一个笑脸
+
+But most importantly, we can now put XOR into our metaphorical toolbox
+重要的是,现在可以把 XOR 放入"工具箱"了
+
+and not have to worry about the individual logic gates that make it up,
+不用担心 XOR 具体用了几个门
+
+or the transistors that make up those gates,
+这几个门又是怎么用晶体管拼的
+
+or how electrons are flowing through a semiconductor.
+或电子是怎么流过半导体的
+
+Moving up another layer of abstraction.
+再次向上抽象
+
+When computer engineers are designing processors, they rarely work at the transistor level,
+工程师设计处理器时,很少在晶体管的层面上思考,
+
+and instead work with much larger blocks, like logic gates, and even larger components
+而是用更大的组件,比如逻辑门,或者由逻辑门组成的更大组件,
+
+made up of logic gates, which we'll discuss in future episodes.
+我们以后会讲
+
+And even if you are a professional computer programmer,
+就算是专业程序员
+
+it's not often that you think about
+也不用考虑逻辑是怎样在物理层面实现的
+
+how the logic that you are programming is actually implemented
+也不用考虑逻辑是怎样在物理层面实现的
+
+in the physical world by these teeny tiny components.
+也不用考虑逻辑是怎样在物理层面实现的
+
+We've also moved from thinking about raw electrical signals to our first representation of data
+我们从电信号开始,到现在第一次表示数据
+
+- true and false - and we've even gotten a little taste of computation.
+- 真和假 - 开始有点"计算"的感觉了
+
+With just the logic gates in this episode,
+仅用这集讲的 逻辑门
+
+we could build a machine that evaluates complex logic statements,
+我们可以判断复杂的语句 比如:
+
+like if "Name is John Green AND after 5pm OR is Weekend AND near Pizza Hut",
+[如果是 John Green] AND [下午 5 点后] \N OR [周末] AND [在比萨店附近]
+
+then "John will want pizza" equals true.
+那么 "John 想要比萨" = 真
+
+And with that, I'm starving, I'll see you next week.
+我都说饿了,下周见
+
+Hi I'm Carrie Anne, this is Crash Course Computer Science
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+and today we're going to talk about how computers store and represent numerical data.
+今天,我们讲计算机如何存储和表示数字
+
+Which means we've got to talk about Math!
+所以会有一些数学
+
+But don't worry.
+不过别担心
+
+Every single one of you already knows exactly what you need to know to follow along.
+你们的数学水平绝对够用了
+
+So, last episode we talked about how transistors can be used to build logic gates,
+上集我们讲了,怎么用晶体管做逻辑门
+
+which can evaluate boolean statements.
+逻辑门可以判断布尔语句
+
+And in boolean algebra, there are only two, binary values: true and false.
+布尔代数只有两个值:True 和 False
+
+But if we only have two values,
+但如果只有两个值,我们怎么表达更多东西?
+
+how in the world do we represent information beyond just these two values?
+但如果只有两个值,我们怎么表达更多东西?
+
+That's where the Math comes in.
+这就需要数学了
+
+So, as we mentioned last episode, a single binary value can be used to represent a number.
+上集提到,1 个二进制值可以代表 1 个数
+
+Instead of true and false, we can call these two states 1 and 0 which is actually incredibly useful.
+我们可以把真和假 ,当做 1 和 0
+
+And if we want to represent larger things we just need to add more binary digits.
+如果想表示更多东西,加位数就行了
+
+This works exactly the same way as the decimal numbers that we're all familiar with.
+和我们熟悉的十进制一样
+
+With decimal numbers there are "only" 10 possible values a single digit can be; 0 through 9,
+十进制只有 10 个数(0到9)
+
+and to get numbers larger than 9 we just start adding more digits to the front.
+要表示大于 9 的数,加位数就行了
+
+We can do the same with binary.
+二进制也可以这样玩
+
+For example, let's take the number two hundred and sixty three.
+拿 263 举例
+
+What does this number actually represent?
+这个数字 "实际" 代表什么?
+
+Well, it means we've got 2 one-hundreds, 6 tens, and 3 ones.
+2 个 100 \N6 个 10 \N 3 个 1
+
+If you add those all together, we've got 263.
+加在一起,就是 263
+
+Notice how each column has a different multiplier.
+注意每列有不同的乘数
+
+In this case, it's 100, 10, and 1.
+100, 10, 1
+
+Each multiplier is ten times larger than the one to the right.
+每个乘数都比右边大十倍
+
+That's because each column has ten possible digits to work with, 0 through 9,
+因为每列有 10 个可能的数字(0到9)
+
+after which you have to carry one to the next column.
+如果超过 9,要在下一列进 1.
+
+For this reason, it's called base-ten notation, also called decimal since deci means ten.
+因此叫 "基于十的表示法" 或十进制
+
+AND Binary works exactly the same way, it's just base-two.
+二进制也一样,只不过是基于 2 而已
+
+That's because there are only two possible digits in binary - 1 and 0.
+因为二进制只有两个可能的数, 1 和 0
+
+This means that each multiplier has to be two times larger than the column to its right.
+意味着每个乘数必须是右侧乘数的两倍
+
+Instead of hundreds, tens, and ones, we now have fours, twos and ones.
+就不是之前的 100, 10, 1 \N 而是 4, 2, 1
+
+Take for example the binary number: 101.
+拿二进制数 101 举例
+
+This means we have 1 four, 0 twos, and 1 one.
+意味着有\N 1个 "4" \N 0个 "2" \N 1个 "1"
+
+Add those all together and we've got the number 5 in base ten.
+加在一起,得到十进制的 5
+
+But to represent larger numbers, binary needs a lot more digits.
+为了表示更大的数字,二进制需要更多位数
+
+Take this number in binary 10110111.
+拿二进制数 10110111 举例
+
+We can convert it to decimal in the same way.
+我们可以用相同的方法转成十进制
+
+We have 1 x 128, 0 x 64, 1 x 32, 1 x 16, 0 x 8, 1 x 4, 1 x 2, and 1 x 1.
+1 x 128 ,0 x 64 ,1 x 32 ,1 x 16 \N 0 x 8 ,1 x 4 ,1 x 2 ,1 x 1
+
+Which all adds up to 183.
+加起来等于 183
+
+Math with binary numbers isn't hard either.
+二进制数的计算也不难
+
+Take for example decimal addition of 183 plus 19.
+以十进制数 183 加 19 举例
+
+First we add 3 + 9, that's 12, so we put 2 as the sum and carry 1 to the ten's column.
+首先 3 + 9,得到 12,然后位数记作 2,向前进 1
+
+Now we add 8 plus 1 plus the 1 we carried, thats 10, so the sum is 0 carry 1.
+现在算 8+1+1=10,所以位数记作0,再向前进 1
+
+Finally we add 1 plus the 1 we carried, which equals 2.
+最后 1+1=2,位数记作2
+
+So the total sum is 202.
+所以和是202
+
+Here's the same sum but in binary.
+二进制也一样
+
+Just as before, we start with the ones column.
+和之前一样,从个位开始
+
+Adding 1+1 results in 2, even in binary.
+1+1=2,在二进制中也是如此
+
+But, there is no symbol "2" so we use 10 and put 0 as our sum and carry the 1.
+但二进制中没有 2,所以位数记作 0 ,进 1
+
+Just like in our decimal example.
+就像十进制的例子一样
+
+1 plus 1, plus the 1 carried,
+1+1,再加上进位的1
+
+equals 3 or 11 in binary,
+等于 3,用二进制表示是 11
+
+so we put the sum as 1 and we carry 1 again, and so on.
+所以位数记作 1,再进 1,以此类推
+
+We end up with this number, which is the same as the number 202 in base ten.
+最后得到这个数字,跟十进制 202 是一样的
+
+Each of these binary digits, 1 or 0, is called a "bit".
+二进制中,一个 1 或 0 叫一"位"
+
+So in these last few examples, we were using 8-bit numbers with their lowest value of zero
+上个例子我们用了 8 位 , 8 位能表示的最小数是 0, 8位都是0
+
+and highest value is 255, which requires all 8 bits to be set to 1.
+最大数是 255,8 位都是 1
+
+Thats 256 different values, or 2 to the 8th power.
+能表示 256 个不同的值,2 的 8 次方
+
+You might have heard of 8-bit computers, or 8-bit graphics or audio.
+你可能听过 8 位机,8 位图像,8 位音乐
+
+These were computers that did most of their operations in chunks of 8 bits.
+意思是计算机里\N 大部分操作都是 8 位 8 位这样处理的
+
+But 256 different values isn't a lot to work with, so it meant things like 8-bit games
+但 256 个值不算多,意味着 8位游戏只能用 256 种颜色
+
+were limited to 256 different colors for their graphics.
+但 256 个值不算多,意味着 8位游戏只能用 256 种颜色
+
+And 8-bits is such a common size in computing, it has a special word: a byte.
+8 位是如此常见,以至于有专门的名字:字节
+
+A byte is 8 bits.
+1 字节 = 8 位 \N 1 bytes = 8 bits
+
+If you've got 10 bytes, it means you've really got 80 bits.
+如果有 10 个字节,意味着有 80 位
+
+You've heard of kilobytes, megabytes, gigabytes and so on.
+你听过 千字节(kb)兆字节(mb)千兆字节(gb)
+
+These prefixes denote different scales of data.
+不同前缀代表不同数量级
+
+Just like one kilogram is a thousand grams,
+就像 1 千克 = 1000 克,1 千字节 = 1000 字节
+
+1 kilobyte is a thousand bytes.
+就像 1 千克 = 1000 克,1 千字节 = 1000 字节
+
+or really 8000 bits.
+或 8000 位
+
+Mega is a million bytes (MB), and giga is a billion bytes (GB).
+Mega 是百万字节(MB), Giga 是十亿字节(GB)
+
+Today you might even have a hard drive that has 1 terabyte (TB) of storage.
+如今你可能有 1 TB 的硬盘
+
+That's 8 trillion ones and zeros.
+8 万亿个1和0
+
+But hold on!
+等等,我们有另一种计算方法
+
+That's not always true.
+等等,我们有另一种计算方法
+
+In binary, a kilobyte has two to the power of 10 bytes, or 1024.
+二进制里,1 千字节 = 2的10次方 = 1024 字节
+
+1000 is also right when talking about kilobytes,
+1000 也是千字节(KB)的正确单位
+
+but we should acknowledge it isn't the only correct definition.
+1000 和 1024 都对
+
+You've probably also heard the term 32-bit or 64-bit computers
+你可能听过 32 位 或 64 位计算机
+
+C you're almost certainly using one right now.
+你现在用的电脑肯定是其中一种
+
+What this means is that they operate in chunks of 32 or 64 bits.
+意思是一块块处理数据,每块是 32 位或 64 位
+
+That's a lot of bits!
+这可是很多位
+
+The largest number you can represent with 32 bits is just under 4.3 billion.
+32 位能表示的最大数,是 43 亿左右
+
+Which is thirty-two 1's in binary.
+也就是 32 个 1
+
+This is why our Instagram photos are so smooth and pretty
+所以 Instagram 照片很清晰
+
+- they are composed of millions of colors,
+- 它们有上百万种颜色
+
+because computers today use 32-bit color graphics
+因为如今都用 32 位颜色
+
+Of course, not everything is a positive number
+当然,不是所有数字都是正数
+
+- like my bank account in college.
+比如我上大学时的银行账户 T_T
+
+So we need a way to represent positive and negative numbers.
+我们需要有方法表示正数和负数
+
+Most computers use the first bit for the sign:
+大部分计算机用第一位表示正负:
+
+1 for negative, 0 for positive numbers,
+1 是负,0 是正
+
+and then use the remaining 31 bits for the number itself.
+用剩下 31 位来表示数字
+
+That gives us a range of roughly plus or minus two billion.
+能表示的数字范围是 正 20 亿到负 20 亿
+
+While this is a pretty big range of numbers, it's not enough for many tasks.
+虽然是很大的数,但有时还不够用
+
+There are 7 billion people on the earth, and the US national debt is almost 20 trillion dollars after all.
+全球有 70 亿人口,美国国债近 20 万亿美元
+
+This is why 64-bit numbers are useful.
+所以 64 位数很有用
+
+The largest value a 64-bit number can represent is around 9.2 quintillion!
+64 位能表达最大数是 9.2x10
+
+That's a lot of possible numbers and will hopefully stay above the US national debt for a while!
+希望美国国债在一段时间内不会超过这个数!
+
+Most importantly, as we'll discuss in a later episode,
+重要的是(我们之后的视频会深入讲)
+
+computers must label locations in their memory,
+计算机必须给内存中每一个位置,做一个 "标记"
+
+known as addresses, in order to store and retrieve values.
+这个标记叫 "位址", 目的是为了方便存取数据
+
+As computer memory has grown to gigabytes and terabytes - that's trillions of bytes
+如今硬盘已经增长到 GB 和 TB,上万亿个字节!
+
+it was necessary to have 64-bit memory addresses as well.
+内存地址也应该有 64 位
+
+In addition to negative and positive numbers,
+除了负数和正数,计算机也要处理非整数
+
+computers must deal with numbers that are not whole numbers,
+除了负数和正数,计算机也要处理非整数
+
+like 12.7 and 3.14, or maybe even stardate: 43989.1.
+比如 12.7 和 3.14,或"星历 43989.1"
+
+These are called "floating point" numbers,
+这叫 浮点数
+
+because the decimal point can float around in the middle of number.
+因为小数点可以在数字间浮动
+
+Several methods have been developed to represent floating point numbers.
+有好几种方法 表示浮点数
+
+The most common of which is the IEEE 754 standard.
+最常见的是 IEEE 754 标准
+
+And you thought historians were the only people bad at naming things!
+你以为只有历史学家取名很烂吗?
+
+In essence, this standard stores decimal values sort of like scientific notation.
+它用类似科学计数法的方法,来存十进制值
+
+For example, 625.9 can be written as 0.6259 x 10^3.
+例如,625.9 可以写成 0.6259×10 ^ 3
+
+There are two important numbers here: the .6259 is called the significand.
+这里有两个重要数字:.6259 叫 "有效位数" , 3 是指数
+
+And 3 is the exponent.
+这里有两个重要数字:.6259 叫 "有效位数" , 3 是指数
+
+In a 32-bit floating point number,
+在 32 位浮点数中
+
+the first bit is used for the sign of the number -- positive or negative.
+第 1 位表示数字的正负
+
+The next 8 bits are used to store the exponent
+接下来 8 位存指数
+
+and the remaining 23 bits are used to store the significand.
+剩下 23 位存有效位数
+
+Ok, we've talked a lot about numbers, but your name is probably composed of letters,
+好了,聊够数字了,但你的名字是字母组成的
+
+so it's really useful for computers to also have a way to represent text.
+所以我们也要表示文字
+
+However, rather than have a special form of storage for letters,
+与其用特殊方式来表示字母 \N 计算机可以用数字表示字母
+
+computers simply use numbers to represent letters.
+与其用特殊方式来表示字母 \N 计算机可以用数字表示字母
+
+The most straightforward approach might be to simply number the letters of the alphabet:
+最直接的方法是给字母编号:
+
+A being 1, B being 2, C 3, and so on.
+A是1,B是2,C是3,以此类推
+
+In fact, Francis Bacon, the famous English writer,
+著名英国作家 弗朗西斯·培根(Francis Bacon)
+
+used five-bit sequences to encode all 26 letters of the English alphabet
+曾用 5位序列 来编码英文的 26 个字母
+
+to send secret messages back in the 1600s.
+在十六世纪传递机密信件
+
+And five bits can store 32 possible values - so that's enough for the 26 letters,
+五位(bit)可以存 32 个可能值(2^5) - 这对26个字母够了
+
+but not enough for punctuation, digits, and upper and lower case letters.
+但不能表示 标点符号,数字和大小写字母
+
+Enter ASCII, the American Standard Code for Information Interchange.
+ASCII,美国信息交换标准代码
+
+Invented in 1963, ASCII was a 7-bit code, enough to store 128 different values.
+发明于 1963 年,ASCII 是 7 位代码,足够存 128 个不同值
+
+With this expanded range, it could encode capital letters, lowercase letters,
+范围扩大之后,可以表示大写字母,小写字母,
+
+digits 0 through 9, and symbols like the @ sign and punctuation marks.
+数字 0 到 9, @ 这样的符号, 以及标点符号
+
+For example, a lowercase 'a' is represented by the number 97, while a capital 'A' is 65.
+举例,小写字母 a 用数字 97 表示,大写字母 A 是 65
+
+A colon is 58 and a closed parenthesis is 41.
+: 是58 \n ) 是41
+
+ASCII even had a selection of special command codes,
+ASCII 甚至有特殊命令符号
+
+such as a newline character to tell the computer where to wrap a line to the next row.
+比如换行符,用来告诉计算机换行
+
+In older computer systems,
+在老计算机系统中
+
+the line of text would literally continue off the edge of the screen if you didn't include a new line character!
+如果没换行符,文字会超出屏幕
+
+Because ASCII was such an early standard,
+因为 ASCII 是个很早的标准
+
+it became widely used,
+所以它被广泛使用
+
+and critically, allowed different computers built by different companies to exchange data.
+让不同公司制作的计算机,能互相交换数据
+
+This ability to universally exchange information is called "interoperability".
+这种通用交换信息的能力叫 "互用性"
+
+However, it did have a major limitation: it was really only designed for English.
+但有个限制:它是为英语设计的
+
+Fortunately, there are 8 bits in a byte, not 7,
+幸运的是,一个字节有8位,而不是7位
+
+and it soon became popular to use codes 128 through 255,
+128 到 255 的字符渐渐变得常用
+
+previously unused, for "national" characters.
+这些字符以前是空的,是给各个国家自己 "保留使用的"
+
+In the US, those extra numbers were largely used to encode additional symbols,
+在美国,这些额外的数字主要用于编码附加符号
+
+like mathematical notation, graphical elements, and common accented characters.
+比如数学符号,图形元素和常用的重音字符
+
+On the other hand, while the Latin characters were used universally,
+另一方面,虽然拉丁字符被普遍使用
+
+Russian computers used the extra codes to encode Cyrillic characters,
+在俄罗斯,他们用这些额外的字符表示西里尔字符
+
+and Greek computers, Greek letters, and so on.
+而希腊电脑用希腊字母,等等
+
+And national character codes worked pretty well for most countries.
+这些保留下来给每个国家自己安排的空位,\N 对大部分国家都够用
+
+The problem was,
+问题是
+
+if you opened an email written in Latvian on a Turkish computer,
+如果在 土耳其 电脑上打开 拉脱维亚语 写的电子邮件
+
+the result was completely incomprehensible.
+会显示乱码
+
+And things totally broke with the rise of computing in Asia,
+随着计算机在亚洲兴起,这种做法彻底失效了
+
+as languages like Chinese and Japanese have thousands of characters.
+中文和日文这样的语言有数千个字符
+
+There was no way to encode all those characters in 8-bits!
+根本没办法用 8 位来表示所有字符!
+
+In response, each country invented multi-byte encoding schemes,
+为了解决这个问题,每个国家都发明了多字节编码方案
+
+all of which were mutually incompatible.
+但不相互兼容
+
+The Japanese were so familiar with this encoding problem that they had a special name for it:
+日本人总是碰到编码问题,以至于专门有词来称呼:
+
+"mojibake", which means "scrambled text".
+"mojibake" 意思是 乱码
+
+And so it was born - Unicode - one format to rule them all.
+所以 Unicode 诞生了 - 统一所有编码的标准
+
+Devised in 1992 to finally do away with all of the different international schemes
+设计于 1992 年,解决了不同国家不同标准的问题
+
+it replaced them with one universal encoding scheme.
+Unicode 用一个统一编码方案
+
+The most common version of Unicode uses 16 bits with space for over a million codes -
+最常见的 Unicode 是 16 位的,有超过一百万个位置 -
+
+enough for every single character from every language ever used
+对所有语言的每个字符都够了
+
+more than 120,000 of them in over 100 types of script
+100 多种字母表加起来占了 12 万个位置。
+
+plus space for mathematical symbols and even graphical characters like Emoji.
+还有位置放数学符号,甚至 Emoji
+
+And in the same way that ASCII defines a scheme for encoding letters as binary numbers,
+就像 ASCII 用二进制来表示字母一样
+
+other file formats - like MP3s or GIFs -
+其他格式 - 比如 MP3 或 GIF -
+
+use binary numbers to encode sounds or colors of a pixel in our photos, movies, and music.
+用二进制编码声音/颜色,表示照片,电影,音乐
+
+Most importantly, under the hood it all comes down to long sequences of bits.
+重要的是,这些标准归根到底是一长串位
+
+Text messages, this YouTube video, every webpage on the internet,
+短信,这个 YouTube 视频,互联网上的每个网页
+
+and even your computer's operating system, are nothing but long sequences of 1s and 0s.
+甚至操作系统,只不过是一长串 1 和 0
+
+So next week,
+下周
+
+we'll start talking about how your computer starts manipulating those binary sequences,
+我们会聊计算机怎么操作二进制
+
+for our first true taste of computation.
+初尝"计算"的滋味
+
+Thanks for watching. See you next week.
+感谢观看,下周见
+
+Hi, I'm Carrie Ann and this is Crash Course Computer Science.
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课
+
+So last episode, we talked about how numbers can be represented in binary.
+上集,我们谈了如何用二进制表示数字
+
+Representing Like, 00101010 is 42 in decimal.
+比如二进制 00101010 是十进制的 42
+
+Representing and storing numbers is an important function of a computer,
+表示和存储数字是计算机的重要功能
+
+but the real goal is computation, or manipulating numbers in a structured and purposeful way,
+但真正的目标是计算,有意义的处理数字
+
+like adding two numbers together.
+比如把两个数字相加
+
+These operations are handled by a computer's Arithmetic and Logic Unit,
+这些操作由计算机的 "算术逻辑单元 "处理
+
+but most people call it by its street name:
+但大家会简称:ALU
+
+the ALU.
+但大家会简称:ALU
+
+The ALU is the mathematical brain of a computer.
+ALU 是计算机的数学大脑
+
+When you understand an ALU's design and function,
+等你理解了 ALU 的设计和功能之后
+
+you'll understand a fundamental part of modern computers.
+你就理解了现代计算机的基石
+
+It is THE thing that does all of the computation in a computer,
+ALU *就是* 计算机里负责运算的组件\N 基本其他所有部件都用到了它
+
+so basically everything uses it.
+ALU *就是* 计算机里负责运算的组件\N 基本其他所有部件都用到了它
+
+First though, look at this beauty.
+先来看看这个美人
+
+This is perhaps the most famous ALU ever, the Intel 74181.
+这可能是最著名的 ALU,英特尔 74181
+
+When it was released in 1970,
+1970 年发布时,它是第一个封装在单个芯片内的完整 ALU
+
+it was It was the first complete ALU that fit entirely inside of a single chip -
+1970 年发布时,它是第一个封装在单个芯片内的完整 ALU
+
+Which was a huge engineering feat at the time.
+这在当时是惊人的工程壮举
+
+So today we're going to take those Boolean logic gates we learned about last week
+今天我们用上周学的布尔逻辑门
+
+to build a simple ALU circuit with much of the same functionality as the 74181.
+做一个简单的 ALU 电路,功能和 74181 一样
+
+And over the next few episodes we'll use this to construct a computer from scratch.
+然后接下来几集,用它从头做出一台电脑
+
+So it's going to get a little bit complicated,
+所以会有点复杂
+
+but I think you guys can handle it.
+但我觉得你们搞的定
+
+An ALU is really two units in one
+ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元
+
+-- there's an arithmetic unit and a logic unit.
+ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元
+
+Let's start with the arithmetic unit,
+我们先讲"算术单元",它负责计算机里的所有数字操作
+
+which is responsible for handling all numerical operations in a computer,
+我们先讲"算术单元",它负责计算机里的所有数字操作
+
+like addition and subtraction.
+比如加减法
+
+It also does a bunch of other simple things like add one to a number,
+它还做很多其他事情,比如给某个数字+1
+
+which is called an increment operation, but we'll talk about those later.
+这叫增量运算,我们之后会说
+
+Today, we're going to focus on the piece of rsistance, the crme de la crme of operations
+今天的重点是一切的根本 - "把两个数字相加"
+
+that underlies almost everything else a computer does - adding two numbers together.
+今天的重点是一切的根本 - "把两个数字相加"
+
+We could build this circuit entirely out of individual transistors,
+我们可以用单个晶体管一个个拼,把这个电路做出来,\N 但很快就会复杂的难以理解
+
+but that would get confusing really fast.
+我们可以用单个晶体管一个个拼,把这个电路做出来,\N 但很快就会复杂的难以理解
+
+So instead as we talked about in Episode 3
+所以与其用晶体管,我们会像第 3 集
+
+- we can use a high-level of abstraction and build our components out of logic gates,
+- 用更高层的抽象,用逻辑门来做
+
+in this case: AND, OR, NOT and XOR gates.
+我们会用到 AND,OR,NOT 和 XOR 逻辑门
+
+The simplest adding circuit that we can build takes two binary digits, and adds them together.
+最简单的加法电路, \N 是拿 2 个 bit 加在一起(bit 是 0 或 1)
+
+So we have two inputs, A and B, and one output, which is the sum of those two digits.
+有 2 个输入:A 和 B, 1 个输出:就是两个数字的和
+
+Just to clarify: A, B and the output are all single bits.
+需要注意的是:A, B, 输出,这3个都是单个 Bit ( 0 或 1 )
+
+There are only four possible input combinations.
+输入只有四种可能
+
+The first three are: 0+0 = 0
+前三个是\N 0 + 0 = 0 \N 1 + 0 = 1 \N 0 + 1 = 1
+
+1+0 = 1 0+1 = 1
+前三个是\N 0 + 0 = 0 \N 1 + 0 = 1 \N 0 + 1 = 1
+
+Remember that in binary, 1 is the same as true, and 0 is the same as false.
+记住二进制里,1 与 true 相同,0 与 false 相同
+
+So this set of inputs exactly matches the boolean logic of an XOR gate,
+这组输入和输出,和 XOR 门的逻辑完全一样
+
+and we can use it as our 1-bit adder.
+所以我们可以把 XOR 用作 1 位加法器(adder)
+
+But the fourth input combination, 1 + 1, is a special case. 1 + 1 is 2 (obviously)
+但第四个输入组合,1+1,是个特例 \N 1+1=2(显然)
+
+but there's no 2 digit in binary,
+但二进制里没有 2
+
+so as we talked about last episode, the result is 0 and the 1 is carried to the next column.
+上集说过,二进制 1+1 的结果是0,1进到下一位
+
+So the sum is really 10 in binary.
+和是 10 (二进制)
+
+Now, the output of our XOR gate is partially correct - 1 plus 1, outputs 0.
+XOR 门的输出,只对了一部分, 1+1 输出 0
+
+But, we need an extra output wire for that carry bit.
+但我们需要一根额外的线代表 "进位"
+
+The carry bit is only "true" when the inputs are 1 AND 1,
+只有输入是 1 和 1 时,进位才是 "true"
+
+because that's the only time when the result (two) is bigger than 1 bit can store
+因为算出来的结果用 1 个 bit 存不下
+
+and conveniently we have a gate for that!
+方便的是,我们刚好有个逻辑门能做这个事!
+
+It's not that complicated - just two logic gates -
+没那么复杂 - 就两个逻辑门而已
+
+but let's abstract away even this level of detail
+让我们抽象化
+
+and encapsulate our newly minted half adder as its own component,
+把 "半加器" 封装成一个单独组件
+
+with two inputs - bits A and B - and two outputs, the sum and the carry bits.
+两个输入 A 和 B 都是 1 位 \N 两个输出 "总和" 与 "进位"
+
+This takes us to another level of abstraction
+这进入了另一层抽象
+
+heh I feel like I say that a lot.
+我好像说了很多次,说不定会变成一个梗
+
+I wonder if this is going to become a thing.
+我好像说了很多次,说不定会变成一个梗
+
+Anyway, If you want to add more than 1 + 1
+如果想处理超过 1+1 的运算,我们需要"全加器"
+
+we're going to need a "Full Adder."
+如果想处理超过 1+1 的运算,我们需要"全加器"
+
+That half-adder left us with a carry bit as output.
+半加器 输出了进位
+
+That means that when we move on to the next column in a multi-column addition,
+意味着,我们算下一列的时候
+
+and every column after that, we are going to have to add three bits together, no two.
+还有之后的每一列,我们得加 3 个位在一起,并不是 2 个
+
+A full adder is a bit more complicated
+全加器复杂了一点点
+
+全加器表格
+
+- it takes three bits as inputs: A, B and C.
+有 3 个输入:A, B, C (都是 1 个 bit)
+
+So the maximum possible input is 1 + 1 + 1,
+所以最大的可能是 1 + 1 + 1
+
+which equals 1 carry out 1, so we still only need two output wires: sum and carry.
+"总和"1 "进位"1 \N 所以要两条输出线: "总和"和"进位"
+
+We can build a full adder using half adders.
+我们可以用 半加器 做 全加器
+
+To do this, we use a half adder to add A plus B
+我们先用半加器将 A 和 B 相加
+
+just like before - but then feed that result and input C into a second half adder.
+然后把 C 输入到第二个半加器
+
+Lastly, we need a OR gate to check if either one of the carry bits was true.
+最后用一个 OR 门检查进位是不是 true
+
+That's it, we just made a full adder!
+这样就做出了一个全加器!
+
+Again,we can go up a level of abstraction and wrap up this full adder as its own component.
+我们可以再提升一层抽象,把全加器作为独立组件
+
+It takes three inputs, adds them, and outputs the sum and the carry, if there is one.
+全加器会把 A,B,C 三个输入加起来 \N 输出 "总和" 和 "进位"
+
+Armed with our new components, we can now build a circuit that takes two, 8-bit numbers
+现在有了新组件,我们可以相加两个 8 位数字
+
+Let's call them A and B and adds them together.
+叫两个数字叫 A 和 B 好了
+
+Let's start with the very first bit of A and B,
+我们从 A 和 B 的第一位开始
+
+which we'll call A0 and B0.
+叫 A0 和 B0 好了
+
+At this point, there is no carry bit to deal with,
+现在不用处理任何进位,因为是第一次加法
+
+because this is our first addition.
+现在不用处理任何进位,因为是第一次加法
+
+So we can use our half adder to add these two bits together.
+所以我们可以用半加器,来加这2个数字
+
+The output is sum0.
+输出叫 sum0
+
+Now we want to add A1 and B1 together.
+现在加 A1 和 B1
+
+It's possible there was a carry from the previous addition of A0 and B0,
+因为 A0 和 B0 的结果有可能进位
+
+so this time we need to use a full adder that also inputs the carry bit.
+所以这次要用全加器,除了 A1 和 B1,还要连上进位
+
+We output this result as sum1.
+输出叫 sum1
+
+Then, we take any carry from this full adder,
+然后,把这个全加器的进位 \N 连到下个全加器的输入,处理 A2 和 B2
+
+and run it into the next full adder that handles A2 and B2.
+然后,把这个全加器的进位 \N 连到下个全加器的输入,处理 A2 和 B2
+
+And we just keep doing this in a big chain until all 8 bits have been added.
+以此类推,把 8 个 bit 都搞定
+
+Notice how the carry bits ripple forward to each subsequent adder.
+注意每个进位是怎么连到下一个全加器的
+
+For this reason, this is called an 8-bit ripple carry adder.
+所以叫 "8位行波进位加法器"
+
+Notice how our last full adder has a carry out.
+注意最后一个全加器有 "进位" 的输出
+
+If there is a carry into the 9th bit, it means the sum of the two numbers is too large to fit into 8-bits.
+如果第 9 位有进位,代表着 2 个数字的和太大了,超过了 8 位
+
+This is called an overflow.
+这叫 "溢出" (overflow)
+
+In general, an overflow occurs when the result of an addition is too large
+一般来说 "溢出" 的意思是, 两个数字的和太大了
+
+to be represented by the number of bits you are using.
+超过了用来表示的位数
+
+This can usually cause errors and unexpected behavior.
+这会导致错误和不可预期的结果
+
+Famously, the original PacMan arcade game used 8 bits to keep track of what level you were on.
+著名的例子是,吃豆人用 8 位存当前关卡数
+
+This meant that if you made it past level 255 - the largest number storablein 8 bits - to level 256,
+如果你玩到了第 256 关( 8 位 bit 最大表示 255)
+
+the ALU overflowed.
+ALU 会溢出
+
+This caused a bunch of errors and glitches making the level unbeatable.
+造成一连串错误和乱码,使得该关卡无法进行
+
+The bug became a rite of passage for the greatest PacMan players.
+这个 bug 成了厉害吃豆人玩家的代表
+
+So if we want to avoid overflows,
+如果想避免溢出
+
+we can extend our circuit with more full adders, allowing us to add 16 or 32 bit numbers.
+我们可以加更多全加器,可以操作 16 或 32 位数字
+
+This makes overflows less likely to happen, but at the expense of more gates.
+让溢出更难发生,但代价是更多逻辑门
+
+An additional downside is that it takes a little bit of time for each of the carries to ripple forward.
+另外一个缺点是,每次进位都要一点时间
+
+Admittedly, not very much time, electrons move pretty fast,
+当然时间不久,因为电子移动的很快
+
+so we're talking about billionths of a second,
+但如今的量级是每秒几十亿次运算,所以会造成影响
+
+but that's enough to make a difference in today's fast computers.
+但如今的量级是每秒几十亿次运算,所以会造成影响
+
+For this reason, modern computers use a slightly different adding circuit
+所以,现代计算机用的加法电路有点不同
+
+called a 'carry-look-ahead' adder
+叫 "超前进位加法器"
+
+which is faster, but ultimately does exactly the same thing
+它更快,做的事情是一样的 - 把二进制数相加
+
+-- adds binary numbers.
+它更快,做的事情是一样的 - 把二进制数相加
+
+The ALU's arithmetic unit also has circuits for other math operations
+ALU 的算术单元,也能做一些其他数学运算
+
+and in general these 8 operations are always supported.
+一般支持这 8 个操作
+
+And like our adder, these other operations are built from individual logic gates.
+就像加法器一样,这些操作也是由逻辑门构成的
+
+Interestingly, you may have noticed that there are no multiply and divide operations.
+有趣的是,你可能注意到没有乘法和除法
+
+That's because simple ALUs don't have a circuit for this,
+因为简单的 ALU 没有专门的电路来处理
+
+and instead just perform a series of additions.
+而是把乘法用多次加法来实现
+
+Let's say you want to multiply 12 by 5.
+假设想算 12x5
+
+That's the same thing as adding 12 to itself 5 times.
+这和把 "12" 加 5 次是一样的
+
+So it would take 5 passes through the ALU to do this one multiplication.
+所以要 5 次 ALU 操作来实现这个乘法
+
+And this is how many simple processors,
+很多简单处理器都是这样做的
+
+like those in your thermostat, TV remote, and microwave, do multiplication.
+比如恒温器,电视遥控器和微波炉
+
+It's slow, but it gets the job done.
+慢是慢,但是搞的定
+
+However, fancier processors, like those in your laptop or smartphone,
+然而笔记本和手机有更好的处理器
+
+have arithmetic units with dedicated circuits for multiplication.
+有专门做乘法的算术单元
+
+And as you might expect, the circuit is more complicated than addition
+你可能猜到了,乘法电路比加法复杂
+
+-- there's no magic, it just takes a lot more logic gates
+- 没什么魔法,只是更多逻辑门
+
+which is why less expensive processors don't have this feature.
+所以便宜的处理器没有.
+
+Ok, let's move on to the other half of the ALU:
+好了,我们现在讲 ALU 的另一半:逻辑单元
+
+the Logic Unit.
+好了,我们现在讲 ALU 的另一半:逻辑单元
+
+Instead of arithmetic operations, the Logic Unit performs well...
+逻辑单元执行逻辑操作
+
+logical operations, like AND, OR and NOT, which we've talked about previously.
+比如之前讨论过的 AND,OR 和 NOT 操作
+
+It also performs simple numerical tests,
+它也能做简单的数值测试
+
+like checking if a number is negative.
+比如一个数字是不是负数
+
+For example, here's a circuit that tests if the output of the ALU is zero.
+例如,这是检查 ALU 输出是否为 0 的电路
+
+It does this using a bunch of OR gates to see if any of the bits are 1.
+它用一堆 OR 门检查其中一位是否为 1
+
+Even if one single bit is 1,
+哪怕只有一个 Bit (位) 是1,
+
+we know the number can't be zero and then we use a final NOT gate to flip this input
+我们就知道那个数字肯定不是 0,然后用一个 NOT 门取反
+
+so the output is 1 only if the input number is 0.
+所以只有输入的数字是 0,输出才为 1
+
+So that's a high level overview of what makes up an ALU.
+以上就是 ALU 的一个高层次概括
+
+We even built several of the main components from scratch, like our ripple adder.
+我们甚至从零做了几个主要组件,比如行波进位加法器
+
+As you saw, it's just a big bunch of logic gates connected in clever ways.
+它们只是一大堆逻辑门巧妙的连在一起而已.
+
+Which brings us back to that ALU you admired so much at the beginning of the episode.
+让我们回到视频开始时的 ALU,英特尔 74181
+
+The Intel 74181.
+让我们回到视频开始时的 ALU,英特尔 74181
+
+Unlike the 8-bit ALU we made today, the 74181 could only handle 4-bit inputs,
+和我们刚刚做的 8 位 ALU 不同,74181 只能处理 4 位输入
+
+which means
+也就是说
+
+YOU BUILT AN ALU THAT'S LIKE TWICE AS GOOD AS THAT SUPER FAMOUS ONE. WITH YOUR MIND!
+你刚做了一个比英特尔 74181 还好的 ALU !
+
+Well.. sort of.
+其实 差不多啦..
+
+We didn't build the whole thing
+我们虽然没有全部造出来
+
+but you get the idea.
+但你理解了整体概念
+
+The 74181 used about 70 logic gates, and it couldn't multiply or divide.
+74181 用了大概 70 个逻辑门,但不能执行乘除.
+
+But it was a huge step forward in miniaturization,
+但它向小型化迈出了一大步
+
+opening the doors to more capable and less expensive computers.
+让计算机可以更强大更便宜
+
+This 4-bit ALU circuit is already a lot to take in,
+4 位 ALU 已经要很多逻辑门了
+
+but our 8-bit ALU would require hundreds of logic gates to fully build
+但我们的 8 位 ALU 会需要数百个逻辑门
+
+and engineers don't want to see all that complexity when using an ALU,
+工程师不想在用 ALU 时去想那些事情,
+
+so they came up with a special symbol to wrap it all up, which looks like a big V'.
+所以想了一个特殊符号来代表它,看起来像一个大 "V"
+
+Just another level of abstraction!
+又一层抽象!
+
+Our 8-bit ALU has two inputs, A and B, each with 8 bits.
+我们的 8 位 ALU 有两个输入,A和B,都是 8 位 (bits)
+
+We also need a way to specify what operation the ALU should perform,
+我们还需要告诉 ALU 执行什么操作
+
+for example, addition or subtraction.
+例如加法或减法
+
+For that, we use a 4-bit operation code.
+所以我们用 4 位的操作代码
+
+We'll talk about this more in a later episode,
+我们之后的视频会再细说
+
+but in brief, 1000 might be the command to add, while 1100 is the command for subtract.
+简言之,"1000"可能代表加法命令 \N "1100"代表减法命令
+
+Basically, the operation code tells the ALU what operation to perform.
+操作代码告诉 ALU 执行什么操作
+
+And the result of that operation on inputs A and B is an 8-bit output.
+输出结果是 8 位的
+
+ALUs also output a series of Flags,
+ALU 还会输出一堆标志(Flag)
+
+which are 1-bit outputs for particular states and statuses.
+"标志"是1位的,代表特定状态.
+
+For example, if we subtract two numbers, and the result is 0,
+比如相减两个数字,结果为 0
+
+our zero-testing circuit, the one we made earlier, sets the Zero Flag to True (1).
+我们的零测试电路(前面做的)\N 会将零标志设为 True(1)
+
+This is useful if we are trying to determine if two numbers are are equal.
+如果想知道两个数字是否相等,这个非常有用
+
+If we wanted to test if A was less than B,
+如果想知道: A 是否小于 B
+
+we can use the ALU to calculate A subtract B and look to see if the Negative Flag was set to true.
+可以用 ALU 来算 A 减 B,看负标志是否为 true
+
+If it was, we know that A was smaller than B.
+如果是 true,我们就知道 A 小于 B
+
+And finally, there's also a wire attached to the carry out on the adder we built,
+最后,还有一条线连到加法器的进位
+
+so if there is an overflow, we'll know about it.
+如果有溢出,我们就知道
+
+This is called the Overflow Flag.
+这叫溢出标志
+
+Fancier ALUs will have more flags,
+高级 ALU 有更多标志
+
+but these three flags are universal and frequently used.
+但这 3 个标志是 ALU 普遍用的
+
+In fact, we'll be using them soon in a future episode.
+其实,我们之后的视频会用到它们
+
+So now you know how your computer does all its basic mathematical operations digitally
+现在你知道了\N 计算机是怎样在没有齿轮或杠杆的情况下 进行运算
+
+with no gears or levers required.
+现在你知道了\N 计算机是怎样在没有齿轮或杠杆的情况下 进行运算
+
+We're going to use this ALU when we construct our CPU two episodes from now.
+接下来两集 我们会用 ALU 做 CPU
+
+But before that, our computer is going to need some memory!
+但在此之前,计算机需要一些 "记忆" !
+
+We'll talk about that next week.
+我们下周会讲
+
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课
+
+So last episode, using just logic gates, we built a simple ALU,
+上集,我们用逻辑门做了个简单 ALU
+
+which performs arithmetic and logic operations, hence the 'A' and the 'L'.
+它能执行算术(Arithmetic)和逻辑(Logic)运算 \N ALU 里的 A 和 L 因此得名
+
+But of course, there's not much point in calculating a result only to throw it away
+当然,算出来之后如果扔掉就没什么意义了
+
+- it would be useful to store that value somehow,
+得找个方法存起来
+
+and maybe even run several operations in a row.
+可能还要进行多个连续操作
+
+That's where computer memory comes in!
+这就用到计算机内存了
+
+If you've ever been in the middle of a long RPG campaign on your console,
+如果你在主机上打过一场长时间的对局
+
+or slogging through a difficult level on Minesweeper on your desktop,
+或玩困难模式的 "扫雷"
+
+and your dog came by, tripped and pulled the power cord out of the wall,
+然后狗跑过来,被电源线绊倒,把插头拔了出来
+
+you know the agony of losing all your progress.
+你知道失去进度的痛苦
+
+Condolences.
+真同情你 :(
+
+But the reason for your loss is that your console, your laptop and your computers
+你损失数据的原因是 \N 电脑用的是"随机存取存储器",简称"RAM"
+
+make use of Random Access Memory, or RAM,
+你损失数据的原因是 \N 电脑用的是"随机存取存储器",简称"RAM"
+
+which stores things like game state - as long as the power stays on.
+它只能在有电的情况下存储东西,比如游戏状态
+
+Another type of memory, called persistent memory, can survive without power,
+另一种存储 (memory) 叫持久存储,电源关闭时数据也不会丢失
+
+and it's used for different things;
+它用来存其他东西.
+
+We'll talk about the persistence of memory in a later episode.
+我们之后会讨论存储 (memory) 的持久性问题
+
+Today, we're going to start small
+今天我们从简单开始
+
+- literally by building a circuit that can store one.. single.. bit of information.
+- 做只能存储 1 位的电路
+
+After that, we'll scale up, and build our very own memory module,
+之后再扩大,做出我们的内存模块
+
+and we'll combine it with our ALU next time, when we finally build our very own CPU!
+下次和 ALU 结合起来,做出 CPU!
+
+All of the logic circuits we've discussed so far go in one direction
+我们至今说过的电路都是单向的
+
+- always flowing forward.
+- 总是向前流动
+
+like our 8-bit ripple adder from last episode.
+比如上集的 8 位 "脉动进位加法器"
+
+But we can also create circuits that loop back on themselves.
+但也可以做回向电路,把输出连回输入
+
+Let's try taking an ordinary OR gate, and feed the output back into one of its inputs
+我们拿一个 OR 门试试,把输出连回输入
+
+and see what happens.
+看看会发生什么
+
+First, let's set both inputs to 0.
+首先,两个输入都设为 0
+
+So 0 OR 0 is 0, and so this circuit always outputs 0.
+"0 OR 0" 是 0,所以电路输出0
+
+If we were to flip input A to 1.
+如果将 A 变成1
+
+1 OR 0 is 1, so now the output of the OR gate is 1.
+"1 OR 0" 为 1,所以输出 1
+
+A fraction of a second later, that loops back around into input B,
+一转眼的功夫,输出回到 B
+
+so the OR gate sees that both of its inputs are now 1.
+OR 门看到两个输入都是 1
+
+1 OR 1 is still 1, so there is no change in output.
+"1 OR 1" 仍然为1,所以输出不变
+
+If we flip input A back to 0, the OR gate still outputs 1.
+如果将 A 变成 0,OR 门依然输出 1
+
+So now we've got a circuit that records a "1" for us.
+现在我们有个电路能记录 "1"
+
+Except, we've got a teensy tiny problem - this change is permanent!
+然而有个小问题:这是永久的!
+
+No matter how hard we try, there's no way to get this circuit to flip back from a 1 to a 0.
+无论怎么试,都没法从 1 变回 0
+
+Now let's look at this same circuit, but with an AND gate instead.
+我们换成 AND 门看看会怎样
+
+We'll start inputs A and B both at 1.
+开始时,A 和 B 都设 1
+
+1 AND 1 outputs 1 forever.
+"1 AND 1" 永远输出 1
+
+But, if we then flip input A to 0, because it's an AND gate, the output will go to 0.
+如果之后 A 设为 0,由于是 AND 门,输出会变成 0
+
+So this circuit records a 0, the opposite of our other circuit.
+这个电路能记录 0,和之前那个相反
+
+Like before, no matter what input we apply to input A afterwards, the circuit will always output 0.
+就像之前,无论 A 设什么值,电路始终输出 0
+
+Now we've got circuits that can record both 0s and 1s.
+现在有了能存 0 和 1 的电路
+
+The key to making this a useful piece of memory is to combine our two circuits into what is
+为了做出有用的存储 (memory) \N 我们把两个电路结合起来
+
+called the AND-OR Latch.
+这叫 "AND-OR 锁存器"
+
+It has two inputs, a "set" input, which sets the output to a 1,\Ncalled the AND-OR Latch.
+It has two inputs, a "set" input, which sets the output to a 1,
+它有两个输入\N "设置"输入, 把输出变成 1\N "复位"输入, 把输出变成 0
+
+and a "reset" input, which resets the output to a 0.
+它有两个输入\N "设置"输入, 把输出变成 1\N "复位"输入, 把输出变成 0
+
+If set and reset are both 0, the circuit just outputs whatever was last put in it.
+如果"设置"和"复位"都是 0,电路会输出最后放入的内容
+
+In other words, it remembers a single bit of information!
+也就是说,它存住了 1 位的信息!
+
+Memory!
+存储!
+
+This is called a "latch" because it "latches onto" a particular value and stays that way.
+这叫"锁存", 因为它"锁定"了一个值
+
+The action of putting data into memory is called writing, whereas getting the data out is called reading.
+放入数据的动作叫 "写入" ,拿出数据的动作叫 "读取"
+
+Ok, so we've got a way to store a single bit of information!
+现在我们终于有办法存一个位了!
+
+Great!
+超棒!
+
+Unfortunately, having two different wires for input - set and reset - is a bit confusing.
+麻烦的是, 用两条线 "设置"和"复位" 来输入, 有点难理解
+
+To make this a little easier to use, we really want a single wire to input data,
+为了更容易用,我们希望只有一条输入线
+
+that we can set to either 0 or 1 to store the value.
+将它设为 0 或 1 来存储值
+
+Additionally, we are going to need a wire that enables the memory
+还需要一根线来"启用"内存
+
+to be either available for writing or "locked" down
+启用时允许写入,没启用时就 "锁定"
+
+- which is called the write enable line.
+- 这条线叫 "允许写入线"
+
+By adding a few extra logic gates, we can build this circuit,
+加一些额外逻辑门,可以做出这个电路
+
+which is called a Gated Latch since the "gate" can be opened or closed.
+这叫"门锁",因为门可以打开和关上
+
+Now this circuit is starting to get a little complicated.
+现在有点复杂了
+
+We don't want to have to deal with all the individual logic gates...
+我们不想关心单独的逻辑门
+
+so as before, we're going to bump up a level of abstraction,
+所以我们提升一层抽象
+
+and put our whole Gated Latch circuit in a box -- a box that stores one bit.
+把 "门锁" 放到盒子里 - 这个盒子能存一个 bit
+
+Let's test out our new component!
+我们来测一下新组件!
+
+Let's start everything at 0.
+一切从 0 开始
+
+If we toggle the Data wire from 0 to 1 or 1 to 0,
+数据输入从0换到1, 从1换到0
+
+nothing happens - the output stays at 0.
+什么也不会发生 - 输出依然是 0
+
+That's because the write enable wire is off, which prevents any change to the memory.
+因为 "允许写入线" 是关闭的,所以内容不会变化
+
+So we need to "open" the "gate" by turning the write enable wire to 1.
+所以要给 "允许写入线" 输入 1, "打开" 门
+
+Now we can put a 1 on the data line to save the value 1 to our latch.
+现在往 "数据线" 放 1,1 就能存起来了
+
+Notice how the output is now 1.\NNow we can put a 1 on the data line to save the value 1 to our latch.
+Notice how the output is now 1.
+注意输出现在是 1 了
+
+Success!
+成功!
+
+We can turn off the enable line and the output stays as 1.
+现在可以关掉 "允许写入线" ,输出会保持 1
+
+Once again, we can toggle the value on the data line all we want,
+现在不管给 "数据线" 什么值
+
+but the output will stay the same.
+输出都不会变
+
+The value is saved in memory.
+值存起来了
+
+Now let's turn the enable line on again use our data line to set the latch to 0.
+现在又打开 "允许写入线" \N "数据线" 设为0
+
+Done.
+完成
+
+Enable line off, and the output is 0.
+"允许写入线" 关闭,输出 0
+
+And it works!
+成功了!
+
+Now, of course, computer memory that only stores one bit of information isn't very useful
+当然,只能存 1 bit 没什么大用
+
+-- definitely not enough to run Frogger.
+- 肯定玩不了游戏
+
+Or anything, really.
+或做其它事情
+
+But we're not limited to using only one latch.
+但我们没限制只能用一个锁存器
+
+If we put 8 latches side-by-side, we can store 8 bits of information like an 8-bit number.
+如果我们并排放 8 个锁存器,\N 可以存 8 位信息,比如一个 8 bit 数字
+
+A group of latches operating like this is called a register,
+一组这样的锁存器叫 "寄存器"
+
+which holds a single number, and the number of bits in a register is called its width.
+寄存器能存一个数字,这个数字有多少位,叫"位宽"
+
+Early computers had 8-bit registers, then 16, 32,
+早期电脑用 8 位寄存器,然后是 16 位,32 位
+
+and today, many computers have registers that are 64-bits wide.
+如今许多计算机都有 64 位宽的寄存器
+
+To write to our register, we first have to enable all of the latches.
+写入寄存器前,要先启用里面所有锁存器
+
+We can do this with a single wire that connects to all of their enable inputs, which we set to 1.
+我们可以用一根线连接所有 "允许输入线", 把它设为 1
+
+We then send our data in using the 8 data wires, and then set enable back to 0,
+然后用 8 条数据线发数据,然后将 "允许写入线" 设回 0
+
+and the 8 bit value is now saved in memory.
+现在 8 位的值就存起来了
+
+Putting latches side-by-side works ok for a small-ish number of bits.
+如果只有很少的位(bits),把锁存器并排放置,也勉强够用了.
+
+A 64-bit register would need 64 wires running to the data pins, and 64 wires running to the outputs.
+64 位寄存器要 64 根数据线,64 根连到输出端
+
+Luckily we only need 1 wire to enable all the latches, but that's still 129 wires.
+幸运的是,我们只要 1 根线启用所有锁存器 \N 但加起来也有 129 条线了
+
+For 256 bits, we end up with 513 wires!
+如果存 256 位要 513 条线!
+
+The solution is a matrix!
+解决方法是矩阵!
+
+In this matrix, we don't arrange our latches in a row,
+在矩阵中,我们不并列排放锁存器
+
+we put them in a grid.
+而是做成网格
+
+For 256 bits, we need a 16 by 16 grid of latches with 16 rows and columns of wires.
+存 256 位,我们用 16x16 网格的锁存器,有 16 行 16 列
+
+To activate any one latch, we must turn on the corresponding row AND column wire.
+要启用某个锁存器,就打开相应的 行线 和 列线
+
+Let's zoom in and see how this works.
+放大看看怎么做的
+
+We only want the latch at the intersection of the two active wires to be enabled,
+我们只想打开交叉处 锁存器的 "允许写入线"
+
+but all of the other latches should stay disabled.
+所有其他锁存器,保持关闭
+
+For this, we can use our trusty AND gate!
+我们可以用 AND 门!
+
+The AND gate will output a 1 only if the row and the column wires are both 1.
+只有 行线和列线 均为 1 ,AND 门才输出 1
+
+So we can use this signal to uniquely select a single latch.
+所以可以用选择单个锁存器
+
+This row/column setup connects all our latches with a single, shared, write enable wire.
+这种行/列排列法,用一根 "允许写入线" 连所有锁存器
+
+In order for a latch to become write enabled,
+为了让锁存器变成 "允许写入"
+
+the row wire, the column wire, and the write enable wire must all be 1.
+行线,列线和 "允许写入线" 都必须是 1
+
+That should only ever be true for one single latch at any given time.
+每次只有 1 个锁存器会这样
+
+This means we can use a single, shared wire for data.
+代表我们可以只用一根 "数据线" \N 连所有锁存器来传数据
+
+Because only one latch will ever be write enabled, only one will ever save the data
+因为只有一个锁存器会启用,只有那个会存数据
+
+-- the rest of the latches will simply ignore values on the data wire because they are not write enabled.
+其他锁存器会忽略数据线上的值,因为没有 "允许写入"
+
+We can use the same trick with a read enable wire to read the data later,
+我们可以用类似的技巧, 做"允许读取线"来读数据
+
+to get the data out of one specific latch.
+从一个指定的锁存器,读取数据
+
+This means in total, for 256 bits of memory,
+所以对于 256 位的存储
+
+we only need 35 wires - 1 data wire, 1 write enable wire, 1 read enable wire,
+只要 35 条线 \N1条"数据线", 1条"允许写入线", 1条"允许读取线"
+
+and 16 rows and columns for the selection.
+还有16行16列的线用于选择锁存器 \N (16+16=32, 32+3=35)
+
+That's significant wire savings!
+这省了好多线!
+
+But we need a way to uniquely specify each intersection.
+但我们需要某种方法来 唯一指定 交叉路口
+
+We can think of this like a city,
+我们可以想成城市
+
+where you might want to meet someone at 12th avenue and 8th street
+你可能想和别人 在第 12 大道和第 8 街的交界碰面
+
+-- that's an address that defines an intersection.
+- 这是一个交叉点的地址
+
+The latch we just saved our one bit into has an address of row 12 and column 8.
+我们刚刚存了一位的地址是 "12行 8列"
+
+Since there is a maximum of 16 rows, we store the row address in a 4 bit number.
+由于最多 16 行, 用 4 位就够了
+
+12 is 1100 in binary.
+12 用二进制表示为 1100
+
+We can do the same for the column address: 8 is 1000 in binary.
+列地址也可以这样: 8 用二进制表示为 1000
+
+So the address for the particular latch we just used can be written as 11001000.
+刚才说的"12行 8列"可以写成 11001000
+
+To convert from an address into something that selects the right row or column,
+为了将地址转成 行和列
+
+we need a special component called a multiplexer
+我们需要 "多路复用器"
+
+-- which is the computer component with a pretty cool name at least compared to the ALU.
+- 这个名字起码比 ALU 酷一点
+
+Multiplexers come in all different sizes,
+多路复用器有不同大小
+
+but because we have 16 rows, we need a 1 to 16 multiplexer.
+因为有 16 行,我们需要 1 到 16 多路复用器
+
+It works like this.
+工作方式是
+
+You feed it a 4 bit number, and it connects the input line to a corresponding output line.
+输入一个 4 位数字,它会把那根线,连到相应的输出线
+
+So if we pass in 0000, it will select the very first column for us.
+如果输入 0000,它会选择第一列
+
+If we pass in 0001, the next column is selected, and so on.
+如果输入 0001,会选择下一列,依此类推
+
+We need one multiplexer to handle our rows and another multiplexer to handle the columns.
+一个多路复用器处理行(row) \N 另一个多路复用器处理列(column)
+
+Ok, it's starting to get complicated again,
+好吧,开始有点复杂了
+
+so let's make our 256-bit memory its own component.
+那么把 256 位内存当成一个整体好了
+
+Once again a new level of abstraction!
+又提升了一层抽象!
+
+It takes an 8-bit address for input - the 4 bits for the column and 4 for the row.
+它输入一个 8 位地址:4 位代表列,4 位代表行
+
+We also need write and read enable wires.
+我们还需要 "允许写入线" 和 "允许读取线"
+
+And finally, we need just one data wire, which can be used to read or write data.
+最后,还需要一条数据线,用于读/写数据
+
+Unfortunately, even 256-bits of memory isn't enough to run much of anything,
+不幸的是, 256 位的内存也没法做什么事
+
+so we need to scale up even more!
+所以还要扩大规模
+
+We're going to put them in a row.
+把它们并排放置
+
+Just like with the registers.
+就像寄存器一样
+
+We'll make a row of 8 of them, so we can store an 8 bit number - also known as a byte.
+一行8个,可以存一个 8 位数字 \N 8 位也叫一个字节(byte)
+
+To do this, we feed the exact same address into all 8 of our 256-bit memory components at the same time,
+为了存一个 8 位数字,我们同时给 8 个 256 位内存一样的地址
+
+and each one saves one bit of the number.
+每个地址存 1 位
+
+That means the component we just made can store 256 bytes at 256 different addresses.
+意味着这里总共能存 256 个字节 (byte)
+
+Again, to keep things simple, we want to leave behind this inner complexity.
+再次,为了简单,我们不管内部
+
+Instead of thinking of this as a series of individual memory modules and circuits,
+不看作是一堆独立的存储模块和电路
+
+we'll think of it as a uniform bank of addressable memory.
+而是看成一个整体的可寻址内存
+
+We have 256 addresses,
+我们有 256 个地址
+
+and at each address, we can read or write an 8-bit value.
+每个地址能读或写一个 8 位值
+
+We're going to use this memory component next episode when we build our CPU.
+我们下集做 CPU 时会用到这个内存
+
+The way that modern computers scale to megabytes and gigabytes of memory
+现代计算机的内存 \N 扩展到上兆字节(MB)和千兆字节(GB)的方式
+
+is by doing the same thing we've been doing here
+和我们这里做的一样
+
+-- keep packaging up little bundles of memory into larger, and larger, and larger arrangements.
+不断把内存打包到更大规模
+
+As the number of memory locations grow, our addresses have to grow as well.
+随着内存地址增多,内存地址也必须增长
+
+8 bits hold enough numbers to provide addresses for 256 bytes of our memory,
+8 位最多能代表 256 个内存地址 \N(1111 1111 是255,0~255 一共 256 个数字)
+
+but that's all.
+只有这么多
+
+To address a gigabyte - or a billion bytes of memory - we need 32-bit addresses.
+要给千兆或十亿字节的内存寻址,需要 32 位的地址
+
+An important property of this memory is that we can access any memory location, at any time, and in a random order.
+内存的一个重要特性是:可以随时访问任何位置
+
+For this reason, it's called Random-Access Memory or RAM.
+因此叫 "随机存取存储器" ,简称 RAM
+
+When you hear people talking about how much RAM a computer has
+当你听到有人说 RAM 有多大
+
+- that's the computer's memory.
+他的意思是内存有多大
+
+RAM is like a human's short term or working memory,
+RAM 就像人类的短期记忆
+
+where you keep track of things going on right now
+记录当前在做什么事
+
+- like whether or not you had lunch or paid your phone bill.
+比如吃了午饭没,或有没有交电话费
+
+Here's an actual stick of RAM - with 8 memory modules soldered onto the board.
+这是一条真的内存,上面焊了 8 个内存模块
+
+If we carefully opened up one of these modules and zoomed in,
+如果打开其中一个,然后放大
+
+The first thing you would see are 32 squares of memory.
+会看到 32 个内存方块
+
+Zoom into one of those squares, and we can see each one is comprised of 4 smaller blocks.
+放大其中一个方块,可以看到有 4 个小块
+
+If we zoom in again, we get down to the matrix of individual bits.
+如果再放大,可以看到存一个"位"的矩阵
+
+This is a matrix of 128 by 64 bits.
+这个矩阵是 128 位 x 64 位
+
+That's 8192 bits in total.
+总共 8192 位
+
+Each of our 32 squares has 4 matrices, so that's 32 thousand, 7 hundred and 68 bits.
+每个方格 4 个矩阵 \N 所以一个方格有 32768 个位 (8192 x 4 = 32768)
+
+And there are 32 squares in total.
+而一共 32 个方格
+
+So all in all, that's roughly 1 million bits of memory in each chip.
+总而言之,1 个芯片大约存 100 万位
+
+Our RAM stick has 8 of these chips, so in total, this RAM can store 8 millions bits,
+RAM 有 8 个芯片,所以总共 800 万位
+
+otherwise known as 1 megabyte.
+也就是 1 兆字节(1 MB)
+
+That's not a lot of memory these days -- this is a RAM module from the 1980's.
+1 MB 如今不算大 - 这是 1980 年代的 RAM
+
+Today you can buy RAM that has a gigabyte or more of memory
+如今你可以买到千兆字节(GB)的 RAM
+
+- that's billions of bytes of memory.
+那可是数十亿字节的内存
+
+So, today, we built a piece of SRAM - Static Random-Access Memory - which uses latches.
+今天,我们用锁存器做了一块 SRAM(静态随机存取存储器)
+
+There are other types of RAM, such as DRAM, Flash memory, and NVRAM.
+还有其他类型的 RAM,如 DRAM,闪存和 NVRAM
+
+These are very similar in function to SRAM,
+它们在功能上与 SRAM 相似
+
+but use different circuits to store the individual bits
+但用不同的电路存单个位
+
+- for example, using different logic gates, capacitors, charge traps, or memristors.
+- 比如用不同的逻辑门,电容器,电荷捕获或忆阻器
+
+But fundamentally, all of these technologies store bits of information
+但根本上 这些技术都是矩阵层层嵌套,来存储大量信息
+
+in massively nested matrices of memory cells.
+但根本上 这些技术都是矩阵层层嵌套,来存储大量信息
+
+Like many things in computing, the fundamental operation is relatively simple.
+就像计算机中的很多事情,底层其实都很简单
+
+it's the layers and layers of abstraction that's mind blowing
+让人难以理解的,是一层层精妙的抽象
+
+-- like a russian doll that keeps getting smaller and smaller and smaller.
+像一个越来越小的俄罗斯套娃
+
+I'll see you next week.
+下周见
+
+Hi, I'm Carrie Anne, this is Crash Course Computer Science
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+and today, we're talking about processors.
+今天我们讲 处理器
+
+Just a warning though - this is probably the most complicated episode in the series.
+提示下 - 这集可能是最难的一集
+
+So once you get this, you're golden.
+所以一旦你理解了,就会变得超厉害der~
+
+We've already made a Arithmetic and Logic Unit,
+我们已经做了一个算术逻辑单元(ALU)
+
+which takes in binary numbers and performs calculations,
+输入二进制,它会执行计算
+
+and we've made two types of computer memory:
+我们还做了两种内存:
+
+Registers -- small, linear chunks of memory, useful for storing a single value
+寄存器 - 很小的一块内存,能存一个值
+
+and then we scaled up, and made some RAM,
+之后我们增大做出了 RAM
+
+a larger bank of memory that can store a lot of numbers located at different addresses.
+RAM 是一大块内存,能在不同地址存大量数字
+
+Now it's time to put it all together and build ourselves the heart of any computer,
+现在是时候把这些放在一起,组建计算机的 "心脏" 了
+
+but without any of the emotional baggage that comes with human hearts.
+但这个 "心脏" 不会有任何包袱,比如人类情感.
+
+For computers, this is the Central Processing Unit, most commonly called the CPU.
+计算机的心脏是"中央处理单元",简称 "CPU"
+
+A CPU's job is to execute programs.
+CPU 负责执行程序
+
+Programs, like Microsoft Office, Safari, or your beloved copy of Half Life: 2,
+比如 Office,Safari 浏览器,你最爱的 《半条命2》
+
+are made up of a series of individual operations,
+程序由一个个操作组成
+
+called instructions, because they "instruct" the computer what to do.
+这些操作叫"指令"(Instruction) \N 因为它们"指示"计算机要做什么
+
+If these are mathematical instructions, like add or subtract,
+如果是数学指令,比如加/减
+
+the CPU will configure its ALU to do the mathematical operation.
+CPU 会让 ALU 进行数学运算
+
+Or it might be a memory instruction,
+也可能是内存指令,CPU 会和内存通信,然后读/写值
+
+in which case the CPU will talk with memory to read and write values.
+也可能是内存指令,CPU 会和内存通信,然后读/写值
+
+There are a lot of parts in a CPU,
+CPU 里有很多组件.
+
+so we're going to lay it out piece by piece, building up as we go.
+所以我们一边说一边建
+
+We'll focus on functional blocks, rather than showing every single wire.
+我们把重点放在功能,而不是一根根线具体怎么连
+
+When we do connect two components with a line,
+当我们用一条线连接两个组件时
+
+this is an abstraction for all of the necessary wires.
+这条线只是所有必须线路的一个抽象
+
+This high level view is called the microarchitecture.
+这种高层次视角叫 "微体系架构"
+
+OK, first, we're going to need some memory.
+好,我们首先要一些内存,把上集做的 RAM 拿来就行
+
+Lets drop in the RAM module we created last episode.
+好,我们首先要一些内存,把上集做的 RAM 拿来就行
+
+To keep things simple, we'll assume it only has 16 memory locations, each containing 8 bits.
+为了保持简单,假设它只有 16 个位置,每个位置存 8 位
+
+Let's also give our processor four, 8-bit memory registers, labeled A, B, C and D
+再来四个 8 位寄存器,叫 A,B,C,D
+
+which will be used to temporarily store and manipulate values.
+寄存器用来 临时存数据 和 操作数据
+
+We already know that data can be stored in memory as binary values
+我们已经知道数据 是以二进制值存在内存里
+
+and programs can be stored in memory too.
+程序也可以存在内存里
+
+We can assign an ID to each instruction supported by our CPU.
+我们可以给 CPU 支持的所有指令,分配一个 ID
+
+指令表
+
+指令
+
+描述
+
+4位操作码
+
+地址或寄存器
+
+In our hypothetical example, we use the first four bits to store the "operation code",
+在这个假设的例子 \N 我们用前四位存 "操作代码" (operation code)
+
+or opcode for short.
+简称 "操作码" (opcode)
+
+The final four bits specify where the data for that operation should come from -
+后四位代表数据来自哪里
+
+this could be registers or an address in memory.
+- 可以是寄存器或内存地址
+
+We also need two more registers to complete our CPU.
+我们还需要两个寄存器,来完成 CPU.
+
+First, we need a register to keep track of where we are in a program.
+1. 一个寄存器追踪程序运行到哪里了,我们叫它 "指令地址寄存器"
+
+For this, we use an instruction address register,
+1. 一个寄存器追踪程序运行到哪里了,我们叫它 "指令地址寄存器"
+
+which as the name suggests, stores the memory address of the current instruction.
+顾名思义,存当前指令的内存地址
+
+And then we need the other register to store the current instruction,
+2. 另一个寄存器存当前指令,叫 "指令寄存器"
+
+which we'll call the instruction register.
+2. 另一个寄存器存当前指令,叫 "指令寄存器"
+
+When we first boot up our computer, all of our registers start at 0.
+当启动计算机时,所有寄存器从 0 开始
+
+As an example, we've initialized our RAM with a simple computer program that we'll to through today.
+为了举例,我们在 RAM 里放了一个程序,我们今天会过一遍
+
+The first phase of a CPU's operation is called the fetch phase.
+CPU 的第一个阶段叫 "取指令阶段"
+
+This is where we retrieve our first instruction.
+负责拿到指令
+
+First, we wire our Instruction Address Register to our RAM module.
+首先,将 "指令地址寄存器" 连到 RAM
+
+The register's value is 0, so the RAM returns whatever value is stored in address 0.
+寄存器的值为 0,因此 RAM 返回地址 0 的值
+
+In this case, 0010 1110.
+0010 1110 会复制到 "指令寄存器" 里
+
+Then this value is copied into our instruction register.
+0010 1110 会复制到 "指令寄存器" 里
+
+Now that we've fetched an instruction from memory,
+现在指令拿到了
+
+we need to figure out what that instruction is
+要弄清是什么指令,才能执行(execute)
+
+so we can execute it.
+要弄清是什么指令,才能执行(execute)
+
+That is run it.
+而不是杀死(kill)它
+
+Not kill it.
+而不是杀死(kill)它
+
+This is called the decode phase.
+这是 "解码阶段"
+
+指令表
+
+指令
+
+描述
+
+4位操作码
+
+地址或寄存器
+
+In this case the opcode, which is the first four bits, is: 0010.
+前 4 位 0010 是 LOAD A 指令
+
+This opcode corresponds to the "LOAD A" instruction,
+前 4 位 0010 是 LOAD A 指令
+
+which loads a value from RAM into Register A.
+意思是,把 RAM 的值放入寄存器 A
+
+The RAM address is the last four bits of our instruction which are 1110, or 14 in decimal.
+后 4 位 1110 是 RAM 的地址, 转成十进制是 14
+
+Next, instructions are decoded and interpreted by a Control Unit.
+接下来,指令由 "控制单元" 进行解码
+
+Like everything else we've built, it too is made out of logic gates.
+就像之前的所有东西 \N "控制单元" 也是逻辑门组成的
+
+For example, to recognize a LOAD A instruction,
+比如,为了识别 "LOAD A" 指令
+
+we need a circuit that checks if the opcode matches 0010
+需要一个电路,检查操作码是不是 0010
+
+which we can do with a handful of logic gates.
+我们可以用很少的逻辑门来实现.
+
+Now that we know what instruction we're dealing with,
+现在知道了是什么指令
+
+we can go ahead and perform that instruction which is the beginning of the execute phase!
+就可以开始执行了,开始 "执行阶段"
+
+Using the output of our LOAD_A checking circuit,
+用 "检查是否 LOAD_A 指令的电路"
+
+we can turn on the RAM's read enable line and send in address 14.
+可以打开 RAM 的 "允许读取线", 把地址 14 传过去
+
+The RAM retrieves the value at that address, which is 00000011, or 3 in decimal.
+RAM 拿到值,0000 0011,十进制的 3
+
+Now, because this is a LOAD_A instruction,
+因为是 LOAD_A 指令 \N 我们想把这个值只放到寄存器 A,其他寄存器不受影响
+
+we want that value to only be saved into Register A and not any of the other registers.
+因为是 LOAD_A 指令 \N 我们想把这个值只放到寄存器 A,其他寄存器不受影响
+
+So if we connect the RAM's data wires to our four data registers,
+所以需要一根线,把 RAM 连到 4 个寄存器
+
+we can use our LOAD_A check circuit to enable the write enable only for Register A.
+用 "检查是否 LOAD_A 指令的电路" \N 启用寄存器 A 的 "允许写入线"
+
+And there you have it
+这就成功了
+
+-- we've successfully loaded the value at RAM address 14 into Register A.
+- 把 RAM 地址 14 的值,放到了寄存器 A.
+
+We've completed the instruction, so we can turn all of our wires off,
+既然指令完成了,我们可以关掉所有线路
+
+and we are ready to fetch the next instruction in memory.
+去拿下一条指令
+
+To do this, we increment the Instruction Address Register by 1 which completes the execute phase.
+我们把 "指令地址寄存器"+1,"执行阶段"就此结束.
+
+LOAD_A is just one of several possible instructions that our CPU can execute.
+LOAD_A 只是 CPU 可以执行的各种指令之一
+
+Different instructions are decoded by different logic circuits,
+不同指令由不同逻辑电路解码
+
+which configure the CPU's components to perform that action.
+这些逻辑电路会配置 CPU 内的组件来执行对应操作
+
+Looking at all those individual decode circuits is too much detail,
+具体分析这些解码电路太繁琐了
+
+so since we looked at one example,
+既然已经看了 1 个例子,
+
+we're going to go head and package them all up as a single Control Unit to keep things simple.
+干脆把 "控制单元 "包成一个整体,简洁一些.
+
+That's right a new level of abstraction.
+没错,一层新抽象
+
+The Control Unit is comparable to the conductor of an orchestra,
+控制单元就像管弦乐队的指挥
+
+directing all of the different parts of the CPU.
+"指挥" CPU 的所有组件
+
+Having completed one full fetch/decode/execute cycle,
+"取指令→解码→执行" 完成后
+
+we're ready to start all over again, beginning with the fetch phase.
+现在可以再来一次,从 "取指令" 开始
+
+The Instruction Address Register now has the value 1 in it,
+"指令地址寄存器" 现在的值是 1
+
+so the RAM gives us the value stored at address 1, which is 0001 1111.
+所以 RAM 返回地址 1 里的值:0001 1111
+
+On to the decode phase!
+到 "解码" 阶段!
+
+0001 is the "LOAD B" instruction, which moves a value from RAM into Register B.
+0001 是 LOAD B 指令 \N 从 RAM 里把一个值复制到寄存器 B
+
+The memory location this time is 1111, which is 15 in decimal.
+这次内存地址是 1111,十进制的 15
+
+Now to the execute phase!
+现在到 "执行阶段"!
+
+The Control Unit configures the RAM to read address 15 and configures Register B to receive the data.
+"控制单元" 叫 RAM 读地址 15,并配置寄存器 B 接收数据
+
+Bingo, we just saved the value 00001110, or the number 14 in decimal, into Register B.
+成功,我们把值 0000 1110 \N 也就是十进制的 14 存到了寄存器 B
+
+Last thing to do is increment our instruction address register by 1,
+最后一件事是 "指令地址寄存器" +1
+
+and we're done with another cycle.
+我们又完成了一个循环
+
+Our next instruction is a bit different.
+下一条指令有点不同
+
+Let's fetch it.
+来取它吧
+
+1000 0100.
+1000 0100
+
+That opcode 1000 is an ADD instruction.
+1000 是 ADD 指令
+
+Instead of an 4-bit RAM address, this instruction uses two sets of 2 bits.
+这次后面的 4 位不是 RAM 地址,\N 而是 2 位 2 位分别代表 2 个寄存器
+
+Remember that 2 bits can encode 4 values,
+2 位可以表示 4 个值
+
+so 2 bits is enough to select any one of our 4 registers.
+所以足够表示 4 个寄存器
+
+The first set of 2 bits is 01, which in this case corresponds to Register B,
+第一个地址是 01, 代表寄存器B
+
+and 00, which is Register A.
+第二个地址是 00, 代表寄存器A
+
+So "1000 01 00" is the instruction for adding the value in Register B into the value in register A.
+因此,1000 0100,代表把寄存器 B 的值,加到寄存器 A 里
+
+So to execute this instruction, we need to integrate the ALU we made in Episode 5 into our CPU.
+为了执行这个指令,我们要整合第 5 集的 ALU
+
+The Control Unit is responsible for selecting the right registers to pass in as inputs,
+"控制单元" 负责选择正确的寄存器作为输入
+
+and configuring the ALU to perform the right operation.
+并配置 ALU 执行正确的操作
+
+For this ADD instruction, the Control Unit enables Register B
+对于 "ADD" 指令, "控制单元" 会
+
+and feeds its value into the first input of the ALU.
+启用寄存器 B,作为 ALU 的第一个输入
+
+It also enables Register A and feeds it into the second ALU input.
+还启用寄存器 A,作为 ALU 的第二个输入
+
+As we already discussed, the ALU itself can perform several different operations,
+之前说过,ALU 可以执行不同操作
+
+so the Control Unit must configure it to perform an ADD operation by passing in the ADD opcode.
+所以控制单元必须传递 ADD 操作码告诉它要做什么
+
+Finally, the output should be saved into Register A.
+最后,结果应该存到寄存器 A
+
+But it can't be written directly
+但不能直接写入寄存器 A
+
+because the new value would ripple back into the ALU and then keep adding to itself.
+这样新值会进入 ALU ,不断和自己相加
+
+So the Control Unit uses an internal register to temporarily save the output,
+因此,控制单元用一个自己的寄存器暂时保存结果
+
+turn off the ALU, and then write the value into the proper destination register.
+关闭 ALU,然后把值写入正确的寄存器
+
+In this case, our inputs were 3 and 14, and so the sum is 17, or 00010001 in binary,
+这里 3+14=17,二进制是 0001 0001
+
+which is now sitting in Register A.
+现在存到了寄存器 A
+
+As before, the last thing to do is increment our instruction address by 1,
+和之前一样,最后一件事是把指令地址 + 1
+
+and another cycle is complete.
+这个循环就完成了
+
+Okay, so let's fetch one last instruction: 0100 1101.
+好,来看最后一个指令:0100 1101
+
+When we decode it we see that 0100 is a STORE_A instruction, with a RAM address of 13.
+解码得知是 STORE A 指令(把寄存器 A 的值放入内存) \N RAM 地址 13
+
+As usual, we pass the address to the RAM module,
+接下来,把地址传给 RAM
+
+but instead of read-enabling the memory, we write-enable it.
+但这次不是 "允许读取" ,而是 "允许写入"
+
+At the same time, we read-enable Register A.
+同时,打开寄存器 A 的 "允许读取"
+
+This allows us to use the data line to pass in the value stored in register A.
+这样就可以把寄存器 A 里的值,传给 RAM
+
+Congrats, we just ran our first computer program!
+恭喜,我们刚运行了第一个电脑程序!
+
+It loaded two values from memory, added them together,
+它从内存中加载两个值,相加,然后把结果放回内存
+
+and then saved that sum back into memory.
+它从内存中加载两个值,相加,然后把结果放回内存
+
+Of course, by me talking you through the individual steps,
+刚刚是我一步步来讲的,
+
+I was manually transitioning the CPU through its fetch, decode and execute phases.
+我们人工切换 CPU 的状态 "取指令→解码→执行"
+
+But there isn't a mini Carrie Anne inside of every computer.
+但不是每台电脑里都有一个迷你 Carrie Anne
+
+So the responsibility of keeping the CPU ticking along falls to a component called the clock.
+其实是 "时钟" 来负责管理 CPU 的节奏
+
+As it's name suggests, the clock triggers an electrical signal at a precise and regular interval.
+时钟以精确的间隔 触发电信号
+
+Its signal is used by the Control Unit to advance the internal operation of the CPU,
+控制单元会用这个信号,推进 CPU 的内部操作
+
+keeping everything in lock-step
+确保一切按步骤进行
+
+- like the dude on a Roman galley drumming rhythmically at the front,
+- 就像罗马帆船的船头,有一个人负责按节奏的击鼓,
+
+keeping all the rowers synchronized... or a metronome.
+让所有划船的人同步... 就像节拍器一样
+
+Of course you can't go too fast,
+节奏不能太快
+
+because even electricity takes some time to travel down wires and for the signal to settle.
+因为就算是电也要一定时间来传输
+
+The speed at which a CPU can carry out each step of the fetch-decode-execute cycle
+CPU "取指令→解码→执行" 的速度叫 "时钟速度"
+
+is called its Clock Speed.
+CPU "取指令→解码→执行" 的速度叫 "时钟速度"
+
+This speed is measured in Hertz - a unit of frequency.
+单位是赫兹 - 赫兹是用来表示频率的单位
+
+One Hertz means one cycle per second.
+1 赫兹代表一秒 1 个周期
+
+Given that it took me about 6 minutes to talk you through 4 instructions
+因为我花了大概 6 分钟,给你讲了 4 条指令
+
+LOAD, LOAD, ADD and STORE
+读取→读取→相加→存储
+
+that means I have an effective clock speed of roughly .03 Hertz.
+所以我的时钟速度大概是 0.03 赫兹
+
+Admittedly, I'm not a great computer
+我承认我算数不快
+
+but even someone handy with math might only be able to do one calculation in their head every second or 1 Hertz.
+但哪怕有人算数很快,最多也就是一秒一次,或 1 赫兹
+
+The very first, single-chip CPU was the Intel 4004, a 4-bit CPU released in 1971.
+第一个单芯片 CPU 是 "英特尔 4004" \N 1971 年发布的 4 位CPU
+
+It's microarchitecture is actually pretty similar to our example CPU.
+它的微架构 很像我们之前说的 CPU
+
+Despite being the first processor of its kind,
+虽然是第一个单芯片的处理器
+
+it had a mind-blowing clock speed of 740 Kilohertz
+但它的时钟速度达到了 740 千赫兹 - 每秒 74 万次
+
+-- that's 740 thousand cycles per second.
+但它的时钟速度达到了 740 千赫兹 - 每秒 74 万次
+
+You might think that's fast,
+你可能觉得很快
+
+but it's nothing compared to the processors that we use today.
+但和如今的处理器相比不值一提
+
+One megahertz is one million clock cycles per second,
+一兆赫兹是 1 秒 1 百万个时钟周期
+
+and the computer or even phone that you are watching this video on right now is no doubt a few gigahertz
+你现在看视频的电脑或手机,肯定有几千兆赫兹
+
+-- that's BILLIONs of CPU cycles every single... second.
+- 1 秒 10 亿次时钟周期
+
+Also, you may have heard of people overclocking their computers.
+你可能听过有人会把计算机超频
+
+This is when you modify the clock to speed up the tempo of the CPU
+意思是修改时钟速度,加快 CPU 的速度
+
+-- like when the drummer speeds up when the Roman Galley needs to ram another ship.
+- 就像罗马帆船要撞另一艘船时,鼓手会加快敲鼓速度
+
+Chip makers often design CPUs with enough tolerance to handle a little bit of overclocking,
+芯片制造商经常给 CPU 留一点余地,可以接受一点超频
+
+but too much can either overheat the CPU,
+但超频太多会让 CPU 过热
+
+or produce gobbledygook as the signals fall behind the clock.
+或产生乱码,因为信号跟不上时钟
+
+And although you don't hear very much about underclocking,
+你可能很少听说降频
+
+it's actually super useful.
+但降频其实很有用
+
+Sometimes it's not necessary to run the processor at full speed...
+有时没必要让处理器全速运行
+
+maybe the user has stepped away, or just not running a particularly demanding program.
+可能用户走开了,或者在跑一个性能要求较低的程序
+
+By slowing the CPU down, you can save a lot of power,
+把 CPU 的速度降下来,可以省很多电
+
+which is important for computers that run on batteries, like laptops and smartphones.
+省电对用电池的设备很重要,比如笔记本和手机
+
+To meet these needs,
+为了尽可能省电
+
+many modern processors can increase or decrease their clock speed based on demand,
+很多现代处理器可以按需求 加快或减慢时钟速度
+
+which is called dynamic frequency scaling.
+这叫 "动态调整频率"
+
+So, with the addition of a clock, our CPU is complete.
+加上时钟后,CPU 才是完整的.
+
+We can now put a box around it, and make it its own component.
+现在可以放到盒子里,变成一个独立组件
+
+Yup.
+对
+
+A new level of abstraction!
+一层新的抽象!
+
+RAM, as I showed you last episode,
+RAM,上集说过,是在 CPU 外面的独立组件
+
+lies outside the CPU as its own component,
+RAM,上集说过,是在 CPU 外面的独立组件
+
+and they communicate with each other using address, data and enable wires.
+CPU 和 RAM 之间 \N 用 "地址线" "数据线" 和 "允许读/写线" 进行通信
+
+Although the CPU we designed today is a simplified example,
+虽然今天我们设计的 CPU 是简化版的,
+
+many of the basic mechanics we discussed are still found in modern processors.
+但我们提到的很多机制,依然存在于现代处理器里
+
+Next episode, we're going to beef up our CPU,
+下一集,我们要加强 CPU,给它扩展更多指令.
+
+extending it with more instructions as we take our first baby steps into software.
+同时开始讲软件.
+
+I'll see you next week.
+下周见
+
+Hi, I’m Carrie Anne and this is Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode, we combined an ALU, control unit, some memory, and a clock together to
+上集我们把 ALU, 控制单元, RAM, 时钟 结合在一起
+
+make a basic, but functional Central Processing Unit – or CPU
+做了个基本,但可用的"中央处理单元", 简称 CPU
+
+– the beating, ticking heart of a computer.
+它是计算机的核心
+
+We’ve done all the hard work of building many of these components from the electronic
+我们已经用电路做了很多组件.
+
+circuits up, and now it’s time to give our CPU some actual instructions to process!
+这次我们给 CPU 一些指令来运行!
+
+The thing that makes a CPU powerful is the fact that it is programmable –
+CPU 之所以强大,是因为它是可编程的 -
+
+if you write a different sequence of instructions, then the CPU will perform a different task.
+如果写入不同指令,就会执行不同任务
+
+So the CPU is a piece of hardware which is controlled by easy-to-modify software!
+CPU 是一块硬件,可以被软件控制!
+
+Let’s quickly revisit the simple program that we stepped through last episode.
+我们重新看一下上集的简单程序
+
+The computer memory looked like this.
+内存里有这些值
+
+Each address contained 8 bits of data.
+每个地址可以存 8 位数据
+
+For our hypothetical CPU, the first four bits specified the operation code, or opcode, and
+因为我们的 CPU 是假设的,这里前4位是"操作码"
+
+the second set of four bits specified an address or registers.
+后4位指定一个内存地址,或寄存器.
+
+In memory address zero we have 0010 1110.
+内存地址 0 是 0010 1110
+
+Again, those first four bits are our opcode which corresponds to a "LOAD_A" instruction.
+前 4 位代表 LOAD_A 指令
+
+This instruction reads data from a location of memory specified in those last four bits
+意思是:把后 4 位指定的内存地址的值,放入寄存器 A
+
+of the instruction and saves it into Register A. In this case, 1110, or 14 in decimal.
+后 4 位是 1110,十进制的 14
+
+So let’s not think of this of memory address 0 as "0010 1110", but rather as the instruction
+我们来把 0010 1110 看成 "LOAD_A 14" 指令
+
+"LOAD_A 14".
+我们来把 0010 1110 看成 "LOAD_A 14" 指令
+
+That’s much easier to read and understand!
+这样更好理解!
+
+And for me to say!
+也更方便说清楚
+
+And we can do the same thing for the rest of the data in memory.
+可以对内存里剩下的数也这样转换.
+
+In this case, our program is just four instructions long,
+这里,我们的程序只有4个指令
+
+and we’ve put some numbers into memory too, 3 and 14.
+还有数字 3 和 14
+
+So now let’s step through this program:
+现在一步步看
+
+First is LOAD_A 14, which takes the value in address 14, which is the number 3,
+"LOAD_A 14" 是从地址 14 中拿到数字3,放入寄存器A
+
+and stores it into Register A.
+"LOAD_A 14" 是从地址 14 中拿到数字3,放入寄存器A
+
+Then we have a "LOAD_B 15" instruction, which takes the value in memory location 15,
+"LOAD_B 15" 是从地址 15 中拿到数字14,放入寄存器B
+
+which is the number 14, and saves it into Register B.
+"LOAD_B 15" 是从地址 15 中拿到数字14,放入寄存器B
+
+Okay.
+好.
+
+Easy enough.
+挺简单的!
+
+But now we have an "ADD" instruction.
+下一个是 ADD 指令
+
+This tells the processor to use the ALU to add two registers together,
+"ADD B A" 告诉 ALU \N 把寄存器 B 和寄存器 A 里的数字加起来
+
+in this case, B and A are specified.
+"ADD B A" 告诉 ALU \N 把寄存器 B 和寄存器 A 里的数字加起来
+
+The ordering is important, because the resulting sum is saved into the second register that’s specified.
+(B和A的)顺序很重要,因为结果会存在第二个寄存器
+
+So in this case, the resulting sum is saved into Register A.
+也就是寄存器 A
+
+And finally, our last instruction is "STORE_A 13", which instructs the CPU to write whatever
+最后一条指令是 "STORE_A 13" \N 把寄存器 A 的值存入内存地址 13
+
+value is in Register A into memory location 13.
+最后一条指令是 "STORE_A 13" \N 把寄存器 A 的值存入内存地址 13
+
+Yesss!
+好棒!
+
+Our program adds two numbers together.
+我们把 2 个数加在了一起!
+
+That’s about as exciting as it gets when we only have four instructions to play with.
+毕竟只有4个指令,也只能做这个了.
+
+So let’s add some more!
+加多一些指令吧!
+
+Now we’ve got a subtract function, which like ADD, specifies two registers to operate on.
+SUB 是减法,和 ADD 一样也要 2 个寄存器来操作.
+
+We’ve also got a fancy new instruction called JUMP.
+还有 JUMP(跳转)
+
+As the name implies, this causes the program to "jump" to a new location.
+让程序跳转到新位置
+
+This is useful if we want to change the order of instructions, or choose to skip some instructions.
+如果想改变指令顺序,或跳过一些指令,这个很实用
+
+For example, a JUMP 0, would cause the program to go back to the beginning.
+举例, JUMP 0 可以跳回开头
+
+At a low level, this is done by writing the value specified in the last four bits into
+JUMP 在底层的实现方式是 \N 把指令后 4 位代表的内存地址的值
+
+the instruction address register, overwriting the current value.
+覆盖掉 "指令地址寄存器" 里的值
+
+We’ve also added a special version of JUMP called JUMP_NEGATIVE.
+还有一个特别版的 JUMP 叫 JUMP_NEGATIVE
+
+"This only jumps the program if the ALU’s negative flag is set to true.
+它只在 ALU 的 "负数标志" 为真时,进行 JUMP
+
+As we talked about in Episode 5, the negative flag is only set
+第5集讲过,算数结果为负,"负数标志"才是真
+
+when the result of an arithmetic operation is negative.
+第5集讲过,算数结果为负,"负数标志"才是真
+
+If the result of the arithmetic was zero or positive, the negative flag would not be set.
+结果不是负数时, "负数标志"为假
+
+So the JUMP NEGATIVE won’t jump anywhere, and the CPU will just continue on to the next instruction.
+如果是假,JUMP_NEGATIVE 就不会执行 \N 程序照常进行
+
+Our previous program really should have looked like this to be correct,
+我们之前的例子程序,其实应该是这样,才能正确工作.
+
+otherwise the CPU would have just continued on after the STORE instruction, processing all those 0’s.
+否则跑完 STORE_A 13 之后,\N CPU 会不停运行下去,处理后面的 0
+
+But there is no instruction with an opcode of 0, and so the computer would have crashed!
+因为 0 不是操作码,所以电脑会崩掉!
+
+It’s important to point out here that we’re storing
+我还想指出一点,指令和数据都是存在同一个内存里的.
+
+both instructions and data in the same memory.
+我还想指出一点,指令和数据都是存在同一个内存里的.
+
+There is no difference fundamentally -- it’s all just binary numbers.
+它们在根本层面上毫无区别 - 都是二进制数
+
+So the HALT instruction is really important because it allows us to separate the two.
+HALT 很重要,能区分指令和数据
+
+Okay, so let’s make our program a bit more interesting, by adding a JUMP.
+好,现在用 JUMP 让程序更有趣一些.
+
+We’ll also modify our two starting values in memory to 1 and 1.
+我们还把内存中 3 和 14 两个数字,改成 1 和 1
+
+Lets step through this program just as our CPU would.
+现在来从 CPU 的视角走一遍程序
+
+First, LOAD_A 14 loads the value 1 into Register A.
+首先 LOAD_A 14,把 1 存入寄存器A \N(因为地址 14 里的值是 1)
+
+Next, LOAD_B 15 loads the value 1 into Register B.
+然后 LOAD_B 15,把 1 存入寄存器B\N(因为地址 15 里的值也是 1)
+
+As before, we ADD registers B and A together, with the sum going into Register A. 1+1 = 2,
+然后 ADD B A 把寄存器 B 和 A 相加 \N 结果放到寄存器 A 里
+
+so now Register A has the value 2 in it (stored in binary of course)
+现在寄存器 A 的值是 2 \N (当然是以二进制存的)
+
+Then the STORE instruction saves that into memory location 13.
+然后 STORE_A 13 指令,把寄存器 A 的值存入内存地址 13
+
+Now we hit a "JUMP 2" instruction.
+现在遇到 JUMP 2 指令
+
+This causes the processor to overwrite the value in the instruction address register,
+CPU 会把"指令地址寄存器"的值,现在是 4,改成 2
+
+which is currently 4, with the new value, 2.
+CPU 会把"指令地址寄存器"的值,现在是 4,改成 2
+
+Now, on the processor’s next fetch cycle, we don’t fetch HALT,
+因此下一步不再是 HALT
+
+instead we fetch the instruction at memory location 2, which is ADD B A.
+而是读内存地址 2 里的指令,也就是 ADD B A
+
+We’ve jumped!
+我们跳转了!
+
+Register A contains the value 2, and register B contains the value 1.
+寄存器 A 里是 2,寄存器 B 里是 1
+
+So 1+2 = 3, so now Register A has the value 3.
+1+2=3,寄存器 A 变成 3
+
+We store that into memory.
+存入内存
+
+And we’ve hit the JUMP again, back to ADD B A.
+又碰到 JUMP 2,又回到 ADD B A.
+
+1+3=4
+1+3=4
+
+So now register A has the value 4.
+现在寄存器 A 是 4
+
+See what's happening here?
+发现了吗?
+
+Every loop, we’re adding one.
+每次循环都+1
+
+Its counting up!
+不断增多
+
+Cooooool.
+酷
+
+But notice there’s no way to ever escape.
+但没法结束啊
+
+We’re never.. ever.. going to get to that halt instruction,
+永远不会碰到 HALT
+
+because we’re always going to hit that JUMP.
+总是会碰到 JUMP
+
+This is called an infinite loop – a program that runs forever… ever… ever… ever…
+这叫无限循环 - 这个程序会永远跑下去.. 下去.. 下去.. 下去
+
+ever
+下去
+
+To break the loop, we need a conditional jump.
+为了停下来,我们需要有条件的 JUMP
+
+A jump that only happens if a certain condition is met.
+只有特定条件满足了,才执行 JUMP.
+
+Our JUMP_NEGATIVE is one example of a conditional jump,
+比如 JUMP NEGATIVE 就是条件跳转的一个例子
+
+but computers have other types too - like JUMP IF EQUAL and JUMP IF GREATER.
+还有其他类型的条件跳转,比如\N JUMP IF EQUAL(如果相等)\N JUMP IF GREATER(如果更大)
+
+So let’s make our code a little fancier and step through it.
+现在把代码弄花哨一点,再过一遍代码
+
+Like before, the program starts by loading values from memory into registers A and B.
+就像之前,程序先把内存值放入寄存器 A 和 B.
+
+In this example, the number 11 gets loaded into Register A, and 5 gets loaded into Register B.
+寄存器 A 是 11,寄存器 B 是 5
+
+Now we subtract register B from register A. That’s 11 minus 5, which is 6,
+SUB B A,用 A 减 B,11-5=6
+
+and so 6 gets saved into Register A.
+6 存入寄存器 A
+
+Now we hit our JUMP NEGATIVE.
+JUMP NEGATIVE 出场
+
+The last ALU result was 6.
+上一次 ALU 运算的结果是 6
+
+That’s a positive number, so the the negative flag is false.
+是正数,所以 "负数标志" 是假
+
+That means the processor does not jump.
+因此处理器不会执行 JUMP
+
+So we continue on to the next instruction...
+继续下一条指令
+
+...which is a JUMP 2.
+JUMP 2
+
+No conditional on this one, so we jump to instruction 2 no matter what.
+JUMP 2 没有条件,直接执行!
+
+Ok, so we’re back at our SUBTRACT Register B from Register A. 6 minus 5 equals 1.
+又回到寄存器 A-B,6-5=1
+
+So 1 gets saved into register A.
+A 变成 1
+
+Next instruction.
+下一条指令
+
+We’re back again at our JUMP NEGATIVE.
+又是 JUMP NEGATIVE
+
+1 is also a positive number, so the CPU continues on to the JUMP 2, looping back around again
+因为 1 还是正数,因此 JUMP NEGATIVE 不会执行 \N 来到下一条指令,JUMP 2
+
+to the SUBTRACT instruction.
+又来减一次
+
+This time is different though.
+这次就不一样了
+
+1 minus 5 is negative 4.
+1-5=-4
+
+And so the ALU sets its negative flag to true for the first time.
+这次ALU的 "负数标志" 是真
+
+Now, when we advance to the next instruction,
+现在下一条指令
+
+JUMP_NEGATIVE 5, the CPU executes the jump to memory location 5.
+JUMP NEGATIVE 5, CPU 的执行跳到内存地址 5
+
+We’re out of the infinite loop!
+跳出了无限循环!
+
+Now we have a ADD B to A. Negative 4 plus 5, is positive 1, and we save that into Register A.
+现在的指令是 ADD B A,-4+5=1,1 存入寄存器 A
+
+Next we have a STORE instruction that saves Register A into memory address 13.
+下一条指令 STORE_A 13,把 A 的值存入内存地址 13
+
+Lastly, we hit our HALT instruction and the computer rests.
+最后碰到 HALT 指令,停下来.
+
+So even though this program is only 7 instructions long, the CPU ended up executing 13 instructions,
+虽然程序只有 7 个指令,但 CPU 执行了 13 个指令,
+
+and that's because it looped twice internally.
+因为在内部循环了 2 次.
+
+This code calculated the remainder if we divide 5 into 11, which is one.
+这些代码其实是算余数的,11除5余1
+
+With a few extra lines of code, we could also keep track of how many loops we did, the count
+如果加多几行指令,我们还可以跟踪循环了多少次
+
+of which would be how many times 5 went into 11… we did two loops, so that means 5 goes
+11除5,循环2次
+
+into 11 two times... with a remainder of 1.
+余1
+
+And of course this code could work for any two numbers, which we can just change in memory
+当然,我们可以用任意2个数,7和81,18和54,什么都行
+
+to whatever we want: 7 and 81, 18 and 54, it doesn’t matter
+当然,我们可以用任意2个数,7和81,18和54,什么都行
+
+-- that’s the power of software!
+这就是软件的强大之处
+
+Software also allowed us to do something our hardware could not.
+软件还让我们做到硬件做不到的事
+
+Remember, our ALU didn’t have the functionality to divide two numbers,
+ALU 可没有除法功能
+
+instead it’s the program we made that gave us that functionality.
+是程序给了我们这个功能.
+
+And then other programs can use our divide program to do even fancier things.
+别的程序也可以用我们的除法程序,来做其他事情
+
+And you know what that means.
+这意味着 一层新抽象!
+
+New levels of abstraction!
+这意味着 一层新抽象!
+
+So, our hypothetical CPU is very basic – all of its instructions are 8 bits long,
+我们这里假设的 CPU 很基础,所有指令都是 8 位,
+
+with the opcode occupying only the first four bits.
+操作码只占了前面 4 位
+
+So even if we used every combination of 4 bits, our CPU would only be able to support
+即便用尽 4 位,也只能代表 16 个指令
+
+a maximum of 16 different instructions.
+即便用尽 4 位,也只能代表 16 个指令
+
+On top of that, several of our instructions used the last 4 bits to specify a memory location.
+而且我们有几条指令,是用后 4 位来指定内存地址
+
+But again, 4 bits can only encode 16 different values,
+因为 4 位最多只能表示 16 个值,
+
+meaning we can address a maximum of 16 memory locations - that’s not a lot to work with.
+所以我们只能操作 16 个地址,这可不多.
+
+For example, we couldn’t even JUMP to location 17,
+我们甚至不能 JUMP 17
+
+because we literally can’t fit the number 17 into 4 bits.
+因为 4 位二进制无法表示数字 17
+
+For this reason, real, modern CPUs use two strategies.
+因此,真正的现代 CPU 用两种策略
+
+The most straightforward approach is just to have bigger instructions, with more bits,
+最直接的方法是用更多位来代表指令,比如 32 位或 64 位
+
+like 32 or 64 bits.
+最直接的方法是用更多位来代表指令,比如 32 位或 64 位
+
+This is called the instruction length.
+这叫 指令长度
+
+Unsurprisingly.
+毫不意外
+
+The second approach is to use variable length instructions.
+第二个策略是 "可变指令长度"
+
+For example, imagine a CPU that uses 8 bit opcodes.
+举个例子,比如某个 CPU 用 8 位长度的操作码
+
+When the CPU sees an instruction that needs no extra values, like the HALT instruction,
+如果看到 HALT 指令,HALT 不需要额外数据
+
+it can just execute it immediately.
+那么会马上执行.
+
+However, if it sees something like a JUMP instruction, it knows it must also fetch
+如果看到 JUMP,它得知道位置值
+
+the address to jump to, which is saved immediately behind the JUMP instruction in memory.
+这个值在 JUMP 的后面
+
+This is called, logically enough, an Immediate Value.
+这叫 "立即值"
+
+In such processor designs, instructions can be any number of bytes long,
+这样设计,指令可以是任意长度
+
+which makes the fetch cycle of the CPU a tad more complicated.
+但会让读取阶段复杂一点点
+
+Now, our example CPU and instruction set is hypothetical,
+要说明的是,我们拿来举例的 CPU 和指令集都是假设的,
+
+designed to illustrate key working principles.
+是为了展示核心原理
+
+So I want to leave you with a real CPU example.
+所以我们来看个真的 CPU 例子.
+
+In 1971, Intel released the 4004 processor.
+1971年,英特尔发布了 4004 处理器.
+
+It was the first CPU put all into a single chip
+这是第一次把 CPU 做成一个芯片 \N 给后来的英特尔处理器打下了基础
+
+and paved the path to the intel processors we know and love today.
+这是第一次把 CPU 做成一个芯片 \N 给后来的英特尔处理器打下了基础
+
+It supported 46 instructions, shown here.
+它支持 46 个指令
+
+Which was enough to build an entire working computer.
+足够做一台能用的电脑
+
+And it used many of the instructions we’ve talked about like JUMP ADD SUBTRACT and LOAD.
+它用了很多我们说过的指令,比如 JUMP ADD SUB LOAD
+
+It also uses 8-bit immediate values, like we just talked about, for things like JUMPs,
+它也用 8 位的"立即值"来执行 JUMP, 以表示更多内存地址.
+
+in order to address more memory.
+它也用 8 位的"立即值"来执行 JUMP, 以表示更多内存地址.
+
+And processors have come a long way since 1971.
+处理器从 1971 年到现在发展巨大.
+
+A modern computer processor, like an Intel Core i7, has thousands of different instructions
+现代 CPU, 比如英特尔酷睿 i7, 有上千个指令和指令变种
+
+and instruction variants, ranging from one to fifteen bytes long.
+长度从1到15个字节.
+
+For example, there’s over a dozens different opcodes just for variants of ADD!
+举例,光 ADD 指令就有很多变种!
+
+And this huge growth in instruction set size is due in large part to extra bells and whistles
+指令越来越多,是因为给 CPU 设计了越来越多功能
+
+that have been added to processor designs overtime, which we’ll talk about next episode.
+下集我们会讲
+
+See you next week!
+下周见
+
+Hi, I’m Carrie Anne and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+As we’ve discussed throughout the series, computers have come a long way from mechanical devices
+随着本系列进展,我们知道计算机进步巨大
+
+capable of maybe one calculation per second,
+从 1 秒 1 次运算,到现在有千赫甚至兆赫的CPU
+
+to CPUs running at kilohertz and megahertz speeds.
+从 1 秒 1 次运算,到现在有千赫甚至兆赫的CPU
+
+The device you’re watching this video on right now is almost certainly running at Gigahertz speeds
+你现在看视频的设备八成也有 GHz 速度
+
+- that’s billions of instructions executed every second.
+1 秒十亿条指令
+
+Which, trust me, is a lot of computation!
+这是很大的计算量!
+
+In the early days of electronic computing, processors were typically made faster by
+早期计算机的提速方式是 减少晶体管的切换时间.
+
+improving the switching time of the transistors inside the chip
+早期计算机的提速方式是 减少晶体管的切换时间.
+
+- the ones that make up all the logic gates, ALUs
+晶体管组成了逻辑门,ALU 以及前几集的其他组件
+
+and other stuff we’ve talked about over the past few episodes.
+晶体管组成了逻辑门,ALU 以及前几集的其他组件
+
+But just making transistors faster and more efficient only went so far, so processor designers
+但这种提速方法最终会碰到瓶颈,所以处理器厂商
+
+have developed various techniques to boost performance allowing not only simple instructions
+发明各种新技术来提升性能,不但让简单指令运行更快
+
+to run fast, but also performing much more sophisticated operations.
+也让它能进行更复杂的运算
+
+Last episode, we created a small program for our CPU that allowed us to divide two numbers.
+上集我们写了个做除法的程序,给 CPU 执行
+
+We did this by doing many subtractions in a row... so, for example, 16 divided by 4
+方法是做一连串减法,比如16除4 会变成
+
+could be broken down into the smaller problem of 16 minus 4, minus 4, minus 4, minus 4.
+16-4 -4 -4 -4
+
+When we hit zero, or a negative number, we knew that we we’re done.
+碰到 0 或负数才停下.
+
+But this approach gobbles up a lot of clock cycles, and isn’t particularly efficient.
+但这种方法要多个时钟周期,很低效
+
+So most computer processors today have divide as one of the instructions
+所以现代 CPU 直接在硬件层面设计了除法 \N 可以直接给 ALU 除法指令
+
+that the ALU can perform in hardware.
+所以现代 CPU 直接在硬件层面设计了除法 \N 可以直接给 ALU 除法指令
+
+Of course, this extra circuitry makes the ALU bigger and more complicated to design,
+这让 ALU 更大也更复杂一些
+
+but also more capable - a complexity-for-speed tradeoff that
+但也更厉害 - \N 复杂度 vs 速度 的平衡在计算机发展史上经常出现
+
+has been made many times in computing history.
+但也更厉害 - \N 复杂度 vs 速度 的平衡在计算机发展史上经常出现
+
+For instance, modern computer processors now have special circuits for things like
+举例,现代处理器有专门电路来处理 \N 图形操作, 解码压缩视频, 加密文档 等等
+
+graphics operations, decoding compressed video, and encrypting files
+举例,现代处理器有专门电路来处理 \N 图形操作, 解码压缩视频, 加密文档 等等
+
+all of which are operations that would take many many many clock cycles to perform with standard operations.
+如果用标准操作来实现,要很多个时钟周期.
+
+You may have even heard of processors with MMX, 3DNow!, or SSE.
+你可能听过某些处理器有 MMX, 3DNOW, SEE
+
+These are processors with additional, fancy circuits that allow them to
+它们有额外电路做更复杂的操作
+
+execute additional fancy instructions - for things like gaming and encryption.
+用于游戏和加密等场景
+
+These extensions to the instruction set have grown, and grown over time, and once people
+指令不断增加,人们一旦习惯了它的便利就很难删掉
+
+have written programs to take advantage of them, it’s hard to remove them.
+指令不断增加,人们一旦习惯了它的便利就很难删掉
+
+So instruction sets tend to keep getting larger and larger keeping all the old opcodes around for backwards compatibility.
+所以为了兼容旧指令集,指令数量越来越多
+
+The Intel 4004, the first truly integrated CPU, had 46 instructions
+英特尔 4004,第一个集成CPU,有 46 条指令
+
+- which was enough to build a fully functional computer.
+足够做一台能用的计算机
+
+But a modern computer processor has thousands of different instructions,
+但现代处理器有上千条指令,有各种巧妙复杂的电路
+
+which utilize all sorts of clever and complex internal circuitry.
+但现代处理器有上千条指令,有各种巧妙复杂的电路
+
+Now, high clock speeds and fancy instruction sets lead to another problem
+超高的时钟速度带来另一个问题
+
+- getting data in and out of the CPU quickly enough.
+- 如何快速传递数据给 CPU
+
+It’s like having a powerful steam locomotive, but no way to shovel in coal fast enough.
+就像有强大的蒸汽机 但无法快速加煤
+
+In this case, the bottleneck is RAM.
+RAM 成了瓶颈
+
+RAM is typically a memory module that lies outside the CPU.
+RAM 是 CPU 之外的独立组件
+
+This means that data has to be transmitted to and from RAM along sets of data wires,
+意味着数据要用线来传递,叫"总线"
+
+called a bus.
+意味着数据要用线来传递,叫"总线"
+
+This bus might only be a few centimeters long,
+总线可能只有几厘米
+
+and remember those electrical signals are traveling near the speed of light,
+别忘了电信号的传输接近光速
+
+but when you are operating at gigahertz speeds
+但 CPU 每秒可以处理上亿条指令
+
+– that’s billionths of a second – even this small delay starts to become problematic.
+很小的延迟也会造成问题
+
+It also takes time for RAM itself to lookup the address, retrieve the data
+RAM 还需要时间找地址 \N 取数据,配置,输出数据
+
+and configure itself for output.
+RAM 还需要时间找地址 \N 取数据,配置,输出数据
+
+So a “load from RAM” instruction might take dozens of clock cycles to complete, and during
+一条"从内存读数据"的指令可能要多个时钟周期
+
+this time the processor is just sitting there idly waiting for the data.
+CPU 空等数据
+
+One solution is to put a little piece of RAM right on the CPU -- called a cache.
+解决延迟的方法之一是 \N 给 CPU 加一点 RAM - 叫"缓存"
+
+There isn’t a lot of space on a processor’s chip,
+因为处理器里空间不大,所以缓存一般只有 KB 或 MB
+
+so most caches are just kilobytes or maybe megabytes in size,
+因为处理器里空间不大,所以缓存一般只有 KB 或 MB
+
+where RAM is usually gigabytes.
+而 RAM 都是 GB 起步
+
+Having a cache speeds things up in a clever way.
+缓存提高了速度
+
+When the CPU requests a memory location from RAM, the RAM can transmit
+CPU 从 RAM 拿数据时 \N RAM 不用传一个,可以传一批
+
+not just one single value, but a whole block of data.
+CPU 从 RAM 拿数据时 \N RAM 不用传一个,可以传一批
+
+This takes only a little bit more time,
+虽然花的时间久一点,但数据可以存在缓存
+
+but it allows this data block to be saved into the cache.
+虽然花的时间久一点,但数据可以存在缓存
+
+This tends to be really useful because computer data is often arranged and processed sequentially.
+这很实用,因为数据常常是一个个按顺序处理
+
+For example, let say the processor is totalling up daily sales for a restaurant.
+举个例子,算餐厅的当日收入
+
+It starts by fetching the first transaction from RAM at memory location 100.
+先取 RAM 地址 100 的交易额
+
+The RAM, instead of sending back just that one value, sends a block of data, from memory
+RAM 与其只给1个值,直接给一批值
+
+location 100 through 200, which are then all copied into the cache.
+把地址100到200都复制到缓存
+
+Now, when the processor requests the next transaction to add to its running total, the
+当处理器要下一个交易额时
+
+value at address 101, the cache will say “Oh, I’ve already got that value right here,
+地址 101,缓存会说:"我已经有了,现在就给你"
+
+so I can give it to you right away!”
+地址 101,缓存会说:"我已经有了,现在就给你"
+
+And there’s no need to go all the way to RAM.
+不用去 RAM 取数据
+
+Because the cache is so close to the processor,
+因为缓存离 CPU 近, 一个时钟周期就能给数据 - CPU 不用空等!
+
+it can typically provide the data in a single clock cycle -- no waiting required.
+因为缓存离 CPU 近, 一个时钟周期就能给数据 - CPU 不用空等!
+
+This speeds things up tremendously over having to go back and forth to RAM every single time.
+比反复去 RAM 拿数据快得多
+
+When data requested in RAM is already stored in the cache like this it’s called a
+如果想要的数据已经在缓存,叫 缓存命中
+
+cache hit,
+如果想要的数据已经在缓存,叫 缓存命中
+
+and if the data requested isn’t in the cache, so you have to go to RAM, it’s a called
+如果想要的数据不在缓存,叫 缓存未命中
+
+a cache miss.
+如果想要的数据不在缓存,叫 缓存未命中
+
+The cache can also be used like a scratch space,
+缓存也可以当临时空间,存一些中间值,适合长/复杂的运算
+
+storing intermediate values when performing a longer, or more complicated calculation.
+缓存也可以当临时空间,存一些中间值,适合长/复杂的运算
+
+Continuing our restaurant example, let’s say the processor has finished totalling up
+继续餐馆的例子,假设 CPU 算完了一天的销售额
+
+all of the sales for the day, and wants to store the result in memory address 150.
+想把结果存到地址 150
+
+Like before, instead of going back all the way to RAM to save that value,
+就像之前,数据不是直接存到 RAM
+
+it can be stored in cached copy, which is faster to save to,
+而是存在缓存,这样不但存起来快一些
+
+and also faster to access later if more calculations are needed.
+如果还要接着算,取值也快一些
+
+But this introduces an interesting problem -
+但这样带来了一个有趣的问题
+
+- the cache’s copy of the data is now different to the real version stored in RAM.
+缓存和 RAM 不一致了.
+
+This mismatch has to be recorded, so that at some point everything can get synced up.
+这种不一致必须记录下来,之后要同步
+
+For this purpose, the cache has a special flag for each block of memory it stores, called
+因此缓存里每块空间 有一个特殊标记
+
+the dirty bit
+叫 "脏位"
+
+-- which might just be the best term computer scientists have ever invented.
+- 这可能是计算机科学家取的最贴切的名字
+
+Most often this synchronization happens when the cache is full,
+同步一般发生在 当缓存满了而 CPU 又要缓存时
+
+but a new block of memory is being requested by the processor.
+同步一般发生在 当缓存满了而 CPU 又要缓存时
+
+Before the cache erases the old block to free up space, it checks its dirty bit,
+在清理缓存腾出空间之前,会先检查 "脏位"
+
+and if it’s dirty, the old block of data is written back to RAM before loading in the new block.
+如果是"脏"的, 在加载新内容之前, 会把数据写回 RAM
+
+Another trick to boost cpu performance is called instruction pipelining.
+另一种提升性能的方法叫 "指令流水线"
+
+Imagine you have to wash an entire hotel’s worth of sheets,
+想象下你要洗一整个酒店的床单
+
+but you’ve only got one washing machine and one dryer.
+但只有 1 个洗衣机, 1 个干燥机
+
+One option is to do it all sequentially: put a batch of sheets in the washer
+选择1:按顺序来,放洗衣机等 30 分钟洗完
+
+and wait 30 minutes for it to finish.
+选择1:按顺序来,放洗衣机等 30 分钟洗完
+
+Then take the wet sheets out and put them in the dryer and wait another 30 minutes for that to finish.
+然后拿出湿床单,放进干燥机等 30 分钟烘干
+
+This allows you to do one batch of sheets every hour.
+这样1小时洗一批
+
+Side note: if you have a dryer that can dry a load of laundry in 30 minutes,
+另外一说:如果你有 30 分钟就能烘干的干燥机
+
+Please tell me the brand and model in the comments, because I’m living with 90 minute dry times, minimum.
+请留言告诉我是什么牌子,我的至少要 90 分钟.
+
+But, even with this magic clothes dryer,
+即使有这样的神奇干燥机, \N 我们可以用"并行处理"进一步提高效率
+
+you can speed things up even more if you parallelize your operation.
+即使有这样的神奇干燥机, \N 我们可以用"并行处理"进一步提高效率
+
+As before, you start off putting one batch of sheets in the washer.
+就像之前,先放一批床单到洗衣机
+
+You wait 30 minutes for it to finish.
+等 30 分钟洗完
+
+Then you take the wet sheets out and put them in the dryer.
+然后把湿床单放进干燥机
+
+But this time, instead of just waiting 30 minutes for the dryer to finish,
+但这次,与其干等 30 分钟烘干,\N 可以放另一批进洗衣机
+
+you simultaneously start another load in the washing machine.
+但这次,与其干等 30 分钟烘干,\N 可以放另一批进洗衣机
+
+Now you’ve got both machines going at once.
+让两台机器同时工作
+
+Wait 30 minutes, and one batch is now done, one batch is half done,
+30 分钟后,一批床单完成, 另一批完成一半
+
+and another is ready to go in.
+另一批准备开始
+
+This effectively doubles your throughput.
+效率x2!
+
+Processor designs can apply the same idea.
+处理器也可以这样设计
+
+In episode 7, our example processor performed the fetch-decode-execute cycle sequentially
+第7集,我们演示了 CPU 按序处理
+
+and in a continuous loop: Fetch-decode-execute, fetch-decode-execute, fetch-decode-execute, and so on
+取指 → 解码 → 执行, 不断重复
+
+This meant our design required three clock cycles to execute one instruction.
+这种设计,三个时钟周期执行 1 条指令
+
+But each of these stages uses a different part of the CPU,
+但因为每个阶段用的是 CPU 的不同部分
+
+meaning there is an opportunity to parallelize!
+意味着可以并行处理!
+
+While one instruction is getting executed, the next instruction could be getting decoded,
+"执行"一个指令时,同时"解码"下一个指令
+
+and the instruction beyond that fetched from memory.
+"读取"下下个指令
+
+All of these separate processes can overlap
+不同任务重叠进行,同时用上 CPU 里所有部分.
+
+so that all parts of the CPU are active at any given time.
+不同任务重叠进行,同时用上 CPU 里所有部分.
+
+In this pipelined design, an instruction is executed every single clock cycle
+这样的流水线 每个时钟周期执行1个指令
+
+which triples the throughput.
+吞吐量 x 3
+
+But just like with caching this can lead to some tricky problems.
+和缓存一样,这也会带来一些问题
+
+A big hazard is a dependency in the instructions.
+第一个问题是 指令之间的依赖关系
+
+For example, you might fetch something that the currently executing instruction is just about to modify,
+举个例子,你在读某个数据 \N 而正在执行的指令会改这个数据
+
+which means you’ll end up with the old value in the pipeline.
+也就是说拿的是旧数据
+
+To compensate for this, pipelined processors have to look ahead for data dependencies,
+因此流水线处理器 要先弄清数据依赖性
+
+and if necessary, stall their pipelines to avoid problems.
+必要时停止流水线,避免出问题
+
+High end processors, like those found in laptops and smartphones,
+高端 CPU,比如笔记本和手机里那种
+
+go one step further and can dynamically reorder instructions with dependencies
+会更进一步,动态排序 有依赖关系的指令
+
+in order to minimize stalls and keep the pipeline moving,
+最小化流水线的停工时间
+
+which is called out-of-order execution.
+这叫 "乱序执行"
+
+As you might imagine, the circuits that figure this all out are incredibly complicated.
+和你猜的一样,这种电路非常复杂
+
+Nonetheless, pipelining is tremendously effective and almost all processors implement it today.
+但因为非常高效,几乎所有现代处理器都有流水线
+
+Another big hazard are conditional jump instructions -- we talked about one example, a JUMP NEGATIVE,last episode.
+第二个问题是 "条件跳转",比如上集的 JUMP NEGATIVE
+
+These instructions can change the execution flow of a program depending on a value.
+这些指令会改变程序的执行流
+
+A simple pipelined processor will perform a long stall when it sees a jump instruction,
+简单的流水线处理器,看到 JUMP 指令会停一会儿 \N 等待条件值确定下来
+
+waiting for the value to be finalized.
+简单的流水线处理器,看到 JUMP 指令会停一会儿 \N 等待条件值确定下来
+
+Only once the jump outcome is known, does the processor start refilling its pipeline.
+一旦 JUMP 的结果出了,处理器就继续流水线
+
+But, this can produce long delays, so high-end processors have some tricks to deal with this problem too.
+因为空等会造成延迟,所以高端处理器会用一些技巧
+
+Imagine an upcoming jump instruction as a fork in a road - a branch.
+可以把 JUMP 想成是 "岔路口"
+
+Advanced CPUs guess which way they are going to go, and start filling their pipeline with
+高端 CPU 会猜哪条路的可能性大一些
+
+instructions based off that guess – a technique called speculative execution.
+然后提前把指令放进流水线,这叫 "推测执行"
+
+When the jump instruction is finally resolved, if the CPU guessed correctly,
+当 JUMP 的结果出了,如果 CPU 猜对了
+
+then the pipeline is already full of the correct instructions and it can motor along without delay.
+流水线已经塞满正确指令,可以马上运行
+
+However, if the CPU guessed wrong, it has to discard all its speculative results and
+如果 CPU 猜错了,就要清空流水线
+
+perform a pipeline flush - sort of like when you miss a turn and have to do a u-turn to
+就像走错路掉头
+
+get back on route, and stop your GPS’s insistent shouting.
+让 GPS 不要再!叫!了!
+
+To minimize the effects of these flushes, CPU manufacturers have developed sophisticated
+为了尽可能减少清空流水线的次数,CPU 厂商开发了复杂的方法
+
+ways to guess which way branches will go, called branch prediction.
+来猜测哪条分支更有可能,叫"分支预测"
+
+Instead of being a 50/50 guess, today’s processors can often guess with over 90% accuracy!
+现代 CPU 的正确率超过 90%
+
+In an ideal case, pipelining lets you complete one instruction every single clock cycle,
+理想情况下,流水线一个时钟周期完成 1 个指令
+
+but then superscalar processors came along
+然后"超标量处理器"出现了,一个时钟周期完成多个指令
+
+which can execute more than one instruction per clock cycle.
+然后"超标量处理器"出现了,一个时钟周期完成多个指令
+
+During the execute phase even in a pipelined design,
+即便有流水线设计,在指令执行阶段
+
+whole areas of the processor might be totally idle.
+处理器里有些区域还是可能会空闲
+
+For example, while executing an instruction that fetches a value from memory,
+比如,执行一个 "从内存取值" 指令期间
+
+the ALU is just going to be sitting there, not doing a thing.
+ALU 会闲置
+
+So why not fetch-and-decode several instructions at once, and whenever possible, execute instructions
+所以一次性处理多条指令(取指令+解码) 会更好.
+
+that require different parts of the CPU all at the same time
+如果多条指令要 ALU 的不同部分,就多条同时执行
+
+But we can take this one step further and add duplicate circuitry
+我们可以再进一步,加多几个相同的电路 \N 执行出现频次很高的指令
+
+for popular instructions.
+我们可以再进一步,加多几个相同的电路 \N 执行出现频次很高的指令
+
+For example, many processors will have four, eight or more identical ALUs,
+举例,很多 CPU 有四个, 八个甚至更多 完全相同的ALU
+
+so they can execute many mathematical instructions all in parallel!
+可以同时执行多个数学运算
+
+Ok, the techniques we’ve discussed so far primarily optimize the execution throughput
+好了,目前说过的方法,都是优化 1 个指令流的吞吐量
+
+of a single stream of instructions,
+好了,目前说过的方法,都是优化 1 个指令流的吞吐量
+
+but another way to increase performance is to run several streams of instructions at once
+另一个提升性能的方法是 同时运行多个指令流
+
+with multi-core processors.
+用多核处理器
+
+You might have heard of dual core or quad core processors.
+你应该听过双核或四核处理器
+
+This means there are multiple independent processing units inside of a single CPU chip.
+意思是一个 CPU 芯片里,有多个独立处理单元
+
+In many ways, this is very much like having multiple separate CPUs,
+很像是有多个独立 CPU
+
+but because they’re tightly integrated, they can share some resources,
+但因为它们整合紧密,可以共享一些资源
+
+like cache, allowing the cores to work together on shared computations.
+比如缓存,使得多核可以合作运算
+
+But, when more cores just isn’t enough, you can build computers with multiple independent CPUs!
+但多核不够时,可以用多个 CPU
+
+High end computers, like the servers streaming this video from YouTube’s datacenter, often
+高端计算机,比如现在给你传视频的 Youtube 服务器
+
+need the extra horsepower to keep it silky smooth for the hundreds of people watching simultaneously.
+需要更多马力,让上百人能同时流畅观看
+
+Two- and four-processor configuration are the most common right now,
+2个或4个CPU是最常见的
+
+but every now and again even that much processing power isn’t enough.
+但有时人们有更高的性能要求
+
+So we humans get extra ambitious and build ourselves a supercomputer!
+所以造了超级计算机!
+
+If you’re looking to do some really monster calculations
+如果要做怪兽级运算
+
+– like simulating the formation of the universe - you’ll need some pretty serious compute power.
+比如模拟宇宙形成,你需要强大的计算能力
+
+A few extra processors in a desktop computer just isn’t going to cut it.
+给普通台式机加几个 CPU 没什么用
+
+You’re going to need a lot of processors.
+你需要很多处理器!
+
+No.. no... even more than that.
+不…不…还要更多
+
+A lot more!
+更多
+
+When this video was made, the world’s fastest computer was located in
+截止至视频发布,世上最快的计算机在
+
+The National Supercomputing Center in Wuxi, China.
+中国无锡的国家超算中心
+
+The Sunway TaihuLight contains a brain-melting 40,960 CPUs, each with 256 cores!
+神威·太湖之光有 40960 个CPU,每个 CPU 有 256 个核心
+
+Thats over ten million cores in total... and each one of those cores runs at 1.45 gigahertz.
+总共超过1千万个核心,每个核心的频率是 1.45GHz
+
+In total, this machine can process 93 Quadrillion -- that’s 93 million-billions
+每秒可以进行 9.3 亿亿次浮点数运算
+
+floating point math operations per second, knows as FLOPS.
+也叫 每秒浮点运算次数 (FLOPS)
+
+And trust me, that’s a lot of FLOPS!!
+相信我 这个速度很可怕
+
+No word on whether it can run Crysis at max settings, but I suspect it might.
+没人试过跑最高画质的《孤岛危机》但我估计没问题
+
+So long story short, not only have computer processors gotten a lot faster over the years,
+长话短说,这些年处理器不但大大提高了速度
+
+but also a lot more sophisticated, employing all sorts of clever tricks to squeeze out
+而且也变得更复杂,用各种技巧
+
+more and more computation per clock cycle.
+榨干每个时钟周期 做尽可能多运算
+
+Our job is to wield that incredible processing power to do cool and useful things.
+我们的任务是利用这些运算能力,做又酷又实用的事
+
+That’s the essence of programming, which we’ll start discussing next episode.
+编程就是为了这个,我们下集说
+
+See you next week.
+下周见
+
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the last few episodes,
+前几集我们把重点放在计算机的原理
+
+We've talked a lot about the mechanics of how computers work.
+前几集我们把重点放在计算机的原理
+
+How they use complex circuits to save and retrieve values from memory,
+怎么从内存读写数据,执行操作
+
+and perform operations on those values
+怎么从内存读写数据,执行操作
+
+like adding two numbers together.
+比如把两个数字加在一起
+
+We've even briefly talked about sequences of operations,
+还简单讲了下指令的执行,也就是计算机程序
+
+which is a computer program
+还简单讲了下指令的执行,也就是计算机程序
+
+What we haven't talked about is how a program gets into a computer?
+但我们还没讲的是:程序如何"进入"计算机
+
+You might remember in episode 7 and 8 ,
+你应该记得在第 7, 8 集,我们一步步讲了例子程序
+
+we step through some simple example programs for the CPU that we had created
+你应该记得在第 7, 8 集,我们一步步讲了例子程序
+
+For simplicity, we just waved our hands and said that the program was already magically in memory
+当时为了简单,我们假设程序已经魔法般在内存里了
+
+But in reality, programs have to be loaded into a computer's memory.
+但事实是,程序需要加载进内存
+
+It's not magic. It's computer science
+这不是魔法,是计算机科学!
+
+The need to program machines existed way before the development of computers.
+给机器编程这个需求,早在计算机出现之前就有了
+
+The most famous example of this was in textile manufacturing
+最著名的例子来自纺织业
+
+If you just wanted to weave a big red tablecloth
+如果你只想织一块红色大桌布
+
+You could simply feed red thread into a loom and let it run
+可以直接放红线进织布机
+
+What about if you wanted the cloth to have a pattern like stripes or plaid?
+但如果想要图案怎么办? 比如条纹或者方格
+
+Workers would have to periodically reconfigure the loom as dictated by the pattern,
+工人要每隔一会儿 调整一次织布机
+
+but this was labor intensive which made patterned fabrics expensive.
+因为非常消耗劳动力,所以图案纺织品很贵
+
+The presence or absence of a hole in the card determined if a specific thread was held high or low in the loom
+特定位置有没有穿孔,决定了线是高是低
+
+Such as the cross thread, called the weft, passed above or below the thread
+横线是从上/从下穿过
+
+To vary the pattern across rows these punch cards were arranged in long chains
+为了让每行图案不同,纸卡连成长条
+
+Forming a sequence of commands for the loom.
+形成连续指令
+
+Sound familiar?
+听起来很熟?
+
+Many consider Jacquard loom to be one of the earliest forms of programming.
+很多人认为雅卡尔织布机是最早的编程
+
+Punched cards, turned out to be a cheap, reliable, fairly human-readable way to store data.
+事实证明 穿孔纸卡便宜、可靠、也易懂
+
+Nearly a century later,
+近一个世纪后
+
+punch cards were used to help tabulate the 1890 US census
+穿孔纸卡用于 1890 年美国人口普查
+
+which we talked about in episode 1
+我们在第一集提过
+
+Each card held an individual person's data.
+一张卡存一个人的信息
+
+things like race
+比如种族
+
+marital status
+婚姻状况
+
+number of children
+子女数量
+
+country of birth and so on
+出生国家 等等
+
+for each demographic question
+针对每个问题,人口普查工作者会在对应位置打孔
+
+a census worker would punch out a hole of the appropriate position
+针对每个问题,人口普查工作者会在对应位置打孔
+
+when a card was fed into the tabulating machine
+当卡片插入汇总机
+
+a hole would cause the running total for that specific answer to be increased by one
+孔会让对应总和值+1
+
+in this way you could afeed the entire counties worth of people
+可以插入整个国家人口的卡片
+
+and at the end you'd have running totals for all of the questions that you ask
+在结束后得到各个总值
+
+It is important to note here that early tabulating machines were not truly computers
+值得注意的是,早期汇总机不算计算机
+
+as they can only do one thing-tabulate
+因为它们只做一件事 - 汇总数据
+
+their operation was fixed and not programmable
+操作是固定的,不能编程
+
+punched cards stored data, but not a program
+穿孔纸卡存的是数据,不是程序.
+
+over the next 60 years, these business machines grew in capability
+之后60年,这些机器被加强,可以做减、乘、除
+
+Adding features to subtract multiply divide
+之后60年,这些机器被加强,可以做减、乘、除
+
+and even make simple decisions about when to perform certain operations.
+甚至可以做一些小决定,决定何时执行某指令
+
+To trigger these functions appropriately
+为了正确执行不同计算,程序员需要某种控制面板
+
+so that different calculations could be performed, a programmer accessed a control panel
+为了正确执行不同计算,程序员需要某种控制面板
+
+this panel was full of little sockets into which a programmer would plug cables
+面板有很多小插孔,程序员可以插电线
+
+to pass values and signals between different parts of the machine
+让机器的不同部分 互相传数据和信号
+
+for this reason they were also called plug boards
+因此也叫 "插线板"
+
+Unfortunately this meant having to rewire the machine each time a different program needed to be run
+不幸的是, 这意味着 运行不同程序要重新接线
+
+And so by the 1920s these plug boards were made swappable
+所以到 1920 年代,控制面板变成了可拔插
+
+This not only made programming a lot more comfortable
+让编程更方便
+
+but also allowed for different programs be plugged into a machine
+可以给机器插入不同程序
+
+For example one board might be wired to calculate sales tax
+比如,一个插线板算销售税,另一个算工资单
+
+While another helps with payroll
+比如,一个插线板算销售税,另一个算工资单
+
+But plug boards were fiendishly complicated to program
+但给插线板编程很复杂
+
+This tangle of wires is a program for calculating a profit loss summary using an IBM 402 accounting machine
+图中乱成一团的线 负责算盈亏总额 \N 用于 IBM 402 核算机
+
+which were popular in the 1940s
+在 1940 年代这样做很流行
+
+And this style of plug board programming wasn't unique through electromechanical computers
+用插线板编程 不只在机电计算机流行
+
+The world's first general-purpose electronic computer, the ENIAC, completed in 1946
+世上第一台通用电子计算机,ENIAC,完成于 1946 年
+
+used a ton of them
+用了一大堆插线板
+
+Even after a program had been completely figured out on paper
+程序在纸上设计好之后
+
+Physically wiring up the ENIAC and getting the program to run could take upwards of three weeks
+给 ENIAC 连线,最多可能花三个星期
+
+Given the enormous cost of these early computers, weeks of downtime simply to switch programs was unacceptable
+因为早期计算机非常昂贵 \N 停机几个星期只为换程序 完全无法接受
+
+and the new faster more flexible way to program machines was badly needed
+人们急需更快、更灵活的新方式来编程
+
+Fortunately by the late 1940s and into the 50s
+幸运的是,到 1940 年代晚期 1950 年代初
+
+electronic memory was becoming feasible
+内存变得可行
+
+As costs fell, memory size grew, instead of storing a program as a physical plug board of wires
+价格下降, 容量上升. 与其把程序存在插线板
+
+it became possible to store a program entirely in a computer's memory
+存在内存变得可行
+
+where it could be easily changed by programmers and quickly accessed by the CPU
+这样程序易于修改、方便 CPU 快速读取
+
+these machines were called Stored-program Computers
+这类机器叫 "存储程序计算机"
+
+With enough computer memory you could store not only the program you wanted to run
+如果内存足够,不仅可以存要运行的程序
+
+but also any data your program would need
+还可以存程序需要的数据
+
+including new values it created along the way
+包括程序运行时产生的新数据
+
+Unifying the program and data into a single shared memory is called the Von Neumann Architecture
+程序和数据都存在一个地方,叫 "冯诺依曼结构"
+
+named after John Von Neumann
+命名自 约翰·冯·诺依曼
+
+a prominent mathematician and physicist who worked on the Manhattan project and several early electronic computers
+杰出的数学家和物理学家 \N 参与了曼哈顿计划和早期电子计算机项目
+
+and once said I am thinking about something much more important than Bombs
+他曾说:我在思考比炸弹重要得多的东西
+
+I'm thinking about computers
+计算机
+
+The hallmarks of a Von Neumann computer are a processing unit containing an arithmetic logic unit
+冯诺依曼计算机的标志是,一个处理器(有算术逻辑单元)+
+
+data registers and instruction register and instruction address register
+数据寄存器+指令寄存器+指令地址寄存器
+
+And finally a memory to store both data and instructions
++内存(负责存数据和指令)
+
+Hopefully this sounds familiar
+希望这听起来很耳熟
+
+Because we actually built a Von Neumann computer in episode 7
+因为第7集我们造了一个冯诺依曼计算机
+
+The very first Von Neumann Architecture Stored-program computer
+第一台冯诺依曼架构的"储存程序计算机"
+
+was constructed in 1948 by the University of Manchester, nicknamed Baby.
+由曼彻斯特大学于 1948 年建造完成,绰号"宝宝"
+
+and even the computer you are watching this video right now
+甚至你现在看视频的计算机,也在用一样的架构
+
+uses the same architecture
+甚至你现在看视频的计算机,也在用一样的架构
+
+Now electronic computer memory is great and all
+虽然有内存很棒
+
+but you still have to load the program and data into the computer before it can run
+但程序和数据 依然需要某种方式输入计算机
+
+and for this reason punch cards were used
+所以用穿孔纸卡
+
+Let's get to the Thought bubbles
+让我们进入 思维泡泡
+
+Well into the 1980s almost all computers have a punch card reader
+到1980年代,几乎所有的计算机都有穿孔纸卡读取器
+
+which could suck in a single punch card at a time
+可以吸入一张卡片,把卡片内容写进内存
+
+and write the contents of the card into the computer's memory
+可以吸入一张卡片,把卡片内容写进内存
+
+If you load it in a stack of punch cards,
+如果放了一叠卡片,读取器会一个个写进内存
+
+the reader would load them all into memory sequentially as a big block
+如果放了一叠卡片,读取器会一个个写进内存
+
+once the program and data were in memory, the computer would be told to execute it
+一旦程序和数据写入完毕,电脑会开始执行
+
+Of course even simple computer programs might have hundreds of instructions
+即便简单程序也有几百条指令,要用一叠纸卡来存
+
+which meant that programs were stored as stacks of punch cards
+即便简单程序也有几百条指令,要用一叠纸卡来存
+
+So if you ever have the misfortune of accidentally dropping your program on the floor
+如果不小心摔倒弄撒了
+
+it could take you hours days or even weeks to put the code back in the right order
+要花上几小时、几天、甚至几周来整理
+
+A common trick was to draw a diagonal line on the side of the card stack called striping,
+有个小技巧是 在卡片侧面画对角线
+
+so you'd have at least some clue how to get it back into the right order
+如果弄散了,整理起来会方便很多
+
+The largest program ever punched into punch cards was the US Air Force's SAGE air defense system, completed in 1955.
+用纸卡的最大型程序 \N 是美国空军的 SAGE 防空系统,于 1955 年完成
+
+and its peak, the project is said to have employed 20% of the world's programmers
+据称顶峰时期 雇佣了世上 20% 程序员
+
+Its main control program was stored on a whopping 62,500 punch cards
+主控制程序用了 62500 张穿孔纸卡
+
+which is equivalent to roughly 5 megabytes of data
+等同于大约 5MB 的数据
+
+Pretty underwhelming by today's standards
+以如今的标准,不值一提
+
+And punch cards weren't only useful for getting data into computers
+穿孔纸卡不仅可以往计算机放数据
+
+but also getting data out of them
+还可以取出数据
+
+At the end of a program results could be written out of computer memory and onto punch cards by, well, punching cards
+程序运行到最后,结果可以输到纸卡上,方式嘛,当然是打孔
+
+then this data could be analyzed by humans or loaded into a second program for additional computation
+然后人可以分析结果,或者再次放进计算机,做进一步计算
+
+Thanks, thought-bubble
+谢了 思维泡泡
+
+A close cousin to punch cards was punched paper tape
+穿孔纸卡 的亲戚是纸带
+
+Which is basically the same idea, but continuous instead of being on individual cards
+基本是一回事,只不过更连续,不是一张张卡.
+
+And of course we haven't talked about Hard Drives, CD-ROMs, DVDs, USB-Thumb drives and other similar goodies
+当然我们还没提硬盘, 只读光盘, DVD, U盘等等
+
+We'll get to those more advanced types of data storage in a future episode
+以后我们会讲这些更先进的存储方法
+
+Finally in addition to plug boards and punch paper
+最后,除了插线板和穿孔纸卡
+
+there was another common way to program and control computers in pre-1980
+在 1980 年代前,还有一种常见编程方式
+
+Panel programming
+面板编程
+
+Rather than having to physically plug in cables to activate certain functions
+与其插一堆线到插线板
+
+this could also be done with huge panels full of switches and buttons
+可以用一大堆开关和按钮,做到一样的效果
+
+And there were indicator lights to display the status of various functions and values in memory
+面板上有指示灯,代表各种函数的状态和内存中的值
+
+Computers of the 50s and 60s often featured huge control consoles that look like this
+50和60年代的计算机,一般都有这样巨大的控制台
+
+Although it was rare to input a whole program using just switches,it was possible
+很少有人只用开关来输入一整个程序,但技术上是可行的
+
+And early home computers made for the hobbyist market use switches extensively
+早期针对计算机爱好者的家用计算机,大量使用了开关
+
+because most home users couldn't afford expensive peripherals like punch card readers
+因为大多数家庭用户负担不起昂贵的外围设备 \N 比如穿孔纸卡读取器
+
+The first commercially successful home computer was the Altair 8800
+第一款取得商业成功的家用计算机是 Altair 8800
+
+which sold in two versions: Pre-assembled and the Kit
+有两种版本可以买: \N 1. 预先装好的整机 \N 2. 需要组装的组件
+
+the Kit which was popular with amateur computing enthusiasts,
+计算机爱好者 喜欢买组件版
+
+sold for the then unprecedented low price are around $400 in 1975
+售价极低,在 1975 年卖 400 美元左右
+
+Or about $2,000 in 2017
+相当于 2017 年的 2000 美元
+
+To program the 8800, you'd literally toggle the switches on the front panel
+为了给 8800 编程,你要拨动面板上的开关
+
+to enter the binary op-codes for the instruction you wanted
+输入二进制操作码
+
+Then you press the deposit button to write that value into memory
+然后按 "存储键" 把值存入内存
+
+Then in the next location in memory you toggle the switches again
+然后会到下一个内存位置 \N 你可以再次拨开关,写下一个指令
+
+for your next instruction deposit it and so on
+重复这样做
+
+When you finally entered your whole program into memory
+把整个程序都写入内存之后
+
+you would toggle the switches moves back to memory address 0
+可以推动开关,回到内存地址0
+
+press the run button and watch the little lights blink
+然后按运行按钮,灯会闪烁
+
+That was home computing in 1975, Wow.
+这就是 1975 年的家用计算机, 哇.
+
+Whether it was plug board, switches or punched paper
+不管是插线板、开关或穿孔纸卡
+
+Programming these early computers was the realm of experts
+早期编程都是专家活
+
+either professionals who did this for living or technology enthusiasts
+不管是全职还是技术控,都要非常了解底层硬件
+
+you needed intimate knowledge of the underlying hardware,
+不管是全职还是技术控,都要非常了解底层硬件
+
+so things like processor op-codes and register wits, to write programs
+比如 操作码, 寄存器等, 才能写程序
+
+This meant programming was hard and tedious and even professional engineers
+所以编程很难,很烦
+
+and scientists struggled to take full advantage of what computing could offer
+哪怕工程师和科学家都无法 完全发挥计算机的能力
+
+What was needed was a simpler way to tell computers what to do,
+我们需要一种更简单方式 告诉计算机要做什么
+
+a simpler way to write programs
+一种更简单的编程方式
+
+And that brings us to programming languages, which we'll talk about next episode
+这带领我们到下一个话题 - 编程语言, 我们下集会讲
+
+See you next week
+下周见
+
+This episode is brought to you by CuriosityStream.
+本集由 CuriosityStream 赞助播出
+
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+So far, for most of this series, we've focused on hardware
+之前我们把重点放在硬件 - 组成计算机的物理组件
+
+-- the physical components of computing --
+之前我们把重点放在硬件 - 组成计算机的物理组件
+
+things like: electricity and circuits, registers and RAM, ALUs and CPUs.
+比如电,电路,寄存器,RAM,ALU,CPU
+
+But programming at the hardware level is cumbersome and inflexible,
+但在硬件层面编程非常麻烦
+
+so programmers wanted a more versatile way to program computers
+所以程序员想要一种更通用的方法编程
+
+- what you might call a "softer" medium.
+- 一种"更软的"媒介
+
+That's right, we're going to talk about Software!
+没错,我们要讲软件!
+
+In episode 8, we walked through a simple program for the CPU we designed.
+第 8 集我们一步步讲了一个简单程序
+
+The very first instruction to be executed, the one at memory address 0, was 0010 1110.
+第一条指令在内存地址 0:0010 1110
+
+As we discussed, the first four bits of an instruction is the operation code,
+之前说过,前 4 位是操作码
+
+or OPCODE for short.
+简称 OPCODE
+
+On our hypothetical CPU, 0010 indicated a LOAD_A instruction
+对于这个假设 CPU,0010 代表 LOAD_A 指令
+
+-- which moves a value from memory into Register A.
+- 把值从内存复制到寄存器 A
+
+The second set of four bits defines the memory location,
+后 4 位是内存地址,1110 是十进制的 14
+
+in this case, 1110, which is 14 in decimal.
+后 4 位是内存地址,1110 是十进制的 14
+
+So what these eight numbers really mean is "LOAD Address 14 into Register A".
+所以这 8 位表达的意思是 \N "读内存地址 14,放入寄存器 A"
+
+We're just using two different languages.
+只是用了两种不同语言
+
+You can think of it like English and Morse Code.
+可以想成是英语和摩尔斯码的区别
+
+"Hello" and ".... . .-.. .-.. ---" mean the same thing -- hello! --
+"你好" 和 ".... . .-.. .-.. ---" 是一个意思:你好
+
+they're just encoded differently.
+只是编码方式不同
+
+English and Morse Code also have different levels of complexity.
+英语和摩尔斯码的复杂度也不同
+
+English has 26 different letters in its alphabet and way more possible sounds.
+英文有 26 个字母以及各种发音
+
+Morse only has dots and dashes.
+摩尔斯码只有"点"和"线"
+
+But, they can convey the same information, and computer languages are similar.
+但它们可以传达相同的信息,计算机语言也类似.
+
+As we've seen, computer hardware can only handle raw, binary instructions.
+计算机能处理二进制,二进制是处理器的"母语"
+
+This is the "language" computer processors natively speak.
+计算机能处理二进制,二进制是处理器的"母语"
+
+In fact, it's the only language they're able to speak.
+事实上,它们*只能*理解二进制
+
+It's called Machine Language or Machine Code.
+这叫"机器语言"或"机器码"
+
+In the early days of computing, people had to write entire programs in machine code.
+在计算机早期阶段,必须用机器码写程序
+
+More specifically, they'd first write a high-level version of a program on paper, in English,
+具体来讲,会先在纸上用英语写一个"高层次版"
+
+For example "retrieve the next sale from memory,
+举例:"从内存取下一个销售额,
+
+then add this to the running total for the day, week and year,
+然后加到天、周、年的总和
+
+then calculate any tax to be added"
+然后算税"
+
+...and so on.
+等等...
+
+An informal, high-level description of a program like this is called Pseudo-Code.
+这种对程序的高层次描述,叫 "伪代码"
+
+Then, when the program was all figured out on paper,
+在纸上写好后
+
+they'd painstakingly expand and translate it into binary machine code by hand,
+用"操作码表"把伪代码转成二进制机器码
+
+using things like opcode tables.
+用"操作码表"把伪代码转成二进制机器码
+
+After the translation was complete, the program could be fed into the computer and run.
+翻译完成后,程序可以喂入计算机并运行
+
+As you might imagine, people quickly got fed up with this process.
+你可能猜到了,很快人们就厌烦了
+
+So, by the late 1940s and into the 50s,
+所以在 1940~1950 年代
+
+programmers had developed slightly higher-level languages that were more human-readable.
+程序员开发出一种新语言, 更可读 更高层次
+
+Opcodes were given simple names, called mnemonics,
+每个操作码分配一个简单名字,叫"助记符"
+
+which were followed by operands, to form instructions.
+"助记符"后面紧跟数据,形成完整指令
+
+So instead of having to write instructions as a bunch of 1's and 0's,
+与其用 1 和 0 写代码,程序员可以写"LOAD_A 14"
+
+programmers could write something like "LOAD_A 14".
+与其用 1 和 0 写代码,程序员可以写"LOAD_A 14"
+
+We used this mnemonic in Episode 8 because it's so much easier to understand!
+我们在第 8 集用过这个助记符,因为容易理解得多!
+
+Of course, a CPU has no idea what "LOAD_A 14" is.
+当然,CPU 不知道 LOAD_A 14 是什么
+
+It doesn't understand text-based language, only binary.
+它不能理解文字,只能理解二进制
+
+And so programmers came up with a clever trick.
+所以程序员想了一个技巧,写二进制程序来帮忙
+
+They created reusable helper programs, in binary,
+所以程序员想了一个技巧,写二进制程序来帮忙
+
+that read in text-based instructions,
+它可以读懂文字指令,自动转成二进制指令
+
+and assemble them into the corresponding binary instructions automatically.
+它可以读懂文字指令,自动转成二进制指令
+
+This program is called
+这种程序叫
+
+-- you guessed it --
+你可能猜到了
+
+an Assembler.
+汇编器
+
+It reads in a program written in an Assembly Language
+汇编器读取用"汇编语言"写的程序,然后转成"机器码"
+
+and converts it to native machine code.
+汇编器读取用"汇编语言"写的程序,然后转成"机器码"
+
+"LOAD_A 14" is one example of an assembly instruction.
+"LOAD_A 14" 是一个汇编指令的例子
+
+Over time, Assemblers gained new features that made programming even easier.
+随着时间推移,汇编器有越来越多功能,让编程更容易
+
+One nifty feature is automatically figuring out JUMP addresses.
+其中一个功能是自动分析 JUMP 地址
+
+This was an example program I used in episode 8:
+这里有一个第8集用过的例子:
+
+Notice how our JUMP NEGATIVE instruction jumps to address 5,
+注意, JUMP NEGATIVE 指令跳到地址 5
+
+and our regular JUMP goes to address 2.
+JUMP 指令跳到地址 2
+
+The problem is, if we add more code to the beginning of this program,
+问题是,如果在程序开头多加一些代码
+
+all of the addresses would change.
+所有地址都会变
+
+That's a huge pain if you ever want to update your program!
+更新程序会很痛苦!
+
+And so an assembler does away with raw jump addresses,
+所以汇编器不用固定跳转地址
+
+and lets you insert little labels that can be jumped to.
+而是让你插入可跳转的标签
+
+When this program is passed into the assembler,
+当程序被传入汇编器,汇编器会自己搞定跳转地址
+
+it does the work of figuring out all of the jump addresses.
+当程序被传入汇编器,汇编器会自己搞定跳转地址
+
+Now the programmer can focus more on programming
+程序员可以专心编程,不用管底层细节
+
+and less on the underlying mechanics under the hood
+程序员可以专心编程,不用管底层细节
+
+enabling more sophisticated things to be built by hiding unnecessary complexity.
+隐藏不必要细节来做更复杂的工作
+
+As we've done many times in this series,
+我们又提升了一层抽象
+
+we're once again moving up another level of abstraction.
+我们又提升了一层抽象
+
+However, even with nifty assembler features like auto-linking JUMPs to labels,
+然而,即使汇编器有这些厉害功能,比如自动跳转
+
+Assembly Languages are still a thin veneer over machine code.
+汇编只是修饰了一下机器码
+
+In general, each assembly language instruction converts directly
+一般来说,一条汇编指令对应一条机器指令
+
+to a corresponding machine instruction - a one-to-one mapping -
+一般来说,一条汇编指令对应一条机器指令
+
+so it's inherently tied to the underlying hardware.
+所以汇编码和底层硬件的连接很紧密
+
+And the assembler still forces programmers to think about
+汇编器仍然强迫程序员思考 用什么寄存器和内存地址
+
+which registers and memory locations they will use.
+汇编器仍然强迫程序员思考 用什么寄存器和内存地址
+
+If you suddenly needed an extra value,
+如果你突然要一个额外的数,可能要改很多代码
+
+you might have to change a lot of code to fit it in.
+如果你突然要一个额外的数,可能要改很多代码
+
+Let's go to the Thought Bubble.
+让我们进入思考泡泡
+
+This problem did not escape Dr. Grace Hopper.
+葛丽丝·霍普博士 也遇到了这个问题
+
+As a US naval officer, she was one of the first programmers on the Harvard Mark 1 computer,
+作为美国海军军官,她是哈佛1号计算机的首批程序员之一
+
+which we talked about in Episode 2.
+这台机器我们在第 2 集提过
+
+This was a colossal, electro-mechanical beast
+这台巨大机电野兽在 1944 年战时建造完成,帮助盟军作战
+
+completed in 1944 as part of the allied war effort.
+这台巨大机电野兽在 1944 年战时建造完成,帮助盟军作战
+
+Programs were stored and fed into the computer on punched paper tape.
+程序写在打孔纸带上,放进计算机执行
+
+By the way, as you can see,
+顺便一说,如果程序里有漏洞
+
+they "patched" some bugs in this program
+顺便一说,如果程序里有漏洞
+
+by literally putting patches of paper over the holes on the punch tape.
+真的就 直接用胶带来补"漏洞"
+
+The Mark 1's instruction set was so primitive,
+Mark 1 的指令集非常原始,甚至没有 JUMP 指令
+
+there weren't even JUMP instructions.
+Mark 1 的指令集非常原始,甚至没有 JUMP 指令
+
+To create code that repeated the same operation multiple times,
+如果代码要跑不止一次
+
+you'd tape the two ends of the punched tape together, creating a physical loop.
+得把带子的两端连起来 做成循环
+
+In other words, programming the Mark 1 was kind of a nightmare!
+换句话说,给 Mark 1 编程简直是噩梦!
+
+After the war, Hopper continued to work at the forefront of computing.
+战后,霍普继续在计算机前沿工作
+
+To unleash the potential of computers,
+为了释放电脑的潜力
+
+she designed a high-level programming language called "Arithmetic Language Version 0",
+她设计了一个高级编程语言,叫"算术语言版本 0"
+
+or A-0 for short.
+简称"A-0"
+
+Assembly languages have direct, one-to-one mapping to machine instructions.
+汇编与机器指令是一一对应的
+
+But, a single line of a high-level programming language
+但一行高级编程语言 可能会转成几十条二进制指令
+
+might result in dozens of instructions being executed by the CPU.
+但一行高级编程语言 可能会转成几十条二进制指令
+
+To perform this complex translation, Hopper built the first compiler in 1952.
+为了做到这种复杂转换 \N Hopper 在 1952 年创造了第一个编译器
+
+This is a specialized program
+编译器专门把高级语言 转成低级语言
+
+that transforms "source" code written in a programming language into a low-level language,
+编译器专门把高级语言 转成低级语言
+
+like assembly or the binary "machine code" that the CPU can directly process.
+比如汇编或机器码(CPU 可以直接执行机器码)
+
+Thanks, Thought Bubble.
+谢了 思想泡泡
+
+So, despite the promise of easier programming,
+尽管"使编程更简单"很诱人
+
+many people were skeptical of Hopper's idea.
+但很多人对霍普的点子持怀疑态度
+
+She once said, "I had a running compiler and nobody would touch it.
+她曾说"我有能用的编译器,但没人愿意用
+
+they carefully told me, computers could only do arithmetic;
+他们告诉我计算机只能做算术,不能运行程序"
+
+they could not do programs."
+他们告诉我计算机只能做算术,不能运行程序"
+
+But the idea was a good one,
+但这个点子是好的
+
+and soon many efforts were underway to craft new programming languages
+不久,很多人尝试创造新编程语言
+
+-- today there are hundreds!
+- 如今有上百种语言!
+
+Sadly, there are no surviving examples of A-0 code,
+可惜的是,没有任何 A-0 的代码遗留下来
+
+so we'll use Python, a modern programming language, as an example.
+所以我们用 Python 举例(一门现代编程语言)
+
+Let's say we want to add two numbers and save that value.
+假设我们想相加两个数字,保存结果
+
+Remember, in assembly code,
+记住,如果用汇编代码
+
+we had to fetch values from memory, deal with registers, and other low-level details.
+我们得从内存取值,和寄存器打交道,以及其他底层细节
+
+But this same program can be written in python like so:
+但同样的程序可以用 Python 这样写:
+
+Notice how there are no registers or memory locations to deal with
+不用管寄存器或内存位置
+
+-- the compiler takes care of that stuff, abstracting away a lot of low-level and unnecessary complexity.
+- 编译器会搞定这些细节,不用管底层细节
+
+The programmer just creates abstractions for needed memory locations, known as variables,
+程序员只需要创建 代表内存地址的抽象,叫"变量"
+
+and gives them names.
+给变量取名字
+
+So now we can just take our two numbers, store them in variables we give names to
+现在可以把两个数 存在变量里
+
+-- in this case, I picked a and b but those variables could be anything -
+这里取名 A 和 B, 实际编程时你可以随便取名
+
+and then add those together, saving the result in c, another variable I created.
+然后相加两个数,把结果存在变量 C
+
+It might be that the compiler assigns Register A under the hood to store the value in a,
+底层操作时,编译器可能把变量 A 存在寄存器 A
+
+but I don't need to know about it!
+但我不需要知道这些!
+
+Out of sight, out of mind!
+眼不见心不烦
+
+It was an important historical milestone,
+这是个重要历史里程碑
+
+but A-0 and its later variants weren't widely used.
+但 A-0 和之后的版本没有广泛使用
+
+FORTRAN, derived from "Formula Translation",
+FORTRAN,名字来自 "公式翻译"
+
+was released by IBM a few years later, in 1957,
+这门语言数年后由 IBM 在 1957 年发布
+
+and came to dominate early computer programming.
+主宰了早期计算机编程
+
+John Backus, the FORTRAN project director,
+FORTRAN 项目总监 John Backus 说过
+
+said: "Much of my work has come from being lazy.
+"我做的大部分工作都是因为懒
+
+I didn't like writing programs,
+我不喜欢写程序
+
+and so ... I started work on a programming system to make it easier to write programs."
+所以我写这门语言,让编程更容易"
+
+You know, typical lazy person.
+你懂的,典型的"懒人"
+
+They're always creating their own programming systems.
+(白眼)创造自己的编程语言
+
+Anyway, on average, programs written in FORTRAN
+平均来说,FORTRAN 写的程序
+
+were 20 times shorter than equivalent handwritten assembly code.
+比等同的手写汇编代码短 20 倍
+
+Then the FORTRAN Compiler would translate and expand that into native machine code.
+然后 FORTRAN 编译器会把代码转成机器码
+
+The community was skeptical that the performance would be as good as hand written code,
+人们怀疑性能是否比得上手写代码
+
+but the fact that programmers could write more code more quickly,
+但因为能让程序员写程序更快,所以成了一个更经济的选择
+
+made it an easy choice economically:
+但因为能让程序员写程序更快,所以成了一个更经济的选择
+
+trading a small increase in computation time for a significant decrease in programmer time.
+运行速度慢一点点,编程速度大大加快
+
+Of course, IBM was in the business of selling computers,
+当时 IBM 在卖计算机
+
+and so initially, FORTRAN code could only be compiled and run on IBM computers.
+因此最初 FORTRAN 代码只能跑在 IBM 计算机上
+
+And most programing languages and compilers of the 1950s
+1950 年代大多数编程语言和编译器
+
+could only run on a single type of computer.
+只能运行在一种计算机上
+
+So, if you upgraded your computer,
+如果升级电脑
+
+you'd often have to re-write all the code too!
+可能要重写所有代码!
+
+In response, computer experts from industry,
+因此工业界,学术界,政府的计算机专家 \N 在 1959 年组建了一个联盟
+
+academia and government formed a consortium in 1959
+因此工业界,学术界,政府的计算机专家 \N 在 1959 年组建了一个联盟
+
+-- the Committee on Data Systems Languages, advised by our friend Grace Hopper --
+- 数据系统语言委员会,Grace Hopper 担任顾问
+
+to guide the development of a common programming language
+开发一种通用编程语言,可以在不同机器上通用
+
+that could be used across different machines.
+开发一种通用编程语言,可以在不同机器上通用
+
+The result was the high-level, easy to use,
+最后诞生了一门高级,易于使用,
+
+Common Business-Oriented Language, or COBOL for short.
+"普通面向商业语言",简称 COBOL
+
+To deal with different underlying hardware,
+为了兼容不同底层硬件
+
+each computing architecture needed its own COBOL compiler.
+每个计算架构需要一个 COBOL 编译器
+
+But critically, these compilers could all accept the same COBOL source code,
+最重要的是,这些编译器都可以接收相同 COBOL 代码
+
+no matter what computer it was run on.
+不管是什么电脑
+
+This notion is called write once, run anywhere.
+这叫"一次编写,到处运行"
+
+It's true of most programming languages today,
+如今大多数编程语言都是这样
+
+a benefit of moving away from assembly and machine code,
+不必接触 CPU 特有的汇编码和机器码
+
+which is still CPU specific.
+不必接触 CPU 特有的汇编码和机器码
+
+The biggest impact of all this was reducing computing's barrier to entry.
+减小了使用门槛
+
+Before high level programming languages existed,
+在高级编程语言出现之前
+
+it was a realm exclusive to computer experts and enthusiasts.
+编程只是计算机专家和爱好者才会做的事
+
+And it was often their full time profession.
+而且通常是主职
+
+But now, scientists, engineers, doctors, economists, teachers,
+但现在,科学家,工程师,医生,经济学家,教师
+
+and many others could incorporate computation into their work .
+等等,都可以把计算机用于工作
+
+Thanks to these languages,
+感谢这些语言
+
+computing went from a cumbersome and esoteric discipline
+计算机科学从深奥学科 变成了大众化工具
+
+to a general purpose and accessible tool.
+计算机科学从深奥学科 变成了大众化工具
+
+At the same time, abstraction in programming allowed those computer experts
+同时,编程的抽象也让计算机专家
+
+- now "professional programmers" -
+现在叫"专业程序员"
+
+to create increasingly sophisticated programs,
+制作更复杂的程序
+
+which would have taken millions, tens of millions, or even more lines of assembly code.
+如果用汇编写可能要上百万行
+
+Now, this history didn't end in 1959.
+当然,计算机的历史没有在 1959 年结束
+
+In fact, a golden era in programming language design jump started,
+编程语言设计的黄金时代才刚刚开始
+
+evolving in lockstep with dramatic advances in computer hardware.
+和硬件一起飞速发展
+
+In the 1960s, we had languages like ALGOL, LISP and BASIC.
+在 1960 年代,有 ALGOL, LISP 和 BASIC 等语言
+
+In the 70's: Pascal, C and Smalltalk were released.
+70年代有:Pascal,C 和 Smalltalk
+
+The 80s gave us C++, Objective-C, and Perl.
+80年代有:C++,Objective-C 和 Perl
+
+And the 90's: python, ruby, and Java.
+90年代有:Python,Ruby 和 Java
+
+And the new millennium has seen the rise of Swift, C#, and Go
+新千年 Swift, C#, Go 在崛起
+
+- not to be confused with Let it Go and Pokemon Go.
+不要把 Go 和\N 《冰雪奇缘》的 Let it Go 和游戏 Pokemon Go 弄混
+
+Anyway, some of these might sound familiar
+有些语言你可能听起来耳熟 - 很多现在还存在
+
+-- many are still around today.
+有些语言你可能听起来耳熟 - 很多现在还存在
+
+It's extremely likely that the web browser you're using right now
+你现在用的浏览器很可能是 C++ 或 Objective-C 写的
+
+was written in C++ or Objective-C.
+你现在用的浏览器很可能是 C++ 或 Objective-C 写的
+
+That list I just gave is the tip of the iceberg.
+我刚才说的编程语言名字 只是冰山一角
+
+And languages with fancy, new features are proposed all the time.
+新的编程语言在不断诞生
+
+Each new language attempts to leverage new and clever abstractions
+新语言想用更聪明的抽象
+
+to make some aspect of programming easier or more powerful,
+让某些方面更容易或更强大
+
+or take advantage of emerging technologies and platforms,
+或利用新技术和新平台带来的优势
+
+so that more people can do more amazing things, more quickly.
+让更多人能快速做出美妙的事情
+
+Many consider the holy grail of programming to be the use of "plain ol' English",
+许多人认为编程的"圣杯"是直接用英文
+
+where you can literally just speak what you want the computer to do,
+直接对计算机说话,然后它会理解并执行
+
+it figures it out, and executes it.
+直接对计算机说话,然后它会理解并执行
+
+This kind of intelligent system is science fiction for now.
+这种智能系统目前只存在于科幻小说
+
+And fans of 2001: A Space Odyssey may be okay with that.
+"2001:太空漫游" 的粉丝可能没什么意见
+
+Now that you know all about programming languages,
+现在你理解了编程语言,
+
+we're going to deep dive for the next couple of episodes,
+接下来几集 我们会深入了解
+
+and we'll continue to build your understanding
+接下来几集 我们会深入了解
+
+of how programming languages, and the software they create,
+编程语言和用语言写的软件
+
+are used to do cool and unbelievable things.
+是怎么做到那些酷事
+
+See you next week.
+下周见
+
+(给 Curiosity Stream 打广告)
+
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode we discussed how writing programs in native machine code,
+上集讲到用机器码写程序,
+
+and having to contend with so many low level details, was a huge impediment to writing complex programs.
+还要处理那么多底层细节 对写大型程序是个巨大障碍
+
+To abstract away many of these low-level details, Programming Languages were developed that
+为了脱离底层细节,开发了编程语言
+
+let programmers concentrate on solving a problem with computation, and less on nitty gritty hardware details.
+让程序员专心解决问题,不用管硬件细节
+
+So today, we’re going to continue that discussion, and introduce some fundamental building blocks
+今天我们讨论 大多数编程语言都有的基本元素
+
+that almost all programming languages provide.
+今天我们讨论 大多数编程语言都有的基本元素
+
+Just like spoken languages, programming languages have statements.
+就像口语一样,编程语言有"语句"
+
+These are individual complete thoughts, like "I want tea" or "it is raining".
+语句表达单个完整思想,比如"我想要茶"或者"在下雨"
+
+By using different words, we can change the meaning;
+用不同词汇可以代表不同含义 \N 比如"我想要茶"变成"我想要独角兽"
+
+for example, "I want tea" to "I want unicorns".
+用不同词汇可以代表不同含义 \N 比如"我想要茶"变成"我想要独角兽"
+
+But we can’t change "I want tea" to "I want raining" - that doesn’t make grammatical sense.
+但没法把"我想要茶"改成"我想要雨"- 语法毫无意义
+
+The set of rules that govern the structure and composition of statements in a language
+规定句子结构的一系列规则 叫语法
+
+is called syntax.
+规定句子结构的一系列规则 叫语法
+
+The English language has syntax, and so do all programming languages.
+英语有语法,所有编程语言也都有语法
+
+"a = 5" is a programming language statement.
+a=5 是一个编程语言语句
+
+In this case, the statement says a variable named A has the number 5 stored in it.
+意思是创建一个叫 a 的变量,把数字 5 放里面.
+
+This is called an assignment statement because we're assigning a value to a variable.
+这叫"赋值语句",把一个值赋给一个变量
+
+To express more complex things, we need a series of statements,
+为了表达更复杂的含义,需要更多语句
+
+like "A is 5, B is 10, C equals A plus B"
+比如 \Na=5 \N b=10 \Nc=a+b
+
+This program tells the computer to set variable ‘A’ equal to 5, variable ‘B’ to 10,
+意思是,变量 a 设为5,变量 b 设为10
+
+and finally to add ‘A’ and ‘B’ together, and put that result, which is 15, into -- you guessed it -- variable C.
+把 a 和 b 加起来,把结果 15 放进变量 c
+
+Note that we can call variables whatever we want.
+注意,变量名可以随意取
+
+Instead of A, B and C, it could be apples, pears, and fruits.
+除了 a b c,也可以叫苹果、梨、水果
+
+The computer doesn’t care, as long as variables are uniquely named.
+计算机不在乎你取什么名,只要不重名就行
+
+But it’s probably best practice to name them things that make sense
+当然取名最好还是有点意义,方便别人读懂
+
+in case someone else is trying to understand your code.
+当然取名最好还是有点意义,方便别人读懂
+
+A program, which is a list of instructions, is a bit like a recipe:
+程序由一个个指令组成,有点像菜谱:
+
+boil water, add noodles, wait 10 minutes, drain and enjoy.
+烧水、加面,等10分钟,捞出来就可以吃了
+
+In the same way, the program starts at the first statement
+程序也是这样,从第一条语句开始
+
+and runs down one at a time until it hits the end.
+一句一句运行到结尾
+
+So far, we’ve added two numbers together.
+刚才我们只是把两个数字加在一起
+
+Boring.
+无聊
+
+Let’s make a video game instead!
+我们来做一款游戏吧
+
+Of course, it’s way too early to think about coding an entire game,
+当然,现在这个学习阶段 \N来编写一整个游戏还太早了
+
+so instead, we’ll use our example to write little snippets of code
+所以我们只写一小段一小段的代码
+
+that cover some programming fundamentals.
+来讲解一些基础知识
+
+Imagine we’re building an old-school arcade game where Grace Hopper has to capture bugs
+假设我们在写一款老派街机游戏:Grace Hopper 拍虫子
+
+before they get into the Harvard Mark 1 and crash the computer!
+阻止虫子飞进计算机造成故障
+
+On every level, the number of bugs increases.
+关卡越高,虫子越多
+
+Grace has to catch them before they wear out any relays in the machine.
+Grace 要在虫子损坏继电器之前 抓住虫子
+
+Fortunately, she has a few extra relays for repairs.
+好消息是 她有几个备用继电器
+
+To get started, we’ll need to keep track of a bunch of values that are important for gameplay
+开始编写时,我们需要一些值 来保存游戏数据
+
+like what level the player is on, the score, the number of bugs remaining,
+比如当前关卡数、分数、剩余虫子数、
+
+as well as the number of spare relays in Grace’s inventory.
+Grace 还剩几个备用继电器
+
+So, we must "initialize" our variables, that is, set their initial value:
+所以我们要"初始化"变量 \N "初始化"的意思是设置最开始的值.
+
+"level equals 1, score equals 0, bugs equals 5, spare relays equals 4, and player name equals "Andre".
+关卡=1 分数=0 虫子数=5 \N 备用继电器=4 玩家名=Andre
+
+To create an interactive game, we need to control the flow of the program
+为了做成交互式游戏,程序的执行顺序要更灵活
+
+beyond just running from top to bottom.
+不只是从上到下执行
+
+To do this, we use Control Flow Statements.
+因此用 "控制流语句"
+
+There are several types, but If Statements are the most common.
+控制流语句有好几种,最常见的是 if 语句
+
+You can think of them as "If X is true, then do Y".
+可以想成是 "如果 X 为真,那么执行 Y"
+
+An English language example is: "If I am tired, then get tea"
+用英语举例就是 "如果累了, 就去喝茶"
+
+So if "I am tired" is a true statement, then I will go get tea
+如果 "累了" 为真,就去喝茶
+
+If "I am tired" is false, then I will not go get tea.
+如果 "累了" 为假,就不喝茶
+
+An IF statement is like a fork in the road.
+if 语句就像岔路口
+
+Which path you take is conditional on whether the expression is true or false
+走哪条路 取决于 "表达式" 的真假,
+
+so these expressions are called Conditional Statements.
+因此这些表达式又叫 "条件语句"
+
+In most programming languages, an if statement looks something like
+在大多数编程语言中,if 语句看起来像这样:
+
+"If, expression, then, some code, then end the if statement".
+if [条件], then [一些代码],结束 if 语句.
+
+For example, if "level" is 1, then we set the score to zero, because the player is just starting.
+比如,if [第一关],then [分数设为0] \N 因为玩家才刚开始游戏
+
+We also set the number of bugs to 1, to keep it easy for now.
+同时把虫子数设为 1,让游戏简单些
+
+Notice the lines of code that are conditional on the if-statement are nested between the
+注意, 依赖于 if 条件的代码,要放在 IF 和 END IF 之间
+
+IF and END IF.
+注意, 依赖于 if 条件的代码,要放在 IF 和 END IF 之间
+
+Of course, we can change the conditional expression to whatever we want to test, like
+当然,条件表达式 可以改成别的,比如:
+
+"is score greater than 10" or "is bugs less than 1".
+"分数 >10" 或者 "虫子数 <1"
+
+And If-Statements can be combined with an ELSE statement, which acts as a catch-all if the expression is false.
+if 还可以和 else 结合使用 \N 条件为假会执行 else 里的代码
+
+If the level is not 1, the code inside the ELSE block will be executed instead, and the
+如果不是第1关,else 里的指令就会被执行
+
+number of bugs that Grace has to battle is set to 3 times the level number.
+Grace 要抓的虫子数,是当前关卡数 * 3
+
+So on level 2, it would be six bugs, and on level 3 there’s 9, and so on.
+所以第 2 关有 6 个虫子,第 3 关有 9 个虫子,以此类推
+
+Score isn’t modified in the ELSE block, so Grace gets to keep any points earned.
+else 中没有改分数,所以 Grace 的分数不会变
+
+Here are some examples of if-then-else statements from some popular programming languages
+这里列了一些热门编程语言 if-then-else 的具体语法
+
+-- you can see the syntax varies a little, but the underlying structure is roughly the same.
+具体语法略有不同,但主体结构一样
+
+If-statements are executed once, a conditional path is chosen, and the program moves on.
+if 语句 根据条件执行一次
+
+To repeat some statements many times, we need to create a conditional loop.
+如果希望根据条件执行多次,需要"条件循环"
+
+One way is a while statement, also called a while loop.
+比如 while 语句,也叫 "while 循环"
+
+As you might have guessed, this loops a piece of code "while" a condition is true.
+当 while 条件为真,代码会重复执行
+
+Regardless of the programming language, they look something like this:
+不管是哪种编程语言,结构都是这样
+
+In our game, let’s say at certain points, a friendly colleague restocks Grace with relays!
+假设到达一定分数会冒出一个同事,给 Grace 补充继电器
+
+Hooray!
+棒极了!
+
+To animate him replenishing our stock back up to a maximum of 4, we can use a while loop.
+把继电器补满到最大数 4 个 \N 我们可以用 while 语句来做
+
+Let’s walk through this code.
+来过一遍代码
+
+First we’ll assume that Grace only has 1 tube left when her colleague enters.
+假设同事入场时, Grace 只剩一个继电器
+
+When we enter the while loop, the first thing the computer does is test its conditional…
+当执行 while 循环,第一件事是检查条件
+
+is relays less than 4?
+继电器数量<4?
+
+Well, relays is currently 1, so yes.
+继电器数量现在是1,所以是真
+
+Now we enter the loop!
+进入循环!
+
+Then, we hit the line of code: "relays equals relays plus 1".
+碰到这一行:继电器数量=继电器数量+1
+
+This is a bit confusing because the variable is using itself in an assignment statement,
+看起来有点怪,变量的赋值用到了自己
+
+so let's unpack it.
+我们讲下这个
+
+You always start by figuring out the right side of the equals sign first,
+总是从等号右边开始,
+
+so what does "relays plus 1" come out to be?
+"继电器数量+1" 是多少?
+
+Well, relays is currently the value 1, so 1 plus 1 equals 2.
+当前值是1,所以 1+1=2
+
+Then, this result gets saved back into the variable relays, writing over the old value,
+结果存到"继电器数量",覆盖旧的值
+
+so now relays stores the value 2.
+所以现在继电器数量是 2
+
+We’ve hit the end of the while loop, which jumps the program back up.
+现在到了结尾,跳回开始点
+
+Just as before, we test the conditional to see if we’re going to enter the loop.
+和之前一样,先判断条件,看要不要进入循环
+
+Is relays less than 4?
+继电器数量<4?
+
+Well, yes, relays now equals 2, so we enter the loop again!
+是,继电器数量是2,所以再次进入循环!
+
+2 plus 1 equals 3.
+2+1=3
+
+so 3 is saved into relays.
+3 存入"继电器数量"
+
+Loop again.
+回到开头
+
+Is 3 less than 4?
+3<4?
+
+Yes it is!
+是!
+
+Into the loop again.
+进入循环
+
+3 plus 1 equals 4.
+3+1=4
+
+So we save 4 into relays.
+4 存入"继电器数量"
+
+Loop again.
+回到开头
+
+Is 4 less than 4?....
+4<4?
+
+No!
+不!
+
+So the condition is now false, and thus we exit the loop and move on to any remaining code
+现在条件为假,退出循环,执行后面的代码
+
+That’s how a while loop works!
+while 循环就是这样运作的!
+
+There’s also the common For Loop.
+另一种常见的叫 "for 循环"
+
+Instead of being a condition-controlled loop that can repeat forever until the condition is false
+不判断条件,判断次数,会循环特定次数
+
+a FOR loop is count-controlled; it repeats a specific number of times.
+不判断条件,判断次数,会循环特定次数
+
+They look something like this:
+看起来像上图
+
+Now, let’s put in some real values.
+现在放些真正的值进去
+
+This example loops 10 times, because we’ve specified that variable ‘i’
+上图例子会循环10次,因为设了变量 i
+
+starts at the value 1 and goes up to 10.
+从 1 开始,一直到 10
+
+The unique thing about a FOR loop is that each time it hits NEXT, it adds one to ‘i’.
+for 的特点是,每次结束, i 会 +1
+
+When ‘i’ equals 10, the computer knows it’s been looped 10 times, and the loop exits
+当 i 等于10,就知道循环了10次,然后退出.
+
+We can set the number to whatever we want -- 10, 42, or a billion -- it’s up to us.
+我们可以用任何数字,10, 42, 10 亿
+
+Let’s say we want to give the player a bonus at the end of each level
+假设每关结束后 给玩家一些奖励分
+
+for the number of vacuum relays they have left over.
+奖励分多少取决于 继电器剩余数量
+
+As the game gets harder, it takes more skill to have unused relays,
+随着难度增加,剩下继电器会越来越难
+
+so we want the bonus to go up exponentially based on the level.
+因此奖励分会根据当前关卡数,指数级增长
+
+We need to write a piece of code that calculates exponents -
+我们要写一小段代码来算指数
+
+that is, multiplying a number by itself a specific number of times.
+指数是一个数乘自己,乘特定次数
+
+A loop is perfect for this!
+用循环来实现简直完美!
+
+First lets initialize a new variable called "bonus" and set it to 1.
+首先,创建一个叫"奖励分"的新变量,设为 1 (看上图)
+
+Then, we create a FOR loop starting at 1, and looping up to the level number.
+然后 for 循环,从 1 到 [当前关卡数]
+
+Inside that loop, we multiply bonus times the number of relays,
+[奖励分] x [继电器剩余数],结果存入 [奖励分]
+
+and save that new value back into bonus.
+[奖励分] x [继电器剩余数],结果存入 [奖励分]
+
+For example, let’s say relays equals 2, and level equals 3.
+比如继电器数是2,关卡数是3
+
+So the FOR loop will loop three times, which means bonus is going to get multiplied by
+for 会循环3次,奖励分会乘
+
+relays... by relays... by relays.
+继电器数量 x 继电器数量 x 继电器数量
+
+Or in this case, times 2, times 2, times 2, which is a bonus of 8!
+也就是1×2×2×2,奖励分是8,2的3次方
+
+That’s 2 to the 3rd power!
+也就是1×2×2×2,奖励分是8,2的3次方
+
+This exponent code is useful, and we might want to use it in other parts of our code.
+这个指数代码很实用,其他地方可能会用到
+
+It’d be annoying to copy and paste this everywhere, and have to update the variable names each time.
+如果每次想用就复制粘贴,会很麻烦,每次都要改变量名
+
+Also, if we found a bug, we’d have to hunt around and update every place we used it.
+如果代码发现问题,要补漏洞时 \N 要把每一个复制黏贴过的地方都找出来改
+
+It also makes code more confusing to look at.
+而且会让代码更难懂
+
+Less is more!
+少即是多!
+
+What we want is a way to package up our exponent code so we can use it, get the result, and
+我们想要某种方法,把代码"打包" \N 可以直接使用,得出结果,
+
+not have to see all the internal complexity.
+不用管内部复杂度.
+
+We’re once again moving up a new level of abstraction!
+这又提升了一层抽象!
+
+To compartmentalize and hide complexity,
+为了隐藏复杂度
+
+programming languages can package pieces of code into named functions,
+可以把代码打包成 "函数"
+
+also called methods or subroutines in different programming languages.
+也叫 "方法" 或 "子程序"\N(有些编程语言这么叫)
+
+These functions can then be used by any other part of that program just by calling its name.
+其他地方想用这个函数,直接写函数名就可以了
+
+Let’s turn our exponent code into a function! First, we should name it.
+现在我们把指数代码变成函数. 第一步,取名.
+
+We can call it anything we want, like HappyUnicorn,
+叫什么都行,比如"快乐独角兽"
+
+but since our code calculates exponents, let’s call it exponent.
+但因为是算指数, 直接叫"指数"合适一些
+
+Also, instead of using specific variable names, like "relays" and "levels",
+还有,与其用特定变量名,比如 "继电器" 和 "关卡数"
+
+we specify generic variable names, like Base and Exp,
+用更通用的名字,比如 底数(Base) 和 指数(Exp)
+
+whose initial values are going to be "passed" into our function from some other part of the program.
+Base 和 Exp 的初始值需要外部传入
+
+The rest of our code is the same as before
+剩余代码和之前一样
+
+Now tucked into our function and with new variable names.
+现在完成了,有函数名和新变量名.
+
+Finally, we need to send the result of our exponent code back to the part of the program that requested it.
+最后, 我们还需要把结果 交给使用这个函数的代码
+
+For this, we use a RETURN statement, and specify that the value in ‘result’ be returned.
+所以用 RETURN 语句,指明返回什么.
+
+So our full function code looks like this:
+完整版代码是这样
+
+Now we can use this function anywhere in our program,
+现在可以随意用这个函数
+
+simply by calling its name and passing in two numbers.
+只需要写出名字 然后传入2个数字 就可以了
+
+For example, if we want to calculate 2 to the 44th power, we can just call "exponent 2 comma 44."
+如果要算 2 的 44 次方,写 exponent(2,44)
+
+and like 18 trillion comes back.
+结果是 18 万亿左右
+
+Behind the scenes, 2 and 44 get saved into variables Base and Exp inside the function,
+幕后原理是,2 和 44 存进 Base 和 Exp
+
+it does all its loops as necessary, and then the function returns with the result.
+跑循环,然后返回结果
+
+Let’s use our newly minted function to calculate a score bonus.
+我们来用这个新函数 算奖励分
+
+First, we initialize bonus to 0.
+首先,奖励分初始化为 0
+
+Then we check if the player has any remaining relays with an if-statement.
+然后用 if 语句,看剩不剩继电器(看上图的 > 0)
+
+If they do, we call our exponent function, passing in relays and level,
+如果还剩,用指数函数,传入 [继电器数] 和 [关卡数]
+
+which calculates relays to the power of level, and returns the result, which we save into bonus.
+它会算 [继电器数]的[关卡数]次方, 存入奖励分
+
+This bonus calculating code might be useful later, so let’s wrap it up as a function too!
+这段算奖励分的代码,之后可能还会用,也打包成一个函数
+
+Yes, a function that calls a function!
+没错,这个函数 (CalcBonus) \N 会调用另一个函数 (Exponent)
+
+And then, wait for it…. we can use this function in an even more complex function.
+还有!这个 CalcBonus 函数,可以用在其他更复杂的函数
+
+Let’s write one that gets called everytime the player finishes a level.
+我们来写一个函数, 每一关结束后都会调用
+
+We’ll call it "LevelFinished"
+叫 LevelFinished (关卡结束)
+
+- it needs to know the number of relays left, what level it was, and the current score;
+需要传入 [剩余继电器数] [关卡数] [当前分]
+
+those values have to get passed in.
+这些数据必须传入.
+
+Inside our function, we’ll calculate the bonus, using our CalcBonus function,
+里面用 CalcBonus 算奖励分,并加进总分
+
+and add that to the running score.
+里面用 CalcBonus 算奖励分,并加进总分
+
+Also, if the current score is higher than the game’s high score,
+还有,如果当前分 > 游戏最高分
+
+we save the new high score and the players name.
+把新高分和玩家名 存起来
+
+Now we’re getting pretty fancy.
+现在代码变得蛮"花哨"了
+
+Functions are calling functions are calling functions!
+函数调函数调函数
+
+When we call a single line of code, like this the complexity is hidden.
+我们写这样一行代码时,复杂度都隐藏起来了
+
+We don’t see all the internal loops and variables,
+不需要知道内部的循环和变量
+
+we just see the result come back as if by magic…. a total score of 53.
+只知道结果会像魔术一样返回,总分 53
+
+But it’s not magic, it’s the power of abstraction!
+但是这不是魔术,是抽象的力量
+
+If you understand this example, then you understand the power of functions,
+如果你理解了这个例子,就明白了函数的强大之处
+
+and the entire essence of modern programming.
+和现代编程的核心
+
+It’s not feasible to write, for example, a web browser as one gigantically long list of statements.
+比如浏览器这样的复杂程序,用一长串语句来写是不可能的
+
+It would be millions of lines long and impossible to comprehend!
+会有几百万行代码,没人能理解
+
+So instead, software consists of thousands of smaller functions,
+所以现代软件由上千个函数组成
+
+each responsible for different features.
+每个负责不同的事
+
+In modern programming, it’s uncommon to see functions longer than around 100 lines of code
+如今超过100行代码的函数很少见
+
+because by then, there’s probably something that
+如果多于 100 行,应该有东西可以拆出来做成一个函数
+
+should be pulled out and made into its own function.
+如果多于 100 行,应该有东西可以拆出来做成一个函数
+
+Modularizing programs into functions not only allows a single programmer to write an entire app
+模块化编程 不仅可以让单个程序员独立制作 App
+
+but also allows teams of people to work efficiently on even bigger programs.
+也让团队协作可以写更大型的程序
+
+Different programmers can work on different functions,
+不同程序员写不同函数
+
+and if everyone makes sure their code works correctly,
+只需要确保自己的代码工作正常
+
+then when everything is put together, the whole program should work too!
+把所有人的拼起来,整个程序也应该能正常运作!
+
+And in the real world, programmers aren’t wasting time writing things like exponents.
+现实中,程序员不会浪费时间写指数函数这种东西
+
+Modern programming languages come with huge bundles of pre-written functions, called Libraries.
+现代编程语言 有很多预先写好的函数集合,叫 "库"
+
+These are written by expert coders, made efficient and rigorously tested, and then given to everyone.
+由专业人员编写,不仅效率高,而且经过了仔细检查
+
+There are libraries for almost everything, including networking, graphics, and sound
+几乎做所有事情都有库,网络、图像、声音
+
+-- topics we’ll discuss in future episodes.
+我们之后会讲这些主题.
+
+But before we get to those, we need to talk about Algorithms.
+但在此之前,我们先讲算法
+
+Intrigued?
+好奇吗?
+
+You should be.
+你应该才是!
+
+I’ll see you next week.
+下周见
+
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the past two episodes, we got our first taste of programming in a high-level language,
+前两集,我们"初尝"了高级编程语言\N (比如 Python 和 Java)
+
+like Python or Java.
+前两集,我们"初尝"了高级编程语言\N (比如 Python 和 Java)
+
+We talked about different types of programming language statements
+我们讨论了几种语句 - 赋值语句,if 语句,循环语句
+
+- like assignments, ifs, and loops -
+我们讨论了几种语句 - 赋值语句,if 语句,循环语句
+
+as well as putting statements into functions that perform a computation,
+以及把代码打包成 "函数"
+
+like calculating an exponent.
+比如算指数
+
+Importantly, the function we wrote to calculate exponents is only one possible solution.
+重要的是,之前写的指数函数 \N 只是无数解决方案的一种
+
+There are other ways to write this function
+还有其它方案
+
+- using different statements in different orders -
+- 用不同顺序写不同语句 也能得到一样结果
+
+that achieve exactly the same numerical result.
+- 用不同顺序写不同语句 也能得到一样结果
+
+The difference between them is the algorithm,
+不同的是 "算法",意思是:解决问题的具体步骤
+
+that is the specific steps used to complete the computation.
+不同的是 "算法",意思是:解决问题的具体步骤
+
+Some algorithms are better than others even if they produce equal results.
+即使结果一致,有些算法会更好
+
+Generally, the fewer steps it takes to compute, the better it is,
+一般来说,所需步骤越少越好
+
+though sometimes we care about other factors, like how much memory it uses.
+不过有时我们也会关心其他因素,比如占多少内存
+
+The term algorithm comes from Persian polymath Muhammad ibn Musa al-Khwarizmi
+"算法" 一词来自 波斯博识者 阿尔·花拉子密
+
+who was one of the fathers of algebra more than a millennium ago.
+1000 多年前的代数之父之一
+
+The crafting of efficient algorithms
+如何想出高效算法 - 是早在计算机出现前就有的问题
+
+- a problem that existed long before modern computers -
+如何想出高效算法 - 是早在计算机出现前就有的问题
+
+led to a whole science surrounding computation,
+诞生了专门研究计算的领域,然后发展成一门现代学科
+
+which evolved into the modern discipline of...
+诞生了专门研究计算的领域,然后发展成一门现代学科
+
+you guessed it!
+你猜对了!
+
+Computer Science!
+计算机科学!
+
+One of the most storied algorithmic problems in all of computer science is sorting
+记载最多的算法之一是"排序"
+
+as in sorting names or sorting numbers.
+比如给名字、数字排序
+
+Computers sort all the time.
+排序到处都是
+
+Looking for the cheapest airfare,
+找最便宜的机票
+
+arranging your email by most recently sent,
+按最新时间排邮件
+
+or scrolling your contacts by last name
+按姓氏排联系人
+
+-- those all require sorting.
+-这些都要排序
+
+You might think
+你可能想"排序看起来不怎么难… 能有几种算法呢?"
+
+"sorting isn't so tough how many algorithms can there possibly be?"
+你可能想"排序看起来不怎么难… 能有几种算法呢?"
+
+The answer is: a lot.
+答案是超多
+
+Computer Scientists have spent decades inventing algorithms for sorting,
+计算机科学家花了数十年发明各种排序算法
+
+with cool names like Bubble Sort and Spaghetti Sort.
+还起了酷酷的名字,"冒泡排序""意面排序"
+
+Let's try sorting!
+我们来试试排序!
+
+Imagine we have a set of airfare prices to Indianapolis.
+试想有一堆机票价格,都飞往 印第安纳波利斯 (美国地名)
+
+We'll talk about how data like this is represented in memory next week,
+数据具体怎么在内存中表示 下周再说
+
+but for now, a series of items like this is called an array.
+上图的这样一组数据 叫"数组"(Array)
+
+Let's take a look at these numbers to help see how we might sort this programmatically.
+来看看怎么排序
+
+We'll start with a simple algorithm.
+先从一种简单算法开始
+
+First, let's scan down the array to find the smallest number.
+先找到最小数,从最上面的 307 开始
+
+Starting at the top with 307.
+先找到最小数,从最上面的 307 开始
+
+It's the only number we've seen, so it's also the smallest.
+因为现在只看了这一个,所以它是最小数
+
+The next is 239, that's smaller than 307,
+下一个是 239,比 307 小
+
+so it becomes our new smallest number.
+所以新的最小数变成 239
+
+Next is 214, our new smallest number.
+下一个是 214 ,新的最小数
+
+250 is not, neither is 384, 299, 223 or 312.
+250 不是,384, 299, 223, 312 都不是
+
+So we've finished scanning all numbers,
+现在扫完了所有数字
+
+and 214 is the smallest.
+214 是最小的
+
+To put this into ascending order,
+为了升序排列(从小到大排序)
+
+we swap 214 with the number in the top location.
+把 214 和最上面的数字,交换位置
+
+Great! We sorted one number!
+好棒! 刚排序了一个数字!
+
+Now we repeat the same procedure,
+现在重复同样的过程
+
+but instead of starting at the top, we can start one spot below.
+这次不从最上面开始,从第 2 个数开始
+
+First we see 239, which we save as our new smallest number.
+先看到 239,我们当作是 "最小数"
+
+Scanning the rest of the array, we find 223 is the next smallest,
+扫描剩下的部分,发现 223 最小
+
+so we swap this with the number in the second spot.
+所以把它和第 2 位交换
+
+Now we repeat again, starting from the third number down.
+重复这个过程,从第 3 位数字开始
+
+This time, we swap 239 with 307.
+让 239 和 307 互换位置
+
+This process continues until we get to the very last number,
+重复直到最后一个数字
+
+and voila, the array is sorted and you're ready to book that flight to Indianapolis!
+瞧,数字排好了,可以买机票了!
+
+The process we just walked through is one way
+刚刚这种方法,或者说算法,
+
+- or one algorithm - for sorting an array.
+刚刚这种方法,或者说算法,
+
+It's called Selection sort - and it's pretty basic.
+叫 选择排序 - 非常基础的一种算法
+
+Here's the pseudo-code.
+以下是"伪代码"
+
+This function can be used to sort 8, 80, or 80 million numbers
+这个函数可以排序8个, 80个或8千万个数字
+
+- and once you've written the function, you can use it over and over again.
+函数写好了就可以重复使用
+
+With this sort algorithm, we loop through each position in the array, from top to bottom,
+这里用循环 遍历数组
+
+and then for each of those positions,
+每个数组位置都跑一遍循环,找最小数然后互换位置
+
+we have to loop through the array to find the smallest number to swap.
+每个数组位置都跑一遍循环,找最小数然后互换位置
+
+You can see this in the code, where one FOR loop is nested inside of another FOR loop.
+可以在代码中看到这一点 \N (一个 for 循环套另一个 for 循环)
+
+This means, very roughly, that if we want to sort N items, we have to loop N times,
+这意味着,大致来说,如果要排 N 个东西,要循环 N 次,
+
+inside of which, we loop N times, for a grand total of roughly N times N loops, or N squared.
+每次循环中再循环 N 次,共 N*N, 或 N
+
+This relationship of input size to the number of steps the algorithm takes to run
+算法的 输入大小 和 运行步骤 之间的关系
+
+characterizes the complexity of the Selection Sort algorithm.
+叫算法的 复杂度
+
+It gives you an approximation of how fast, or slow, an algorithm is going to be.
+表示运行速度的量级
+
+Computer Scientists write this order of growth in something known as - no joke -
+计算机科学家们把算法复杂度叫 - 没开玩笑
+
+"big O notation".
+大 O 表示法
+
+N squared is not particularly efficient.
+算法复杂度 O(N ) 效率不高
+
+Our example array had n = 8 items, and 8 squared is 64.
+前面的例子有 8 个元素(n=8), 8 = 64
+
+If we increase the size of our array from 8 items to 80,
+如果 8 个变 80 个
+
+the running time is now 80 squared, which is 6,400.
+运行时间变成 80 = 6400
+
+So although our array only grew by 10 times - from 8 to 80 -
+虽然大小只增长了 10 倍(8 到 80)
+
+the running time increased by 100 times - from 64 to 6,400!
+但运行时间增加了 100 倍!(64 到 6400 )
+
+This effect magnifies as the array gets larger.
+随着数组增大,对效率的影响会越来越大
+
+That's a big problem for a company like Google,
+这对大公司来说是个问题,比如 谷歌
+
+which has to sort arrays with millions or billions of entries.
+要对几十亿条信息排序
+
+So, you might ask,
+作为未来的计算机科学家你可能会问:有没有更高效的排序算法?
+
+as a burgeoning computer scientist, is there a more efficient sorting algorithm?
+作为未来的计算机科学家你可能会问:有没有更高效的排序算法?
+
+Let's go back to our old, unsorted array
+回到未排序的数组
+
+and try a different algorithm, merge sort.
+试另一个算法 "归并排序"
+
+The first thing merge sort does is check if the size of the array is greater than 1.
+第一件事是检查数组大小是否 > 1
+
+If it is, it splits the array into two halves.
+如果是,就把数组分成两半
+
+Since our array is size 8, it gets split into two arrays of size 4.
+因为数组大小是 8,所以分成两个数组,大小是 4
+
+These are still bigger than size 1, so they get split again, into arrays of size 2,
+但依然大于 1,所以再分成大小是 2 的数组
+
+and finally they split into 8 arrays with 1 item in each.
+最后变成 8 个数组,每个大小为 1
+
+Now we are ready to merge, which is how "merge sort" gets its name.
+现在可以"归并"了,"归并排序"因此得名
+
+Starting with the first two arrays, we read the first - and only - value in them,
+从前两个数组开始,读第一个(也是唯一一个)值
+
+in this case, 307 and 239.
+307 和 239
+
+239 is smaller, so we take that value first.
+239 更小,所以放前面
+
+The only number left is 307, so we put that value second.
+剩下的唯一数字是 307 ,所以放第二位
+
+We've successfully merged two arrays.
+成功合并了两个数组
+
+We now repeat this process for the remaining pairs, putting them each in sorted order.
+重复这个过程,按序排列
+
+Then the merge process repeats.
+然后再归并一次
+
+Again, we take the first two arrays, and we compare the first numbers in them.
+同样,取前两个数组,比较第一个数
+
+This time its 239 and 214.
+239 和 214
+
+214 is lowest, so we take that number first.
+214 更小,放前面
+
+Now we look again at the first two numbers in both arrays: 239 and 250.
+再看两个数组里的第一个数:239 和 250
+
+239 is lower, so we take that number next.
+239 更小,所以放下一位
+
+Now we look at the next two numbers: 307 and 250.
+看剩下两个数:307 和 250
+
+250 is lower, so we take that.
+250 更小,所以放下一位
+
+Finally, we're left with just 307, so that gets added last.
+最后剩下 307 ,所以放最后
+
+In every case, we start with two arrays,
+每次都以 2 个数组开始
+
+each individually sorted, and merge them into a larger sorted array.
+然后合并成更大的有序数组
+
+We repeat the exact same merging process for the two remaining arrays of size two.
+我们把刚隐藏起来的,下面的数组也这样做
+
+Now we have two sorted arrays of size 4.
+现在有两个大小是 4 的有序数组
+
+Just as before, we merge,
+就像之前,比较两个数组的第一个数,取最小数
+
+comparing the first two numbers in each array, and taking the lowest.
+就像之前,比较两个数组的第一个数,取最小数
+
+We repeat this until all the numbers are merged,
+重复这个过程,直到完成
+
+and then our array is fully sorted again!
+就排好了!
+
+The bad news is: no matter how many times we sort these,
+但坏消息是:无论排多少次
+
+you're still going to have to pay $214 to get to Indianapolis.
+你还是得付 214 美元到 印第安纳波利斯
+
+Anyway, the "Big O" computational complexity of merge sort is N times the Log of N.
+总之,"归并排序"的算法复杂度是 O(n * log n)
+
+The N comes from the number of times we need to compare and merge items,
+n 是需要 比较+合并 的次数
+
+which is directly proportional to the number of items in the array.
+和数组大小成正比
+
+The Log N comes from the number of merge steps.
+log N 是合并步骤的次数
+
+In our example, we broke our array of 8 items into 4,
+例子中把大小是 8 的数组,分成四个数组
+
+then 2, and finally 1.
+然后分成 2 个,最后分成 1 个
+
+That's 3 splits.
+分了 3 次
+
+Splitting in half repeatedly like this has a logarithmic relationship with the number of items
+重复切成两半,和数量成对数关系
+
+- trust me!
+相信我!
+
+Log base 2 of 8 equals 3 splits.
+Log 8=3
+
+If we double the size of our array to 16 - that's twice as many items to sort -
+如果数组大小变成 16 - 之前的两倍
+
+it only increases the number of split steps by 1
+也只要多分割 1 次
+
+since log base 2 of 16 equals 4.
+因为 Log 16=4
+
+Even if we increase the size of the array more than a thousand times,
+即使扩大一千倍
+
+from 8 items to 8000 items, the number of split steps stays pretty low.
+从8到8000,分割次数也不会增大多少
+
+Log base 2 of 8000 is roughly 13.
+log 8000≈13
+
+That's more, but not much more than 3 -- about four times larger --
+13 比 3 只是4倍多一点
+
+and yet we're sorting a lot more numbers.
+然而排序的元素多得多
+
+For this reason, merge sort is much more efficient than selection sort.
+因此"归并排序"比"选择排序"更有效率
+
+And now I can put my ceramic cat collection in name order MUCH faster!
+这下我收藏的陶瓷猫 可以更快排序了!
+
+There are literally dozens of sorting algorithms we could review,
+有好几十种排序算法,但没时间讲
+
+but instead, I want to move on to my other favorite category of classic algorithmic problems:
+所以我们来谈一个经典算法问题:
+
+graph search!
+图搜索
+
+A graph is a network of nodes connected by lines.
+"图" 是用线连起来的一堆 "节点"
+
+You can think of it like a map, with cities and roads connecting them.
+可以想成地图,每个节点是一个城市,线是公路
+
+Routes between these cities take different amounts of time.
+一个城市到另一个城市,花的时间不同
+
+We can label each line with what is called a cost or weight.
+可以用 成本(cost) 或 权重(weight) 来代称
+
+In this case, it's weeks of travel.
+代表要几个星期
+
+Now let's say we want to find the fastest route
+假设想找"高庭"到"凛冬城"的最快路线
+
+for an army at Highgarden to reach the castle at Winterfell.
+假设想找"高庭"到"凛冬城"的最快路线
+
+The simplest approach would just be to try every single path exhaustively
+最简单的方法是尝试每一条路
+
+and calculate the total cost of each.
+计算总成本
+
+That's a brute force approach.
+这是蛮力方法
+
+We could have used a brute force approach in sorting,
+假设用蛮力方法 来排序数组
+
+by systematically trying every permutation of the array to check if it's sorted.
+尝试每一种组合,看是否排好序
+
+This would have an N factorial complexity
+这样的时间复杂度是 O(n!)
+
+- that is the number of nodes, times one less, times one less than that, and so on until 1.
+n 是节点数,n! 是 n 乘 n-1 乘 n-2... 一直到 1
+
+Which is way worse than even N squared.
+比 O(n ) 还糟糕
+
+But, we can be way more clever!
+我们可以更聪明些!
+
+The classic algorithmic solution to this graph problem was invented by
+图搜索问题的经典算法 发明者是
+
+one of the greatest minds in computer science practice and theory, Edsger Dijkstra
+理论计算机科学的伟人 Edsger Dijkstra
+
+so it's appropriately named Dijkstra's algorithm.
+所以叫 "Dijkstra 算法"
+
+We start in Highgarden with a cost of 0, which we mark inside the node.
+从"高庭"开始,此时成本为0,把0标在节点里
+
+For now, we mark all other cities with question marks
+其他城市标成问号,因为不知道成本多少
+
+- we don't know the cost of getting to them yet.
+其他城市标成问号,因为不知道成本多少
+
+Dijkstra's algorithm always starts with the node with lowest cost.
+Dijkstra 算法总是从成本最低的节点开始
+
+In this case, it only knows about one node, Highgarden, so it starts there.
+目前只知道一个节点 "高庭", 所以从这里开始
+
+It follows all paths from that node to all connecting nodes that are one step away,
+跑到所有相邻节点,记录成本
+
+and records the cost to get to each of them.
+跑到所有相邻节点,记录成本
+
+That completes one round of the algorithm.
+完成了一轮算法
+
+We haven't encountered Winterfell yet,
+但还没到"凛冬城"
+
+so we loop and run Dijkstra's algorithm again.
+所以再跑一次 Dijkstra 算法
+
+With Highgarden already checked,
+"高庭" 已经知道了
+
+the next lowest cost node is King's Landing.
+下一个成本最低的节点,是 "君临城"
+
+Just as before, we follow every unvisited line to any connecting cities.
+就像之前,记录所有相邻节点的成本
+
+The line to The Trident has a cost of 5.
+到"三叉戟河"的成本是 5
+
+However, we want to keep a running cost from Highgarden,
+然而我们想记录的是,从"高庭"到这里的成本
+
+so the total cost of getting to The Trident is 8 plus 5, which is 13 weeks.
+所以"三叉戟河"的总成本是 8+5=13周
+
+Now we follow the offroad path to Riverrun,
+现在走另一条路到"奔流城"
+
+which has a high cost of 25, for a total of 33.
+成本高达 25 ,总成本 33
+
+But we can see inside of Riverrun that we've already found a path with a lower cost of just 10.
+但 "奔流城" 中最低成本是 10
+
+So we disregard our new path, and stick with the previous, better path.
+所以无视新数字,保留之前的成本 10
+
+We've now explored every line from King's Landing and didn't find Winterfell, so we move on.
+现在看了"君临城"的每一条路,还没到"凛冬城" 所以继续.
+
+The next lowest cost node is Riverrun, at 10 weeks.
+下一个成本最低的节点,是"奔流城",要 10 周
+
+First we check the path to The Trident, which has a total cost of 10 plus 2, or 12.
+先看 "三叉戟河" 成本: 10+2=12
+
+That's slightly better than the previous path we found, which had a cost of 13,
+比之前的 13 好一点
+
+so we update the path and cost to The Trident.
+所以更新 "三叉戟河" 为 12
+
+There is also a line from Riverrun to Pyke with a cost of 3.
+"奔流城"到"派克城"成本是 3
+
+10 plus 3 is 13, which beats the previous cost of 14,
+10+3=13,之前是14
+
+and so we update Pyke's path and cost as well.
+所以更新 "派克城" 为 13
+
+That's all paths from Riverrun checked. so you guessed it, Dijkstra's algorithm loops again.
+"奔流城"出发的所有路径都走遍了, \N 你猜对了,再跑一次 Dijkstra 算法
+
+The node with the next lowest cost is The Trident
+下一个成本最低的节点,是"三叉戟河"
+
+and the only line from The Trident that we haven't checked is a path to Winterfell!
+从"三叉戟河"出发,唯一没看过的路,通往"凛冬城"!
+
+It has a cost of 10,
+成本是 10
+
+plus we need to add in the cost of 12 it takes to get to The Trident,
+加"三叉戟河"的成本 12
+
+for a grand total cost of 22.
+总成本 22
+
+We check our last path, from Pyke to Winterfell, which sums to 31.
+再看最后一条路,"派克城"到"凛冬城",成本 31
+
+Now we know the lowest total cost, and also the fastest route for the army to get there,
+现在知道了最低成本路线,让军队最快到达,
+
+which avoids King's Landing!
+还绕过了"君临城"!
+
+Dijkstra's original algorithm, conceived in 1956,
+Dijkstra 算法的原始版本,构思于 1956 年
+
+had a complexity of the number of nodes in the graph squared.
+算法复杂度是 O(n )
+
+And squared, as we already discussed, is never great,
+前面说过这个效率不够好
+
+because it means the algorithm can't scale to big problems
+意味着输入不能很大
+
+- like the entire road map of the United States.
+比如美国的完整路线图
+
+Fortunately, Dijkstra's algorithm was improved a few years later
+幸运的是,Dijkstra 算法几年后得到改进
+
+to take the number of nodes in the graph,
+变成 O(n log n + l)
+
+times the log of the number of nodes, PLUS the number of lines.
+n 是节点数,l 是多少条线
+
+Although this looks more complicated,
+虽然看起来更复杂
+
+it's actually quite a bit faster.
+但实际更快一些
+
+Plugging in our example graph, with 6 cities and 9 lines, proves it.
+用之前的例子,可以证明更快 \N (6 个节点 9 条线)
+
+Our algorithm drops from 36 loops to around 14.
+从 36 减少到 14 左右
+
+As with sorting,
+就像排序,图搜索算法也有很多,有不同优缺点
+
+there are innumerable graph search algorithms, with different pros and cons.
+就像排序,图搜索算法也有很多,有不同优缺点
+
+Every time you use a service like Google Maps to find directions,
+每次用谷歌地图时
+
+an algorithm much like Dijkstra's is running on servers to figure out the best route for you.
+类似 Dijkstra 的算法就在服务器上运行,找最佳路线
+
+Algorithms are everywhere
+算法无处不在
+
+and the modern world would not be possible without them.
+现代世界离不开它们
+
+We touched only the very tip of the algorithmic iceberg in this episode,
+这集只触及了算法的冰山一角
+
+but a central part of being a computer scientist
+但成为计算机科学家的核心
+
+is leveraging existing algorithms and writing new ones when needed,
+是根据情况合理决定 用现有算法 还是自己写新算法
+
+and I hope this little taste has intrigued you to SEARCH further.
+希望这集的小例子能让你体会到这点
+
+I'll see you next week.
+下周见
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode, we discussed a few example classic algorithms,
+上集讲了一些经典算法
+
+like sorting a list of numbers and finding the shortest path in a graph.
+比如给数组排序,找图的最短路径
+
+What we didn't talk much about,
+而上集没讲的是
+
+is how the data the algorithms ran on was stored in computer memory.
+算法处理的数据 存在内存里的格式是什么
+
+You don't want your data to be like John Green's college dorm room,
+你肯定不想数据像 John Green 的大学宿舍一样乱 \N 到处都是食物,衣服和纸
+
+with food, clothing and papers strewn everywhere.
+你肯定不想数据像 John Green 的大学宿舍一样乱 \N 到处都是食物,衣服和纸
+
+Instead, we want our data to be structured,
+我们希望数据是结构化的,方便读取
+
+so that it's organized, allowing things to be easily retrieved and read.
+我们希望数据是结构化的,方便读取
+
+For this, computer scientists use Data Structures!
+因此计算机科学家发明了 "数据结构"!
+
+We already introduced one basic data structure last episode,
+上集已经介绍了一种基本数据结构:
+
+Arrays, also called lists or Vectors in some languages.
+数组(Array)\N 也叫列表(list)或向量(Vector)(在其它编程语言里)
+
+These are a series of values stored in memory.
+数组的值一个个连续存在内存里
+
+So instead of just a single value being saved into a variable, like 'j equals 5',
+所以不像之前,一个变量里只存一个值(比如 j = 5)
+
+we can define a whole series of numbers, and save that into an array variable.
+我们可以把多个值存在数组变量里
+
+To be able to find a particular value in this array, we have to specify an index.
+为了拿出数组中某个值,我们要指定一个下标(index)
+
+Almost all programing languages start arrays at index 0,
+大多数编程语言里,数组下标都从 0 开始
+
+and use a square bracket syntax to denote array access.
+用方括号 [ ] 代表访问数组
+
+So, for example, if we want to add the values in the first and third spots of our array 'j',
+如果想相加数组 J 的第一个和第三个元素
+
+and save that into a variable 'a', we would write a line of code like this.
+把结果存在变量 a,可以写上图这样一行代码
+
+How an array is stored in memory is pretty straightforward.
+数组存在内存里的方式 十分易懂
+
+For simplicity, let's say that the compiler chose to store ours at memory location 1,000.
+为了简单,假设编译器从内存地址 1000 开始存数组
+
+The array contains 7 numbers, and these are stored one after another in memory, as seen here.
+数组有7个数字,像上图一样按顺序存.
+
+So when we write "j index of 0", the computer goes to memory location 1,000,
+写 j[0],会去内存地址 1000
+
+with an offset of 0, and we get the value 5.
+加 0 个偏移,得到地址 1000,拿值:5
+
+If we wanted to retrieve "j index of 5", our program goes to memory location 1000,
+如果写 j[5],会去内存地址 1000
+
+plus an offset of 5, which in this case, holds a value of 4.
+加 5 个偏移,得到地址 1005,拿值: 4
+
+It's easy to confuse the fifth number in the array with the number at index 5.
+很容易混淆 "数组中第 5 个数" 和 "数组下标为 5 的数"
+
+They are not the same.
+它们不是一回事
+
+Remember, the number at index 5 is the 6th number in the array
+记住,下标 5 其实是数组中第 6 个数
+
+because the first number is at index 0.
+因为下标是从 0 开始算的
+
+Arrays are extremely versatile data structures, used all the time,
+数组的用途广泛
+
+and so there are many functions that can handle them to do useful things.
+所以几乎所有编程语言 都自带了很多函数来处理数组
+
+For example, pretty much every programming language comes with a built-in sort function,
+举例,数组排序函数很常见
+
+where you just pass in your array, and it comes back sorted.
+只需要传入数组,就会返回排序后的数组
+
+So there's no need to write that algorithm from scratch.
+不需要写排序算法
+
+Very closely related are Strings, which are just arrays of characters,
+数组的亲戚是 字符串 (string)
+
+like letters, numbers, punctuation and other written symbols.
+其实就是字母,数字,标点符号等 组成的数组
+
+We talked about how computers store characters way back in Episode 4.
+第 4 集讨论过计算机怎么存储字符
+
+Most often, to save a string into memory, you just put it in quotes, like so.
+写代码时 用引号括起来就行了 \N j = "STAN ROCKS"
+
+Although it doesn't look like an array, it is.
+虽然长的不像数组,但的确是数组
+
+Behind the scenes, the memory looks like this.
+幕后看起来像这样
+
+Note that the string ends with a zero in memory.
+注意,字符串在内存里以 0 结尾
+
+It's not the character zero, but the binary value 0.
+不是"字符0",是"二进制值0" \N 这叫字符"null",表示字符串结尾
+
+This is called the null character, and denotes the end of the string in memory.
+不是"字符0",是"二进制值0" \N 这叫字符"null",表示字符串结尾
+
+This is important because if I call a function like "print quote",
+这个字符非常重要,如果调用 print 函数
+
+which writes the string to the screen,
+print 在屏幕上输出字符串
+
+it prints out each character in turn starting at the first memory location,
+会从开始位置,逐个显示到屏幕
+
+but it needs to know when to stop!
+但得知道什么时候停下来!
+
+Otherwise, it would print out every single thing in memory as text.
+否则会把内存里所有东西 都显示出来
+
+The zero tells string functions when to stop.
+0 告诉函数何时停下
+
+Because computers work with text so often,
+因为计算机经常处理字符串,所以有很多函数专门处理字符串
+
+there are many functions that specifically handle strings.
+因为计算机经常处理字符串,所以有很多函数专门处理字符串
+
+For example, many programming languages have a string concatenation function, or "strcat",
+比如连接字符串的 strcat
+
+which takes in two strings, and copies the second one to the end of the first.
+strcat 接收两个字符串,把第二个放到第一个结尾.
+
+We can use arrays for making one dimensional lists,
+我们可以用数组做一维列表
+
+but sometimes you want to manipulate data that is two dimensional,
+但有时想操作二维数据
+
+like a grid of numbers in a spreadsheet, or the pixels on your computer screen.
+比如电子表格,或屏幕上的像素
+
+For this, we need a Matrix.
+那么需要 矩阵(Matrix)
+
+You can think of a Matrix as an array of arrays!
+可以把矩阵看成 数组的数组!
+
+So a 3 by 3 matrix is really an array of size 3, with each index storing an array of size 3.
+一个 3x3 矩阵就是一个长度为3的数组 \N 数组里每个元素都是一个长度为3的数组
+
+We can initialize a matrix like so.
+可以这样初始化.
+
+In memory, this is packed together in order like this.
+内存里是这样排列的
+
+To access a value, you need to specify two indexes, like "J index of 2, then index of 1" -
+为了拿一个值,需要两个下标,比如 j[2][1]
+
+this tells the computer you're looking for the item in subarray 2 at position 1.
+告诉计算机在找数组 2 里,位置是 1 的元素
+
+And this would give us the value 12.
+得到数字 12
+
+The cool thing about matrices is we're not limited to 3 by 3
+矩阵酷的地方是,不止能做 3x3 的矩阵
+
+-- we can make them any size we want
+任何维度都行
+
+-- and we can also make them any number of dimensions we want.
+任何维度都行
+
+For example, we can create a five dimensional matrix and access it like this.
+可以做一个5维矩阵,然后这样访问 \N a = j[2][0][18][18][3]
+
+That's right, you now know how to access a five dimensional matrix
+现在你知道了 怎么读一个 5 维矩阵
+
+-- tell your friends!
+快去告诉你的朋友!
+
+So far, we've been storing individual numbers or letters into our arrays or matrices.
+目前我们只存过单个数字/字符,存进数组或矩阵
+
+But often it's useful to store a block of related variables together.
+但有时, 把几个有关系的变量存在一起, 会很有用
+
+Like, you might want to store a bank account number along with its balance.
+比如银行账户号和余额
+
+Groups of variables like these can be bundled together into a Struct.
+多个变量打包在一起叫 结构体 (Struct)
+
+Now we can create variables that aren't just single numbers,
+现在多个不同类型数据,可以放在一起
+
+but are compound data structures, able to store several pieces of data at once.
+现在多个不同类型数据,可以放在一起
+
+We can even make arrays of structs that we define,
+甚至可以做一个数组,里面放很多结构体
+
+which are automatically bundled together in memory.
+这些数据在内存里 会自动打包在一起
+
+If we access, for example, J index of 0, we get back the whole struct stored there,
+如果写 j[0],能拿到 j[0] 里的结构体
+
+and we can pull the specific account number and balance data we want.
+然后拿银行账户和余额
+
+This array of structs, like any other array,
+存结构体的数组,和其它数组一样
+
+gets created at a fixed size that can't be enlarged to add more items.
+创建时就有固定大小,不能动态增加大小
+
+Also, arrays must be stored in order in memory,
+还有,数组在内存中 按顺序存储
+
+making it hard to add a new item to the middle.
+在中间插入一个值很困难
+
+But, the struct data structure can be used for
+但结构体可以创造更复杂的数据结构,消除这些限制
+
+building more complicated data structures that avoid these restrictions.
+但结构体可以创造更复杂的数据结构,消除这些限制
+
+Let's take a look at this struct that's called a "node".
+我们来看一个结构体,叫 节点(node)
+
+It stores a variable, like a number, and also a pointer.
+它存一个变量 \N 一个指针(pointer)
+
+A pointer is a special variable that points, hence the name, to a location in memory.
+"指针" 是一种特殊变量,指向一个内存地址,因此得名.
+
+Using this struct, we can create a linked list,
+用 节点 可以做 链表(linked list)
+
+which is a flexible data structure that can store many nodes.
+链表是一种灵活数据结构,能存很多个 节点 (node)
+
+It does this by having each node point to the next node in the list.
+灵活性是通过每个节点 指向 下一个节点实现的
+
+Let's imagine we have three node structs saved in memory, at locations 1000, 1002 and 1008.
+假设有三个节点,在内存地址 1000,1002, 1008
+
+They might be spaced apart because they were created at different times,
+隔开的原因 可能是创建时间不同
+
+and other data can sit between them.
+它们之间有其他数据
+
+So, you see that the first node contains the value 7, and the location 1008 in its "next" pointer.
+可以看到第一个节点,值是 7,指向地址 1008
+
+This means that the next node in the linked list is located at memory location 1008.
+代表下一个节点,位于内存地址 1008
+
+Looking down the linked list, to the next node,
+现在来到下一个节点
+
+we see it stores the value 112 and points to another node at location 1002.
+值是 112,指向地址 1002
+
+If we follow that, we find a node that contains the value 14
+如果跟着它,会看到一个值为 14 的节点
+
+and points back to the first node at location 1000.
+这个节点 指回地址 1000,也就是第一个节点
+
+So this linked list happened to be circular,
+这叫 循环链表
+
+but it could also have been terminated by using a next pointer value of 0
+但链表也可以是非循环的,最后一个指针是 0
+
+-- the null value -- which would indicate we've reached the end of the list.
+"null",代表链表尽头
+
+When programmers use linked lists,
+当程序员用链表时
+
+they rarely look at the memory values stored in the next pointers.
+很少看指针具体指向哪里
+
+Instead, they can use an abstraction of a linked list, that looks like this,
+而是用链表的抽象模型,就像上图
+
+which is much easier to conceptualize.
+更容易看懂
+
+Unlike an array, whose size has to be pre-defined,
+数组大小需要预先定好
+
+linked lists can be dynamically extended or shortened.
+链表大小可以动态增减
+
+For example, we can allocate a new node in memory,
+可以创建一个新节点,通过改变指针值,把新节点插入链表
+
+and insert it into this list, just by changing the next pointers.
+可以创建一个新节点,通过改变指针值,把新节点插入链表
+
+Linked Lists can also easily be re-ordered, trimmed, split, reversed, and so on.
+链表也很容易重新排序,两端缩减,分割,倒序等
+
+Which is pretty nifty!
+超方便!
+
+And pretty useful for algorithms like sorting, which we talked about last week.
+链表也适合上集的排序算法
+
+Owing to this flexibility, many more-complex data structures are built on top of linked lists
+因为灵活,很多复杂数据结构 都用链表
+
+The most famous and universal are queues and stacks.
+最出名的是 队列(queue)和 栈(stack)
+
+A queue - like the line at your post office - goes in order of arrival.
+"队列" 就像邮局排队,谁先来就排前面
+
+The person who has been waiting the longest, gets served first.
+"队列" 就像邮局排队,谁先来就排前面
+
+No matter how frustrating it is that all you want to do is buy stamps
+虽然你可能只想买邮票,而前面的人要寄 23 个包裹
+
+and the person in front of you seems to be mailing 23 packages.
+虽然你可能只想买邮票,而前面的人要寄 23 个包裹
+
+But, regardless, this behavior is called First-In First-Out, or FIFO.
+这叫 先进先出(FIFO)
+
+That's the first part.
+我指队列,不是指那 23 个包裹
+
+Not the 23 packages thing.
+我指队列,不是指那 23 个包裹
+
+Imagine we have a pointer, named "post office queue", that points to the first node in our linked list.
+想象有个指针叫"邮局队列",指向链表第一个节点
+
+Once we're done serving Hank, we can read Hank's next pointer,
+第一个节点是 Hank,服务完 Hank 之后 \N 读取 Hank 的指针
+
+and update our "post office queue" pointer to the next person in the line.
+把"邮局队列"指向下一个人
+
+We've successfully dequeued Hank -- he's gone, done, finished.
+这样就把 Hank "出队"(dequeue)了
+
+If we want to enqueue someone, that is, add them to the line,
+如果我们想把某人"入队"(enqueue) \N 意思是加到队列里
+
+we have to traverse down the linked list until we hit the end,
+要遍历整个链表到结尾
+
+and then change that next pointer to point to the new person.
+然后把结尾的指针,指向新人(Nick)
+
+With just a small change, we can use linked lists as stacks, which are LIFO…
+只要稍作修改,就能用链表做 栈,\N 栈是后进先出(LIFO)
+
+Last-In First-Out.
+只要稍作修改,就能用链表做 栈,\N 栈是后进先出(LIFO)
+
+You can think of this like a stack of pancakes...
+可以把"栈"想成一堆松饼
+
+as you make them, you add them to the top of stack.
+做好一个新松饼,就堆在之前上面
+
+And when you want to eat one, you take them from the top of the stack.
+吃的时候,是从最上面开始
+
+Delicious!
+美味!
+
+Instead of enqueueing and dequeuing,
+栈就不叫"入队""出队"了
+
+data is pushed onto the stack and popped from the stacks.
+叫"入栈"(push) "出栈"(pop)
+
+Yep, those are the official terms!
+对,这些是正确术语!
+
+If we update our node struct to contain not just one, but two pointers,
+如果节点改一下,改成 2 个指针
+
+we can build trees,
+就能做 树(tree)
+
+another data structure that's used in many algorithms.
+很多算法用了 "树" 这种数据结构
+
+Again, programmers rarely look at the values of these pointers,
+同样,程序员很少看指针的具体值
+
+and instead conceptualize trees like this: The top most node is called the root.
+而是把"树"抽象成这样:最高的节点叫"根节点"(root)
+
+And any nodes that hang from other nodes are called children nodes.
+"根节点"下的所有节点 都叫"子节点"(children)
+
+As you might expect, nodes above children are called parent nodes.
+任何子节点的直属上层节点,叫"母节点"(parent node)
+
+Does this example imply that Thomas Jefferson is the parent of Aaron Burr?
+这个例子能说明 托马斯·杰斐逊 是 阿龙·伯尔 的父亲吗?
+
+I'll leave that to your fanfiction to decide.
+我让你们的同人文来决定
+
+And finally, any nodes that have no children
+没有任何"子节点"的节点
+
+-- where the tree ends -- are called Leaf Nodes.
+也就是"树"结束的地方,叫"叶节点"(leaf)
+
+In our example, nodes can have up to two children,
+在这里的例子中,节点最多只可以有 2 个子节点
+
+and for that reason, this particular data structure is called a binary tree.
+因此叫 二叉树(binary tree)
+
+But you could just as easily have trees with three, four or any number of children
+但你可以随便改,弄成 3个,4个,或更多
+
+by modifying the data structure accordingly.
+但你可以随便改,弄成 3个,4个,或更多
+
+You can even have tree nodes that use linked lists to store all the nodes they point to.
+甚至节点 可以用链表存所有子节点
+
+An important property of trees - both in real life and in data structures - is that
+"树"的一个重要性质是(不管现实中还是数据结构中)
+
+there's a one-way path from roots to leaves.
+"根"到"叶"是 单向 的
+
+It'd be weird if roots connected to leaves, that connected to roots.
+如果根连到叶,叶连到根 就很奇怪
+
+For data that links arbitrarily, that include things like loops,
+如果数据随意连接,包括循环
+
+we can use a graph data structure instead.
+可以用"图"表示
+
+Remember our graph from last episode of cities connected by roads?
+还记得上集用路连接城市的"图"吗?
+
+This can be stored as nodes with many pointers, very much like a tree,
+这种结构 可以用有多个指针的节点表示
+
+but there is no notion of roots and leaves, and children and parents…
+因此没有 根 叶 子节点 父节点 这些概念
+
+Anything can point to anything!
+可以随意指向!
+
+So that's a whirlwind overview
+以上概述了计算机科学中,最主要的一些数据结构
+
+of pretty much all of the fundamental data structures used in computer science.
+以上概述了计算机科学中,最主要的一些数据结构
+
+On top of these basic building blocks,
+这些基本结构之上,程序员做了各种新变体,有不同性质.
+
+programmers have built all sorts of clever variants, with slightly different properties
+这些基本结构之上,程序员做了各种新变体,有不同性质.
+
+-- data structures like red-black trees and heaps, which we don't have time to cover.
+比如"红黑树"和"堆",我们没时间讲
+
+These different data structures have properties that are useful for particular computations.
+不同数据结构适用于不同场景
+
+The right choice of data structure can make your job a lot easier,
+选择正确数据结构会让工作更简单
+
+so it pays off to think about how you want to structure your data before you jump in.
+所以花时间考虑用什么数据结构是值得的
+
+Fortunately, most programming languages come with
+幸运的是,大多数编程语言自带了预先做好的数据结构
+
+libraries packed full of ready-made data structures.
+幸运的是,大多数编程语言自带了预先做好的数据结构
+
+For example, C++ has its Standard Template Library, and Java has the Java Class Library.
+比如,C++有"标准模板库",Java有"Java 类库"
+
+These mean programmers don't have to waste time implementing things from scratch,
+程序员不用浪费时间从零写
+
+and can instead wield the power of data structures to do more interesting things,
+时间可以花在更有趣的事情
+
+once again allowing us to operate at a new level of abstraction!
+又提升了一层抽象!
+
+I'll see you next week.
+下周见!
+
+Hi, I'm Carrie Anne and welcome to Crash Course computer science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the past a few episodes,
+前几集我们聊了基础,比如函数,算法和数据结构
+
+we've been building up our understanding of computer science fundamentals,
+前几集我们聊了基础,比如函数,算法和数据结构
+
+such as functions, algorithms and data structures.
+前几集我们聊了基础,比如函数,算法和数据结构
+
+Today, we're going to take a step back and look at the person
+今天,我们来看一位对计算机理论 贡献巨大的人
+
+who formulated many of the theoretical concepts that underline modern computation.
+今天,我们来看一位对计算机理论 贡献巨大的人
+
+The father of computer science
+计算机科学之父
+
+and not quite Benedict Cumberbatch lookalike, Alan Turing.
+长得不怎么像 本尼 的 阿兰·图灵
+
+Alan Mathison Turing was born in London in 1912
+阿兰·马蒂森·图灵 于 1921 年出生在伦敦,\N 从小就表现出惊人数学和科学能力
+
+and showed an incredible aptitude for maths and science throughout his early education.
+阿兰·马蒂森·图灵 于 1921 年出生在伦敦,\N 从小就表现出惊人数学和科学能力
+
+His first brush of what we now call computer science came in 1935
+他对计算机科学的建树始于 1935 年
+
+while he was a master student at King's College in Cambridge.
+当时他是剑桥国王学院的硕士生
+
+He set out to solve a problem posed by German Mathematician David Hilbert
+他开始解决德国数学家 大卫·希尔伯特 提出的问题
+
+known as the Entscheidungsproblem
+叫 Entscheidungsproblem (德语)
+
+or decision problem,
+即"可判定性问题":
+
+which asked the following:
+即"可判定性问题":
+
+is there an algorithm that takes, as input, a statement written in formal logic,
+是否存在一种算法,输入正式逻辑语句 \N 输出准确的"是"或"否"答案?
+
+and produces a "yes" or "no" answer that's always accurate?
+是否存在一种算法,输入正式逻辑语句 \N 输出准确的"是"或"否"答案?
+
+If such an algorithm existed,
+如果这样的算法存在, \N 可以回答比如 "是否有一个数大于所有数"
+
+we could use it to answer questions like, "Is there a number bigger than all numbers?"
+如果这样的算法存在, \N 可以回答比如 "是否有一个数大于所有数"
+
+No, there's not. We know the answer to that one,
+不, 没有. 我们知道答案
+
+but there are many other questions in mathematics that we'd like to know the answer too.
+但有很多其他数学问题,我们想知道答案
+
+So if this algorithm existed, we'd want to know it.
+所以如果这种算法存在, 我们想知道
+
+The American mathematician Alonzo Church first presented a solution to this problem in 1935.
+美国数学家 阿隆佐·丘奇 \N 于 1935年 首先提出解决方法
+
+He developed a system of mathematical expressions called Lambda Calculus
+开发了一个叫"Lambda 算子"的数学表达系统
+
+and demonstrated that no such universal algorithm could exist.
+证明了这样的算法不存在
+
+Although Lambda Calculus was capable of representing any computation,
+虽然"Lambda 算子"能表示任何计算
+
+the mathematical technique was difficult to apply and understand.
+但它使用的数学技巧 难以理解和使用
+
+At pretty much the same time on the other side of the Atlantic,
+同时在大西洋另一边
+
+Alan Turing came up with his own approach to solve the decision problem.
+阿兰·图灵 想出了自己的办法来解决"可判定性问题"
+
+He proposed a hypothetical computing machine, which we now call a Turing Machine.
+提出了一种假想的计算机,现在叫"图灵机"
+
+Turing Machines provided a simple, yet powerful
+图灵机提供了简单又强大的数学计算模型
+
+mathematical model of computation.
+图灵机提供了简单又强大的数学计算模型
+
+Although using totally different mathematics,
+虽然用的数学不一样
+
+they were functionally equivalent to lambda calculus in terms of their computational power.
+但图灵机的计算能力和 Lambda 算子一样
+
+However their relative simplicity made them much more popular
+同时因为图灵机更简单,所以在新兴的计算机领域更受欢迎
+
+in the burgeoning field of computer science.
+同时因为图灵机更简单,所以在新兴的计算机领域更受欢迎
+
+In fact, they're simple enough that I'm going to explain it right now.
+因为它如此简单,我现在就给你解释
+
+A Turing Machine is a theoretical computing device
+图灵机是一台理论计算设备
+
+There's also a state variable in which we can hold a piece of information
+还有一个状态变量,保存当前状态
+
+about the current state of the machine.
+还有一个状态变量,保存当前状态
+
+And a set of rules that describes what the machine does.
+还有一组规则,描述机器做什么
+
+Given a state and the current symbol the head is reading,
+规则是根据 当前状态+读写头看到的符号,决定机器做什么
+
+the rule can be to write a symbol on the tape,
+结果可能是在纸带写入一个符号
+
+change the state of the machine, move the read/write head to the left or right by one spot
+或改变状态,或把读写头移动一格
+
+or any combination of these actions.
+或执行这些动作的组合
+
+To make this concrete, let's work through a simple example:
+为了更好理解,讲个简单例子:
+
+a Turing Machine that reads a string of ones ending in a zero
+让图灵机读一个以零结尾的字符串
+
+and computes whether there is an even number of ones.
+并计算 1 的出现次数 是不是偶数
+
+If that's true,
+如果是, 在纸带上写一个 1
+
+the machine will write a one to the tape
+如果是, 在纸带上写一个 1
+
+and if it's false, it'll write a zero.
+如果不是,在纸带上写一个 0
+
+First we need to define our Turing machine rules.
+首先要定义"图灵机"的规则
+
+If the state is even and the current symbol of the tape is one,
+如果当前状态是"偶数", 当前符号是1
+
+then we update the machine state to odd and move the head to the right.
+那么把状态更新为"奇数",把读写头向右移动
+
+On the other hand if the state is even and the current symbol is zero,
+如果当前状态为偶数,当前符号是 0
+
+which means we've reached the end of the string of ones,
+意味着到了字符串结尾
+
+then we write one to the tape and change the state to halt,
+那么在纸带上写一个 1,并且把状态改成 停机(halt)
+
+as in we're finished and the Turing machine has completed the computation.
+状态改为"停机" 是因为图灵机已完成计算
+
+We also need rules for when the Turing machine is in an odd state,
+但我们还需要 2 条规则,来处理状态为奇数的情况
+
+one rule for the symbol on the tape is a zero and another for when it is one.
+一条处理 奇数 + 纸带是 0 的情况 \N 一条处理 奇数 + 纸带是 1 的情况
+
+Lastly we need to define a Starting state, which we'll set to be even.
+最后,要决定机器的初始状态,这里定成"偶数"
+
+Now we've defined the rules in the starting state of our Turing machine,
+定义好了 起始状态+规则
+
+which is comparable to a computer program, we can run it on some example input.
+就像写好了程序,现在可以输入了
+
+Let's say we store 1 1 0 onto tape.
+假设把"1 1 0"放在纸带上,有两个 1,是偶数
+
+That's two ones, which means there is an even number of ones,
+假设把"1 1 0"放在纸带上,有两个 1,是偶数
+
+and if that's news to you,
+如果"偶数"对你是新知识 \N 也许我们该开一门【十分钟速成课:数学】
+
+We should probably get working on crash course Math.
+如果"偶数"对你是新知识 \N 也许我们该开一门【十分钟速成课:数学】
+
+Notice that our rules only ever move their head to the right
+注意,规则只让 读写头 向右移动
+
+so the rest of the tape is irrelevant.
+其他部分无关紧要,为了简单所以留空
+
+We'll leave it blank for simplicity.
+其他部分无关紧要,为了简单所以留空
+
+Our Turing machine is all ready to go so let's start it.
+"图灵机"准备好了,开始吧
+
+Our state is even and the first number we see is one.
+机器起始状态为"偶数",看到的第一个数是 1
+
+That matches our topmost rule and so we execute the effect,
+符合最上面那条规则,所以执行对应的步骤
+
+which is to update the state to odd and move the read/write head to the right by one spot.
+把状态更新到"奇数", 读写头向右移动一格
+
+Okay, now we see another one on the tape, But this time our state is odd
+然后又看到 1, 但机器状态是"奇数",所以执行第三条规则
+
+and so we execute our third rule
+然后又看到 1, 但机器状态是"奇数",所以执行第三条规则
+
+which sets the state back to even and moves the head to the right.
+使机器状态变回"偶数",读写头向右移动一格
+
+Now we see a 0 and our current state is even
+现在看到 0,并且机器状态是 偶数,所以执行第二条规则
+
+so we execute our second rule
+现在看到 0,并且机器状态是 偶数,所以执行第二条规则
+
+which is to write a 1 to the tape signifying that yes, it's true,
+在纸带上写 1,表示"真" 的确有偶数个 1
+
+there is an even number of ones,
+在纸带上写 1,表示"真" 的确有偶数个 1
+
+and finally the machine halts.
+然后机器停机
+
+That's how Turing machines work.
+这就是图灵机的原理,很简单对吧?
+
+Pretty simple, right?
+这就是图灵机的原理,很简单对吧?
+
+so you might be wondering why there's such a big deal.
+你可能想知道 有什么大不了的
+
+Well, Turing shows that this simple hypothetical machine
+图灵证明了这个简单假想机器
+
+can perform any computation if given enough time and memory.
+如果有足够时间和内存,可以执行任何计算
+
+It's a general-purpose computer.
+它是一台通用计算机
+
+Our program was a simple example.
+刚才的程序就是个简单例子
+
+But with enough rules, states and tape,
+只要有足够的规则,状态和纸带 可以创造任何东西
+
+you could build anything
+只要有足够的规则,状态和纸带 可以创造任何东西
+
+- a web browser, world of warcraft, whatever!
+浏览器, 魔兽世界 任何东西!
+
+Of course it would be ridiculously inefficient, but it is theoretically possible.
+当然 这样做效率很低,但理论上可行.
+
+And that's why, as a model of computing,
+所以图灵机是很强大的计算模型
+
+it's such a powerful idea.
+所以图灵机是很强大的计算模型
+
+In fact, in terms of what it can and cannot compute
+事实上,就可计算和不可计算而言
+
+there's no computer more powerful than a turing machine.
+没有计算机比图灵机更强大
+
+A computer that is as powerful is called Turing complete.
+和图灵机一样强大的,叫 "图灵完备"
+
+Every modern computing system, your laptop, your smartphone
+每个现代计算系统 比如笔记本电脑,智能手机
+
+and even the little computer inside your microwave and thermostat
+甚至微波炉和恒温器内部的小电脑
+
+are all Turing Complete.
+都是"图灵完备"的
+
+To answer Hilbert's decision problem,
+为了回答可判定性问题
+
+Turing applied these new Turing machines to an intriguing computational puzzle:
+他把图灵机用于一个有趣计算问题:
+
+the halting problem.
+"停机问题"
+
+Put simply this asks
+简单说就是
+
+"Is there an algorithm that can determine,
+"给定图灵机描述和输入纸带,是否有算法可以确定
+
+given a description of a turing machine and the input from its tape,
+"给定图灵机描述和输入纸带,是否有算法可以确定
+
+whether the Machine will run forever or halt?"
+机器会永远算下去还是到某一点会停机?
+
+For example we know our Turing machine will halt when given the input 1 1 0
+我们知道输入 1 1 0,图灵机会停机
+
+Because we literally walk through the example until it halted,
+因为刚做过这个例子,它最后停机了
+
+but what about a more complex problem?
+但如果是更复杂的问题呢?
+
+Is there a way to figure out if the program will halt without executing it?
+有没有办法在不执行的情况,弄清会不会停机?
+
+Some programs might take years to run
+一些程序可能要运行好几年
+
+so it would be useful to know before we run it
+所以在运行前知道 会不会出结果很有用
+
+and wait and wait and wait and then start getting worried and wonder
+否则就要一直等啊等,忧虑到底会不会出结果
+
+and then decades later when you're old and gray control-alt-delete.
+当几十年后变老了,再按强制结束
+
+So much sadness!
+好悲伤!
+
+Unfortunately, Turing came up with a proof that shows the halting problem was in fact unsolvable,
+图灵通过一个巧妙逻辑矛盾 \N 证明了停机问题是无法解决的
+
+through a clever logical contradiction.
+图灵通过一个巧妙逻辑矛盾 \N 证明了停机问题是无法解决的
+
+Let's follow his reasoning.
+我们来看看他的推理
+
+Imagine we have a hypothetical Turing machine that takes a description of a program
+想象有一个假想图灵机,\N 输入:问题的描述 + 纸带的数据
+
+and some input for his tape
+想象有一个假想图灵机,\N 输入:问题的描述 + 纸带的数据
+
+and always outputs either Yes, it halts, or no, it doesn't.
+输出 Yes 代表会"停机",输出 No 代表不会
+
+And I'm going to give this machine a fun name
+我要给这台机器一个有趣的名字叫 H, \N 来自"停机"的第一个字母
+
+H for Halts.
+我要给这台机器一个有趣的名字叫 H, \N 来自"停机"的第一个字母
+
+Don't worry about how it works.
+不用担心它具体怎么工作
+
+Let's just assume such a machine exists.
+假设这样的机器存在就好 毕竟重点是推论
+
+We're talking theory here.
+假设这样的机器存在就好 毕竟重点是推论
+
+Turing reasons if there existed a program whose halting behavior was not decidable by H,
+图灵推理说: 如果有个程序, H 无法判断是否会"停机"
+
+it would mean the halting problem is unsolvable.
+意味着"停机问题"无法解决
+
+To find one, Turing designed another Turing machine that built on top of H.
+为了找到这样的程序,图灵用 H 设计了另一个图灵机
+
+If H says the program halts,
+如果 H 说程序会"停机",那么新机器会永远运行(即不会停机)
+
+then we'll make our new machine loop forever.
+如果 H 说程序会"停机",那么新机器会永远运行(即不会停机)
+
+If the answer is no, it doesn't the halt.
+如果 H 的结果为 No,代表不会停机
+
+That will have the new machine output no and halt.
+那么让新机器输出 No,然后"停机"
+
+In essence, we're building a machine that does the opposite of what H says.
+实质上是一台和 H 输出相反的机器
+
+Halt if the program doesn't halt
+如果程序不停机,就停机
+
+and run forever if the program halts.
+如果程序停机,就永远运行下去
+
+So this argument will also need to add a splitter to the front of our new machine.
+我们还需要在机器前面加一个分离器
+
+So it accepts only one input and passes that as both the program and input into H.
+让机器只接收一个输入,\N 这个输入既是程序,也是输入
+
+Let's call this new Machine Bizzaro.
+我们把这台新机器叫 异魔
+
+So far this seems like a plausible machine right.
+目前为止,这个机器不难理解
+
+Now it's going to get pretty complicated.
+但接下来马上会变复杂,会有点难懂
+
+But bear with me for a second.
+但接下来马上会变复杂,会有点难懂
+
+Look what happens when you pass bizzaro a description of itself as the input.
+如果把 异魔 的描述,作为本身的输入会怎样
+
+This means We're asking h what bizzaro will do when asked to evaluate itself.
+意味着在问 H ,当异魔的输入是自己时会怎样
+
+But if H says Bizzaro halts,
+但如果 H 说异魔会停机
+
+then Bizzaro enters its infinite loop and thus doesn't halt.
+那么异魔会进入无限循环,因此不会停机
+
+And if H says the Bizzaro doesn't halt, then Bizzaro outputs no and halt.
+如果 H 说异魔不会停机,那么异魔会输出 No 然后停机
+
+So H can't possibly decide the halting problem correctly
+所以 H 不能正确判定 停机问题
+
+because there is no answer.
+因为没有答案
+
+It's a paradox.
+这是一个悖论
+
+And this paradox means that the halting problem cannot be solved with Turing machines.
+意味着"停机问题"不能用图灵机解决
+
+Remember Turing proves that Turing machines could implement any computation.
+还记得刚刚说: 图灵证明了图灵机可以实现任何计算
+
+So this solution to the halting problem proves
+"停机问题"证明了,不是所有问题都能用计算解决
+
+that not all problems can be solved by computation.
+"停机问题"证明了,不是所有问题都能用计算解决
+
+Wow, that's some heavy stuff.
+哇,好难理解
+
+I might have to watch that again myself.
+我都可能要再看一遍
+
+Long story short, Church and Turing showed there were limits to the ability of computers.
+长话短说,丘奇和图灵证明了计算机的能力有极限
+
+No matter how much time or memory you have,
+无论有多少时间或内存,有些问题是计算机无法解决的
+
+there are just some problems that cannot be solved ever.
+无论有多少时间或内存,有些问题是计算机无法解决的
+
+The concurrent efforts by Church and Turing to determine the limits of computation,
+丘奇和图灵证明了计算是有极限的,
+
+and in general, formalize computability, are now called the Church-Turing Thesis.
+起步了可计算性理论,现在叫"丘奇-图灵论题"
+
+At this point in 1936, Turing was only 24 years old
+当时是1936年,图灵只有24岁
+
+and really only just beginning his career.
+他的职业生涯才刚刚开始
+
+From 1936 through 1938,
+从1936年到1938年 \N 在丘奇指导下,他在普林斯顿拿到博士学位
+
+he completed a PhD at Princeton University under the guidance of Church
+从1936年到1938年 \N 在丘奇指导下,他在普林斯顿拿到博士学位
+
+then after graduating he returned to Cambridge.
+毕业后回到剑桥
+
+Shortly after in 1939, Britain became embroiled in World War II.
+1939年后不久,英国卷入第二次世界大战
+
+Turing's genius was quickly applied for the war effort.
+图灵的才能很快被投入战争
+
+In fact, a year before the war started,
+事实上,在战争开始前一年
+
+he was already working part-time at the UK's government Code and Cypher school,
+他已经在英国政府的 密码破译学校兼职
+
+which was the British code breaking group based out of Bletchley Park.
+位于"布莱切利园"的一个密码破译组织
+
+One of his main efforts was figuring out how to decrypt German communications.
+他的工作内容之一是破解德国的通信加密
+
+Especially those that use the Enigma Machine.
+特别是"英格玛机"加密的信息
+
+In short, these machines scrambled text
+简单说,英格玛机会加密明文
+
+like you type the letters H-E-L-L-O
+如果输入字母 H-E-L-L-O
+
+and the letters X-W-D-B-J would come out.
+机器输出 X-W-D-B-J
+
+This process is called Encryption.
+这个过程叫"加密"
+
+The scrambling wasn't random.
+文字不是随便打乱的
+
+The behavior was defined by a series of real world rotors on the top of the enigma machine.
+加密由"英格玛机"顶部的齿轮组合决定
+
+Each were 26 possible rotational positions.
+每个齿轮有26个可能位置
+
+There was also a plug board at the front of the machine that allow pairs of letters to be swapped.
+机器前面还有插板,可以将两个字母互换
+
+In total, there were billions of possible settings.
+总共有上十亿种可能
+
+If you had your only enigma machine and you knew the correct rotor and plug board settings,
+如果你有"英格玛机",并且知道正确的齿轮和插头设置
+
+you could type in X-W-D-B-J and "hello" would come out.
+输入X-W-D-B-J,机器会输出 hello
+
+In other words, you decrypted the message.
+解密了这条消息
+
+Of course, the German military wasn't sharing their enigma settings on Social Media.
+当然,德军不会把机器设置发到微博上
+
+So the allies had to break the code.
+盟军必须自己破译密码
+
+With billions of Rotor and plug board combinations,
+有数十亿种组合,根本没法手工尝试所有组合
+
+there was no way to check them all by hand.
+有数十亿种组合,根本没法手工尝试所有组合
+
+Fortunately for Turing, Enigma Machines and the people who operated them were not perfect.
+幸运的是,英格玛机和操作员不是完美的
+
+Like one key flaw was that a letter would never be encoded as itself,
+一个大缺陷是:字母加密后绝不会是自己
+
+as in an H was never encrypted as an H.
+H 加密后绝对不是 H
+
+Turing building on earlier work by Polish code breakers
+图灵接着之前波兰破译专家的成果继续工作
+
+designed a special-purpose electro-mechanical computer called the bombe
+设计了一个机电计算机,叫 Bombe
+
+that took advantages of this flaw.
+利用了这个缺陷,它对加密消息尝试多种组合
+
+It tried lots and lots of combinations of enigma settings for a given encrypted message.
+利用了这个缺陷,它对加密消息尝试多种组合
+
+If the bombe found a setting that led to a letter being encoded as itself
+如果发现字母解密后和原先一样
+
+which we know no enigma machines could do.
+我们知道英格玛机决不会这么做
+
+That combination was discarded then the machine moved on to try another combination.
+这个组合会被跳过,接着试另一个组合
+
+So bombe was used to greatly narrow the number of Possible enigma settings.
+Bombe 大幅减少了搜索量
+
+This allowed human code breakers to hone their efforts on the most probable solutions,
+让破译人员把精力花在更有可能的组合
+
+looking for things like common german words in fragments of decoded text.
+比如在解码文本中找常见的德语单词
+
+Periodically, the Germans would suspect someone was decoding their communications
+德国人时不时会怀疑有人在破解,然后升级英格玛机
+
+and upgrade the enigma machine,
+德国人时不时会怀疑有人在破解,然后升级英格玛机
+
+like they'd add another rotor creating many more combinations.
+比如加一个齿轮,创造更多可能组合
+
+They even built entirely new encryption machines.
+他们甚至还做了全新的加密机
+
+Throughout the war, Turing and his colleagues at Bletchley Park
+整个战争期间,图灵和同事在布莱切利园努力破解加密
+
+worked tirelessly to defeat these mechanisms.
+整个战争期间,图灵和同事在布莱切利园努力破解加密
+
+And overall, the intelligence gained from decrypted German communications
+解密得到的德国情报,为盟军赢得了很多优势
+
+gave the allies an edge in many theaters
+解密得到的德国情报,为盟军赢得了很多优势
+
+with some historians arguing is shortened the war by years.
+有些史学家认为他们把战争减短了好几年
+
+After the war, Turing return to academia
+战后,图灵回到学术界 \N 为许多早期计算机工作做出贡献
+
+and contributed to many early electronic computing efforts
+战后,图灵回到学术界 \N 为许多早期计算机工作做出贡献
+
+like the Manchester Mark 1, which was an early and influential stored-program computer.
+比如曼彻斯特 1 号,一个早期有影响力的存储程序计算机
+
+But his most famous post-war contribution was the Artificial Intelligence.
+但他最有名的战后贡献是"人工智能"
+
+A field's so new that it didn't get that name until 1956.
+这个领域很新,直到1956年才有名字
+
+It's a huge topic. So we'll get to it again in future episodes.
+这个话题很大,以后再谈(第34集)
+
+In 1950, Turing could envision a future where computers
+1950 年,图灵设想了未来的计算机
+
+were powerful enough to exhibit intelligence equivalent to
+拥有和人类一样的智力,或至少难以区分
+
+or at least indistinguishable from that of a human.
+拥有和人类一样的智力,或至少难以区分
+
+Turing postulated that a computer would deserve to be called intelligent
+图灵提出 \N 如果计算机能欺骗人类相信它是人类,才算是智能
+
+if it could deceive a human into believing that it was human.
+图灵提出 \N 如果计算机能欺骗人类相信它是人类,才算是智能
+
+This became the basis of a simple test, now called the Turing test.
+这成了智能测试的基础,如今叫"图灵测试"
+
+Imagine that you are having a conversation with two different people
+想像你在和两个人沟通 \N 不用嘴或面对面,而是来回发消息
+
+not by voice or in person, but by sending type notes back and forth,
+想像你在和两个人沟通 \N 不用嘴或面对面,而是来回发消息
+
+you can ask any questions you want and you get replies.
+可以问任何问题,然后会收到回答
+
+But one of those two people is actually a computer.
+但其中一个是计算机
+
+If you can't tell which one is human and which one is a computer,
+如果你分不出哪个是人类,哪个是计算机
+
+then the computer passes the test.
+那么计算机就通过了图灵测试
+
+There's a modern version of this test called
+这个测试的现代版叫
+
+a completely automated public turing test to tell computers and humans apart
+"公开全自动图灵测试,用于区分计算机和人类"
+
+or Captcha for short.
+简称"验证码"
+
+These are frequently used on the internet to prevent automated systems
+防止机器人发垃圾信息等
+
+from doing things like posting spam on websites.
+防止机器人发垃圾信息等
+
+I'll admit sometimes I can't read what those squiggly things say.
+我承认 有时我都认不出那些扭曲的东西是什么字
+
+Does that mean I'm a computer?
+这难道意味着我是计算机?
+
+Normally in this series, we don't delve into the personal lives of these historical figures.
+通常这个系列我们不会深入历史人物的个人生活
+
+But in Turing's case his name has been inextricably tied to tragedy
+但图灵与悲剧密不可分
+
+so his story is worth mentioning.
+所以他的故事值得一提
+
+Turing was gained a time when homosexuality was illegal in the United Kingdom and much of the world.
+图灵那个时代,同性恋是违法的,英国和大部分国家都是
+
+And an investigation into a 1952 Burglary at his home
+1952 年调查他家的入室盗窃案时,向当局暴露了他的性取向
+
+revealed his sexual orientation to the authorities,
+1952 年调查他家的入室盗窃案时,向当局暴露了他的性取向
+
+who charged him with gross indecency.
+被起诉 "行为严重不检点"
+
+Turing was convicted and given a choice between imprisonment,
+图灵被定罪,有2个选择: \N 1. 入狱 2. 接受激素来压制性欲
+
+or probation with hormonal treatments to suppress his sexuality.
+图灵被定罪,有2个选择: \N 1. 入狱 2. 接受激素来压制性欲
+
+He chose the latter in part to continue his academic work,
+他选了后者,部分原因是为了继续学术工作
+
+but it altered his mood and personality.
+但药物改变了他的情绪和性格
+
+Although the exact circumstances will never be known,
+虽然确切情况永远无法得知
+
+it's most widely accepted that Alan Turing took his own life by poison in 1954.
+图灵于1954年服毒自尽,年仅41岁
+
+He was only 41.
+图灵于1954年服毒自尽,年仅41岁
+
+Many things have been named in recognition of Turing's contributions to theoretical computer science
+由于图灵对计算机科学贡献巨大,许多东西以他命名
+
+But perhaps the most prestigious among them is the Turing award
+其中最出名的是"图灵奖"
+
+the highest distinction in the field of computer science.
+计算机领域的最高奖项
+
+Equivalent to a Nobel prize in Physics, chemistry or other sciences.
+相当于物理, 化学等其它领域的诺贝尔奖
+
+Despite a life cut short, Alan inspire the first generation of computer scientists
+虽然英年早逝,但图灵激励了第一代计算机科学家
+
+and lead key groundwork that enabled a digital era that we get to enjoy today.
+而且为如今便利的数字时代 做出了重要基石性工作
+
+I'll see you next week.
+我们下周见
+
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+So we've talked a lot about sorting in this series
+之前花了很多时间讲排序
+
+and often code to sort a list of numbers might only be ten lines long,
+也写了些 10 行左右的排序代码
+
+which is easy enough for a single programmer to write.
+对1个程序员来说很容易写
+
+Plus, it's short enough that you don't need any special tools
+而且代码很短,不必用专门工具
+
+- you could do it in Notepad.
+- 记事本就够了
+
+Really!
+真的!
+
+But, a sorting algorithm isn't a program;
+但排序算法很少会是独立程序 \N 更可能是大项目的一小部分
+
+it's likely only a small part of a much larger program.
+但排序算法很少会是独立程序 \N 更可能是大项目的一小部分
+
+For example, Microsoft Office has roughly 40 millions lines of code.
+举个例子,微软的 Office 大约有 4000 万代码
+
+40 MILLION!
+4000 万!
+
+That's way too big for any one person to figure out and write!
+太多了,一个人不可能做到
+
+To build huge programs like this, programmers use a set of tools and practices.
+为了写大型程序,程序员用各种工具和方法
+
+Taken together, these form the discipline of Software Engineering
+所有这些形成了"软件工程"学科
+
+- a term coined by engineer Margaret Hamilton,
+- 这个词由工程师 Margaret Hamilton 创造
+
+who helped NASA prevent serious problems during the Apollo missions to the moon.
+她帮助 NASA 在阿波罗计划中避免了严重问题
+
+She once explained it this way:
+她曾说过:
+
+"It's kind of like a root canal: you waited till the end,
+"有点像牙根管治疗:你总是拖到最后才做 \N 但有些事可以预先做好
+
+[but] there are things you could have done beforehand.
+"有点像牙根管治疗:你总是拖到最后才做 \N 但有些事可以预先做好
+
+It's like preventative healthcare,
+有点像预防性体检, 只不过是预防软件出错"
+
+but it's preventative software."
+有点像预防性体检, 只不过是预防软件出错"
+
+As I mentioned in episode 12,
+第 12 集提过
+
+breaking big programs into smaller functions allows many people to work simultaneously.
+把大项目分解成小函数 可以让多人同时工作
+
+They don't have to worry about the whole thing,
+不用关心整个项目,关心自己的函数就好了
+
+just the function they're working on.
+不用关心整个项目,关心自己的函数就好了
+
+So, if you're tasked with writing a sort algorithm,
+如果你的任务是写排序算法
+
+you only need to make sure it sorts properly and efficiently.
+你只需要确保高效和正确就可以了
+
+However, even packing code up into functions isn't enough.
+然而把代码打包成函数 依然不够
+
+Microsoft Office probably contains hundreds of thousands of them.
+如果只是这样,微软 Office 会有几十万个函数
+
+That's better than dealing with 40 million lines of code,
+虽然比 4000 万行代码要好一些,但还是太多了
+
+but it's still way too many "things" for one person or team to manage.
+虽然比 4000 万行代码要好一些,但还是太多了
+
+The solution is to package functions into hierarchies,
+解决办法是:把函数打包成层级. \N 把相关代码都放在一起,打包成对象(objects)
+
+pulling related code together into "objects".
+解决办法是:把函数打包成层级. \N 把相关代码都放在一起,打包成对象(objects)
+
+For example, car's software might have several functions related to cruise control,
+例如,汽车软件中 可能有几个和定速巡航有关的函数
+
+like setting speed, nudging speed up or down, and stopping cruise control altogether.
+比如 设定速度,逐渐加速减速,停止定速巡航
+
+Since they're all related,
+因为这些函数都相关,可以包装成一个"定速巡航对象"
+
+we can wrap them up into a unified cruise control object.
+因为这些函数都相关,可以包装成一个"定速巡航对象"
+
+But, we don't have to stop there,
+但不止如此,我们还可以做更多
+
+cruise control is just one part of the engine's software.
+"定速巡航"只是引擎软件的一部分
+
+There might also be sets of functions that control spark plug ignition,
+可能还有 "火花塞点火" "燃油泵" 和 "散热器"
+
+fuel pumps, and the radiator.
+可能还有 "火花塞点火" "燃油泵" 和 "散热器"
+
+So we can create a "parent" Engine Object
+我们可以做一个"引擎对象" 来包括所有"子"对象
+
+that contains all of these "children" objects.
+我们可以做一个"引擎对象" 来包括所有"子"对象
+
+In addition to children *objects*,
+除了子对象,"引擎对象"可能有自己的函数
+
+the engine itself might have its *own* functions.
+除了子对象,"引擎对象"可能有自己的函数
+
+You want to be able to stop and start it, for example.
+比如 开关引擎
+
+It'll also have its own variables,
+它也会有自己的变量,比如汽车行驶了多少英里
+
+like how many miles the car has traveled.
+它也会有自己的变量,比如汽车行驶了多少英里
+
+In general, objects can contain other objects, functions and variables.
+总的来说,对象可以包其它对象,函数和变量
+
+And of course, the engine is just one part of a Car Object.
+当然,"引擎对象"只是"汽车对象"的一部分
+
+There's also the transmission, wheels, doors, windows, and so on.
+还有传动装置,车轮,门,窗等
+
+Now, as a programmer, if I want to set the cruise control,
+作为程序员,如果想设"定速巡航"
+
+I navigate down the object hierarchy,
+要一层层向下
+
+from the outermost objects to more and more deeply nested ones.
+从最外面的对象往里找
+
+Eventually, I reach the function I want to trigger:
+最后找到想执行的函数:
+
+"Car, then engine, then cruise control, then set cruise speed to 55".
+Car. Engine. CruiseControl. setCruiseSpeed(55)
+
+Programming languages often use something equivalent to the syntax shown here.
+编程语言经常用类似这样的语法
+
+The idea of packing up functional units into nested objects is called
+把函数打包成对象的思想叫 "面向对象编程"
+
+Object Oriented Programming.
+把函数打包成对象的思想叫 "面向对象编程"
+
+This is very similar to what we've done all series long:
+这种思想和之前类似
+
+hide complexity by encapsulating low-level details in higher-order components.
+通过封装组件,隐藏复杂度
+
+Before we packed up things like transistor circuits into higher-level boolean gates.
+之前把晶体管 打包成了逻辑门
+
+Now we're doing the same thing with software.
+现在软件也这样做
+
+Yet again, it's a way to move up a new level of abstraction!
+又提升了一层抽象!
+
+Breaking up a big program, like a car's software,
+把大型软件(如汽车软件)\N 拆成一个个更小单元,适合团队合作
+
+into functional units is perfect for teams.
+把大型软件(如汽车软件)\N 拆成一个个更小单元,适合团队合作
+
+One team might be responsible for the cruise control system,
+一个团队负责定速巡航系统
+
+and a single programmer on that team tackles a handful of functions.
+团队里的一位程序员负责其中一些函数
+
+This is similar to how big, physical things are built, like skyscrapers.
+类似建摩天大楼
+
+You'll have electricians running wires,
+有电工装电线
+
+plumbers fitting pipes,
+管道工配管
+
+welders welding,
+焊接工焊接
+
+painters painting,
+油漆工涂油漆
+
+and hundreds of other people teeming all over the hull.
+还有成百上千人做其他事情
+
+They work together on different parts simultaneously,
+在不同岗位同时工作,各尽其能
+
+leveraging their different skills.
+在不同岗位同时工作,各尽其能
+
+Until one day, you've got a whole working building!
+直到整栋楼完成
+
+But, returning to our cruise control example
+回到定速巡航的例子
+
+its code is going to have to make use of functions in other parts of the engine's software,
+定速巡航 要用到引擎的其它函数,来保持车速
+
+to, you know, keep the car at a constant speed.
+定速巡航 要用到引擎的其它函数,来保持车速
+
+That code isn't part of the cruise control team's responsibility.
+定速巡航 团队不负责这些代码,另一个团队负责
+
+It's another team's code.
+定速巡航 团队不负责这些代码,另一个团队负责
+
+Because the cruise control team didn't write that,
+因为是其他团队的代码,
+
+they're going to need good documentation about what each function in the code does,
+定速巡航 团队需要文档 帮助理解代码都做什么
+
+and a well-defined Application Programming Interface
+以及定义好的 "程序编程接口" -简称 API
+
+-- or API for short.
+以及定义好的 "程序编程接口" -简称 API
+
+You can think of an API as the way that
+API 帮助不同程序员合作 \N 不用知道具体细节,只要知道怎么使用就行了
+
+collaborating programmers interact across various parts of the code.
+API 帮助不同程序员合作 \N 不用知道具体细节,只要知道怎么使用就行了
+
+For example, in the IgnitionControl object,
+例如"点火控制"对象中,可能有"设置发动机转数"函数
+
+there might be functions to set the RPM of the engine,
+例如"点火控制"对象中,可能有"设置发动机转数"函数
+
+check the spark plug voltage,
+"检查火花塞电压"函数
+
+as well as fire the individual spark plugs.
+"点燃单个火花塞"函数
+
+Being able to set the motor's RPM is really useful,
+"设置发动机转速"非常有用
+
+the cruise control team is going to need to call that function.
+"定速巡航"团队要用到这个函数
+
+But, they don't know much about how the ignition system works.
+但他们对点火系统不怎么了解
+
+It's not a good idea to let them call functions that fire the individual spark plugs.
+让他们调用"点燃单个火花塞"函数,不是好主意
+
+Or the engine might explode!
+引擎可能会炸!
+
+Maybe.
+可能啦
+
+The API allows the right people access to the right functions and data.
+API 控制哪些函数和数据让外部访问 \N 哪些仅供内部
+
+Object Oriented Programming languages do this
+"面向对象"的编程语言 \N 可以指定函数是 public 或 private,来设置权限
+
+by letting you specify whether functions are public or private.
+"面向对象"的编程语言 \N 可以指定函数是 public 或 private,来设置权限
+
+If a function is marked as "private",
+如果函数标记成 private
+
+it means only functions inside that object can call it.
+意味着 只有同一个对象内的其他函数能调用它
+
+So, in this example, only other functions inside of IgnitionControl,
+在这个例子里,只有内部函数比如 setRPM
+
+like the setRPM function,
+在这个例子里,只有内部函数比如 setRPM
+
+can fire the sparkplugs.
+才能调用 fireSparkplug 函数
+
+On the other hand, because the setRPM function is marked as public,
+而 setRPM 函数是 public \N 所以其它对象可以调用它,比如 定速巡航
+
+other objects can call it, like cruise control.
+而 setRPM 函数是 public \N 所以其它对象可以调用它,比如 定速巡航
+
+This ability to hide complexity, and selectively reveal it,
+"面向对象编程"的核心是 \N 隐藏复杂度,选择性的公布功能
+
+is the essence of Object Oriented Programming,
+"面向对象"的核心是 \N 隐藏复杂度,选择性的公布功能
+
+and it's a powerful and popular way to tackle building large and complex programs.
+因为做大型项目很有效,所以广受欢迎
+
+Pretty much every piece of software on your computer, or game running on your console,
+计算机上几乎所有软件,游戏机里几乎所有游戏
+
+was built using an Object Oriented Programming Language,
+都是 "面向对象" 编程语言写的
+
+like C++, C# or Objective-C.
+比如 C++, C#, Objective-C 等
+
+Other popular "OO" languages you may have heard of are Python and Java.
+其他流行 OO 语言,你可能听过 Python 和 Java
+
+It's important to remember that code, before being compiled, is just text.
+有一点很重要:代码在编译前就只是文字而已
+
+As I mentioned earlier,
+前面提过,你可以用记事本或任何文字处理器
+
+you could write code in Notepad or any old word processor.
+前面提过,你可以用记事本或任何文字处理器
+
+Some people do.
+有人确实这样做
+
+But generally, today's software developers use special-purpose applications for writing programs,
+但一般来说,现代软件开发者 会用专门的工具来写代码
+
+ones that integrate many useful tools for writing, organizing, compiling and testing code.
+工具里集成了很多有用功能\N 帮助写代码,整理,编译和测代码
+
+Because they put everything you need in one place,
+因为集成了所有东西
+
+they're called Integrated Development Environments ,
+因此叫 集成开发环境,简称 IDE
+
+or IDEs for short.
+因此叫 集成开发环境,简称 IDE
+
+All IDEs provide a text editor for writing code,
+所有 IDE 都有写代码的界面
+
+often with useful features like automatic color-coding to improve readability.
+还带一些有用功能,比如代码高亮,来提高可读性
+
+Many even check for syntax errors as you type, like spell check for code.
+许多 IDE 提供实时检查,比如拼写
+
+Big programs contain lots of individual source files,
+大型项目有很多源代码文件
+
+so IDEs allow programmers to organize and efficiently navigate everything.
+IDE 帮助开发者整理和看代码
+
+Also built right into the IDE is the ability to compile and run code.
+很多 IDE 还可以直接编译和运行代码
+
+And if your program crashes,
+如果程序崩了,因为你还没写完呢
+
+because it's still a work in progress,
+如果程序崩了,因为你还没写完呢
+
+the IDE can take you back to the line of code where it happened,
+IDE 可以定位到出错代码
+
+and often provide additional information to help you track down and fix the bug,
+还会提供信息 帮你解决问题
+
+which is a process called debugging.
+这叫 调试(debug)
+
+This is important
+调试很重要
+
+because most programmers spend 70 to 80% of their time testing and debugging,
+大多数程序员会花 70%~80% 时间调试,而不是在写代码
+
+not writing new code.
+大多数程序员会花 70%~80% 时间调试,而不是在写代码
+
+Good tools, contained in IDEs,
+好工具能极大帮助程序员防止和解决错误
+
+can go a long way when it comes to helping programmers prevent and find errors.
+好工具能极大帮助程序员防止和解决错误
+
+Many computer programmers can be pretty loyal to their IDEs though
+很多开发者只用一款 IDE
+
+But let's be honest.
+但承认吧,VIM 才是最棒的编辑器
+
+VIM is where it's at.
+但承认吧,VIM 才是最棒的编辑器
+
+Providing you know how to quit.
+如果你知道怎么退出的话
+
+In addition to coding and debugging,
+除了写代码和调试
+
+another important part of a programmer's job is documenting their code.
+程序员工作的另一个重要部分是 给代码写文档
+
+This can be done in standalone files called "readme",
+文档一般放在一个叫 README 的文件里
+
+which tell other programmers to read that help file before diving in.
+告诉其他程序员,看代码前先看这个文件
+
+It can also happen right in the code itself with comment
+文档也可以直接写成"注释",放在源代码里
+
+These are specially-marked statements that the program knows
+注释是标记过的一段文字
+
+to ignore when the code is compiled.
+编译代码时 注释会被忽略
+
+They exist only to help programmers figure out what's what in the source code.
+注释存在的唯一作用 \N 就是帮助开发者理解代码
+
+Good documentation helps programmers when they revisit code they haven't seen for awhile,
+好文档能帮助开发者 \N 几个月后理解自己的代码,对其他人也很重要
+
+but it's also crucial for programmers who are totally new to it.
+好文档能帮助开发者 \N 几个月后理解自己的代码,对其他人也很重要
+
+I just want to take a second here and reiterate that it's THE WORST
+我想花一秒 再强调一下注释很重要
+
+when someone parachutes a load of uncommented and undocumented code into your lap,
+最糟糕的就是拿到一堆代码,没有任何注释和文档
+
+and you literally have to go line by line to understand what the code is doing.
+结果得逐行读代码,理解到底干嘛的
+
+Seriously.
+我是认真的
+
+Don't be that person.
+别做那种人
+
+Documentation also promotes code reuse.
+文档还可以提高复用性
+
+So, instead of having programmers constantly write the same things over and over,
+与其让程序员一遍遍写同样的东西
+
+they can track down someone else's code that does what they need.
+可以直接用别人写好的来解决问题
+
+Then, thanks to documentation,
+读文档看怎么用就行,不用读代码
+
+they can put it to work in their program, without ever having to read through the code.
+读文档看怎么用就行,不用读代码
+
+"Read the docs" as they say.
+"读文档啊"
+
+In addition to IDEs,
+除了 IDE,还有一个重要软件帮助团队协作
+
+another important piece of software that
+除了 IDE,还有一个重要软件帮助团队协作
+
+helps big teams work collaboratively on big coding projects is called
+除了 IDE,还有一个重要软件帮助团队协作
+
+Source Control,
+源代码管理
+
+also known as version control or revision control.
+也叫"版本控制"
+
+Most often, at a big software company like Apple or Microsoft,
+苹果或微软这样的大型软件公司
+
+code for projects is stored on centralized servers,
+会把代码放到一个中心服务器上
+
+called a code repository .
+叫"代码仓库"
+
+When a programmer wants to work on a piece of code,
+程序员想改一段代码时
+
+they can check it out,
+可以 check out
+
+sort of like checking out a book out from a library.
+有点像从图书馆借书
+
+Often, this can be done right in an IDE.
+一般这种操作,可以直接在 IDE 内完成
+
+Then, they can edit this code all they want on their personal computer,
+然后开发者在自己的电脑上编辑代码
+
+adding new features and testing if they work.
+加新功能,测试
+
+When the programmer is confident their changes are working and there are no loose ends,
+如果代码没问题了,所有测试通过了
+
+they can check the code back into the repository,
+可以把代码放回去
+
+known as committing code, for everyone else to use.
+这叫 提交 (commit)
+
+While a piece of code is checked out,
+当代码被 check out,而且可能被改过了
+
+and presumably getting updated or modified,
+当代码被 check out,而且可能被改过了
+
+other programmers leave it alone.
+其他开发者不会动这段代码
+
+This prevents weird conflicts and duplicated work.
+防止代码冲突和重复劳动
+
+In this way, hundreds of programmers can be simultaneously checking in and out pieces of code,
+这样多名程序员可以同时写代码,建立庞大的系统
+
+iteratively building up huge systems.
+这样多名程序员可以同时写代码,建立庞大的系统
+
+Critically, you don't want someone committing buggy code,
+重要的是,你不希望提交的代码里有问题 \N 因为其他人可能用到了这些代码
+
+because other people and teams may rely on it.
+重要的是,你不希望提交的代码里有问题 \N 因为其他人可能用到了这些代码
+
+Their code could crash, creating confusion and lost time.
+导致他们的代码崩溃,造成困惑而且浪费时间
+
+The master version of the code, stored on the server,
+代码的主版本 (master)
+
+should always compile without errors and run with minimal bugs.
+应该总是编译正常,尽可能少 bug
+
+But sometimes bugs creep in.
+但有时 bug 还是会出现
+
+Fortunately, source control software keeps track of all changes,
+幸运的是,源代码管理可以跟踪所有变化
+
+and if a bug is found,
+如果发现 bug
+
+the whole code, or just a piece,
+全部或部分代码,可以"回滚"到之前的稳定版
+
+can be rolled back to an earlier, stable version.
+全部或部分代码,可以"回滚"到之前的稳定版
+
+It also keeps track of who made each change,
+"源代码管理" 也记录了谁改了什么代码
+
+so coworkers can send nasty,
+所以同事可以给你发 讨厌的
+
+I mean, helpful
+我是说"有帮助的" 邮件给写代码的人
+
+and encouraging emails to the offending person.
+我是说"有帮助的" 邮件给写代码的人
+
+Debugging goes hand in hand with writing code,
+写代码和测代码密不可分
+
+and it's most often done by an individual or small team.
+测试一般由个人或小团队完成
+
+The big picture version of debugging is Quality Assurance testing, or QA.
+测试可以统称 "质量保证测试",简称 QA
+
+This is where a team rigorously tests out a piece of software,
+严格测试软件的方方面面
+
+attempting to create unforeseen conditions that might trip it up.
+模拟各种可能情况,看软件会不会出错
+
+Basically, they elicit bugs.
+基本上就是找 bug
+
+Getting all the wrinkles out is a huge effort,
+解决大大小小的错误需要很多工作
+
+but vital in making sure the software works
+但对确保软件质量至关重要
+
+as intended for as many users in as many situations as imaginable before it ships.
+让软件在各种情况下按预期运行
+
+You've probably heard of beta software.
+你可能听过 "beta 版" 软件
+
+This is a version of software that's mostly complete,
+意思是软件接近完成
+
+but not 100% fully tested.
+但不是 100% 完全测试过
+
+Companies will sometimes release beta versions to the public to help them identify issues,
+公司有时会向公众发布 beta 版,以帮助发现问题
+
+it's essentially like getting a free QA team.
+用户就像免费的 QA 团队
+
+What you don't hear about as much
+你听过比较少的是 \N beta 版之前的版本:alpha 版本
+
+is the version that comes before the beta: the alpha version.
+你听过比较少的是 \N beta 版之前的版本:alpha 版本
+
+This is usually so rough and buggy, it's only tested internally.
+alpha 版一般很粗糙,错误很多,\N 经常只在公司内部测试
+
+So, that's the tip of the iceberg in terms of the tools, tricks and techniques
+以上只是软件工程师用的工具和技巧的冰山一角
+
+that allow software engineers to construct the huge pieces of software that we know and love today,
+它们帮助软件工程师制作令人喜爱的软件
+
+like YouTube, Grand Theft Auto 5, and Powerpoint.
+如 YouTube,GTA5 和 PPT 等等
+
+As you might expect,
+如你所料
+
+all those millions of lines of code needs some serious processing power to run at useful speeds,
+这些代码要强大的处理能力 才能高速速度运行
+
+so next episode we'll be talking about how computers got so incredibly fast.
+所以下集讨论,计算机怎么发展到如今这么快
+
+See you then.
+到时见
+
+This episode is brought to you by Curiosity Stream.
+本集由 Curiosity Stream 赞助播出
+
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N欢迎收看计算机科学速成课!
+
+Over the past six episodes, we delved into software,
+过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程
+
+from early programming efforts to modern software engineering practices.
+过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程
+
+Within about 50 years, software grew in complexity from machine code punched by hand onto paper tape
+在大概50年里 软件从纸带打孔 \N 变成面向对象编程语言 在集成开发环境中写程序
+
+to object oriented programming languages, compiled in integrated development environments.
+在大概50年里 软件从纸带打孔 \N 变成面向对象编程语言 在集成开发环境中写程序
+
+But this growth in sophistication would not have been possible without improvements in hardware.
+但如果没有硬件的大幅度进步 \N 软件是不可能做到这些的
+
+To appreciate computing hardware’s explosive growth in power and sophistication,
+为了体会硬件性能的爆炸性增长 \N 我们要回到电子计算机的诞生年代
+
+we need to go back to the birth of electronic computing.
+为了体会硬件性能的爆炸性增长 \N 我们要回到电子计算机的诞生年代
+
+From roughly the 1940’s through the mid-1960s, every computer was built from individual parts,
+大约 1940年代~1960年代中期这段时间里 \N 计算机都由独立部件组成
+
+called discrete components, which were all wired together.
+叫"分立元件" \N 然后不同组件再用线连在一起
+
+For example, the ENIAC, consisted of more than 17,000 vacuum tubes, 70,000 resistors,
+举例, ENIAC 有1万7千多个真空管, 7万个电阻
+
+10,000 capacitors, and 7,000 diodes, all of which required 5 million hand-soldered connections.
+1万个电容器, 7千个二极管, 5百万个手工焊点
+
+Adding more components to increase performance meant more connections, more wires
+如果想提升性能,就要加更多部件 \N 这导致更多电线,更复杂
+
+and just more complexity, what was dubbed the Tyranny of Numbers.
+这个问题叫 "数字暴政''
+
+By the mid 1950s, transistors were becoming commercially available
+1950 年代中期,晶体管开始商业化(市场上买得到) \N 开始用在计算机里
+
+and being incorporated into computers.
+1950 年代中期,晶体管开始商业化(市场上买得到) \N 开始用在计算机里
+
+These were much smaller, faster and more reliable than vacuum tubes
+晶体管比电子管 更小更快更可靠
+
+but each transistor was still one discrete component.
+但晶体管依然是分立元件
+
+In 1959, IBM upgraded their vacuum-tube-based "709" computers to transistors by replacing
+1959年,IBM 把 709 计算机从原本的电子管 \N 全部换成晶体管
+
+by replacing all the discrete vacuum tubes with discrete transistors.
+1959年,IBM 把 709 计算机从原本的电子管 \N 全部换成晶体管
+
+The new machine, the IBM 7090, was six times faster and half the cost.
+诞生的新机器 IBM 7090 \N 速度快 6 倍,价格只有一半
+
+These transistorized computers marked the second generation of electronic computing.
+晶体管标志着"计算 2.0 时代"的到来
+
+However, although faster and smaller,
+虽然更快更小 \N 但晶体管的出现 还是没有解决"数字暴政"的问题
+
+discrete transistors didn’t solve the Tyranny of Numbers.
+虽然更快更小 \N 但晶体管的出现 还是没有解决"数字暴政"的问题
+
+It was getting unwieldy to design,
+有几十万个独立元件的计算机不但难设计 \N 而且难生产
+
+let alone physically manufacture computers with hundreds of thousands of individual components.
+有几十万个独立元件的计算机不但难设计 \N 而且难生产
+
+By the the 1960s, this was reaching a breaking point.
+1960 年代,这个问题的严重性达到顶点 \N 电脑内部常常一大堆电线缠绕在一起
+
+The insides of computers were often just huge tangles of wires.
+1960 年代,这个问题的严重性达到顶点 \N 电脑内部常常一大堆电线缠绕在一起
+
+Just look at what the inside of a PDP-8 from 1965 looked like!
+看看这个 1965 年 PDP-8 计算机的内部
+
+The answer was to bump up a new level of abstraction, and package up underlying complexity!
+解决办法是引入一层新抽象,封装复杂性
+
+The breakthrough came in 1958, when Jack Kilby, working at Texas Instruments,
+突破性进展在 1958 年 \N 当时 Jack Killby 在德州仪器工作
+
+demonstrated such an electronic part, "wherein all the components of the electronic circuit are completely integrated.
+演示了一个电子部件:\N "电路的所有组件都集成在一起"
+
+Put simply: instead of building computer parts out of many discrete components
+简单说就是:\N 与其把多个独立部件用电线连起来,拼装出计算机
+
+and wiring them all together,
+简单说就是:\N 与其把多个独立部件用电线连起来,拼装出计算机
+
+you put many components together, inside of a new, single component.
+我们把多个组件包在一起,变成一个新的独立组件
+
+These are called Integrated Circuits, or ICs.
+这就是 集成电路(IC)
+
+A few months later in 1959, Fairchild Semiconductor, lead by Robert Noyce, made ICs practical.
+几个月后,在1959年 Robert Noyce 的仙童半导体 \N 让集成电路变为现实
+
+Kilby built his ICs out of germanium, a rare and unstable material.
+Kilby 用锗来做集成电路,锗很稀少而且不稳定
+
+But, Fairchild used the abundant silicon, which makes up about a quarter of the earth's crust!
+仙童半导体公司用硅 \N 硅的蕴藏量丰富,占地壳四分之一
+
+It’s also more stable, therefore more reliable.
+也更稳定可靠
+
+For this reason, Noyce is widely regarded as the father of modern ICs,
+所以 Noyce 被公认为现代集成电路之父
+
+ushering in the electronics era... and also Silicon Valley, where Fairchild was based
+开创了电子时代,创造了硅谷(仙童公司所在地)
+
+and where many other semiconductor companies would soon pop up.
+之后有很多半导体企业都出现在硅谷
+
+In the early days, an IC might only contain a simple circuit with just a few transistors,
+起初,一个 IC 只有几个晶体管 \N 例如这块早期样品,由西屋公司制造
+
+like this early Westinghouse example.
+起初,一个 IC 只有几个晶体管 \N 例如这块早期样品,由西屋公司制造
+
+But even this allowed simple circuits, like the logic gates from Episode 3,
+即使只有几个晶体管 \N 也可以把简单电路,第 3 集的逻辑门,能封装成单独组件
+
+to be packaged up into a single component.
+即使只有几个晶体管 \N 也可以把简单电路,第 3 集的逻辑门,能封装成单独组件
+
+ICs are sort of like lego for computer engineers
+IC 就像电脑工程师的乐高积木 \N 可以组合出无数种设计
+
+"building blocks" that can be arranged into an infinite array of possible designs.
+IC 就像电脑工程师的乐高积木 \N 可以组合出无数种设计
+
+However, they still have to be wired together at some point
+但最终还是需要连起来, \N 创造更大更复杂的电路,比如整个计算机
+
+to create even bigger and more complex circuits, like a whole computer.
+但最终还是需要连起来, \N 创造更大更复杂的电路,比如整个计算机
+
+For this, engineers had another innovation: printed circuit boards, or PCB
+所以工程师们再度创新:印刷电路板,简称 PCB
+
+Instead of soldering and bundling up bazillions of wires, PCBs, which could be mass manufactured,
+PCB 可以大规模生产,无需焊接或用一大堆线. \N 它通过蚀刻金属线的方式,把零件连接到一起
+
+have all the metal wires etched right into them to connect components together.
+PCB 可以大规模生产,无需焊接或用一大堆线. \N 它通过蚀刻金属线的方式,把零件连接到一起
+
+By using PCBs and ICs together, one could achieve exactly the same functional circuit
+把 PCB 和 IC 结合使用 \N 可以大幅减少独立组件和电线,但做到相同的功能
+
+as that made from discrete components,
+把 PCB 和 IC 结合使用 \N 可以大幅减少独立组件和电线,但做到相同的功能
+
+but with far fewer individual components and tangled wires.
+把 PCB 和 IC 结合使用 \N 可以大幅减少独立组件和电线,但做到相同的功能
+
+Plus, it’s smaller, cheaper and more reliable.
+而且更小,更便宜,更可靠. 三赢!
+
+Triple win!
+而且更小,更便宜,更可靠. 三赢!
+
+Many early ICs were manufactured using teeny tiny discrete components
+许多早期 IC 都是把很小的分立元件 \N 封装成一个独立单元,例如这块 1964 年的IBM样品
+
+packaged up as a single unit, like this IBM example from 1964.
+许多早期 IC 都是把很小的分立元件 \N 封装成一个独立单元,例如这块 1964 年的IBM样品
+
+However, even when using really really itty-bitty components,
+不过,即使组件很小 \N 塞5个以上的晶体管还是很困难
+
+it was hard to get much more than around five transistors onto a single IC.
+不过,即使组件很小 \N 塞5个以上的晶体管还是很困难
+
+To achieve more complex designs, a radically different fabrication process was needed that
+为了实现更复杂的设计,需要全新的制作工艺 \N "光刻"登场!
+
+changed everything: Photolithography!
+为了实现更复杂的设计,需要全新的制作工艺 \N "光刻"登场!
+
+In short, it’s a way to use light to transfer complex patterns to a material, like a semiconductor
+简单说就是 \N用光把复杂图案印到材料上,比如半导体
+
+It only has a few basic operations, but these can be used to create incredibly complex circuits.
+它只有几个基础操作,但可以制作出复杂电路
+
+Let’s walk through a simple, although extensive example, to make one of these!
+下面用一个简单例子,来做一片这个!
+
+We start with a slice of silicon, which, like a thin cookie, is called a wafer.
+我们从一片硅开始,叫"晶圆" \N 长得像薄饼干一样
+
+Delicious!
+美味!
+
+Silicon, as we discussed briefly in episode 2, is special because it’s a semiconductor,
+我们在第 2 集讨论过 \N 硅很特别,它是半导体
+
+that is, a material that can sometimes conduct electricity and other times does not.
+它有时导电,有时不导电 \N 我们可以控制导电时机
+
+We can control where and when this happens,
+它有时导电,有时不导电 \N 我们可以控制导电时机
+
+making Silicon the perfect raw material for making transistors.
+所以硅是做晶体管的绝佳材料
+
+We can also use a wafer as a base to lay down complex metal circuits, so everything is integrated,
+我们可以用晶圆做基础 \N 把复杂金属电路放上面,集成所有东西
+
+perfect for... integrated circuits!
+非常适合做.. 集成电路!
+
+The next step is to add a thin oxide layer on top of the silicon,
+下一步是在硅片顶部 \N 加一层薄薄的氧化层, 作为保护层
+
+which acts as a protective coating.
+下一步是在硅片顶部 \N 加一层薄薄的氧化层, 作为保护层
+
+Then, we apply a special chemical called a photoresist.
+然后加一层特殊化学品, 叫 "光刻胶" \N 光刻胶被光照射后 会变得可溶
+
+When exposed to light, the chemical changes, and becomes soluble,
+然后加一层特殊化学品, 叫 "光刻胶" \N 光刻胶被光照射后 会变得可溶
+
+so it can be washed away with a different special chemical.
+可以用一种特殊化学药剂洗掉
+
+Photoresists aren’t very useful by themselves,
+单单光刻胶本身,并不是很有用 \N 但和"光掩膜"配合使用会很强大
+
+but are super powerful when used in conjunction with a photomask.
+单单光刻胶本身,并不是很有用 \N 但和"光掩膜"配合使用会很强大
+
+This is just like a piece of photographic film, but instead of a photo of
+光掩膜就像胶片一样,只不过不是 \N 吃墨西哥卷饼的可爱仓鼠,而是要转移到晶圆上的图案
+
+a hamster eating a tiny burrito, it contains a pattern to be transferred onto the wafer.
+光掩膜就像胶片一样,只不过不是 \N 吃墨西哥卷饼的可爱仓鼠,而是要转移到晶圆上的图案
+
+We do this by putting a photomask over the wafer, and turning on a powerful light.
+把光掩膜盖到晶圆上,用强光照射 \N 挡住光的地方,光刻胶不会变化
+
+Where the mask blocks the light, the photoresist is unchanged.
+把光掩膜盖到晶圆上,用强光照射 \N 挡住光的地方,光刻胶不会变化
+
+But where the light does hit the photoresist it changes chemically ,
+光照到的地方,光刻胶会发生化学变化 \N 洗掉它之后,暴露出氧化层
+
+which lets us wash away only the photoresist that was exposed to light, selectively revealing areas of our oxide layer.
+光照到的地方,光刻胶会发生化学变化 \N 洗掉它之后,暴露出氧化层
+
+Now, by using another special chemical, often an acid, we can remove any exposed oxide,
+用另一种化学物质 - 通常是一种酸 \N 可以洗掉"氧化层"露出的部分, 蚀刻到硅层
+
+and etch a little hole the entire way down to the raw silicon.
+用另一种化学物质 - 通常是一种酸 \N 可以洗掉"氧化层"露出的部分, 蚀刻到硅层
+
+Note that the oxide layer under the photoresist is protected.
+注意,氧化层被光刻胶保护住了.
+
+To clean up, we use yet another special chemical that washes away any remaining photoresist.
+为了清理光刻胶,我们用另一种化学药品洗掉它
+
+Yep, there are a lot of special chemicals in photolithography,
+是的,光刻法用很多化学品,每种都有特定用途
+
+each with a very specific function!
+是的,光刻法用很多化学品,每种都有特定用途
+
+So now we can see the silicon again,
+现在硅又露出来了 \N 我们想修改硅露出来的区域 让它导电性更好
+
+we want to modify only the exposed areas to better conduct electricity.
+现在硅又露出来了 \N 我们想修改硅露出来的区域 让它导电性更好
+
+To do that, we need to change it chemically through a process called: doping.
+所以用一种化学过程来改变它,叫"掺杂"
+
+I’m not even going to make a joke. Let’s move on.
+不是开玩笑!我们继续
+
+Most often this is done with a high temperature gas, something like Phosphorus,
+"掺杂" 通常用高温气体来做,比如磷 \N 渗透进暴露出的硅,改变电学性质
+
+which penetrates into the exposed area of silicon.
+"掺杂" 通常用高温气体来做,比如磷 \N 渗透进暴露出的硅,改变电学性质
+
+This alters its electrical properties.
+"掺杂" 通常用高温气体来做,比如磷 \N 渗透进暴露出的硅,改变电学性质
+
+We’re not going to wade into the physics and chemistry of semiconductors,
+半导体的具体物理和化学性质我们不会深究,
+
+but if you’re interested, there’s a link in the description to an excellent video
+如果你感兴趣,描述里有个视频链接 \N 视频制作者是 Derek Muller 他的频道叫 Veritasium
+
+by our friend Derek Muller from Veritasium.
+如果你感兴趣,描述里有个视频链接 \N 视频制作者是 Derek Muller 他的频道叫 Veritasium
+
+But, we still need a few more rounds of photolithography to build a transistor.
+但我们还需要几轮光刻法 来做晶体管
+
+The process essentially starts again, first by building up a fresh oxide layer ...
+过程基本一样,先盖氧化层,再盖光刻胶
+
+which we coat in photoresist.
+过程基本一样,先盖氧化层,再盖光刻胶
+
+Now, we use a photomask with a new and different pattern,
+然后用新的光掩膜,这次图案不同 \N 在掺杂区域上方开一个缺口
+
+allowing us to open a small window above the doped area.
+然后用新的光掩膜,这次图案不同 \N 在掺杂区域上方开一个缺口
+
+Once again, we wash away remaining photoresist.
+洗掉光刻胶
+
+Now we dope, and avoid telling a hilarious joke, again, but with a different gas that
+然后用另一种气体掺杂 \N 把一部分硅转成另一种形式
+
+converts part of the silicon into yet a different form.
+然后用另一种气体掺杂 \N 把一部分硅转成另一种形式
+
+Timing is super important in photolithography in order to control things like doping diffusionand etch depth.
+为了控制深度,时机很重要 \N 我们不想超过之前的区域
+
+In this case, we only want to dope a little region nested inside the other.
+为了控制深度,时机很重要 \N 我们不想超过之前的区域
+
+Now we have all the pieces we need to create our transistor!
+现在 所有需要的组件都有了
+
+The final step is to make channels in the oxide layer
+最后一步,在氧化层上做通道 \N 这样可以用细小金属导线,连接不同晶体管
+
+so that we can run little metal wires to different parts of our transistor.
+最后一步,在氧化层上做通道 \N 这样可以用细小金属导线,连接不同晶体管
+
+Once more, we apply a photoresist, and use a new photomask to etch little channels.
+再次用光刻胶和光掩膜 蚀刻出小通道
+
+Now, we use a new process, called metalization,
+现在用新的处理方法 叫"金属化" \N 放一层薄薄的金属,比如铝或铜
+
+that allows us to deposit a thin layer of metal, like aluminium or copper.
+现在用新的处理方法 叫"金属化" \N 放一层薄薄的金属,比如铝或铜
+
+But we don’t want to cover everything in metal.
+但我们不想用金属盖住所有东西 \N 我们想蚀刻出具体的电路
+
+We want to etch a very specific circuit design.
+但我们不想用金属盖住所有东西 \N 我们想蚀刻出具体的电路
+
+So, very similar to before, we apply a photoresist, use a photomask, dissolve the exposed resist,
+所以又是类似的步骤 \N 用光刻胶+光掩膜,然后溶掉暴露的光刻胶,暴露的金属
+
+and use a chemical to remove any exposed metal.
+所以又是类似的步骤 \N 用光刻胶+光掩膜,然后溶掉暴露的光刻胶,暴露的金属
+
+Whew!
+咻~
+
+Our transistor is finally complete!
+晶体管终于做好了! \N 它有三根线,连接着硅的三个不同区域
+
+It has three little wires that connect to three different parts of the silicon
+晶体管终于做好了! \N 它有三根线,连接着硅的三个不同区域
+
+each doped a particular way to create, in this example, what’s called a bipolar junction transistor.
+每个区域的掺杂方式不同,这叫双极型晶体管
+
+Here’s the actual patent from 1962, an invention that changed our world forever!
+这个 1962 年的真实专利,永远改变了世界
+
+Using similar steps, photolithography can create other useful electronic elements, like
+用类似步骤,光刻可以制作其他电子元件 \N 比如电阻和电容,都在一片硅上
+
+resistors and capacitors, all on a single piece of silicon
+用类似步骤,光刻可以制作其他电子元件 \N 比如电阻和电容,都在一片硅上
+
+plus all the wires needed to hook them up into circuits
+而且互相连接的电路也做好了
+
+Goodbye discrete components!
+再见了,分立元件!
+
+In our example, we made one transistor, but in the real world,
+之前的例子 只做了一个晶体管,但现实中 \N 光刻法一次会做上百万个细节
+
+photomasks lay down millions of little details all at once.
+之前的例子 只做了一个晶体管,但现实中 \N 光刻法一次会做上百万个细节
+
+Here is what an IC might look like from above, with wires crisscrossing above and below each other,
+芯片放大是这样的,导线上下交错,连接各个元件
+
+interconnecting all the individual elements together into complex circuits.
+芯片放大是这样的,导线上下交错,连接各个元件
+
+Although we could create a photomask for an entire wafer,
+尽管可以把光掩膜投影到一整片晶圆上 \N 但光可以投射成任意大小
+
+we can take advantage of the fact that light can be focused and projected to any size we want.
+尽管可以把光掩膜投影到一整片晶圆上 \N 但光可以投射成任意大小
+
+In the same way that a film can be projected to fill an entire movie screen,
+就像投影仪可以投满荧幕一样
+
+we can focus a photomask onto a very small patch of silicon, creating incredibly fine details.
+我们可以把光掩膜 \N 聚焦到极小的区域,制作出非常精细的细节
+
+A single silicon wafer is generally used to create dozens of ICs.
+一片晶圆可以做很多 IC \N 整块都做完后,可以切割然后包进微型芯片
+
+Then, once you’ve got a whole wafer full, you cut them up and package them into microchips,
+一片晶圆可以做很多 IC \N 整块都做完后,可以切割然后包进微型芯片
+
+those little black rectangles you see in electronics all the time.
+微型芯片就是在电子设备中那些小长方体
+
+Just remember: at the heart of each of those chips is one of these small pieces of silicon.
+记住,芯片的核心都是一小片 IC
+
+As photolithography techniques improved, the size of transistors shrunk, allowing for greater densities.
+随着光刻技术发展,晶体管变小 密度变高
+
+At the start of the 1960s, an IC rarely contained more than 5 transistors,
+1960 年代初,IC 很少超过 5 个晶体管,因为塞不下
+
+they just couldn’t possibly fit.
+1960 年代初,IC 很少超过 5 个晶体管,因为塞不下
+
+But, by the mid 1960s, we were starting to see ICs with over 100 transistors on the market.
+但 1960 年代中期 \N 市场上开始出现超过 100 个晶体管的 IC
+
+In 1965, Gordon Moore could see the trend: that approximately every two years,
+1965年,戈登·摩尔看到了趋势:每两年左右,
+
+thanks to advances in materials and manufacturing, you could fit twice the number of transistors
+得益于材料和制造技术的发展 \N 同样大小的空间,能塞进两倍数量的晶体管!
+
+into the same amount of space.
+得益于材料和制造技术的发展 \N 同样大小的空间,能塞进两倍数量的晶体管!
+
+This is called Moore’s Law.
+这叫 摩尔定律
+
+The term is a bit of a misnomer though.
+然而这个名字不太对 \N 因为它不是定律,只是一种趋势
+
+It’s not really a law at all, more of a trend.
+然而这个名字不太对 \N 因为它不是定律,只是一种趋势
+
+But it’s a good one.
+但它是对的
+
+IC prices also fell dramatically, from an average of $50 in 1962 to around $2 in 1968.
+芯片的价格也急剧下降 \N 1962年平均50美元,下降到1968年2美元左右
+
+Today, you can buy ICs for cents.
+如今 几美分就能买到 IC
+
+Smaller transistors and higher densities had other benefits too.
+晶体管更小密度更高 还有其他好处
+
+The smaller the transistor, the less charge you have to move around, allowing it to switch
+晶体管越小,要移动的电荷量就越少 \N 能更快切换状态 耗电更少
+
+states faster and consume less power.
+晶体管越小,要移动的电荷量就越少 \N 能更快切换状态 耗电更少
+
+Plus, more compact circuits meant less delay in signals resulting in faster clock speeds.
+电路更紧凑 还意味着信号延迟更低 \N 导致时钟速度更快
+
+In 1968, Robert Noyce and Gordon Moore teamed up and founded a new company,
+1968年,罗伯特·诺伊斯 和 戈登·摩尔 \N 联手成立了一家新公司
+
+combining the words Integrated and Electronics...
+结合 Intergrated(集成) 和 Electronics(电子) 两个词
+
+Intel. the largest chip maker today.
+取名 Intel, 如今最大的芯片制造商
+
+The Intel 4004 CPU, from Episodes 7 and 8, was a major milestone.
+Intel 4004 CPU, 在第 7, 8 集介绍过 \N 是个重要里程碑
+
+Released in 1971, it was the first processor that shipped as an IC, what’s called a microprocessor,
+发布于1971年 \N 是第一个用 IC 做的处理器,也叫微型处理器
+
+because it was so beautifully small!
+因为真的非常小!
+
+It contained 2,300 transistors.
+它有2300个晶体管
+
+People marveled at the level of integration, an entire CPU in one chip,
+人们惊叹于它的整合水平 \N 整个 CPU 在一个芯片里
+
+which just two decades earlier would have filled an entire room using discrete components.
+而仅仅 20 年前,用分立元件会占满整个屋子
+
+This era of integrated circuits, especially microprocessors, ushered in the third generation of computing.
+集成电路的出现 \N 尤其是用来做微处理器,开启了计算 3.0
+
+And the Intel 4004 was just the start.
+而 Intel 4004 只是个开始,CPU 晶体管数量爆发增长
+
+CPU transistor count exploded!
+而 Intel 4004 只是个开始,CPU 晶体管数量爆发增长
+
+By 1980, CPUs contained 30 thousand transistors.
+1980年,3 万晶体管 \N 1990年,100 万晶体管
+
+By 1990, CPUs breached the 1 million transistor count.
+1980年,3 万晶体管 \N 1990年,100 万晶体管
+
+By 2000, 30 million transistors,
+2000年,3000 万个晶体管
+
+and by 2010, ONE. BILLION. TRANSISTORS. IN ONE. IC. OMG!
+2010年,10亿个晶体管!\N 在一个芯片里!我的天啊!
+
+To achieve this density, the finest resolution possible with photolithography has improved
+为了达到这种密度,光刻的分辨率 \N 从大约一万纳米,大概是人类头发直径的 1/10
+
+from roughly 10 thousand nanometers, that’s about 1/10th the thickness of a human hair,
+为了达到这种密度,光刻的分辨率 \N 从大约一万纳米,大概是人类头发直径的 1/10
+
+to around 14 nanometers today.
+发展到如今的 14 纳米 \N 比血红细胞小 400 倍!
+
+That’s over 400 times smaller than a red blood cell!
+发展到如今的 14 纳米 \N 比血红细胞小 400 倍!
+
+And of course, CPU’s weren’t the only components to benefit.
+当然,CPU 不是唯一受益的元件
+
+Most electronics advanced essentially exponentially:
+大多数电子器件都在指数式发展:\N 内存,显卡,固态硬盘,摄像头感光元件,等等
+
+RAM, graphics cards, solid state hard drives, camera sensors, you name it.
+大多数电子器件都在指数式发展:\N 内存,显卡,固态硬盘,摄像头感光元件,等等
+
+Today’s processors, like the A10 CPU inside Of an iPhone 7, contains a mind melting 3.3 BILLION
+如今的处理器,比如 iPhone 7 的 A10 CPU \N 有33亿个晶体管
+
+transistors in an IC roughly 1cm by 1cm.
+面积仅有 1cm x 1cm,比一张邮票还小
+
+That’s smaller than a postage stamp!
+面积仅有 1cm x 1cm,比一张邮票还小
+
+And modern engineers aren’t laying out these designs by hand, one transistor at a time
+现代工程师设计电路时,当然不是手工一个个设计晶体管 \N 这不是人力能做到的
+
+- it’s not humanly possible.
+现代工程师设计电路时,当然不是手工一个个设计晶体管 \N 这不是人力能做到的
+
+Starting in the 1970’s, very-large-scale integration, or VLSI software, has been used
+1970年代开始,超大规模集成(VLSI)软件 \N 用来自动生成芯片设计
+
+to automatically generate chip designs instead.
+1970年代开始,超大规模集成(VLSI)软件 \N 用来自动生成芯片设计
+
+Using techniques like logic synthesis, where whole, high-level components can be laid down,like a memory cache
+用比如 "逻辑综合" 这种技术 \N 可以放一整个高级组件,比如内存缓存
+
+the software generates the circuit in the most efficient way possible.
+软件会自动生成电路,做到尽可能高效
+
+Many consider this to be the start of fourth generation computers.
+许多人认为这是计算 4.0 的开始
+
+Unfortunately, experts have been predicting the end of Moore’s Law for decades
+坏消息是,专家们几十年来 \N 一直在预言摩尔定律的终结
+
+and we might finally be getting close to it.
+现在可能终于接近了
+
+There are two significant issues holding us back from further miniaturization.
+进一步做小,会面临 2 个大问题
+
+First, we’re bumping into limits on how fine we can make features on a photomask and
+1. 用光掩膜把图案弄到晶圆上 \N 因为光的波长,精度已达极限
+
+it’s resultant wafer due to the wavelengths of light used in photolithography.
+1. 用光掩膜把图案弄到晶圆上 \N 因为光的波长,精度已达极限
+
+In response, scientists have been developing light sources with smaller and smaller wavelengths
+所以科学家在研制波长更短的光源,投射更小的形状
+
+that can project smaller and smaller features.
+所以科学家在研制波长更短的光源,投射更小的形状
+
+The second issue is that when transistors get really really small, where electrodes
+2. 当晶体管非常小,电极之间可能只距离几个原子 \N 电子会跳过间隙,这叫:量子隧道贯穿
+
+might be separated by only a few dozen atoms, electrons can jump the gap, a phenomenon called
+2. 当晶体管非常小,电极之间可能只距离几个原子 \N 电子会跳过间隙,这叫:量子隧穿效应
+
+quantum tunneling.
+2. 当晶体管非常小,电极之间可能只距离几个原子 \N 电子会跳过间隙,这叫:量子隧穿效应
+
+If transistors leak current, they don’t make very good switches.
+如果晶体管漏电,就不是好开关
+
+Nonetheless, scientists and engineers are hard at work figuring out ways around these problems.
+科学家和工程师在努力找解决方法
+
+Transistors as small as 1 nanometer have been demonstrated in research labs.
+实验室中已造出小至1纳米的晶体管
+
+Whether this will ever be commercially feasible remains MASKED in mystery.
+能不能商业量产依然未知,未来也许能解决
+
+But maybe we’ll be able to RESOLVE it in the future.
+能不能商业量产依然未知,未来也许能解决
+
+I’m DIEING to know. See you next week.
+我非常期待!下周见!
+
+This episode is supported by Hover.
+本集由 Hover 赞助播出
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Computers in the 1940s and early 50s ran one program at a time.
+1940,1950 年代的电脑,每次只能运行一个程序
+
+A programmer would write one at their desk, for example, on punch cards.
+程序员在打孔纸卡上写程序
+
+Then, they'd carry it to a room containing a room-sized computer,
+然后拿到一个计算机房间, 交给操作员
+
+and hand it to a dedicated computer operator.
+然后拿到一个计算机房间, 交给操作员
+
+That person would then feed the program into the computer when it was next available.
+等计算机空下来了,操作员会把程序放入
+
+The computer would run it, spit out some output, and halt.
+然后运行,输出结果,停机
+
+This very manual process worked OK back when computers were slow,
+以前计算机慢,这种手动做法可以接受
+
+and running a program often took hours, days or even weeks.
+运行一个程序通常要几小时,几天甚至几周
+
+But, as we discussed last episode,
+但上集说过,计算机越来越快,越来越快
+
+computers became faster... and faster... and faster
+但上集说过,计算机越来越快,越来越快
+
+exponentially so!
+指数级增长!
+
+Pretty soon, having humans run around and inserting programs into readers
+很快,放程序的时间 比程序运行时间还长
+
+was taking longer than running the actual programs themselves.
+很快,放程序的时间 比程序运行时间还长
+
+We needed a way for computers to operate themselves,
+我们需要一种方式 让计算机自动运作
+
+and so, operating systems were born.
+于是"操作系统"诞生了
+
+Operating systems , or OS for short, are just programs.
+操作系统,简称 OS,其实也是程序
+
+But, special privileges on the hardware let them run and manage other programs.
+但它有操作硬件的特殊权限 \N 可以运行和管理其它程序
+
+They're typically the first one to start when a computer is turned on,
+操作系统一般是开机第一个启动的程序
+
+and all subsequent programs are launched by the OS.
+其他所有程序 都由操作系统启动
+
+They got their start in the 1950s,
+操作系统开始于 1950 年代 \N 那时计算机开始变得更强大更流行
+
+as computers became more widespread and more powerful.
+操作系统开始于 1950 年代 \N 那时计算机开始变得更强大更流行
+
+The very first OS augmented the mundane, manual task of loading programs by hand.
+第一个操作系统 加强了程序加载方式
+
+Instead of being given one program at a time,
+之前只能一次给一个程序,现在可以一次多个
+
+computers could be given batches.
+之前只能一次给一个程序,现在可以一次多个
+
+When the computer was done with one,
+当计算机运行完一个程序,会自动运行下一个程序
+
+it would automatically and near-instantly start the next.
+当计算机运行完一个程序,会自动运行下一个程序
+
+There was no downtime while someone scurried around an office to find the next program to run.
+这样就不会浪费时间,找下一个程序的纸卡
+
+This was called batch processing .
+这叫 批处理
+
+While computers got faster, they also got cheaper.
+电脑变得更快更便宜,开始在出现在世界各地
+
+So, they were popping up all over the world,
+电脑变得更快更便宜,开始在出现在世界各地
+
+especially in universities and government offices.
+特别是大学和政府办公室
+
+Soon, people started sharing software.
+很快,人们开始分享软件,但有一个问题
+
+But there was a problem
+很快,人们开始分享软件,但有一个问题
+
+In the era of one-off computers, like the Harvard Mark 1 or ENIAC,
+在哈佛1号和 ENIAC 那个时代,计算都是一次性的
+
+programmers only had to write code for that one single machine.
+程序员只需要给那"一台"机器写代码
+
+The processor, punch card readers, and printers were known and unchanging.
+处理器,读卡器,打印机都是已知的
+
+But as computers became more widespread,
+但随着电脑越来越普遍,计算机配置并不总是相同的
+
+their configurations were not always identical,
+但随着电脑越来越普遍,计算机配置并不总是相同的
+
+like computers might have the same CPU, but not the same printer.
+比如计算机可能有相同 CPU,但不同的打印机
+
+This was a huge pain for programmers.
+这对程序员很痛苦
+
+Not only did they have to worry about writing their program,
+不仅要担心写程序,还要担心程序怎么和不同型号打印机交互
+
+but also how to interface with each and every model of printer,
+不仅要担心写程序,还要担心程序怎么和不同型号打印机交互
+
+and all devices connected to a computer, what are called peripherals.
+以及计算机连着的其他设备,这些统称"外部设备"
+
+Interfacing with early peripherals was very low level,
+和早期的外部设备交互,是非常底层的
+
+requiring programmers to know intimate hardware details about each device.
+程序员要了解设备的硬件细节
+
+On top of that, programmers rarely had access to every model of a peripheral to test their code on.
+加重问题的是,程序员很少能拿到所有型号的设备来测代码
+
+So, they had to write code as best they could, often just by reading manuals,
+所以一般是阅读手册来写代码,祈祷能正常运行
+
+and hope it worked when shared.
+所以一般是阅读手册来写代码,祈祷能正常运行
+
+Things weren't exactly plug-and-play
+现在是"即插即用",以前是"祈祷能用"
+
+back then more plug-and-pray.
+现在是"即插即用",以前是"祈祷能用"
+
+This was clearly terrible,
+这很糟糕,所以为了程序员写软件更容易
+
+so to make it easier for programmers,
+这很糟糕,所以为了程序员写软件更容易
+
+Operating Systems stepped in as intermediaries between software programs and hardware peripherals.
+操作系统充当软件和硬件之间的媒介
+
+More specifically, they provided a software abstraction, through APIs,
+更具体地说,操作系统提供 API 来抽象硬件,叫"设备驱动程序"
+
+called device drivers .
+更具体地说,操作系统提供 API 来抽象硬件,叫"设备驱动程序"
+
+These allow programmers to talk to common input and output hardware,
+程序员可以用标准化机制 和输入输出硬件(I/O)交互
+
+or I/O for short, using standardized mechanisms.
+程序员可以用标准化机制 和输入输出硬件(I/O)交互
+
+For example, programmers could call a function like "print highscore",
+比如,程序员只需调用 print(highscore)
+
+and the OS would do the heavy lifting to get it onto paper.
+操作系统会处理 输到纸上的具体细节
+
+By the end of the 1950s, computers had gotten so fast,
+到 1950 年代尾声,电脑已经非常快了
+
+they were often idle waiting for slow mechanical things, like printers and punch card readers.
+处理器经常闲着,等待慢的机械设备(比如打印机和读卡器)
+
+While programs were blocked on I/O,
+程序阻塞在 I/O 上
+
+the expensive processor was just chillin'... not like a villain
+而昂贵的处理器则在度假,就是放松啥也不做
+
+you know, just relaxing.
+而昂贵的处理器则在度假,就是放松啥也不做
+
+In the late 50's, the University of Manchester, in the UK,
+50年代后期,英国曼彻斯特大学 \N 开始研发世界上第一台超级计算机,Atlas
+
+started work on a supercomputer called Atlas, one of the first in the world.
+50年代后期,英国曼彻斯特大学 \N 开始研发世界上第一台超级计算机,Atlas
+
+They knew it was going to be wicked fast,
+他们知道机器会超级快,所以需要一种方式来最大限度的利用它
+
+so they needed a way to make maximal use of the expensive machine.
+他们知道机器会超级快,所以需要一种方式来最大限度的利用它
+
+Their solution was a program called the Atlas Supervisor, finished in 1962.
+他们的解决方案是一个程序叫 Atlas Supervisor \N 于1962年完成
+
+This operating system not only loaded programs automatically, like earlier batch systems,
+这个操作系统 \N不仅像更早期的批处理系统那样,能自动加载程序
+
+but could also run several at the same time on its single CPU.
+还能在单个 CPU 上同时运行几个程序
+
+It did this through clever scheduling.
+它通过调度来做到这一点
+
+Let's say we have a game program running on Atlas,
+假设 Atlas 上有一个游戏在运行
+
+and we call the function "print(highscore)"
+并且我们调用一个函数 print(highscore)
+
+which instructs Atlas to print the value of a variable named "highscore"
+它让 Atlas 打印一个叫 highscore 的变量值
+
+onto paper to show our friends that we're the ultimate champion of virtual tiddlywinks.
+让朋友知道 我是最高分冠军
+
+That function call is going to take a while, the equivalent of thousands of clock cycles,
+print 函数运行需要一点时间,大概上千个时钟周期
+
+because mechanical printers are slow in comparison to electronic CPUs.
+但因为打印机比 CPU 慢,与其等着它完成操作
+
+So instead of waiting for the I/O to finish,
+但因为打印机比 CPU 慢,与其等着它完成操作
+
+Atlas instead puts our program to sleep,
+Atlas 会把程序休眠,运行另一个程序
+
+then selects and runs another program that's waiting and ready to run.
+Atlas 会把程序休眠,运行另一个程序
+
+Eventually, the printer will report back to Atlas that it finished printing the value of "highscore".
+最终, 打印机会告诉 Atlas, 打印已完成
+
+Atlas then marks our program as ready to go,
+Atlas 会把程序标记成可继续运行
+
+and at some point, it will be scheduled to run again on the CPU,
+之后在某时刻会安排给 CPU 运行
+
+and continue onto the next line of code following the print statement.
+并继续 print 语句之后的下一行代码
+
+In this way, Atlas could have one program running calculations on the CPU,
+这样, Atlas 可以在 CPU 上运行一个程序
+
+while another was printing out data,
+同时另一个程序在打印数据
+
+and yet another reading in data from a punch tape.
+同时另一个程序读数据
+
+Atlas' engineers doubled down on this idea,
+Atlas 的工程师做的还要多,配了4台纸带读取器,4台纸带打孔机
+
+and outfitted their computer with 4 paper tape readers, 4 paper tape punches,
+Atlas 的工程师做的还要多,配了4台纸带读取器,4台纸带打孔机
+
+and up to 8 magnetic tape drives.
+多达8个磁带驱动器
+
+This allowed many programs to be in progress all at once,
+使多个程序可以同时运行,在单个 CPU 上共享时间
+
+sharing time on a single CPU.
+使多个程序可以同时运行,在单个 CPU 上共享时间
+
+This ability, enabled by the Operating System, is called
+操作系统的这种能力叫"多任务处理"
+
+multitasking.
+操作系统的这种能力叫"多任务处理"
+
+There's one big catch to having many programs running simultaneously on a single computer, though.
+同时运行多个程序有个问题
+
+Each one is going to need some memory,
+每个程序都会占一些内存 \N 当切换到另一个程序时,我们不能丢失数据
+
+and we can't lose that program's data when we switch to another program.
+每个程序都会占一些内存 \N 当切换到另一个程序时,我们不能丢失数据
+
+The solution is to allocate each program its own block of memory.
+解决办法是 给每个程序分配专属内存块
+
+So, for example, let's say a computer has 10,000 memory locations in total.
+举个例子,假设计算机一共有 10000 个内存位置
+
+Program A might get allocated memory addresses 0 through 999,
+程序 A 分配到内存地址 0 到 999
+
+and Program B might get 1000 through 1999, and so on.
+而程序 B 分配到内存地址 1000 到 1999,以此类推
+
+If a program asks for more memory,
+如果一个程序请求更多内存,操作系统会决定是否同意
+
+the operating system decides if it can grant that request,
+如果一个程序请求更多内存,操作系统会决定是否同意
+
+and if so, what memory block to allocate next.
+如果同意,分配哪些内存块
+
+This flexibility is great, but introduces a quirk.
+这种灵活性很好,但带来一个奇怪的后果
+
+It means that Program A could end up being allocated non-sequential blocks of memory,
+程序 A 可能会分配到非连续的内存块
+
+in say addresses 0 through 999, and 2000 through 2999.
+比如内存地址 0 到 999,以及 2000 到 2999
+
+And this is just a simple example
+这只是个简单例子
+
+- a real program might be allocated dozens of blocks scattered all over memory.
+真正的程序可能会分配到内存中数十个地方
+
+As you might imagine,
+你可能想到了,这对程序员来说很难跟踪
+
+this would get really confusing for programmers to keep track of.
+你可能想到了,这对程序员来说很难跟踪
+
+Maybe there's a long list of sales data in memory that
+也许内存里有一长串销售额,每天下班后要算销售总额
+
+a program has to total up at the end of the day,
+也许内存里有一长串销售额,每天下班后要算销售总额
+
+but this list is stored across a bunch of different blocks of memory.
+但列表 存在一堆不连续的内存块里
+
+To hide this complexity, Operating Systems virtualize memory locations.
+为了隐藏这种复杂性,操作系统会把内存地址进行 "虚拟化"
+
+With Virtual Memory, programs can assume their memory always starts at address 0,
+这叫 "虚拟内存",程序可以假定内存总是从地址0开始
+
+keeping things simple and consistent.
+简单又一致
+
+However, the actual, physical location in computer memory
+而实际物理位置 被操作系统隐藏和抽象了
+
+is hidden and abstracted by the operating system.
+而实际物理位置 被操作系统隐藏和抽象了
+
+Just a new level of abstraction.
+一层新的抽象
+
+Let's take our example Program B,
+用程序 B 来举例 \N 它被分配了内存地址 1000 到 1999
+
+which has been allocated a block of memory from address 1000 to 1999.
+用程序 B 来举例 \N 它被分配了内存地址 1000 到 1999
+
+As far as Program B can tell, this appears to be a block from 0 to 999.
+对程序 B 而言,它看到的地址是 0 到 999
+
+The OS and CPU handle the virtual-to-physical memory remapping automatically.
+操作系统会自动处理 \N 虚拟内存和物理内存之间的映射
+
+So, if Program B requests memory location 42,
+如果程序 B 要地址 42,实际上是物理地址 1042
+
+it really ends up reading address 1042.
+如果程序 B 要地址 42,实际上是物理地址 1042
+
+This virtualization of memory addresses is even more useful for Program A,
+这种内存地址的虚拟化 对程序 A 甚至更有用
+
+which in our example, has been allocated two blocks of memory
+在例子中,A 被分配了两块隔开的内存
+
+that are separated from one another.
+在例子中,A 被分配了两块隔开的内存
+
+This too is invisible to Program A.
+程序 A 不知道这点.
+
+As far as it can tell, it's been allocated a continuous block of 2000 addresses.
+以 A 的视角,它有 2000 个连续地址
+
+When Program A reads memory address 999,
+当程序 A 读内存地址 999 时 \N 会刚好映射到物理内存地址 999
+
+that does coincidentally map to physical memory address 999.
+当程序 A 读内存地址 999 时 \N 会刚好映射到物理内存地址 999
+
+But if Program A reads the very next value in memory, at address 1000,
+但如果程序 A 读下一个地址 1000
+
+that gets mapped behind the scenes to physical memory address 2000.
+会映射到物理地址 2000
+
+This mechanism allows programs to have flexible memory sizes,
+这种机制使程序的内存大小可以灵活增减 \N 叫"动态内存分配"
+
+called dynamic memory allocation,
+这种机制使程序的内存大小可以灵活增减 \N 叫"动态内存分配"
+
+that appear to be continuous to them.
+对程序来说,内存看起来是连续的.
+
+It simplifies everything and offers tremendous flexibility to the Operating System
+它简化了一切,为操作系统同时运行多个程序 \N 提供了极大的灵活性
+
+in running multiple programs simultaneously.
+它简化了一切,为操作系统同时运行多个程序 \N 提供了极大的灵活性
+
+Another upside of allocating each program its own memory,
+给程序分配专用的内存范围,\N 另一个好处是 这样隔离起来会更好
+
+is that they're better isolated from one another.
+给程序分配专用的内存范围,\N 另一个好处是 这样隔离起来会更好
+
+So, if a buggy program goes awry, and starts writing gobbledygook,
+如果一个程序出错,开始写乱七八糟的数据
+
+it can only trash its own memory, not that of other programs.
+它只能捣乱自己的内存,不会影响到其它程序.
+
+This feature is called Memory Protection.
+这叫 "内存保护"
+
+This is also really useful in protecting against malicious software, like viruses.
+防止恶意软件(如病毒)也很有用
+
+For example, we generally don't want other programs to have the ability
+例如,我们不希望其他程序有能力 \N 读或改邮件程序的内存
+
+to read or modify the memory of, let say, our email,
+例如,我们不希望其他程序有能力 \N 读或改邮件程序的内存
+
+with that kind of access,
+如果有这种权限 \N 恶意软件可能以你的名义发邮件,甚至窃取个人信息
+
+malware could send emails on your behalf and maybe steal personal information.
+如果有这种权限 \N 恶意软件可能以你的名义发邮件,甚至窃取个人信息
+
+Not good!
+一点都不好!
+
+Atlas had both virtual and protected memory.
+Atlas 既有"虚拟内存"也有"内存保护"
+
+It was the first computer and OS to support these features!
+是第一台支持这些功能的计算机和操作系统!
+
+By the 1970s, computers were sufficiently fast and cheap.
+到 1970 年代,计算机足够快且便宜
+
+Institutions like a university could buy a computer and let students use it.
+大学会买电脑让学生用
+
+It was not only fast enough to run several programs at once,
+计算机不仅能同时运行多个程序,还能让多用户能同时访问
+
+but also give several users simultaneous, interactive access.
+计算机不仅能同时运行多个程序,还能让多用户能同时访问
+
+This was done through a terminal,
+多个用户用"终端"来访问计算机
+
+which is a keyboard and screen that connects to a big computer,
+"终端"只是键盘+屏幕,连到主计算机 \N 终端本身没有处理能力
+
+but doesn't contain any processing power itself.
+"终端"只是键盘+屏幕,连到主计算机 \N 终端本身没有处理能力
+
+A refrigerator-sized computer might have 50 terminals connected to it,
+冰箱大小的计算机可能有50个终端,能让50个用户使用
+
+allowing up to 50 users.
+冰箱大小的计算机可能有50个终端,能让50个用户使用
+
+Now operating systems had to handle not just multiple programs,
+这时操作系统不但要处理多个程序,还要处理多个用户
+
+but also multiple users.
+这时操作系统不但要处理多个程序,还要处理多个用户
+
+So that no one person could gobble up all of a computer's resources,
+为了确保其中一个人 不会占满计算机资源
+
+operating systems were developed that offered time-sharing.
+开发了 分时操作系统
+
+With time-sharing each individual user was only allowed to utilize
+意思是 每个用户只能用一小部分处理器,内存等
+
+a small fraction of the computer's processor, memory, and so on.
+意思是 每个用户只能用一小部分处理器,内存等
+
+Because computers are so fast,
+因为电脑很快 \N 即使拿到 1/50 的资源也足以完成许多任务
+
+even getting just 1/50th of its resources was enough for individuals to complete many tasks.
+因为电脑很快 \N 即使拿到 1/50 的资源也足以完成许多任务
+
+The most influential of early time-sharing Operating Systems was
+早期分时操作系统中,最有影响力的是 \N Multics(多任务信息与计算系统)
+
+Multics, or Multiplexed Information and Computing Service,
+早期分时操作系统中,最有影响力的是 \N Multics(多任务信息与计算系统)
+
+released in 1969.
+于 1969 年发布
+
+Multics was the first major operating system designed to be secure from the outset.
+Multics 是第一个,从设计时就考虑到安全的操作系统
+
+Developers didn't want mischievous users accessing data they shouldn't,
+开发人员不希望恶意用户 访问不该访问的数据
+
+like students attempting to access the final exam on their professor's account.
+比如学生假装成教授,访问期末考试的文件
+
+Features like this meant Multics was really complicated for its time,
+这导致 Multics 的复杂度超过当时的平均水准
+
+using around 1 Megabit of memory, which was a lot back then!
+操作系统会占大约 1 Mb 内存,这在当时很多!
+
+That might be half of a computer's memory, just to run the OS!
+可能是内存的一半,只拿来运行操作系统!
+
+Dennis Ritchie, one of the researchers working on Multics, once said:
+Multics 的研究人员之一 Dennis Ritchie 曾说过
+
+"One of the obvious things that went wrong with Multics as a commercial success
+"阻碍 Multics 获得商业成功的一个明显问题是
+
+was just that it was sort of over-engineered in a sense.
+从某种方面来说,它被过度设计了,功能太多了"
+
+There was just too much in it."
+从某种方面来说,它被过度设计了,功能太多了"
+
+This lead Dennis, and another Multics researcher,
+所以 Dennis 和另一个 Multics 研究员 \N Ken Thompson 联手打造新的操作系统
+
+Ken Thompson, to strike out on their own and build a new, lean operating system
+所以 Dennis 和另一个 Multics 研究员 \N Ken Thompson 联手打造新的操作系统
+
+called Unix.
+叫 Unix
+
+They wanted to separate the OS into two parts:
+他们想把操作系统分成两部分:
+
+First was the core functionality of the OS,
+首先是操作系统的核心功能
+
+things like memory management, multitasking,and dealing with I/O,
+如内存管理,多任务和输入/输出处理 \N 这叫"内核"
+
+which is called the kernel .
+如内存管理,多任务和输入/输出处理 \N 这叫"内核"
+
+The second part was a wide array of useful tools that came bundled with,
+第二部分是一堆有用的工具
+
+but not part of the kernel, things like programs and libraries.
+但它们不是内核的一部分(比如程序和运行库)
+
+Building a compact, lean kernel meant intentionally leaving some functionality out.
+紧凑的内核 意味着功能没有那么全面
+
+Tom Van Vleck, another Multics developer, recalled:
+Multics 的另一个开发者 Tom Van Vleck 回忆说:
+
+"I remarked to Dennis that easily half the code I was writing in Multics was error recovery code."
+"我对 Dennis 说,我在 Multics 写的一半代码都是错误恢复代码"
+
+He said, "We left all that stuff out of Unix.
+他说:"Unix 不会有这些东西
+
+If there's an error, we have this routine called panic,
+如果有错误发生,我们就让内核"恐慌"(panic)
+
+and when it is called, the machine crashes,
+当调用它时,机器会崩溃
+
+and you holler down the hall, 'Hey, reboot it.'""
+你得在走廊里大喊,"嘿,重启电脑"
+
+You might have heard of kernel panics.
+你可能听过 "内核恐慌"(kernel panic)
+
+This is where the term came from.
+这就是这个词的来源
+
+It's literally when the kernel crashes, has no recourse to recover,
+内核如果崩溃,没有办法恢复
+
+and so calls a function called "panic".
+所以调用一个叫"恐慌"(panic)的函数
+
+Originally, all it did was print the word "panic" and then enter an infinite loop.
+起初只是打印"恐慌"一词,然后无限循环
+
+This simplicity meant that Unix could be run on cheaper and more diverse hardware,
+这种简单性意味着 \N Unix 可以在更便宜更多的硬件上运行
+
+making it popular inside Bell Labs, where Dennis and Ken worked.
+使 Unix 在 Dennis 和 Ken 工作的 \N 贝尔实验室大受欢迎
+
+As more developers started using Unix to build and run their own programs,
+越来越多开发人员用 Unix 写程序和运行程序
+
+the number of contributed tools grew.
+工具数量日益增长
+
+Soon after its release in 1971,
+1971 年发布后不久
+
+it gained compilers for different programming languages and even a word processor,
+就有人写了不同编程语言的编译器 \N 甚至文字处理器
+
+quickly making it one of the most popular OSes of the 1970s and 80s.
+使得 Unix 迅速成为 \N 1970~80年代最流行的操作系统之一
+
+At the same time, by the early 1980s,
+到 1980 年代早期
+
+the cost of a basic computer had fallen to the point where individual people could afford one,
+计算机的价格 降到普通人买得起 \N 这些叫"个人电脑"或"家庭电脑"
+
+called a personal or home computer.
+计算机的价格 降到普通人买得起 \N 这些叫"个人电脑"或"家庭电脑"
+
+These were much simpler than the big mainframes
+这些电脑比大型主机简单得多 \N 主机一般在大学,公司和政府
+
+found at universities, corporations, and governments.
+这些电脑比大型主机简单得多 \N 主机一般在大学,公司和政府
+
+So, their operating systems had to be equally simple.
+因此操作系统也得简单
+
+For example, Microsoft's Disk Operating System, or MS-DOS, was just 160 kilobytes,
+举例,微软的磁盘操作系统(MS-DOS)只有 160 kB \N 一张磁盘就可以容纳
+
+allowing it to fit, as the name suggests, onto a single disk.
+举例,微软的磁盘操作系统(MS-DOS)只有 160 kB \N 一张磁盘就可以容纳
+
+First released in 1981, it became the most popular OS for early home computers,
+于 1981 年发布,成为早期家用电脑最受欢迎的操作系统
+
+even though it lacked multitasking and protected memory.
+虽然缺少"多任务"和"保护内存"这样功能
+
+This meant that programs could,
+意味着程序经常使系统崩溃
+
+and would, regularly crash the system.
+意味着程序经常使系统崩溃
+
+While annoying, it was an acceptable tradeoff,
+虽然很讨厌但还可以接受,因为用户可以重启
+
+as users could just turn their own computers off and on again!
+虽然很讨厌但还可以接受,因为用户可以重启
+
+Even early versions of Windows,
+哪怕是微软 1985 年发布的早期 Windows \N 虽然在 90 年代很流行
+
+first released by Microsoft in 1985 and which dominated the OS scene throughout the 1990s,
+哪怕是微软 1985 年发布的早期 Windows \N 虽然在 90 年代很流行
+
+lacked strong memory protection.
+但却缺乏"内存保护"
+
+When programs misbehaved,
+当程序行为不当时,就会"蓝屏"
+
+you could get the blue screen of death,
+当程序行为不当时,就会"蓝屏"
+
+a sign that a program had crashed so badly that it took down the whole operating system.
+代表程序崩溃的非常严重,把系统也带崩溃了
+
+Luckily, newer versions of Windows have better protections and usually don't crash that often.
+幸运的是,新版Windows有更好的保护,不会经常崩溃
+
+Today, computers run modern operating systems,
+如今的计算机 有现代操作系统
+
+like Mac OS X, Windows 10, Linux, iOS and Android.
+比如 Mac OS X,Windows 10 \NLinux,iOS和Android
+
+Even though the computers we own are most often used by just a single person,
+虽然大部分设备只有一个人使用
+
+you!
+你!
+
+their OS all have multitasking and virtual and protected memory.
+操作系统依然有"多任务, "虚拟内存", "内存保护"
+
+So, they can run many programs at once:
+因此可以同时运行多个程序:
+
+you can watch YouTube in your web browser,
+一边在浏览器看 YouTube,一边在 Photoshop 修图
+
+edit a photo in Photoshop,
+一边在浏览器看 YouTube,一边在 Photoshop 修图
+
+play music in Spotify and sync Dropbox all at the same time.
+用 Spotify 放音乐,同步 Dropbox
+
+This wouldn't be possible without those decades of research and development on Operating Systems,
+如果没有操作系统这几十年的发展,这些都不可能,
+
+and of course the proper memory to store those programs.
+当然,我们也需要地方放程序
+
+Which we'll get to next week.
+下周会讨论
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+We've talked about computer memory several times in this series,
+系列中 我们多次谈到内存(Memory)
+
+and we even designed some in Episode 6.
+甚至在第 6 集设计了一个简单内存
+
+In general, computer memory is non-permanent.
+一般来说,电脑内存是 "非永久性"
+
+If your xbox accidently gets unplugged and turns off,
+如果 Xbox 电源线不小心拔掉了,内存里所有数据都会丢失
+
+any data saved in memory is lost.
+如果 Xbox 电源线不小心拔掉了,内存里所有数据都会丢失
+
+For this reason, it's called volatile memory.
+所以内存叫"易失性"存储器
+
+What we haven't talked so much about this series is storage,
+我们还没谈过的话题 是存储器(Storage)
+
+which is a tad different.
+存储器(Storage)和内存(Memory)有点不同
+
+Any data written to storage, like your hard drive,
+任何写入"存储器"的数据,比如你的硬盘 \N 数据会一直存着,直到被覆盖或删除,断电也不会丢失
+
+will stay there until it's over-written or deleted, even if the power goes out.
+任何写入"存储器"的数据,比如你的硬盘 \N 数据会一直存着,直到被覆盖或删除,断电也不会丢失
+
+It's non-volatile.
+存储器是"非易失性"的
+
+It used to be that volatile memory was fast and non-volatile storage was slow,
+以前是"易失性"的速度快,"非易失性"的速度慢
+
+but as computing technologies have improved, this distinction is becoming less true,
+但随着技术发展,两者的差异越来越小
+
+and the terms have started to blend together.
+但随着技术发展,两者的差异越来越小
+
+Nowadays, we take for granted technologies like this little USB stick,
+如今我们认为稀松平常的技术,比如这个 U 盘
+
+which offers gigabytes of memory, reliable over long periods of time, all at low cost,
+能低成本+可靠+长时间 存储上 GB 的数据
+
+but this wasn't always true.
+但以前可不是这样的
+
+The earliest computer storage was paper punch cards,
+最早的存储介质是 打孔纸卡 \N 以及纸卡的亲戚 打孔纸带
+
+and its close cousin, punched paper tape.
+最早的存储介质是 打孔纸卡 \N 以及纸卡的亲戚 打孔纸带
+
+By the 1940s, punch cards had largely standardized into a grid of 80 columns and 12 rows,
+到1940年代,纸卡标准是 80列x12行
+
+allowing for a maximum of 960 bits of data to be stored on a single card.
+一张卡能存 960 位数据 (80x12=960)
+
+The largest program ever punched onto cards, that we know of,
+据我们所知的 最大纸卡程序
+
+was the US Military's Semi-Automatic Ground Environment, or SAGE,
+是美国军方的"半自动地面防空系统" 简称 SAGE
+
+an Air Defense System that became operational in 1958.
+一个在 1958 年投入使用的防空系统
+
+The main program was stored on 62,500 punchcards,
+主程序存储在 62,500 个纸卡上
+
+roughly equivalent to 5 megabytes of data,
+大小 5MB 左右, 相当如今手机拍张照
+
+that's the size of an average smartphone photo today.
+大小 5MB 左右, 相当如今手机拍张照
+
+Punch cards were a useful and popular form of storage for decades,
+纸卡用了十几年,因为不用电而且便宜耐用
+
+they didn't need power, plus paper was cheap and reasonably durable.
+纸卡用了十几年,因为不用电而且便宜耐用
+
+However, punchcards were slow and write-once,
+然而坏处是读取慢,只能写入一次
+
+you can't easily un-punch a hole.
+打的孔无法轻易补上
+
+So they were a less useful form of memory,
+对于存临时值,纸卡不好用
+
+where a value might only be needed for a fraction of a second during a program's execution,
+对于存临时值,纸卡不好用
+
+and then discarded.
+对于存临时值,纸卡不好用
+
+A faster, larger and more flexible form of computer memory was needed.
+我们需要更快更大更灵活的存储方式
+
+An early and practical approach was developed by J. Presper Eckert,
+J. Presper Eckert 在 1944 年建造 ENIAC 时发明了一种方法
+
+as he was finishing work on ENIAC in 1944.
+J. Presper Eckert 在 1944 年建造 ENIAC 时发明了一种方法
+
+His invention was called Delay Line Memory, and it worked like this.
+叫"延迟线存储器"(Delay Line Memory)原理如下
+
+You take a tube and fill it with a liquid, like mercury.
+拿一个管子装满液体,如水银
+
+Then, you put a speaker at one end and microphone at the other.
+管子一端放扬声器,另一端放麦克风
+
+When you pulse the speaker, it creates a pressure wave.
+扬声器发出脉冲时 会产生压力波
+
+This takes time to propagate to the other end of the tube,
+压力波需要时间 传播到另一端的麦克风
+
+where it hits the microphone,
+压力波需要时间 传播到另一端的麦克风
+
+converting it back into an electrical signal.
+麦克风将压力波 转换回电信号.
+
+And we can use this propagation delay to store data!
+我们可以用压力波的传播延迟 来存储数据!
+
+Imagine that the presence of a pressure wave is a 1
+假设有压力波代表 1,没有代表 0
+
+and the absence of a pressure wave is a 0.
+假设有压力波代表 1,没有代表 0
+
+Our speaker can output a binary sequence like 1010 0111.
+扬声器可以输出 1010 0111
+
+The corresponding waves will travel down the tube, in order,
+压力波沿管子传播,过了一会儿,撞上麦克风,
+
+and a little while later, hit the microphone,
+压力波沿管子传播,过了一会儿,撞上麦克风,
+
+which converts the signal back into 1's and 0's.
+将信号转换回 1 和 0
+
+If we create a circuit that connects the microphone to the speaker,
+如果加一个电路,连接麦克风和扬声器
+
+plus a little amplifier to compensate for any loss,
+再加一个放大器(Amplifier)来弥补信号衰弱
+
+we can create a loop that stores data.
+就能做一个存储数据的循环
+
+The signal traveling along the wire is near instantaneous,
+信号沿电线传播几乎是瞬时的,
+
+so there's only ever one bit of data showing at any moment in time.
+所以任何时间点只显示 1 bit 数据
+
+But in the tube, you can store many bits!
+但管子中可以存储多个位(bit)
+
+After working on ENIAC, Eckert and his colleague John Mauchly,
+忙完 ENIAC 后,Eckert 和同事 John Mauchly
+
+set out to build a bigger and better computer called EDVAC, incorporating Delay Line Memory.
+着手做一个更大更好的计算机叫 EDVAC,使用了延迟线存储器
+
+In total, the computer had 128 Delay Lines,
+总共有 128 条延迟线,每条能存 352 位(bits)
+
+each capable of storing 352 bits.
+总共有 128 条延迟线,每条能存 352 位(bits)
+
+That's a grand total of 45 thousands bits of memory,
+总共能存 45,000 位(bit)
+
+not too shabby for 1949!
+对 1949 年来说还不错!
+
+This allowed EDVAC to be one of the very earliest Stored-Program Computers,
+这使得 EDVAC 成为最早的 "存储程序计算机" 之一
+
+which we talked about in Episode 10.
+我们在第 10 集讨论过
+
+However, a big drawback with delay line memory
+但"延迟线存储器"的一大缺点是
+
+is that you could only read one bit of data from a tube at any given instant.
+每一个时刻只能读一位 (bit) 数据
+
+If you wanted to access a specific bit, like bit 112,
+如果想访问一个特定的 bit,比如第 112 位(bit) \N 你得等待它从循环中出现
+
+you'd have to wait for it to come around in the loop,
+如果想访问一个特定的 bit,比如第 112 位(bit) \N 你得等待它从循环中出现
+
+what's called sequential or cyclic-access memory,
+所以又叫 "顺序存储器"或"循环存储器"
+
+whereas we really want random access memory,
+而我们想要的是 "随机存取存储器" \N 可以随时访问任何位置
+
+where we can access any bit at any time.
+而我们想要的是 "随机存取存储器" \N 可以随时访问任何位置
+
+It also proved challenging to increase the density of the memory,
+增加内存密度也是一个挑战
+
+packing waves closer together meant they were more easily mixed up.
+把压力波变得更紧密 意味着更容易混在一起
+
+In response, new forms of delay line memory were invented,
+所以出现了其他类型的 "延迟线存储器"
+
+such as magnetostrictive delay lines .
+如 "磁致伸缩延迟存储器"
+
+These delay lines use a metal wire that could be twisted,
+用金属线的振动来代表数据
+
+creating little torsional waves that represented data.
+用金属线的振动来代表数据
+
+By forming the wire into a coil, you could store around 1000 bits in a 1 foot by 1 foot square.
+通过把线卷成线圈,1英尺×1英尺的面积能存储大概 1000位(bit)
+
+However, delay line memory was largely obsolete by the mid 1950s,
+然而,延迟线存储器在 1950 年代中期就基本过时了
+
+surpassed in performance, reliability and cost by a new kid on the block:
+因为出现了新技术,性能,可靠性和成本都更好
+
+magnetic core memory which was constructed out of little magnetic donuts,
+"磁芯存储器",用了像甜甜圈的小型磁圈
+
+called cores.
+"磁芯存储器",用了像甜甜圈的小型磁圈
+
+If you loop a wire around this core.
+如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向
+
+and run an electrical current through the wire,
+如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向
+
+we can magnetize the core in a certain direction.
+如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向
+
+If we turn the current off, the core will stay magnetized.
+如果关掉电流,磁芯保持磁化
+
+If we pass current through the wire in the opposite direction,
+如果沿相反方向施加电流
+
+the magnetization direction, called polarity,
+磁化的方向(极性)会翻转
+
+flips the other way.
+磁化的方向(极性)会翻转
+
+In this way, we can store 1's and 0's!
+这样就可以存 1 和 0!
+
+1 bit of memory isn't very useful, so these little donuts were arranged into grids.
+如果只存 1 位不够有用,所以把小甜甜圈排列成网格
+
+There were wires for selecting the right row and column, and a wire that ran through every core,
+有电线负责选行和列 \N 也有电线贯穿每个磁芯, 用于读写一位(bit)
+
+which could be used to read or write a bit.
+有电线负责选行和列 \N 也有电线贯穿每个磁芯, 用于读写一位(bit)
+
+Here is an actual piece of core memory!
+我手上有一块磁芯存储器
+
+In each of these little yellow squares, there are 32 rows and 32 columns of tiny cores,
+每个黄色方格 有32行x32列的磁芯 \N 每个磁芯存 1 位数据
+
+each one holding 1 bit of data.
+每个黄色方格 有32行x32列的磁芯 \N 每个磁芯存 1 位数据
+
+So, each of these yellow squares could hold 1024 bits.
+所以能存 1024 位(bit) (32x32=1024)
+
+In total, there are 9 of these,
+总共 9 个黄色方格
+
+so this memory board could hold a maximum of 9216 bits,
+所以这块板子最多能存 9216 位(bit) (1024x9=9216)
+
+which is around 9 kilobytes.
+换算过来大约是 9 千字节 \N (9216 bit ~= 9 kb)
+
+The first big use of core memory was MIT's Whirlwind 1 computer, in 1953,
+磁芯内存的第一次大规模运用\N 是 1953 年麻省理工学院的 Whirlwind 1 计算机
+
+which used a 32 by 32 core arrangement.
+磁芯排列是 32×32
+
+And, instead of just a single plane of cores, like this,
+用了 16 块板子,能存储大约 16000 位(bit)
+
+it was 16 boards deep, providing roughly 16 thousand bits of storage.
+用了 16 块板子,能存储大约 16000 位(bit)
+
+Importantly, unlike delay line memory,
+更重要的是,不像"延迟线存储器" \N 磁芯存储器能随时访问任何一位(bit)
+
+any bit could be accessed at any time.
+更重要的是,不像"延迟线存储器" \N 磁芯存储器能随时访问任何一位(bit)
+
+This was a killer feature,
+这在当时非常了不起
+
+and magnetic core memory became the predominant Random Access Memory technology
+"磁芯存储器" 从 1950 年代中期开始成为主流 \N 流行了 20 多年
+
+for two decades, beginning in the mid 1950
+"磁芯存储器" 从 1950 年代中期开始成为主流 \N 流行了 20 多年
+
+even though it was typically woven by hand!
+而且一般还是手工编织的!
+
+Although starting at roughly 1 dollar per bit,
+刚开始时 存储成本大约 1 美元 1 位(bit) \N 到1970年代,下降到 1 美分左右
+
+the cost fell to around 1 cent per bit by the 1970s.
+刚开始时 存储成本大约 1 美元 1 位(bit) \N 到1970年代,下降到 1 美分左右
+
+Unfortunately, even 1 cent per bit isn't cheap enough for storage.
+不幸的是,即使每位 1 美分也不够便宜
+
+As previously mentioned,
+之前提过,现代手机随便拍张照片都有 5 MB
+
+an average smartphone photo is around 5 megabytes in size,
+之前提过,现代手机随便拍张照片都有 5 MB
+
+that's roughly 40 million bits.
+5MB 约等于 4000 万 bit
+
+Would you pay 4 hundred thousand dollars to store a photo on core memory?
+你愿意花 40 万美元在"磁芯存储器"上存照片吗?
+
+If you have that kind of money to drop,
+如果你有这么多钱
+
+did you know that Crash Course is on Patreon?
+你知道 Crash Course 在 Patreon 有赞助页吗?
+
+Right? Wink wink.
+对吧?你懂的
+
+Anyway, there was tremendous research into storage technologies happening at this time.
+总之,当时对存储技术进行了大量的研究
+
+By 1951, Eckert and Mauchly had started their own company,
+到 1951 年,Eckert 和 Mauchly 创立了自己的公司
+
+and designed a new computer called UNIVAC,
+设计了一台叫 UNIVAC 的新电脑
+
+one of the earliest commercially sold computers.
+最早进行商业销售的电脑之一
+
+It debuted with a new form of computer storage:
+它推出了一种新存储:磁带
+
+magnetic tape.
+它推出了一种新存储:磁带
+
+This was a long, thin and flexible strip of magnetic material, stored in reels.
+磁带是纤薄柔软的一长条磁性带子 卷在轴上
+
+The tape could be moved forwards or backwards inside of a machine called a tape drive.
+磁带可以在"磁带驱动器"内前后移动
+
+Inside is a write head,
+里面有一个"写头"绕了电线,电流通过产生磁场
+
+which passes current through a wound wire to generate a magnetic field,
+里面有一个"写头"绕了电线,电流通过产生磁场
+
+causing a small section of the tape to become magnetized.
+导致磁带的一小部分被磁化
+
+The direction of the current sets the polarity, again, perfect for storing 1's and 0's.
+电流方向决定了极性,代表 1 和 0
+
+There was also a separate read head could detect the polarity non-destructively.
+还有一个"读头",可以非破坏性地检测极性
+
+The UNIVAC used half-inch-wide tape with 8 parallel data tracks,
+UNIVAC 用了半英寸宽,8条并行的磁带
+
+each able to store 128 bits of data per inch.
+磁带每英寸可存 128 位数据
+
+With each reel containing 1200 feet of tape,
+每卷有 1200 英尺长
+
+it meant you could store roughly 15 million bits
+意味着一共可以存 1500 万位左右
+
+- that's almost 2 megabytes!
+- 接近2兆字节!(2 MB)
+
+Although tape drives were expensive,
+虽然磁带驱动器很贵,但磁带又便宜又小
+
+the magnetic tape itself was cheap and compact,
+虽然磁带驱动器很贵,但磁带又便宜又小
+
+and for this reason, they're still used today for archiving data.
+因此磁带至今仍用于存档
+
+The main drawback is access speed.
+磁带的主要缺点是访问速度
+
+Tape is inherently sequential,
+磁带是连续的,必须倒带或快进到达特定位置
+
+you have to rewind or fast-forward to get to data you want.
+磁带是连续的,必须倒带或快进到达特定位置
+
+This might mean traversing hundreds of feet of tape to retrieve a single byte,
+可能要几百英尺才能得到某个字节(byte),这很慢
+
+which is slow.
+可能要几百英尺才能得到某个字节(byte),这很慢
+
+A related popular technology in the 1950s and 60s was Magnetic Drum Memory.
+1950,60年代,有个类似技术是 "磁鼓存储器"
+
+This was a metal cylinder - called a drum - coated in a magnetic material for recording data
+有金属圆筒,盖满了磁性材料以记录数据
+
+The drum was rotated continuously,
+滚筒会持续旋转,周围有数十个读写头
+
+and positioned along its length were dozens of read and write heads.
+滚筒会持续旋转,周围有数十个读写头
+
+These would wait for the right spot to rotate underneath them to read or write a bit of data.
+等滚筒转到正确的位置\N 读写头会读或写 1 位(bit) 数据
+
+To keep this delay as short as possible,
+为了尽可能缩短延迟, 鼓轮每分钟上千转!
+
+drums were rotated thousand of revolutions per minute!
+为了尽可能缩短延迟, 鼓轮每分钟上千转!
+
+By 1953, when the technology started to take off,
+到 1953 年,磁鼓技术飞速发展 \N 可以买到存 80,000 位的"磁鼓存储器"
+
+you could buy units able to record 80,000 bits of data
+到 1953 年,磁鼓技术飞速发展 \N 可以买到存 80,000 位的"磁鼓存储器"
+
+- that's 10 kilobytes,
+- 也就是 10 KB
+
+but the manufacture of drums ceased in the 1970s.
+但到 1970 年代 "磁鼓存储器" 不再生产
+
+However, Magnetic Drums did directly lead to the development of Hard Disk Drives,
+然而,磁鼓导致了硬盘的发展 \N 硬盘和磁鼓很相似
+
+which are very similar, but use a different geometric configuration.
+然而,磁鼓导致了硬盘的发展 \N 硬盘和磁鼓很相似
+
+Instead of large cylinder, hard disks use,
+不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
+
+well disks that are hard.
+不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
+
+Hence the name!
+不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
+
+The storage principle is the same,
+原理是一样的,磁盘表面有磁性
+
+the surface of a disk is magnetic,
+原理是一样的,磁盘表面有磁性
+
+allowing write and read heads to store and retrieve 1's and 0's.
+写入头和读取头 可以处理上面的 1 和 0
+
+The great thing about disks is that they are thin,
+硬盘的好处是薄,可以叠在一起
+
+so you can stack many of them together,
+硬盘的好处是薄,可以叠在一起
+
+providing a lot of surface area for data storage.
+提供更多表面积来存数据
+
+That's exactly what IBM did for the world's first computer with a disk drive:
+IBM 对世上第一台磁盘计算机就是这样做的
+
+the RAMAC 305.
+RAMAC 305
+
+Sweet name BTW.
+顺便一说名字不错
+
+It contained fifty, 24-inch diameter disks,
+它有 50 张 24 英寸直径的磁盘,总共能存 5 MB 左右
+
+offering a total storage capacity of roughly 5 megabytes.
+它有 50 张 24 英寸直径的磁盘,总共能存 5 MB 左右
+
+Yess!! We've finally gotten to a technology that can store a single smartphone photo!
+太棒啦! 终于能存一张现代手机的照片了!这年是 1956 年
+
+The year was 1956.
+太棒啦! 终于能存一张现代手机的照片了!这年是 1956 年
+
+To access any bit of data,
+要访问某个特定 bit
+
+a read/write head would travel up or down the stack to the right disk,
+一个读/写磁头会向上或向下移动,找到正确的磁盘
+
+and then slide in between them.
+然后磁头会滑进去
+
+Like drum memory, the disks are spinning,
+就像磁鼓存储器一样,磁盘也会高速旋转
+
+so the head has to wait for the right section to come around.
+所以读写头要等到正确的部分转过来
+
+The RAMAC 305 could access any block of data, on average, in around 6/10ths of a second,
+RAMAC 305 访问任意数据,平均只要六分之一秒左右
+
+what's called the seek time.
+也叫寻道时间
+
+While great for storage, this was not nearly fast enough for memory,
+虽然六分之一秒对存储器来说算不错 \N 但对内存来说还不够快
+
+so the RAMAC 305 also had drum memory and magnetic core memory.
+所以 RAMAC 305 还有"磁鼓存储器"和"磁芯存储器"
+
+This is an example of a memory hierarchy,
+这是"内存层次结构"的一个例子
+
+where you have a little bit of fast memory, which is expensive,
+一小部分高速+昂贵的内存
+
+slightly more medium-speed memory, which is less expensive,
+一部分稍慢+相对便宜些的内存
+
+and then a lot of slowish memory, which is cheap.
+还有更慢+更便宜的内存
+
+This mixed approach strikes a balance between cost and speed.
+这种混合 在成本和速度间取得平衡
+
+Hard disk drives rapidly improved and became commonplace by the 1970s.
+1970 年代,硬盘大幅度改进并变得普遍
+
+A hard disk like this can easily hold 1 terabyte of data today
+如今的硬盘可以轻易容纳 1TB 的数据
+
+- that's a trillion bytes - or roughly 200,000 five megabyte photos!
+能存 20 万张 5MB 的照片!
+
+And these types of drives can be bought online for as little as 40 US dollars.
+网上最低 40 美元就可以买到
+
+That's 0.0000000005 cents per bit.
+每 bit 成本 0.0000000005 美分
+
+A huge improvement over core memory's 1 cent per bit!
+比磁芯内存 1 美分 1 bit 好多了!
+
+Also, modern drives have an average seek time of under 1/100th of a second.
+另外,现代硬盘的平均寻道时间低于 1/100 秒
+
+I should also briefly mention a close cousin of hard disks, the floppy disk,
+我简单地提一下硬盘的亲戚,软盘
+
+which is basically the same thing, but uses a magnetic medium that's, floppy.
+除了磁盘是软的,其他基本一样
+
+You might recognise it as the save icon on some of your applications,
+你可能见过某些程序的保存图标是一个软盘
+
+but it was once a real physical object!
+软盘曾经是真实存在的东西!
+
+It was most commonly used for portable storage,
+软盘是为了便携,在 1970~1990 非常流行
+
+and became near ubiquitous from the mid 1970s up to the mid 90s.
+软盘是为了便携,在 1970~1990 非常流行
+
+And today it makes a pretty good coaster.
+如今当杯垫挺不错的
+
+Higher density floppy disks, like Zip Disks,
+密度更高的软盘,如 Zip Disks,在90年代中期流行起来
+
+became popular in the mid 1990s,
+密度更高的软盘,如 Zip Disks,在90年代中期流行起来
+
+but fell out of favor within a decade.
+但十年内就消失了
+
+Optical storage came onto the scene in 1972, in the form of a 12-inch "laser disc."
+光学存储器于 1972 年出现,12 英寸的"激光盘"
+
+However, you are probably more familiar with its later, smaller, are more popular cousin,
+你可能对后来的产品更熟:光盘(简称 CD)
+
+the Compact Disk, or CD,
+你可能对后来的产品更熟:光盘(简称 CD)
+
+as well as the DVD which took off in the 90s.
+以及 90 年代流行的 DVD
+
+Functionally, these technologies are pretty similar to hard disks and floppy disks,
+功能和硬盘软盘一样,都是存数据.
+
+but instead of storing data magnetically,
+但用的不是磁性
+
+optical disks have little physical divots in their surface that cause light to be reflected differently,
+光盘表面有很多小坑,造成光的不同反射
+
+which is captured by an optical sensor, and decoded into 1's and 0's.
+光学传感器会捕获到,并解码为 1 和 0
+
+However, today, things are moving to solid state technologies, with no moving parts,
+如今,存储技术在朝固态前进,没有机械活动部件
+
+like this hard drive and also this USB stick.
+比如这个硬盘,以及 U 盘
+
+Inside are Integrated Circuits,
+里面是集成电路,我们在第 15 集讨论过
+
+which we talked about in Episode 15.
+里面是集成电路,我们在第 15 集讨论过
+
+The first RAM integrated circuits became available in 1972 at 1 cent per bit,
+第一个 RAM 集成电路出现于 1972 年 \N 成本每比特 1 美分
+
+quickly making magnetic core memory obsolete.
+使"磁芯存储器"迅速过时
+
+Today, costs have fallen so far,
+如今成本下降了更多 \N 机械硬盘 被 固态硬盘 逐渐替代,简称 SSD
+
+that hard disk drives are being replaced with non-volatile,
+如今成本下降了更多 \N 机械硬盘 被 固态硬盘 逐渐替代,简称 SSD
+
+Solid State Drives, or SSDs, as the cool kids say.
+如今成本下降了更多 \N 机械硬盘 被 固态硬盘 逐渐替代,简称 SSD
+
+Because they contain no moving parts,
+由于 SSD 没有移动部件
+
+they don't really have to seek anywhere,
+磁头不用等磁盘转
+
+so SSD access times are typically under 1/1000th of a second.
+所以 SSD 访问时间低于 1/1000 秒
+
+That's fast!
+这很快!
+
+But it's still many times slower than your computer's RAM.
+但还是比 RAM 慢很多倍
+
+For this reason, computers today still use memory hierarchies.
+所以现代计算机 仍然用存储层次结构
+
+So, we've come along way since the 1940s.
+我们从 1940 年代到现在进步巨大
+
+Much like transistor count and Moore's law,
+就像在第 14 集讨论过的 晶体管数量和摩尔定律
+
+which we talked about in Episode 14,
+就像在第 14 集讨论过的 晶体管数量和摩尔定律
+
+memory and storage technologies have followed a similar exponential trend.
+内存和存储技术也有类似的趋势
+
+From early core memory costing millions of dollars per megabyte, we're steadily fallen,
+从早期每 MB 成本上百万美元,下滑到
+
+to mere cents by 2000, and only fractions of a cent today.
+2000 年只要几分钱,如今远远低于 1 分钱
+
+Plus, there's WAY less punch cards to keep track of.
+完全没有打孔纸卡
+
+Seriously, can you imagine if there was a slight breeze in that room containing the SAGE program?
+你能想象 SEGA 的纸卡房间风一吹会怎样吗?
+
+62,500 punch cards.
+62,500 张卡
+
+I don't even want to think about it.
+我想都不敢想
+
+I'll see you next week.
+我们下周见
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode we talked about data storage, how technologies like magnetic tape and hard
+上集我们讲了数据存储,磁带和硬盘这样的技术
+
+disks can store trillions of bits of data,
+可以在断电状态长时间存上万亿个位
+
+for long durations, even without power.
+可以在断电状态长时间存上万亿个位
+
+Which is perfect for recording "big blobs" of related data,
+非常合适存一整块有关系的数据,或者说"文件"
+
+what are more commonly called computer files.
+非常合适存一整块有关系的数据,或者说"文件"
+
+You've no doubt encountered many types,
+你肯定见过很多种文件 \N 比如文本文件,音乐文件,照片和视频
+
+like text files, music files, photos and videos.
+你肯定见过很多种文件 \N 比如文本文件,音乐文件,照片和视频
+
+Today, we're going to talk about how files work,
+今天,我们要讨论文件到底是什么 \N 以及计算机怎么管理文件
+
+and how computers keep them all organized with File Systems.
+今天,我们要讨论文件到底是什么 \N 以及计算机怎么管理文件
+
+It's perfectly legal for a file to contain arbitrary, unformatted data,
+随意排列文件数据完全没问题,但按格式排会更好
+
+but it's most useful and practical if the data inside the file is organized somehow.
+随意排列文件数据完全没问题,但按格式排会更好
+
+This is called a file format.
+这叫 "文件格式"
+
+You can invent your own, and programmers do that from time to time,
+你可以发明自己的文件格式,程序员偶尔会这样做
+
+but it's usually best and easiest to use an existing standard, like JPEG and MP3.
+但最好用现成标准,比如 JPEG 和 MP3
+
+Let's look at some simple file formats.
+来看一些简单文件格式,最简单的是文本文件
+
+The most straightforward are text files,
+来看一些简单文件格式,最简单的是文本文件
+
+also know as TXT file, which contain...surprise! text.
+也叫 TXT 文件, 里面包含的是... 文字 (惊喜吧)
+
+Like all computer files, this is just a huge list of numbers, stored as binary.
+就像所有其它文件,文本文件只是一长串二进制数
+
+If we look at the raw values of a text file in storage, it would look something like this:
+原始值看起来会像这样:
+
+We can view this as decimal numbers instead of binary,
+可以转成十进制看,但帮助不大
+
+but that still doesn't help us read the text.
+可以转成十进制看,但帮助不大
+
+The key to interpreting this data is knowing that TXT files use ASCII,
+解码数据的关键是 ASCII 编码
+
+a character encoding standard we discussed way back in Episode 4.
+一种字符编码标准,第 4 集讨论过.
+
+So, in ASCII, our first value, 72, maps to the capital letter H.
+第一个值 72 \N 在 ASCII 中是大写字母 H
+
+And in this way, we decode the whole file.
+以此类推 解码其他数字
+
+Let's look at a more complicated example: a WAVE File, also called a WAV,
+来看一个更复杂的例子:波形(Wave)文件,也叫 WAV \N 它存音频数据
+
+which stores audio.
+来看一个更复杂的例子:波形(Wave)文件,也叫 WAV \N 它存音频数据
+
+Before we can correctly read the data, we need to know some information,
+在正确读取数据前,需要知道一些信息
+
+like the bit rate and whether it's a single track or stereo.
+比如码率(bit rate),以及是单声道还是立体声
+
+Data about data, is called meta data.
+关于数据的数据,叫"元数据"(meta data)
+
+This metadata is stored at the front of the file, ahead of any actual data,
+元数据存在文件开头,在实际数据前面 \N 因此也叫 文件头(Header)
+
+in what's known as a Header.
+元数据存在文件开头,在实际数据前面 \N 因此也叫 文件头(Header)
+
+Here's what the first 44 bytes of a WAV file looks like.
+WAV 文件的前 44 个字节长这样
+
+Some parts are always the same, like where it spells out W-A-V-E.
+有的部分总是一样的,比如写着 WAVE 的部分
+
+Other parts contain numbers that change depending on the data contained within.
+其他部分的内容,会根据数据变化
+
+The audio data comes right behind the metadata, and it's stored as a long list of numbers.
+音频数据紧跟在元数据后面,是一长串数字
+
+These values represent the amplitude of sound captured many times per second, and if you
+数字代表每秒捕获多次的声音幅度
+
+want a primer on sound, check out our video all about it in Crash Course Physics.
+如果想学声音的基础知识 \N 可以看物理速成课第18集
+
+Link in the dobblydoo.
+如果想学声音的基础知识 \N 可以看物理速成课第18集
+
+As an example, let's look at a waveform of me saying: "hello!" Hello!
+举个例子,看一下"你好"的波形
+
+Now that we've captured some sound, let's zoom into a little snippet.
+现在捕获到了一些声音,我们放大看一下
+
+A digital microphone, like the one in your computer or smartphone,
+电脑和手机麦克风,每秒可以对声音进行上千次采样
+
+samples the sound pressure thousands of times.
+电脑和手机麦克风,每秒可以对声音进行上千次采样
+
+Each sample can be represented as a number.
+每次采样可以用一个数字表示
+
+Larger numbers mean higher sound pressure, what's called amplitude.
+声压越高数字越大,也叫"振幅"
+
+And these numbers are exactly what gets stored in a WAVE file!
+WAVE 文件里存的就是这些数据!
+
+Thousands of amplitudes for every single second of audio!
+每秒上千次的振幅!
+
+When it's time to play this file, an audio program needs to actuate the computer's speakers
+播放声音文件时,扬声器会产生相同的波形
+
+such that the original waveform is emitted.
+播放声音文件时,扬声器会产生相同的波形
+
+"Hello!"
+"你好!"
+
+So, now that you're getting the hang of file formats, let's talk about bitmaps or
+现在来谈谈 位图(Bitmap),后缀 .bmp, 它存图片
+
+BMP, which store pictures.
+现在来谈谈 位图(Bitmap),后缀 .bmp, 它存图片
+
+On a computer, Pictures are made up of little tiny square elements called pixels.
+计算机上,图片由很多个叫"像素"的方块组成
+
+Each pixel is a combination of three colors: red, green and blue.
+每个像素由三种颜色组成:红,绿,蓝
+
+These are called additive primary colors, and they can be mixed together to create any
+叫"加色三原色",混在一起可以创造其它颜色
+
+other color on our electronic displays.
+叫"加色三原色",混在一起可以创造其它颜色
+
+Now, just like WAV files, BMPs start with metadata,
+就像 WAV 文件一样,BMP 文件开头也是元数据 \N 有图片宽度,图片高度,颜色深度
+
+including key values like image width, image height, and color depth.
+就像 WAV 文件一样,BMP 文件开头也是元数据 \N 有图片宽度,图片高度,颜色深度
+
+As an example, let's say the metadata specified an image 4 pixels wide, by 4 pixels tall,
+举例,假设元数据说图是 4像素宽 x 4像素高
+
+with a 24-bit color depth - that's 8-bits for red, 8-bits for green, and 8-bits for blue.
+颜色深度 24 位\N 8 位红色,8 位绿色,8 位蓝色
+
+As a reminder, 8 bits is the same as one byte.
+提醒一下,8位 (bit) 和 1字节(byte)是一回事
+
+The smallest number a byte can store is 0, and the largest is 255.
+一个字节能表示的最小数是 0,最大 255
+
+Our image data is going to look something like this:
+图像数据看起来会类似这样:\N 来看看第一个像素的颜色
+
+Let's look at the color of our first pixel.
+图像数据看起来会类似这样:\N 来看看第一个像素的颜色
+
+It has 255 for its red value, 255 for green and 255 for blue.
+红色是255,绿色是255,蓝色也是255
+
+This equates to full intensity red, full intensity green and full intensity blue.
+这等同于全强度红色,全强度绿色和全强度蓝色
+
+These colors blend together on your computer monitor to become white.
+混合在一起变成白色
+
+So our first pixel is white!
+所以第一个像素是白色!
+
+The next pixel has a Red-Green-Blue, or RGB value of 255, 255, 0.
+下一个像素的红绿蓝值,或 RGB 值 \N 255,255,0 是黄色!
+
+That's the color yellow!
+下一个像素的红绿蓝值,或 RGB 值 \N 255,255,0 是黄色!
+
+The pixel after that has a RGB value of 0,0,0 - that's zero intensity everything, which is black.
+下一个像素是 0,0,0 ,黑色
+
+And the next one is yellow.
+下一个是黄色
+
+Because the metadata specified this was a 4 by 4 image, we know that we've reached
+因为元数据说图片是 4x4 \N 我们知道现在到了第一行结尾
+
+the end of our first row of pixels.
+因为元数据说图片是 4x4 \N 我们知道现在到了第一行结尾
+
+So, we need to drop down a row.
+所以换一行
+
+The next RGB value is 255,255,0 yellow again.
+下一个 RGB 值是 255,255,0,又是黄色
+
+Okay, let's go ahead and read all the pixels in our 4x4 image tada!
+好,我们读完剩下的像素
+
+A very low resolution pac-man!
+一个低分辨率的吃豆人
+
+Obviously this is a simple example of a small image,
+刚才显然只是一个简单例子,但这张图片也可以用 BMP 存
+
+but we could just as easily store this image in a BMP.
+刚才显然只是一个简单例子,但这张图片也可以用 BMP 存
+
+I want to emphasize again that it doesn't matter if it's a text file, WAV,
+我想再次强调,不管是文本文件,WAV,BMP
+
+BMP, or fancier formats we don't have time to discuss,
+或是我们没时间讨论的其他格式
+
+Under the hood, they're all the same: long lists of numbers, stored as binary, on a storage device.
+文件在底层全是一样的: 一长串二进制
+
+File formats are the key to reading and understanding the data inside.
+为了知道文件是什么,文件格式至关重要
+
+Now that you understand files a little better, let's move on to
+现在你对文件更了解了 \N 我们接下来讨论计算机怎么存文件
+
+how computers go about storing them.
+现在你对文件更了解了 \N 我们接下来讨论计算机怎么存文件
+
+Even though the underlying storage medium might be
+虽然硬件可能是磁带,磁鼓,磁盘或集成电路
+
+a strip of tape, a drum, a disk, or integrated circuits...
+虽然硬件可能是磁带,磁鼓,磁盘或集成电路
+
+hardware and software abstractions let us think of storage as a
+通过软硬件抽象后,可以看成一排能存数据的桶
+
+long line of little buckets that store values.
+通过软硬件抽象后,可以看成一排能存数据的桶
+
+In the early days, when computers only performed one computation
+在很早期时,计算机只做一件事,比如算火炮射程表 \N 整个储存器就像一整个文件
+
+like calculating artillery range tables. the entire storage operated like one big file.
+在很早期时,计算机只做一件事,比如算火炮射程表 \N 整个储存器就像一整个文件
+
+Data started at the beginning of storage, and then filled it up in order as output was
+数据从头存到尾,直到占满
+
+produced, up to the storage capacity.
+数据从头存到尾,直到占满
+
+However, as computational power and storage capacity improved, it became possible, and
+但随着计算能力和存储容量的提高 \N 存多个文件变得非常有用
+
+useful, to store more than one file at a time.
+但随着计算能力和存储容量的提高 \N 存多个文件变得非常有用
+
+The simplest option is to store files back-to-back.
+最简单的方法 是把文件连续存储
+
+This can work... but how does the computer know where files begin and end?
+这样能用, \N 但怎么知道文件开头和结尾在哪里?
+
+Storage devices have no notion of files C they're just a mechanism for storing lots of bits.
+储存器没有文件的概念,只是存储大量位
+
+So, for this to work, we need to have a special file that records where other ones are located.
+所以为了存多个文件 \N 需要一个特殊文件,记录其他文件的位置
+
+This goes by many names, but a good general term is Directory File.
+这个特殊文件有很多名字,这里泛称 "目录文件"
+
+Most often, it's kept right at the front of storage, so we always know where to access it.
+这个文件经常存在最开头,方便找
+
+Location zero!
+位置 0!
+
+Inside the Directory File are the names of all the other files in storage.
+目录文件里,存所有其他文件的名字
+
+In our example, they each have a name, followed by a period
+格式是文件名 + 一个句号 + 扩展名,比如 BMP 或 WAV
+
+and end with what's called a File Extension, like "BMP" or "WAV".
+格式是文件名 + 一个句号 + 扩展名,比如 BMP 或 WAV
+
+Those further assist programs in identifying file types.
+扩展名帮助得知文件类型
+
+The Directory File also stores metadata about these files, like when they were created and
+目录文件还存文件的元数据,比如创建时间
+
+last modified, who the owner is, and if it can be read, written or both.
+最后修改时间,文件所有者是谁\N是否能读/写 或读写都行
+
+But most importantly, the directory file contains where these files
+最重要的是,目录文件有文件起始位置和长度
+
+begin in storage, and how long they are.
+最重要的是,目录文件有文件起始位置和长度
+
+If we want to add a file, remove a file, change a filename, or similar,
+如果要添加文件,删除文件,更改文件名等
+
+we have to update the information in the Directory File.
+必须更新目录文件
+
+It's like the Table of Contents in a book, if you make a chapter shorter, or move it
+就像书的目录,如果缩短或移动了一个章节 \N 要更新目录,不然页码对不上
+
+somewhere else, you have to update the table of contents, otherwise the page numbers won't match!
+就像书的目录,如果缩短或移动了一个章节 \N 要更新目录,不然页码对不上
+
+The Directory File, and the maintenance of it, is an example of a very basic File System,
+目录文件,以及对目录文件的管理 \N 是一个非常简单的文件系统例子
+
+the part of an Operating System that manages and keep track of stored files.
+文件系统专门负责管理文件
+
+This particular example is a called a Flat File System, because they're all stored at one level.
+刚刚的例子叫"平面文件系统" \N因为文件都在同一个层次
+
+It's flat!
+平的!
+
+Of course, packing files together, back-to-back, is a bit of a problem,
+当然,把文件前后排在一起 有个问题
+
+because if we want to add some data to let's say "todo.txt",
+如果给 todo.txt 加一点数据 \N 会覆盖掉后面 carrie.bmp 的一部分
+
+there's no room to do it without overwriting part of "carrie.bmp".
+如果给 todo.txt 加一点数据 \N 会覆盖掉后面 carrie.bmp 的一部分
+
+So modern File Systems do two things.
+所以现代文件系统会做两件事
+
+First, they store files in blocks.
+1. 把空间划分成一块块 \N 导致有一些 "预留空间" 可以方便改动
+
+This leaves a little extra space for changes, called slack space.
+1. 把空间划分成一块块 \N 导致有一些 "预留空间" 可以方便改动
+
+It also means that all file data is aligned to a common size, which simplifies management.
+同时也方便管理
+
+In a scheme like this, our Directory File needs to keep track of
+用这样的方案,目录文件要记录文件在哪些块里
+
+what block each one is stored in.
+用这样的方案,目录文件要记录文件在哪些块里
+
+The second thing File Systems do, is allow files to be broken up into chunks
+2. 拆分文件,存在多个块里
+
+and stored across many blocks.
+2. 拆分文件,存在多个块里
+
+So let's say we open "todo.txt", and we add a few more items then the file becomes
+假设打开 todo.txt 加了些内容\N 文件太大存不进一块里
+
+too big to be saved in its one block.
+假设打开 todo.txt 加了些内容\N 文件太大存不进一块里
+
+We don't want to overwrite the neighboring one, so instead, the File System allocates
+我们不想覆盖掉隔壁的块,所以文件系统会分配 \N 一个没使用的块,容纳额外的数据
+
+an unused block, which can accommodate extra data.
+我们不想覆盖掉隔壁的块,所以文件系统会分配 \N 一个没使用的块,容纳额外的数据
+
+With a File System scheme like this, the Directory File needs to store
+目录文件会记录不止一个块,而是多个块
+
+not just one block per file, but rather a list of blocks per file.
+目录文件会记录不止一个块,而是多个块
+
+In this way, we can have files of variable sizes that can be easily
+只要分配块,文件可以轻松增大缩小
+
+expanded and shrunk, simply by allocating and deallocating blocks.
+只要分配块,文件可以轻松增大缩小
+
+If you watched our episode on Operating Systems, this should sound a lot like Virtual Memory.
+如果你看了第18集 操作系统 \N 这听起来很像"虚拟内存"
+
+Conceptually it's very similar!
+概念上讲的确很像!
+
+Now let's say we want to delete "carrie.bmp".
+假设想删掉 carrie.bmp \N 只需要在目录文件删掉那条记录
+
+To do that, we can simply remove the entry from the Directory File.
+假设想删掉 carrie.bmp \N 只需要在目录文件删掉那条记录
+
+This, in turn, causes one block to become free.
+让一块空间变成了可用
+
+Note that we didn't actually erase the file's data in storage, we just deleted the record of it.
+注意这里没有擦除数据,只是把记录删了
+
+At some point, that block will be overwritten with new data, but until then, it just sits there.
+之后某个时候,那些块会被新数据覆盖 \N 但在此之前,数据还在原处
+
+This is one way that computer forensic teams can "recover" data from computers even
+所以计算机取证团队可以"恢复"数据
+
+though people think it has been deleted. Crafty!
+虽然别人以为数据已经"删了", 狡猾!
+
+Ok, let's say we add even more items to our todo list, which causes the File System
+假设往 todo.txt 加了更多数据 \N 所以操作系统分配了一个新块,用了刚刚 carrie.bmp 的块
+
+to allocate yet another block to the file, in this case,
+假设往 todo.txt 加了更多数据 \N 所以操作系统分配了一个新块,用了刚刚 carrie.bmp 的块
+
+recycling the block freed from carrie.bmp.
+假设往 todo.txt 加了更多数据 \N 所以操作系统分配了一个新块,用了刚刚 carrie.bmp 的块
+
+Now our "todo.txt" is stored across 3 blocks, spaced apart, and also out of order.
+现在 todo.txt 在 3 个块里,隔开了,顺序也是乱的
+
+Files getting broken up across storage like this is called fragmentation.
+这叫碎片
+
+It's the inevitable byproduct of files being created, deleted and modified.
+碎片是增/删/改文件导致的,不可避免
+
+For many storage technologies, this is bad news.
+对很多存储技术来说,碎片是坏事
+
+On magnetic tape, reading todo.txt into memory would require
+如果 todo.txt 存在磁带上,读取文件要
+
+seeking to block 1, then fast forwarding to block 5, and then rewinding to block 3
+先读块1, 然后快进到块5,然后往回转到块2
+
+that's a lot of back and forth!
+来回转个半天
+
+In real world File Systems, large files might be stored across hundreds of blocks,
+现实世界中,大文件可能存在数百个块里
+
+and you don't want to have to wait five minutes for your files to open.
+你可不想等五分钟才打开文件
+
+The answer is defragmentation!
+答案是碎片整理!
+
+That might sound like technobabble, but the process is really simple,
+这个词听起来好像很复杂,但实际过程很简单
+
+and once upon a time it was really fun to watch!
+以前看计算机做碎片整理 真的很有趣!
+
+The computer copies around data so that files have blocks located together
+计算机会把数据来回移动,排列成正确的顺序
+
+in storage and in the right order.
+计算机会把数据来回移动,排列成正确的顺序
+
+After we've defragged, we can read our todo file,
+整理后 todo.txt 在 1 2 3,方便读取.
+
+now located in blocks 1 through 3, in a single, quick read pass.
+整理后 todo.txt 在 1 2 3,方便读取.
+
+So far, we've only been talking about Flat File Systems,
+目前只说了平面文件系统,文件都在同一个目录里.
+
+where they're all stored in one directory.
+目前只说了平面文件系统,文件都在同一个目录里.
+
+This worked ok when computers only had a little bit of storage,
+如果存储空间不多,这可能就够用了 \N 因为只有十几个文件
+
+and you might only have a dozen or so files.
+如果存储空间不多,这可能就够用了 \N 因为只有十几个文件
+
+But as storage capacity exploded, like we discussed last episode,
+但上集说过,容量爆炸式增长,文件数量也飞速增长
+
+so did the number of files on computers.
+但上集说过,容量爆炸式增长,文件数量也飞速增长
+
+Very quickly, it became impractical to store all files together at one level.
+很快,所有文件都存在同一层变得不切实际
+
+Just like documents in the real world, it's handy to store related files together in folders.
+就像现实世界\N 相关文件放在同一个文件夹会方便很多
+
+Then we can put connected folders into folders, and so on.
+然后文件夹套文件夹.
+
+This is a Hierarchical File System, and its what your computer uses.
+这叫"分层文件系统",你的计算机现在就在用这个.
+
+There are a variety of ways to implement this, but let's stick with the File System example
+实现方法有很多种,我们用之前的例子来讲重点好了
+
+we've been using to convey the main idea.
+实现方法有很多种,我们用之前的例子来讲重点好了
+
+The biggest change is that our Directory File needs to be able to point not just to files,
+最大的变化是 目录文件不仅要指向文件, 还要指向目录
+
+but also other directories.
+最大的变化是 目录文件不仅要指向文件, 还要指向目录
+
+To keep track of what's a file and what's a directory, we need some extra metadata.
+我们需要额外元数据 来区分开文件和目录,
+
+This Directory File is the top-most one, known as the Root Directory.
+这个目录文件在最顶层,因此叫根目录
+
+All other files and folders lie beneath this directory along various file paths.
+所有其他文件和文件夹,都在根目录下
+
+We can see inside of our "Root" Directory File that we have 3 files
+图中可以看到根目录文件有3个文件 \N 2个子文件夹:"音乐"和"照片"
+
+and 2 subdirectories: music and photos.
+图中可以看到根目录文件有3个文件 \N 2个子文件夹:"音乐"和"照片"
+
+If we want to see what's stored in our music directory, we have to go to that block and
+如果想知道"音乐"文件夹里有什么 \N 必须去那边读取目录文件(格式和根目录文件一样)
+
+read the Directory File located there; the format is the same as our root directory.
+如果想知道"音乐"文件夹里有什么 \N 必须去那边读取目录文件(格式和根目录文件一样)
+
+There's a lot of great songs in there!
+有很多好歌啊!
+
+In addition to being able to create hierarchies of unlimited depth,
+除了能做无限深度的文件夹 \N 这个方法也让我们可以轻松移动文件
+
+this method also allows us to easily move around files.
+除了能做无限深度的文件夹 \N 这个方法也让我们可以轻松移动文件
+
+So, if we wanted to move "theme.wav" from our root directory to the music directory,
+如果想把 theme.wav 从根目录移到音乐目录
+
+we don't have to re-arrange any blocks of data.
+不用移动任何数据块
+
+We can simply modify the two Directory Files, removing an entry from one and adding it to another.
+只需要改两个目录文件 \N 一个文件里删一条记录,另一个文件里加一条记录
+
+Importantly, the theme.wav file stays in block 5.
+theme.wav 依然在块5
+
+So that's a quick overview of the key principles of File Systems.
+文件系统的几个重要概念 现在介绍完了.
+
+They provide yet another way to move up a new level of abstraction.
+它提供了一层新抽象!
+
+File systems allow us to hide the raw bits stored on magnetic tape, spinning disks and
+文件系统使我们不必关心 \N 文件在磁带或磁盘的具体位置
+
+the like, and they let us think of data as neatly organized and easily accessible files.
+整理和访问文件更加方便
+
+We even started talking about users, not programmers, manipulating data,
+我们像普通用户一样直观操纵数据,比如打开和整理文件
+
+like opening files and organizing them,
+我们像普通用户一样直观操纵数据,比如打开和整理文件
+
+foreshadowing where the series will be going in a few episodes.
+接下来几集也会从用户角度看问题
+
+I'll see you next week.
+下周见
+
+This episode is brought to you by Curiosity Stream.
+本集由 Curiosity Stream 赞助播出
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode we talked about Files, bundles of data, stored on a computer, that
+上集我们讨论了文件格式,如何编码文字,声音,图片
+
+are formatted and arranged to encode information, like text, sound or images.
+上集我们讨论了文件格式,如何编码文字,声音,图片
+
+We even discussed some basic file formats, like text, wave, and bitmap.
+还举了具体例子 .txt .wav .bmp
+
+While these formats are perfectly fine and still used today,
+这些格式虽然管用,而且现在还在用 \N 但它们的简单性意味着效率不高
+
+their simplicity also means they're not very efficient.
+这些格式虽然管用,而且现在还在用 \N 但它们的简单性意味着效率不高
+
+Ideally, we want files to be as small as possible, so we can store lots of them without filling
+我们希望文件能小一点,这样能存大量文件,传输也会快一些
+
+up our hard drives, and also transmit them more quickly.
+我们希望文件能小一点,这样能存大量文件,传输也会快一些
+
+Nothing is more frustrating than waiting for an email attachment to download. Ugh!
+等邮件附件下载烦死人了
+
+The answer is compression, which literally squeezes data into a smaller size.
+解决方法是 压缩,把数据占用的空间压得更小
+
+To do this, we have to encode data using fewer bits than the original representation.
+用更少的位(bit)来表示数据
+
+That might sound like magic, but it's actually computer science!
+听起来像魔法,但其实是计算机科学!
+
+Lets return to our old friend from last episode, Mr. Pac-man!
+我们继续用上集的 吃豆人例子,图像是 4像素x4像素
+
+This image is 4 pixels by 4 pixels.
+我们继续用上集的 吃豆人例子,图像是 4像素x4像素
+
+As we discussed, image data is typically stored as a list of pixel values.
+之前说过,图像一般存成一长串像素值
+
+To know where rows end, image files have metadata, which defines properties like dimensions.
+为了知道一行在哪里结束 \N 图像要有元数据,写明尺寸等属性
+
+But, to keep it simple today, we're not going to worry about it.
+但为了简单起见,今天忽略这些细节
+
+If you mix full intensity red, green and blue - that's 255 for all
+如果红绿蓝都是 255 会得到白色
+
+three values - you get the color white.
+如果红绿蓝都是 255 会得到白色
+
+If you mix full intensity red and green, but no blue (it's 0), you get yellow.
+如果混合 255红色和255绿色,会得到黄色
+
+We have 16 pixels in our image, and each of those needs 3 bytes of color data.
+这个图像有16个像素(4x4), 每个像素3个字节
+
+That means this image's data will consume 48 bytes of storage.
+总共占48个字节(16x3=48)
+
+But, we can compress the data and pack it into a smaller number of bytes than 48!
+但我们可以压缩到少于 48 个字节
+
+One way to compress data is to reduce repeated or redundant information.
+一种方法是 减少重复信息
+
+The most straightforward way to do this is called Run-Length Encoding.
+最简单的方法叫 游程编码(Run-Length Encoding)
+
+This takes advantage of the fact that there are often runs of identical values in files.
+适合经常出现相同值的文件
+
+For example, in our pac-man image, there are 7 yellow pixels in a row.
+比如吃豆人 有7个连续黄色像素
+
+Instead of encoding redundant data: yellow pixel, yellow pixel, yellow pixel, and so
+与其全存下来:黄色,黄色,黄色...
+
+on, we can just say "there's 7 yellow pixels in a row" by inserting
+可以插入一个额外字节,代表有7个连续黄色像素
+
+an extra byte that specifies the length of the run, like so:
+可以插入一个额外字节,代表有7个连续黄色像素
+
+And then we can eliminate the redundant data behind it.
+然后删掉后面的重复数据.
+
+To ensure that computers don't get confused with which bytes are run lengths and which
+为了让计算机能分辨哪些字节是"长度" 哪些字节是"颜色" \N 格式要一致
+
+bytes represent color, we have to be consistent in how we apply this scheme.
+为了让计算机能分辨哪些字节是"长度" 哪些字节是"颜色" \N 格式要一致
+
+So, we need to preface all pixels with their run-length.
+所以我们要给所有像素前面标上长度
+
+In some cases, this actually adds data, but on the whole, we've dramatically reduced
+有时候数据反而会变多,但就这个例子而言
+
+the number of bytes we need to encode this image.
+我们大大减少了字节数,之前是48 现在是24
+
+We're now at 24 bytes, down from 48.
+我们大大减少了字节数,之前是48 现在是24
+
+That's 50% smaller!
+小了50%!省了很多空间!
+
+A huge saving!
+小了50%!省了很多空间!
+
+Also note that we haven't lost any data.
+还有,我们没有损失任何数据 \N 我们可以轻易恢复到原来的数据
+
+We can easily expand this back to the original form without any degradation.
+还有,我们没有损失任何数据 \N 我们可以轻易恢复到原来的数据
+
+A compression technique that has this characteristic is called
+这叫"无损压缩",没有丢失任何数据
+
+lossless compression, because we don't lose anything.
+这叫"无损压缩",没有丢失任何数据
+
+The decompressed data is identical to the original before compression, bit for bit.
+解压缩后,数据和压缩前完全一样
+
+Let's take a look at another type of lossless compression, where
+我们来看另一种无损压缩,它用更紧凑的方式表示数据块
+
+blocks of data are replaced by more compact representations.
+我们来看另一种无损压缩,它用更紧凑的方式表示数据块
+
+This is sort of like " don't forget to be awesome " being replaced by DFTBA.
+有点像 "别忘了变厉害" 简写成 DFTBA
+
+To do this, we need a dictionary that stores the mapping from codes to data.
+为此,我们需要一个字典,存储"代码"和"数据"间的对应关系
+
+Lets see how this works for our example.
+我们看个例子
+
+We can view our image as not just a string of individual pixels,
+我们可以把图像看成一块块,而不是一个个像素
+
+but as little blocks of data.
+我们可以把图像看成一块块,而不是一个个像素
+
+For simplicity, we're going to use pixel pairs, which are 6 bytes long,
+为了简单,我们把2个像素当成1块(占6个字节)
+
+but blocks can be any size.
+但你也可以定成其他大小
+
+In our example, there are only four pairings: White-yellow, black-yellow,
+我们只有四对: 白黄 黑黄 黄黄 白白
+
+yellow-yellow and white-white.
+我们只有四对: 白黄 黑黄 黄黄 白白
+
+Those are the data blocks in our dictionary we want to generate compact codes for.
+我们会为这四对 生成紧凑代码(compact codes)
+
+What's interesting, is that these blocks occur at different frequencies.
+有趣的是,这些块的出现频率不同
+
+One method for generating efficient codes is building a Huffman Tree, invented by David
+1950年代 大卫·霍夫曼 发明了一种高效编码方式叫 \N "霍夫曼树"(Huffman Tree) 当时他是麻省理工学院的学生
+
+Huffman while he was a student at MIT in the 1950s.
+1950年代 大卫·霍夫曼 发明了一种高效编码方式叫 \N "霍夫曼树"(Huffman Tree) 当时他是麻省理工学院的学生
+
+His algorithm goes like this.
+算法是这样的
+
+First, you layout all the possible blocks and their frequencies.
+首先,列出所有块和出现频率,每轮选两个最低的频率
+
+At every round, you select the two with the lowest frequencies.
+首先,列出所有块和出现频率,每轮选两个最低的频率
+
+Here, that's Black-Yellow and White-White, each with a frequency of 1.
+这里 黑黄 和 白白 的频率最低,它们都是 1
+
+You combine these into a little tree. which have a combined frequency of 2,
+可以把它们组成一个树,总频率 2
+
+so we record that.
+可以把它们组成一个树,总频率 2
+
+And now one step of the algorithm done.
+现在完成了一轮算法
+
+Now we repeat the process.
+现在我们重复这样做
+
+This time we have three things to choose from.
+这次有3个可选
+
+Just like before, we select the two with the lowest frequency, put them into a little tree,
+就像上次一样,选频率最低的两个,放在一起,并记录总频率
+
+and record the new total frequency of all the sub items.
+就像上次一样,选频率最低的两个,放在一起,并记录总频率
+
+Ok, we're almost done.
+好,我们快完成了
+
+This time it's easy to select the two items with the lowest frequency
+这次很简单,因为只有2个选择
+
+because there are only two things left to pick.
+这次很简单,因为只有2个选择
+
+We combine these into a tree, and now we're done!
+把它们组合成一棵树就完成了!
+
+Our tree looks like this, and it has a very cool property: it's arranged by frequency,
+现在看起来像这样,它有一个很酷的属性:按频率排列
+
+with less common items lower down.
+频率低的在下面
+
+So, now we have a tree, but you may be wondering how this gets us to a dictionary.
+现在有了一棵树,你可能在想 "怎么把树变成字典?"
+
+Well, we use our frequency-sorted tree to generate the codes we need
+我们可以把每个分支用 0 和 1 标注,就像这样
+
+by labeling each branch with a 0 or a 1, like so.
+我们可以把每个分支用 0 和 1 标注,就像这样
+
+With this, we can write out our code dictionary.
+现在可以生成字典
+
+Yellow-yellow is encoded as just a single 0. White-yellow is encoded as 10
+黄黄 编码成 0 \N 白黄 编码成 10 \N 黑黄 编码成 110 \N 白白 编码成 111
+
+Black-Yellow is 1 1 0. and finally white-white is 1 1 1.
+黄黄 编码成 0 \N 白黄 编码成 10 \N 黑黄 编码成 110 \N 白白 编码成 111
+
+The really cool thing about these codewords is that there's no way to
+酷的地方是 它们绝对不会冲突
+
+have conflicting codes, because each path down the tree is unique.
+因为树的每条路径是唯一的
+
+This means our codes are prefix-free, that is no code starts with another complete code.
+意味着代码是"无前缀"的,没有代码是以另一个代码开头的
+
+Now, let's return to our image data and compress it!
+现在我们来压缩!
+
+-- NOT BYTES -- BITS!! That's less than 2 bytes of data!
+注意是位(bit)! 不是字节(byte)! \N 14位(bit) 还不到2个字节(byte)!
+
+But, don't break out the champagne quite yet!
+但,先别急着开香槟!
+
+This data is meaningless unless we also save our code dictionary.
+字典也要保存下来,否则 14 bit 毫无意义
+
+So, we'll need to append it to the front of the image data, like this.
+所以我们把字典 加到 14 bit 前面,就像这样
+
+Now, including the dictionary, our image data is 30 bytes long.
+现在加上字典,图像是 30 个字节(bytes) \N 比 48 字节好很多
+
+That's still a significant improvement over 48 bytes.
+现在加上字典,图像是 30 个字节(bytes) \N 比 48 字节好很多
+
+The two approaches we discussed,
+"消除冗余"和"用更紧凑的表示方法",这两种方法通常会组合使用
+
+removing redundancies and using more compact representations, are often combined,
+"消除冗余"和"用更紧凑的表示方法",这两种方法通常会组合使用
+
+and underlie almost all lossless compressed file formats,
+几乎所有无损压缩格式都用了它们 \N 比如 GIF, PNG, PDF, ZIP
+
+like GIF, PNG, PDF and ZIP files.
+几乎所有无损压缩格式都用了它们 \N 比如 GIF, PNG, PDF, ZIP
+
+Both run-length encoding and dictionary coders are lossless compression techniques.
+游程编码 和 字典编码 都是无损压缩
+
+No information is lost; when you decompress, you get the original file.
+压缩时不会丢失信息,解压后,数据和之前完全一样
+
+That's really important for many types of files.
+无损对很多文件很重要
+
+Like, it'd be very odd if I zipped up a word document to send to you,
+比如我给你发了个压缩的 word 文档\N 你解压之后发现内容变了,这就很糟糕了
+
+and when you decompressed it on your computer, the text was different.
+比如我给你发了个压缩的 word 文档\N 你解压之后发现内容变了,这就很糟糕了
+
+But, there are other types of files where we can get away with little changes, perhaps
+但其他一些文件,丢掉一些数据没什么关系
+
+by removing unnecessary or less important information, especially information
+丢掉那些人类看不出区别的数据
+
+that human perception is not good at detecting.
+丢掉那些人类看不出区别的数据
+
+And this trick underlies most lossy compression techniques.
+大多数有损压缩技术,都用到了这点
+
+These tend to be pretty complicated, so we're going to attack this at a conceptual level.
+实际细节比较复杂,所以我们讲概念就好
+
+Let's take sound as an example.
+以声音为例,你的听力不是完美的
+
+Your hearing is not perfect.
+以声音为例,你的听力不是完美的
+
+We can hear some frequencies of sound better than others.
+有些频率我们很擅长,其他一些我们根本听不见,比如超声波
+
+And there are some we can't hear at all, like ultrasound.
+有些频率我们很擅长,其他一些我们根本听不见,比如超声波
+
+Unless you're a bat.
+除非你是蝙蝠
+
+Basically, if we make a recording of music, and there's data in the ultrasonic frequency range,
+举个例子,如果录音乐,超声波数据都可以扔掉 \N 因为人类听不到超声波
+
+we can discard it, because we know that humans can't hear it.
+举个例子,如果录音乐,超声波数据都可以扔掉 \N 因为人类听不到超声波
+
+On the other hand, humans are very sensitive to frequencies in the vocal range, like people
+另一方面,人类对人声很敏感,所以应该尽可能保持原样
+
+singing, so it's best to preserve quality there as much as possible.
+另一方面,人类对人声很敏感,所以应该尽可能保持原样
+
+Deep bass is somewhere in between.
+低音介于两者之间,人类听得到,但不怎么敏感
+
+Humans can hear it, but we're less attuned to it.
+低音介于两者之间,人类听得到,但不怎么敏感
+
+We mostly sense it.
+一般是感觉到震动
+
+Lossy audio compressors takes advantage of this, and encode different
+有损音频压缩利用这一点,用不同精度编码不同频段
+
+frequency bands at different precisions.
+有损音频压缩利用这一点,用不同精度编码不同频段
+
+Even if the result is rougher, it's likely that users won't perceive the difference.
+听不出什么区别,不会明显影响体验
+
+Or at least it doesn't dramatically affect the experience.
+听不出什么区别,不会明显影响体验
+
+And here comes the hate mail from the audiophiles!
+音乐发烧友估计要吐槽了!
+
+You encounter this type of audio compression all the time.
+日常生活中你会经常碰到这类音频压缩
+
+It's one of the reasons you sound different on a cellphone versus in person.
+所以你在电话里的声音 和现实中不一样
+
+The audio data is being compressed, allowing more people to take calls at once.
+压缩音频是为了让更多人能同时打电话
+
+As the signal quality or bandwidth get worse, compression algorithms remove more data,
+如果网速变慢了,压缩算法会删更多数据
+
+further reducing precision, which is why Skype calls sometimes sound like robots talking.
+进一步降低声音质量,所以 Skype 通话有时听起来像机器人
+
+Compared to an uncompressed audio format, like a WAV or FLAC (there we go, got the audiophiles back)
+和没压缩的音频格式相比,比如 WAV 或 FLAC \N ( 这下音乐发烧友满意了)
+
+compressed audio files, like MP3s, are often 10 times smaller.
+压缩音频文件如 MP3,能小10倍甚至更多.
+
+That's a huge saving!
+省了超多空间!
+
+And it's why I've got a killer music collection on my retro iPod.
+所以我的旧 iPod 上有一堆超棒的歌
+
+Don't judge.
+别批判我
+
+This idea of discarding or reducing precision in a manner that aligns with human perception
+这种删掉人类无法感知的数据的方法,叫"感知编码"
+
+is called perceptual coding,
+这种删掉人类无法感知的数据的方法,叫"感知编码"
+
+and it relies on models of human perception,
+它依赖于人类的感知模型,模型来自"心理物理学"领域
+
+which come from a field of study called Psychophysics.
+它依赖于人类的感知模型,模型来自"心理物理学"领域
+
+This same idea is the basis of lossy compressed image formats, most famously JPEGs.
+这是各种"有损压缩图像格式"的基础,最著名的是 JPEG
+
+Like hearing, the human visual system is imperfect.
+就像听力一样,人的视觉系统也不是完美的.
+
+We're really good at detecting sharp contrasts, like the edges of objects,
+我们善于看到尖锐对比,比如物体的边缘
+
+but our perceptual system isn't so hot with subtle color variations.
+但我们看不出颜色的细微变化
+
+JPEG takes advantage of this by breaking images up into blocks of 8x8 pixels,
+JPEG 利用了这一点,把图像分解成 8x8 像素块
+
+then throwing away a lot of the high-frequency spatial data.
+然后删掉大量高频率空间数据
+
+For example, take this photo of our directors dog - Noodle.
+举个例子,这是导演的狗,面面
+
+So cute!
+超可爱!
+
+Let's look at a patch of 8x8 pixels.
+我们来看其中一个 8x8 像素
+
+Pretty much every pixel is different from its neighbor,
+几乎每个像素都和相邻像素不同,用无损技术很难压缩 \N 因为太多不同点了
+
+making it hard to compress with loss-less techniques because there's just a lot going on.
+几乎每个像素都和相邻像素不同,用无损技术很难压缩 \N 因为太多不同点了
+
+Lots of little details.
+很多小细节
+
+But human perception doesn't register all those details.
+但人眼看不出这些细节
+
+So, we can discard a lot of that detail, and replace it with a simplified patch like this.
+因此可以删掉很多,用这样一个简单的块来代替
+
+This maintains the visual essence, but might only use 10% of the data.
+这看起来一样,但可能只占10%的原始数据
+
+We can do this for all the patches in the image and get this result.
+我们可以对所有 8x8 块做一样的操作
+
+You can still see it's a dog, but the image is rougher.
+图片依然可以认出是一只狗,只是更粗糙一些
+
+So, that's an extreme example, going from a slightly compressed JPEG to a highly compressed one,
+以上例子比较极端,进行了高度压缩,只有原始大小的八分之一
+
+one-eighth the original file size.
+以上例子比较极端,进行了高度压缩,只有原始大小的八分之一
+
+Often, you can get away with a quality somewhere in between, and perceptually,
+通常你可以取得平衡,图片看起来差不多,但文件小不少
+
+it's basically the same as the original.
+通常你可以取得平衡,图片看起来差不多,但文件小不少
+
+Can you tell the difference between the two?
+你看得出两张图的区别吗?
+
+Probably not, but I should mention that video compression plays a role in that too,
+估计看不出,但我想提一下,视频压缩也造成了影响
+
+since I'm literally being compressed in a video right now.
+毕竟你现在在看视频啊
+
+Videos are really just long sequences of images, so a lot of what I said
+视频只是一长串连续图片 \N 所以图片的很多方面也适用于视频
+
+about them applies here too.
+视频只是一长串连续图片 \N 所以图片的很多方面也适用于视频
+
+But videos can do some extra clever stuff, because between frames,
+但视频可以做一些小技巧 \N 因为帧和帧之间很多像素一样
+
+a lot of pixels are going to be the same.
+但视频可以做一些小技巧 \N 因为帧和帧之间很多像素一样
+
+Like this whole background behind me!
+比如我后面的背景!
+
+This is called temporal redundancy.
+这叫 时间冗余
+
+We don't need to re-transmit those pixels every frame of the video.
+视频里不用每一帧都存这些像素 \N 可以只存变了的部分
+
+We can just copy patches of data forward.
+视频里不用每一帧都存这些像素 \N 可以只存变了的部分
+
+When there are small pixel differences, like the readout on this frequency generator behind me,
+当帧和帧之间有小小的差异时,比如后面这个频率发生器
+
+most video formats send data that encodes just the difference between patches,
+很多视频编码格式,只存变化的部分
+
+which is more efficient than re-transmitting all the pixels afresh, again taking advantage
+这比存所有像素更有效率 \N 利用了帧和帧之间的相似性
+
+of inter-frame similarity.
+这比存所有像素更有效率 \N 利用了帧和帧之间的相似性
+
+The fanciest video compression formats go one step further.
+更高级的视频压缩格式 会更进一步
+
+They find patches that are similar between frames, and not only copy them forward, with
+找出帧和帧之间相似的补丁 \N 然后用简单效果实现,比如移动和旋转
+
+or without differences, but also can apply simple effects to them, like a shift or rotation.
+找出帧和帧之间相似的补丁 \N 然后用简单效果实现,比如移动和旋转
+
+They can also lighten or darken a patch between frames.
+变亮和变暗
+
+So, if I move my hand side to side like this the video compressor will identify the similarity,
+如果我这样摆手,视频压缩器会识别到相似性
+
+capture my hand in one or more patches, then just move these patches around between frames.
+用一个或多个补丁代表我的手,然后帧之间直接移动这些补丁
+
+You're actually seeing my hand from the past kinda freaky, but it uses a lot less data.
+所以你看到的是我过去的手(不是实时的)\N 有点可怕 但数据量少得多
+
+MPEG-4 videos, a common standard, are often 20 to 200 times
+MPEG-4 是常见标准,可以比原文件小20倍到200倍
+
+smaller than the original, uncompressed file.
+MPEG-4 是常见标准,可以比原文件小20倍到200倍
+
+However, encoding frames as translations and rotations of patches from previous frames
+但用补丁的移动和旋转 来更新画面
+
+can go horribly wrong when you compress too heavily, and there isn't
+当压缩太严重时会出错 \N 没有足够空间更新补丁内的像素
+
+enough space to update pixel data inside of the patches.
+当压缩太严重时会出错 \N 没有足够空间更新补丁内的像素
+
+The video player will forge ahead, applying the right motions,
+即使补丁是错的,视频播放器也会照样播放
+
+even if the patch data is wrong.
+即使补丁是错的,视频播放器也会照样播放
+
+And this leads to some hilarious and trippy effects, which I'm sure you've seen.
+导致一些怪异又搞笑的结果,你肯定见过这些.
+
+Overall, it's extremely useful to have compression techniques for all the types of data I discussed today.
+总的来说,压缩对大部分文件类型都有用
+
+(I guess our imperfect vision and hearing are "useful," too.)
+从这个角度来讲,人类不完美的视觉和听觉 也算有用
+
+And it's important to know about compression because it allows users to
+学习压缩非常重要 \N 因为可以高效存储图片,音乐,视频
+
+store pictures, music, and videos in efficient ways.
+学习压缩非常重要 \N 因为可以高效存储图片,音乐,视频
+
+Without it, streaming your favorite Carpool Karaoke videos on YouTube would be nearly impossible,
+如果没有压缩 \N 在 YouTube 看"明星拼车唱歌"几乎不可能
+
+due to bandwidth and the economics of transmitting that volume of data for free.
+因为你的带宽可能不够(会很卡) \N 而且供应商不愿意免费传输那么多数据
+
+And now when your Skype calls sound like they're being taken over by demons,
+现在你知道为什么打 Skype 电话 \N 有时像在和恶魔通话
+
+you'll know what's really going on.
+现在你知道为什么打 Skype 电话 \N 有时像在和恶魔通话
+
+I'll see you next week.
+下周见
+
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+We've talked a lot about inputs and outputs in this series,
+我们之前讨论过 输入输出 \N 但都是计算机组件互相输入输出
+
+but they've mostly been between different parts of a computer
+我们之前讨论过 输入输出 \N 但都是计算机组件互相输入输出
+
+like outputting data from RAM or inputting instructions to a CPU.
+比如 RAM 输出数据,或输指令进 CPU
+
+We haven't discussed much about inputs coming from humans.
+我们还没讲 来自人类的输入
+
+We also haven't learned how people get information out of a computer,
+也没讲怎么从电脑中拿出信息,除了用打孔纸卡
+
+other than by printing or punching it onto paper.
+也没讲怎么从电脑中拿出信息,除了用打孔纸卡
+
+Of course, there's a wide variety of input and output devices that
+当然,有很多种 "输入输出设备" \N 让我们和计算机交互
+
+allow us users to communicate with computers.
+当然,有很多种 "输入输出设备" \N 让我们和计算机交互
+
+They provide an interface between human and computer.
+它们在人类和机器间提供了界面
+
+And today, there's a whole field of study called Human-Computer Interaction.
+如今有整个学科专门研究这个,叫 "人机交互"
+
+These interfaces are so fundamental to the user experience
+界面对用户体验非常重要 \N 所以是我们接下来几集的重点
+
+that they're the focus of the next few episodes.
+界面对用户体验非常重要 \N 所以是我们接下来几集的重点
+
+As we discussed at the very beginning of the series,
+在系列开头的几集,我们提过
+
+the earliest mechanical and electro-mechanical computing devices
+早期机械计算设备 \N 用齿轮,旋钮和开关等机械结构来输入输出
+
+used physical controls for inputs and outputs, like gears, knobs and switches,
+早期机械计算设备 \N 用齿轮,旋钮和开关等机械结构来输入输出
+
+and this was pretty much the extent of the human interface.
+这些就是交互界面
+
+Even the first electronic computers, like Colossus and ENIAC,
+甚至早期电子计算机 比如 Colossus 和 ENIAC
+
+were configured using huge panels of mechanical controls and patch wires.
+也是用一大堆机械面板和线 来操作
+
+It could take weeks to enter in a single program, let alone run it,
+输入一个程序可能要几星期,还没提运行时间.
+
+and to get data out after running a program, results were most often printed to paper.
+运行完毕后想拿出数据,一般是打印到纸上
+
+Paper printers were so useful
+打印机超有用
+
+that even Babbage designed one for his Difference Engine,
+甚至 查尔斯·巴贝奇 都给差分机专门设计了一个
+
+and that was in the 1820s!
+那可是 1820 年代!
+
+However, by the 1950s, mechanical inputs were rendered obsolete
+然而,到 1950 年代,机械输入完全消失
+
+by programs and data stored entirely on mediums like punch cards and magnetic tape.
+因为出现了打孔纸卡和磁带
+
+Paper printouts were still used for the final output,
+但输出仍然是打印到纸上
+
+and huge banks of indicator lights were developed
+还有大量指示灯,在运行中提供实时反馈
+
+to provide real time feedback while the program was in progress.
+还有大量指示灯,在运行中提供实时反馈
+
+It's important to recognize that computer input of this era was
+那个时代的特点是 尽可能迁就机器 \N 对人类好不好用是其次
+
+designed to be as simple and robust as possible for computers.
+那个时代的特点是 尽可能迁就机器 \N 对人类好不好用是其次
+
+Ease and understanding for users was a secondary concern.
+那个时代的特点是 尽可能迁就机器 \N 对人类好不好用是其次
+
+Punch tape is a great example
+打孔纸带就是个好例子
+
+this was explicitly designed to be easy for computers to read.
+就是为了方便计算机读取
+
+The continuous nature of tape made it easy to handle mechanically,
+纸带是连续的,方便机器处理
+
+and the holes could be reliably detected with a mechanical or optical system,
+纸孔可以方便地 用机械或光学手段识别
+
+which encoded instructions and data.
+纸孔可以编码程序和数据
+
+But of course, humans don't think in terms of little punched holes on strips of paper.
+当然, 人类不是以纸孔方式思考的.
+
+So, the burden was on programmers.
+所以负担放到了程序员身上
+
+They had to spend the extra time and effort to convert their ideas and programs
+他们要花额外时间和精力 \N 转成计算机能理解的格式
+
+into a language and a format that was easy for computers of the era to understand
+他们要花额外时间和精力 \N 转成计算机能理解的格式
+
+often with the help of additional staff and auxiliary devices.
+一般需要额外人员和设备帮忙
+
+It's also important to note that early computers, basically pre-1950,
+要注意的是,基本上 1950 年前的早期计算机 \N "输入"的概念很原始
+
+had an extremely simple notion of human input.
+要注意的是,基本上 1950 年前的早期计算机 \N "输入"的概念很原始
+
+Yes, humans input programs and data into computers,
+是的,的确是人类负责输入程序和数据 \N 但计算机不会交互式回应
+
+but these machines generally didn't respond interactively to humans.
+是的,的确是人类负责输入程序和数据 \N 但计算机不会交互式回应
+
+Once a program was started, it typically ran until it was finished.
+程序开始运行后会一直运行 直到结束
+
+That's because these machines were way too expensive to be
+因为机器太贵了 \N 不能等人类慢慢敲命令和给数据
+
+waiting around for humans to type a command or enter data.
+因为机器太贵了 \N 不能等人类慢慢敲命令和给数据
+
+Any input needed for a computation was fed in at the same time as the program.
+要同时放入程序和数据
+
+This started to change in the late 1950s.
+这在 1950 年代晚期开始发生变化
+
+On one hand, smaller-scale computers started to become cheap enough
+一方面,小型计算机变得足够便宜
+
+that it was feasible to have a human-in-the loop;
+让人类来回和计算机交互 变得可以接受
+
+that is, a back and forth between human and computer.
+交互式就是人和计算机之间来回沟通
+
+And on the other hand,
+而另一方面
+
+big fancy computers became fast and sophisticated enough to support many programs and users at once,
+大型计算机变得更快,能同时支持多个程序和多个用户
+
+what were called multitasking and time-sharing systems .
+这叫"多任务"和"分时系统"
+
+But these computers needed a way to get input from users.
+但交互式操作时 \N 计算机需要某种方法来获得用户输入
+
+For this, computers borrowed the ubiquitous data entry mechanism of the era: keyboards.
+所以借用了当时已经存在的数据录入机制:键盘
+
+At this point, typing machines had already been in use for a few centuries,
+当时,打字机已经存在几个世纪了
+
+but it was Christopher Latham Sholes, who invented the modern typewriter in 1868.
+但现代打字机是 \N克里斯托弗·莱瑟姆·肖尔斯 在 1868 年发明的
+
+It took until 1874 to refine the design and manufacture it,
+虽然到 1874 年才完成设计和制造
+
+but it went on to be a commercial success.
+但之后取得了商业成功
+
+Sholes' typewriter adopted an unusual keyboard layout that you know well QWERTY
+肖尔斯 的打字机用了不寻常的布局,QWERTY
+
+named for the top-left row of letter keys.
+名字来自键盘左上角按键
+
+There has been a lot of speculation as to why this design was used.
+为什么这么设计 有很多猜测
+
+The most prevalent theory is that it put common letter pairings in English far apart
+最流行的理论是 这样设计是为了 \N 把常见字母放得远一些,避免按键卡住
+
+to reduce the likelihood of typebars jamming when entered in sequence.
+最流行的理论是 这样设计是为了 \N 把常见字母放得远一些,避免按键卡住
+
+It's a convenient explanation, but it's also probably false,
+这个解释虽然省事,但可能是错的,或至少不够全面
+
+or at least not the full story.
+这个解释虽然省事,但可能是错的,或至少不够全面
+
+In fact, QWERTY puts many common letter pairs together,
+事实上,QWERTY 把很多常见字母放在了一起 \N 比如 TH 和 ER
+
+like "TH" and "ER".
+事实上,QWERTY 把很多常见字母放在了一起 \N 比如 TH 和 ER
+
+And we know that Sholes and his team went through many iterations
+我们知道 肖尔斯和他的团队设计了很多版 \N 才进化到这个布局
+
+before arriving at this iconic arrangement.
+我们知道 肖尔斯和他的团队设计了很多版 \N 才进化到这个布局
+
+Regardless of the reason, the commercial success of Sholes' typewriter meant
+总之,肖尔斯 的打字机取得了成功 \N 所以其它公司很快开始抄他的设计
+
+the competitor companies that soon followed duplicated his design.
+总之,肖尔斯 的打字机取得了成功 \N 所以其它公司很快开始抄他的设计
+
+Many alternative keyboard layouts have been proposed over the last century,
+过去一个世纪有不少新的键盘布局被发明,宣称各种好处
+
+claiming various benefits.
+过去一个世纪有不少新的键盘布局被发明,宣称各种好处
+
+But, once people had invested the time to learn QWERTY,
+但人们已经熟悉了 QWERTY 布局 \N 根本不想学新布局
+
+they just didn't want to learn something new.
+但人们已经熟悉了 QWERTY 布局 \N 根本不想学新布局
+
+This is what economists would call a switching barrier or switching cost.
+这是经济学家所说的 转换成本
+
+And it's for this very basic human reason
+所以现在都快1个半世纪了 \N 我们还在用 QWERTY 键盘布局
+
+that we still use QWERTY keyboards almost a century and a half later!
+所以现在都快1个半世纪了 \N 我们还在用 QWERTY 键盘布局
+
+I should mention that QWERTY isn't universal.
+我应该提一下,QWERTY 不是通用的
+
+There are many international variants,
+有很多变体,比如法国 AZERTY 布局
+
+like the French AZERTY layout,
+有很多变体,比如法国 AZERTY 布局
+
+or the QWERTZ layout common in central Europe.
+以及中欧常见的 QWERTZ 布局
+
+Interestingly, Sholes didn't envision that typing would ever be faster than handwriting,
+有趣的是,肖尔斯 根本没想到打字会比手写快
+
+which is around 20 words per minute.
+手写速度大约是每分钟 20 个
+
+Typewriters were introduced chiefly for legibility and standardization of documents, not speed.
+打字机主要为了易读性和标准化,而不是速度
+
+However, as they became standard equipment in offices, the desire for speedy typing grew,
+然而随着打字机成为办公室标配 \N 对快速打字的渴望越来越大
+
+and there were two big advances that unlocked typing's true potential.
+有两个重大进步 解放了打字的潜力
+
+Around 1880, Elizabeth Longley, a teacher at the Cincinnati Shorthand and Type-Writer Institute,
+1880年左右,辛辛那提速记学院 \N 一名叫 伊丽莎白·朗利 的老师
+
+started to promote ten-finger typing.
+开始推广 十指打字
+
+This required much less finger movement than hunt-and-peck,
+比一个手指打字要移动的距离短得多,所以速度更快
+
+so it offered enhanced typing speeds.
+比一个手指打字要移动的距离短得多,所以速度更快
+
+Then, a few years later, Frank Edward McGurrin, a federal court clerk in Salt Lake City,
+几年后,弗兰克·爱德华·麦克格林 \N 盐湖城的一位联邦法庭书记
+
+taught himself to touch-type; as in, he didn't need to look at the keys while typing.
+学会了盲打,打字时不用看键盘
+
+In 1888, McGurrin won a highly publicized typing-speed contest,
+1888年,麦格高林 赢了备受关注的打字速度比赛
+
+after which ten-finger, touch-typing began to catch on.
+之后"十指盲打"开始流行
+
+Professional typists were soon able to achieve speeds upwards of 100 words per minute,
+专业打字员 每分钟 100 字以上
+
+much faster than handwriting!
+比手写快多了!而且清晰又整洁!
+
+And nice and neat too!
+比手写快多了!而且清晰又整洁!
+
+So, humans are pretty good with typewriters,
+虽然人类擅长用打字机
+
+but we can't just plunk down a typewriter in front of a computer and have it type
+但我们没法把打字机塞到计算机面前,让它打字
+
+they have no fingers!
+计算机又没有手指
+
+Instead, early computers adapted a special type of typewriter that was used for telegraphs,
+所以早期计算机用了一种特殊打字机,是专门用来发电报的,
+
+called a teletype machine.
+叫 电传打字机
+
+These were electromechanically-augmented typewriters
+这些打字机是强化过的,可以用电报线发送和接收文本
+
+that can send and receive text over telegraph lines.
+这些打字机是强化过的,可以用电报线发送和接收文本
+
+Pressing a letter on one teletype keyboard would cause a signal to be sent,
+按一个字母,信号会通过电报线,发到另一端
+
+over telegraph wires, to a teletype machine on the other end,
+按一个字母,信号会通过电报线,发到另一端
+
+which would then electromechanically type that letter.
+另一端的电传打字机会打出来
+
+This allowed two humans to type to one another over long distances.
+使得两人可以长距离沟通
+
+basically a steampunk version of a chat room.
+基本是个蒸汽朋克版聊天室
+
+Since these teletype machines already had an electronic interface,
+因为电传打字机有电子接口,稍作修改就能用于计算机
+
+they were easily adapted for computer use,
+因为电传打字机有电子接口,稍作修改就能用于计算机
+
+and teletype computer interfaces were common in the 1960s and 70s.
+电传交互界面在 1960~1970 很常见
+
+Interaction was pretty straightforward.
+用起来很简单
+
+Users would type a command, hit enter, and then the computer would type back.
+输入一个命令,按回车,然后计算机会输回来
+
+This text "conversation" between a user and a computer went back and forth.
+用户和计算机来回"对话"
+
+These were called command line interfaces,
+这叫"命令行界面"
+
+and they remained the most prevalent form of human-computer interaction
+它是最主要的人机交互方式,一直到 1980 年代
+
+up until around the 1980s.
+它是最主要的人机交互方式,一直到 1980 年代
+
+Command Line interaction on a teletype machine looks something like this.
+用电传打字机的命令行交互 类似这样:
+
+A user can type any number of possible commands.
+用户可以输入各种命令
+
+Let's check out a few,
+我们来看几个命令,先看当前目录有什么文件
+
+beginning with seeing all of the files in the current directory we're in.
+我们来看几个命令,先看当前目录有什么文件
+
+For this, we would type the command, "ls", which is short for list,
+输入命令 ls,名字来自 list 的缩写
+
+and the computer replies with a list of the files in our current directory.
+然后计算机会列出 当前目录里的所有文件
+
+If we want to see what's in our "secretStarTrekDiscoveryCast.txt.txt file",
+如果想看 secretStarTrekDiscoveryCast.txt 有什么
+
+we use yet another command to display the contents.
+要用另一个命令 显示文件内容
+
+In unix, we can call "cat" - short for concatenate.
+unix 用 cat 命令显示文件内容 \N cat 是连接(concatenate)的缩写
+
+We need to specify which file to display, so we include that after the command, called an argument.
+然后指定文件名,指定的方法是写在 cat 命令后面 \N 传给命令的值叫 参数
+
+If you're connected to a network with other users,
+如果同一个网络里有其他人
+
+you can use a primitive version of a Find My Friends app
+你可以用 finger 命令找朋友 \N 就像是个很原始的"找朋友" App
+
+to get more info on them with the command "finger".
+你可以用 finger 命令找朋友 \N 就像是个很原始的"找朋友" App
+
+Electromechanical teletype machines
+电传打字机 直到1970年代左右都是主流交互方式
+
+were the primary computing interface for most users up until around the 1970s.
+电传打字机 直到1970年代左右都是主流交互方式
+
+Although computer screens first emerged in the 1950s,
+尽管屏幕最早出现在 1950 年代 \N 但对日常使用太贵 而且分辨率低
+
+and were used for graphics they were too expensive and low resolution for everyday use.
+尽管屏幕最早出现在 1950 年代 \N 但对日常使用太贵 而且分辨率低
+
+However, mass production of televisions for the consumer market, and general improvements
+然而因为针对普通消费者的电视机开始量产 \N 同时处理器与内存也在发展
+
+in processors and memory, meant that by 1970, it was economically viable
+到1970年代,屏幕代替电传打字机 变得可行
+
+to replace electromechanical teletype machines with screen-based equivalents.
+到1970年代,屏幕代替电传打字机 变得可行
+
+But rather than build a whole new standard to interface computers with these screens,
+但与其为屏幕 专门做全新的标准
+
+engineers simply recycled the existing text-only, teletype protocol.
+工程师直接用现有的 电传打字机协议
+
+These machines used a screen, which simulated endless paper.
+屏幕就像无限长度的纸 \N 除了输入和输出字,没有其它东西
+
+It was text in and text out, nothing more.
+屏幕就像无限长度的纸 \N 除了输入和输出字,没有其它东西
+
+The protocol was identical, so computers couldn't even tell if it was paper or a screen.
+协议是一样的,所以计算机分不出是纸还是屏幕
+
+These virtual teletype or glass teletype machines became known as terminals .
+这些"虚拟电传打字机"或"玻璃电传打字机"\N 叫 终端
+
+By 1971, it was estimated, in the United States,
+到1971年,美国大约有 7 万台电传打字机 \N 以及 7 万个终端
+
+there was something on the order of 70,000 electro-mechanical teletype machines
+到1971年,美国大约有 7 万台电传打字机 \N 以及 7 万个终端
+
+and 70,000 screen-based terminals in use.
+到1971年,美国大约有 7 万台电传打字机 \N 以及 7 万个终端
+
+Screens were so much better, faster and more flexible, though.
+屏幕又好又快又灵活
+
+Like, you could delete a mistake and it would disappear.
+如果删一个错别字 会立刻消失
+
+So, by the end of the 1970s, screens were standard.
+所以到 1970 年代末 屏幕成了标配
+
+You might think that command line interfaces are way too primitive to do anything interesting.
+你也许会想,命令行界面太原始了 \N 做不了什么有意思的事
+
+But even when the only interaction was through text, programmers found a way to make it fun.
+即便只有文字 \N 程序员也找到了一些方法,让它变得有趣一些
+
+Early interactive, text-based computer games include famous titles like Zork,
+早期的著名交互式文字游戏 Zork
+
+created in 1977.
+出现于 1977 年
+
+Players of these sorts of early games were expected to engage their limitless imaginations
+早期游戏玩家需要丰富的想象力
+
+as they visualized the fictional world around them, like what terrifying monster confronted them
+想像自己身在虚构世界,比如"四周漆黑一片
+
+when it was pitch black and you were likely to be eaten by a grue.
+附近可能有怪物会吃掉你"
+
+Let's go back to our command line, now on a fancy screen-based terminal, and play!
+我们用命令行玩玩看
+
+Just like before, we can see what's in our current directory with the "ls" command.
+就像之前,我们可以用 ls 命令,看当前目录有什么
+
+Then, let's go into our games directory by using the "cd" command, for " change directory ".
+然后用 cd 命令,进入游戏文件夹 \N cd 的意思是 "改变文件夹"
+
+Now, we can use our "ls" command again to see what games are installed on our computer.
+再用 ls 看有哪些游戏
+
+Sweet, we have Adventure!
+超棒!我们有"冒险旅程"!(adventure)
+
+All we have to do to run this program is type its name.
+想运行这个程序,只需要输入它的名字
+
+Until this application halts, or we quit it, it takes over the command line.
+在程序自行停止或我们主动退出前 \N 它会接管命令行
+
+What you're seeing here is actual interaction from "Colossal Cave Adventure",
+你现在看到的,是"巨大洞穴冒险"这款游戏的真实输出
+
+first developed by Will Crowther in 1976.
+由 Will Crowther 在 1976 年开发
+
+In the game, players can type in one- or two-word commands to move around,
+游戏中,玩家可以输入1个词或2个词的命令 \N 来移动人物,和其他东西交互,捡物品等
+
+interact with objects, pickup items and so on.
+游戏中,玩家可以输入1个词或2个词的命令 \N 来移动人物,和其他东西交互,捡物品等
+
+The program acts as the narrator, describing locations, possible actions,
+然后游戏会像旁白一样,输出你的当前位置, \N 告诉你能做什么动作,以及你的动作造成的结果
+
+and the results of those actions.
+然后游戏会像旁白一样,输出你的当前位置, \N 告诉你能做什么动作,以及你的动作造成的结果
+
+Certain ones resulted in death!
+有些动作会导致死亡!
+
+The original version only had 66 locations to explore,
+原始版本只有 66 个地方可供探索
+
+but it's widely considered to be the first example of interactive fiction.
+但它被广泛认为是最早的互动式小说
+
+These text adventure games later became multiplayer, called MUDs or Multi-User Dungeons.
+游戏后来从纯文字进化成多人游戏 \N 简称 MUD,或多人地牢游戏
+
+And they're the great-forbearers of the awesome graphical MMORPG's
+是如今 MMORPG 的前辈 \N (大型多人在线角色扮演游戏)
+
+(massive, multiplayer online role playing games) we enjoy today.
+是如今 MMORPG 的前辈 \N (大型多人在线角色扮演游戏)
+
+And if you want to know more about the history of these and other games
+如果你想了解游戏史,我们有游戏速成课 \N 主持人 Andre Meadows
+
+we've got a whole series on it hosted by Andre Meadows!
+如果你想了解游戏史,我们有游戏速成课 \N 主持人 Andre Meadows
+
+Command line interfaces, while simple, are very powerful.
+命令行界面虽然简单 但十分强大
+
+Computer programming is still very much a written task, and as such,
+编程大部分依然是打字活 \N 所以用命令行比较自然
+
+command lines are a natural interface.
+编程大部分依然是打字活 \N 所以用命令行比较自然
+
+For this reason, even today, most programmers use
+因此,即使是现在 \N 大多数程序员工作中依然用命令行界面
+
+command line interfaces as part of their work.
+因此,即使是现在 \N 大多数程序员工作中依然用命令行界面
+
+And they're also the most common way to access computers that are far away,
+而且用命令行访问远程计算机 是最常见的方式 \N 比如服务器在另一个国家
+
+like a server in a different country.
+而且用命令行访问远程计算机 是最常见的方式 \N 比如服务器在另一个国家
+
+If you're running Windows, macOS or Linux,
+如果你用 Windows, macOS, Linux
+
+your computer has a command line interface one you may have never used.
+你的计算机有命令行界面,但你可能从来没用过
+
+Check it out by typing "cmd" in your Windows search bar,
+你可以在 Windows 搜索栏中输入 cmd
+
+or search for Terminal on Mac.
+或在 Mac 上搜 Terminal
+
+Then install a copy of Zork and play on!
+然后你可以装 Zork 玩!
+
+So, you can see how these early advancements still have an impact on computing today.
+现在你知道了 \N 早期计算机的发展是如何影响到现在的.
+
+Just imagine if your phone didn't have a good ol' fashioned QWERTY keyboard.
+想想要是手机没有 QWERTY 键盘 \N 在 Instagram 给图片配标题可就麻烦了
+
+It could take forever to type your Instagram captions.
+想想要是手机没有 QWERTY 键盘 \N 在 Instagram 给图片配标题可就麻烦了
+
+But, there's still something missing from our discussion.
+但我们还有一个重要话题没讲
+
+All the sweet sweet graphics!
+美妙的图形界面!
+
+That's our topic for next week.
+这是下周的主题
+
+See you soon.
+下周见
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+This 1960 PDP-1 is a great example of early computing with graphics.
+这台 1960 年的 PDP-1 \N 是一个早期图形计算机的好例子
+
+You can see a cabinet-sized computer on the left,
+你可以看到 左边是柜子大小的电脑
+
+an electromechanical teletype machine in the middle,
+中间是电传打字机
+
+and a round screen on the right.
+右边是一个圆形的屏幕
+
+Note how they're separated.
+注意它们是分开的
+
+That's because text-based tasks and graphical tasks were often distinct back then.
+因为当时文本任务和图形任务是分开的.
+
+In fact, these early computer screens had a very hard time rendering crisp text, whereas
+事实上,早期的屏幕无法显示清晰的文字
+
+typed paper offered much higher contrast and resolution.
+而打印到纸上 有更高的对比度和分辨率
+
+The most typical use for early computer screens was to keep track of a program's operation,
+早期屏幕的典型用途 是跟踪程序的运行情况
+
+like values in registers.
+比如寄存器的值
+
+It didn't make sense to have a teletype machine print this on paper
+如果用打印机 \N 一遍又一遍打印出来没有意义
+
+over and over and over again -- that'd waste a lot of paper, and it was slow.
+不仅费纸而且慢
+
+On the other hand, screens were dynamic and quick to update -- perfect for temporary values.
+另一方面,屏幕更新很快,对临时值简直完美
+
+Computer screens were rarely considered for program output, though.
+但屏幕很少用于输出计算结果,结果一般都打印到纸上
+
+Instead, any results from a computation were typically written to paper
+但屏幕很少用于输出计算结果,结果一般都打印到纸上
+
+or some other more permanent medium.
+或其它更永久的东西上
+
+But, screens were so darn useful
+但屏幕超有用 \N 到1960年代,人们开始用屏幕做很多酷炫的事情
+
+that by the early 1960s, people started to use them for awesome things.
+但屏幕超有用 \N 到1960年代,人们开始用屏幕做很多酷炫的事情
+
+A lot of different display technologies have been created over the decades,
+几十年间出现了很多显示技术
+
+but the most influential, and also the earliest, were Cathode Ray Tubes, or CRT
+但最早最有影响力的是 阴极射线管(CRT)
+
+These work by shooting electrons out of an emitter at a phosphor-coated screen.
+原理是把电子发射到 有磷光体涂层的屏幕上
+
+When electrons hit the coating, it glows for a fraction of a second.
+当电子撞击涂层时 会发光几分之一秒
+
+Because electrons are charged particles,
+由于电子是带电粒子,路径可以用磁场控制
+
+their paths can be manipulated with electromagnetic fields.
+由于电子是带电粒子,路径可以用磁场控制
+
+Plates or coils are used inside to steer electrons to a desired position,
+屏幕内用板子或线圈 把电子引导到想要的位置
+
+both left-right and up-down.
+上下左右都行
+
+With this control, there are two ways you can draw graphics.
+既然可以这样控制,有 2 种方法绘制图形 \N 1. 引导电子束描绘出形状
+
+The first option is to direct the electron beam to trace out shapes.
+既然可以这样控制,有 2 种方法绘制图形 \N 1. 引导电子束描绘出形状
+
+This is called Vector Scanning.
+这叫"矢量扫描"
+
+Because the glow persists for a little bit, if you repeat the path quickly enough,
+因为发光只持续一小会儿 \N 如果重复得足够快 可以得到清晰的图像
+
+you create a solid image.
+因为发光只持续一小会儿 \N 如果重复得足够快 可以得到清晰的图像
+
+The other option is to repeatedly follow a fixed path, scanning line by line,
+2. 按固定路径,一行行来 \N 从上向下,从左到右,不断重复
+
+from top left to bottom right, and looping over and over again.
+2. 按固定路径,一行行来 \N 从上向下,从左到右,不断重复
+
+You only turn on the electron beam at certain points to create graphics.
+只在特定的点打开电子束,以此绘制图形
+
+This is called Raster Scanning.
+这叫 "光栅扫描"
+
+With this approach, you can display shapes... and even text... all made of little line segments.
+用这种方法,可以用很多小线段绘制形状 甚至文字
+
+Eventually, as display technologies improved,
+最后,因为显示技术的发展
+
+it was possible to render crisp dots onto the screen, aka pixels.
+我们终于可以在屏幕上显示清晰的点,叫"像素"
+
+The Liquid Crystal Displays, or LCDs,
+液晶显示器,简称 LCD
+
+that we use today are quite a different technology.
+和以前的技术相当不同
+
+But, they use raster scanning too,
+但 LCD 也用光栅扫描 \N 每秒更新多次 像素里红绿蓝的颜色
+
+updating the brightness of little tiny red, green and blue pixels many times a second.
+但 LCD 也用光栅扫描 \N 每秒更新多次 像素里红绿蓝的颜色
+
+Interestingly, most early computers didn't use pixels
+有趣的是,很多早期计算机不用像素
+
+-- not because they couldn't physically,
+- 不是技术做不到, 而是因为像素占太多内存
+
+but because it consumed way too much memory for computers of the time.
+- 不是技术做不到, 而是因为像素占太多内存
+
+A 200 by 200 pixel image contains 40,000 pixels.
+200像素×200像素的图像,有 40,000 个像素
+
+Even if you use just one bit of data for each pixel,
+哪怕每个像素只用一个 bit 表示 \N 代表黑色或白色,连灰度都没有!
+
+that's black OR white -- not grayscale!
+哪怕每个像素只用一个 bit 表示 \N 代表黑色或白色,连灰度都没有!
+
+-- the image would consume 40,000 bits of memory.
+- 会占 40,000 bit 内存 \N 比 PDP-1 全部内存的一半还多
+
+That would have gobbled up more than half of a PDP-1's entire RAM.
+- 会占 40,000 bit 内存 \N 比 PDP-1 全部内存的一半还多
+
+So, computer scientists and engineers had to come up with clever tricks to render graphics
+所以计算机科学家和工程师,得想一些技巧来渲染图形 \N 等内存发展到足够用
+
+until memory sizes caught up to our pixelicious ambitions.
+所以计算机科学家和工程师,得想一些技巧来渲染图形 \N 等内存发展到足够用
+
+Instead of storing tens of thousands of pixels,
+所以早期计算机不存大量像素值 \N 而是存符号,80x25个符号最典型
+
+early computers stored a much smaller grid of letters, most typically 80 by 25 characters.
+所以早期计算机不存大量像素值 \N 而是存符号,80x25个符号最典型
+
+That's 2000 characters in total.
+总共 2000 个字符
+
+And if each is encoded in 8 bits, using something like ASCII,
+如果每个字符用 8 位表示,比如用 ASCII
+
+it would consume 16,000 bits of memory for an entire screen full of text,
+总共才 16000 位,这种大小更合理
+
+which is way more reasonable.
+总共才 16000 位,这种大小更合理
+
+To pull this off, computers needed an extra piece of hardware that
+为此,计算机需要额外硬件
+
+could read characters out of RAM, and convert them into raster graphics to be drawn onto the screen.
+来从内存读取字符,转换成光栅图形 \N 这样才能显示到屏幕上
+
+This was called a character generator, and they were basically the first graphics cards.
+这个硬件叫 "字符生成器",基本算是第一代显卡
+
+Inside, they had a little piece of Read Only Memory, a ROM,
+它内部有一小块只读存储器,简称 ROM
+
+that stored graphics for each character, called a dot matrix pattern.
+存着每个字符的图形,叫"点阵图案"
+
+If the graphics card saw the 8-bit code for the letter "K",
+如果图形卡看到一个 8 位二进制,发现是字母 K
+
+then it would raster scan the 2D pattern for the letter K onto the screen, in the appropriate position.
+那么会把字母 K 的点阵图案 \N光栅扫描显示到屏幕的适当位置
+
+To do this, the character generator had special access to a portion of a computer's memory
+为了显示,"字符生成器" 会访问内存中一块特殊区域 \N 这块区域专为图形保留,叫 屏幕缓冲区
+
+reserved for graphics, a region called the screen buffer.
+为了显示,"字符生成器" 会访问内存中一块特殊区域 \N 这块区域专为图形保留,叫 屏幕缓冲区
+
+Computer programs wishing to render text to the screen
+程序想显示文字时,修改这块区域里的值就行
+
+simply manipulated the values stored in this region,
+程序想显示文字时,修改这块区域里的值就行
+
+just as they could with any other data in RAM.
+程序想显示文字时,修改这块区域里的值就行
+
+This scheme required much less memory,
+这个方案用的内存少得多 \N 但也意味着 只能画字符到屏幕上
+
+but it also meant the only thing you could draw was text.
+这个方案用的内存少得多 \N 但也意味着 只能画字符到屏幕上
+
+Even still, people got pretty inventive with ASCII art!
+即使有这样限制 \N 人们用 ASCII 艺术发挥了很多创意!
+
+People also tried to make rudimentary, pseudo-graphical interfaces out of this basic set of characters
+也有人用字符模仿图形界面
+
+using things like underscores and plus signs to create boxes, lines and other primitive shapes.
+用下划线和加号来画盒子,线,和其他简单形状
+
+But, the character set was really too small to do anything terribly sophisticated.
+但字符集实在太小,做不了什么复杂的事
+
+So, various extensions to ASCII were made that added new semigraphical characters,
+因此对 ASCII 进行了各种扩展,加新字符
+
+like IBM's CP437 character set, seen here, which was used in DOS.
+比如上图的 IBM CP437 字符集,用于 DOS.
+
+On some systems, the text color and background color could be defined with a few extra bits.
+某些系统上 \N 可以用额外的 bit 定义字体颜色和背景颜色
+
+That allowed glorious interfaces like this DOS example,
+做出这样的 DOS 界面 \N 这界面只用了刚刚提到的字符集
+
+which is built entirely out the character set you just saw.
+做出这样的 DOS 界面 \N 这界面只用了刚刚提到的字符集
+
+Character generators were a clever way to save memory.
+字符生成器 是一种省内存的技巧 \N 但没办法绘制任意形状
+
+But, they didn't provide any way to draw arbitrary shapes.
+字符生成器 是一种省内存的技巧 \N 但没办法绘制任意形状
+
+And that's important if you want to draw content like electrical circuits, architectural
+绘制任意形状很重要 \N 因为电路设计,建筑平面图,地图,好多东西都不是文字!
+
+plans, maps, and... well pretty much everything that isn't text!
+绘制任意形状很重要 \N 因为电路设计,建筑平面图,地图,好多东西都不是文字!
+
+To do this, without resorting to memory-gobbling pixels,
+为了绘制任意形状,同时不吃掉所有内存
+
+computer scientists used the vector mode available on CRTs.
+计算机科学家用 CRT 上的"矢量模式"
+
+The idea is pretty straightforward: all content to be drawn on screen is defined by a series of lines.
+概念非常简单:所有东西都由线组成
+
+There's no text.
+没有文字这回事
+
+If you need to draw text, you have to draw it out of lines.
+如果要显示文字,就用线条画出来
+
+Don't read between the lines here. There is only lines!
+只有线条,没有别的
+
+Got it? Alright, no more word play.
+明白了吗?好,我们举个实例吧
+
+I'm drawing the line here.
+明白了吗?好,我们举个实例吧
+
+Let's pretend this video is a cartesian plane, 200 units wide and 100 tall, with the
+假设这个视频是一个 笛卡尔平面 \N 200个单位宽,100个单位高
+
+origin that's the zero-zero point in the upper left corner.
+原点 (0,0) 在左上角
+
+We can draw a shape with the following vector commands,
+我们可以画形状,用如下矢量命令
+
+which we've borrowed from the Vectrex, an early vector display system.
+这些命令来自 Vectrex,一个早期矢量显示系统
+
+First, we reset, which clears the screen,
+首先,reset ,这个命令会清空屏幕
+
+moves the drawing point of the electron gun to zero-zero,
+把电子枪的绘图点移动到坐标 (0,0)
+
+and sets the brightness of lines to zero.
+并把线的亮度设为 0
+
+Then we move the drawing point down to 50 50,
+MOVE_TO 50 50 \N 把绘图点移动到坐标 (50,50)
+
+and set the line intensity to 100%.
+INTENSITY 100 \N 把强度设为 100
+
+With the intensity up, now we move to 100, 50, then 60, 75 and then back to 50,50.
+现在亮度提高了\N 移动到 (100,50) 然后 (60,75) 然后 (50,50)
+
+The last thing to do is set our line intensity back to 0%.
+最后把强度设回 0
+
+Cool! We've got a triangle!
+酷,我们画了一个三角形!
+
+This sequence of commands would consume on the order of 160 bits, which is way more efficient
+这些命令占 160 bit \N 比存一个庞大的像素矩阵更好
+
+than keeping a huge matrix of pixel values!
+这些命令占 160 bit \N 比存一个庞大的像素矩阵更好
+
+Just like how characters were stored in memory and turned into graphics by a character generator,
+就像之前的"字符生成器" \N把内存里的字符转成图形一样
+
+these vector instructions were also stored in memory, and rendered to a screen using
+这些矢量指令也存在内存中 \N 通过矢量图形卡画到屏幕上
+
+a vector graphics card.
+这些矢量指令也存在内存中 \N 通过矢量图形卡画到屏幕上
+
+Hundreds of commands could be packed together, sequentially, in the screen buffer,
+数百个命令可以按序存在屏幕缓冲区
+
+and used to build up complex graphics. All made of lines!
+画出复杂图形,全是线段组成的!
+
+Because all these vectors are stored in memory, computer programs can update the values freely,
+由于这些矢量都在内存中 \N 程序可以更新这些值
+
+allowing for graphics that change over time -- Animation!
+让图形随时间变化 - 动画!
+
+One of the very earliest video games, Spacewar!,
+最早的电子游戏之一, Spacewar!
+
+was built on a PDP-1 in 1962 using vector graphics.
+是 1962 年在 PDP-1 上用矢量图形制作的.
+
+It's credited with inspiring many later games, like Asteroids,
+它启发了许多后来的游戏,比如 爆破彗星(Asteroids)
+
+and even the first commercial arcade video game: Computer Space.
+甚至第一个商业街机游戏:太空大战
+
+1962 was also a huge milestone because of Sketchpad,
+1962 年是一个大里程碑 \N Sketchpad 诞生
+
+an interactive graphical interface
+一个交互式图形界面,用途是计算机辅助设计 (CAD)
+
+that offered Computer-Aided Design -- called CAD Software today.
+一个交互式图形界面,用途是计算机辅助设计 (CAD)
+
+It's widely considered the earliest example of a complete graphical application.
+它被广泛认为是第一个完整的图形程序
+
+And its inventor, Ivan Sutherland, later won the Turing Award for this breakthrough.
+发明人 伊万·萨瑟兰 后来因此获得图灵奖
+
+To interact with graphics,
+为了与图形界面交互 \N Sketchpad 用了当时发明不久的输入设备 光笔
+
+Sketchpad used a recently invented input device called a light pen,
+为了与图形界面交互 \N Sketchpad 用了当时发明不久的输入设备 光笔
+
+which was a stylus tethered to a computer with a wire.
+就是一个有线连着电脑的触控笔
+
+By using a light sensor in the tip, the pen detected the refresh of the computer monitor.
+笔尖用光线传感器,可以检测到显示器刷新
+
+Using the timing of the refresh,
+通过判断刷新时间,电脑可以知道笔的位置
+
+the computer could actually figure out the pen's position on the screen!
+通过判断刷新时间,电脑可以知道笔的位置
+
+With this light pen, and various buttons on a gigantic computer,
+有了光笔和各种按钮 \N 用户可以画线和其他简单形状
+
+users could draw lines and other simple shapes.
+有了光笔和各种按钮 \N 用户可以画线和其他简单形状
+
+Sketchpad could do things like make lines perfectly parallel, the same length, straighten
+Sketchpad 可以让线条完美平行,长度相同 \N 完美垂直90度,甚至动态缩放
+
+corners into perfect 90 degree intersections, and even scale shapes up and down dynamically.
+Sketchpad 可以让线条完美平行,长度相同 \N 完美垂直90度,甚至动态缩放
+
+These things that were laborious on paper, a computer now did with a press of a button!
+这些在纸上很费力,在计算机上非常简单!
+
+Users were also able to save complex designs they created,
+用户还可以保存设计结果,方便以后再次使用 \N 甚至和其他人分享
+
+and then paste them into later designs, and even share with other people.
+用户还可以保存设计结果,方便以后再次使用 \N 甚至和其他人分享
+
+You could have whole libraries of shapes, like electronic components and pieces of furniture
+你可以有一整个库 \N 里面有电子元件和家具之类的
+
+that you could just plop in and manipulate in your creations.
+可以直接拖进来用
+
+This might all sound pretty routine from today's perspective.
+从如今的角度来看 好像很普通
+
+But in 1962, when computers were still cabinet-sized behemoths chugging through punch cards,
+但在1962年 \N 计算机还是吃纸带的大怪兽,有柜子般大小
+
+Sketchpad and light pens were equal parts eye opening and brain melting.
+Sketchpad 和光笔让人大开眼界
+
+They represented a key turning point in how computers could be used.
+它们代表了人机交互方式的关键转折点
+
+They were no longer just number crunching math machines that hummed along behind closed doors.
+电脑不再是关在门后 负责算数的机器了
+
+Now, they were potential assistants, interactively augmenting human tasks.
+可以当助手 帮人类做事
+
+The earliest computers and displays with true pixel graphics emerged in the late 1960s.
+最早用真正像素的计算机和显示器\N 出现于 1960 年代末
+
+Bits in memory directly "mapped" to pixels on the screen,
+内存中的位(Bit) 对应屏幕上的像素
+
+what are called bitmapped displays.
+这叫 位图显示
+
+With full pixel control, totally arbitrary graphics were possible.
+现在我们可以绘制任意图形了
+
+You can think of a screen's graphics as a huge matrix of pixel values .
+你可以把图形想成一个巨大像素值矩阵
+
+As before,
+就像之前
+
+computers reserve a special region of memory for pixel data, called the frame buffer.
+计算机把像素数据存在内存中一个特殊区域 \N 叫"帧缓冲区"
+
+In the early days, the computer's RAM was used,
+早期时,这些数据存在内存里\N 后来存在高速视频内存里,简称 VRAM
+
+but later systems used special high speed Video RAM, or VRAM,
+早期时,这些数据存在内存里\N 后来存在高速视频内存里,简称 VRAM
+
+which was located on the graphics card itself for high speed access.
+VRAM 在显卡上,这样访问更快 \N 如今就是这样做的.
+
+This is how it's done today.
+VRAM 在显卡上,这样访问更快 \N 如今就是这样做的.
+
+On an 8-bit grayscale screen, we can set values from 0 intensity, which is black,
+在 8 位灰度屏幕上,我们可用的颜色范围是 0 强度(黑色)
+
+to 255 intensity, which is white.
+到 255 强度(白色)
+
+Well actually, it might be green... or orange, as many early displays couldn't do white.
+其实更像绿色或橙色 \N 因为许多早期显示器不能显示白色
+
+Let's pretend this video is a really low resolution bitmapped screen,
+我们假设 这个视频在低分辨率的位图屏幕上
+
+with a resolution of 60 by 35 pixels.
+分辨率 60x35像素
+
+If we wanted to set the pixel at 10 10 to be white,
+如果我们想把 (10,10) 的像素设为白色 \N 可以用这样的代码
+
+we could do it with a piece of code like this.
+如果我们想把 (10,10) 的像素设为白色 \N 可以用这样的代码
+
+If we wanted to draw a line, let's say from 30, 0 to 30, 35, we can use a loop, like so.
+如果想画一条线 假设从(30,0)到(30,35) \N 可以用这样一个循环
+
+.And this changes a whole line of pixels to white.
+把整列像素变成白色
+
+If we want to draw something more complicated, let's say a rectangle,
+如果想画更复杂的图形,比如矩形,那么需要四个值
+
+we need to know four values.
+如果想画更复杂的图形,比如矩形,那么需要四个值
+
+The X and Y coordinate of its starting corner, and its width and height.
+1. 起始点X坐标 \N2. 起始点Y坐标 \N 3. 宽度 \N 4. 高度
+
+So far, we've drawn everything in white, so let's specify this rectangle to be grey.
+目前只试了白色,这次画矩形试下灰色
+
+Grey is halfway between 0 and 255, so that's a color value of 127.
+灰色介于0到255中间 \N 所以我们用 127 (255/2=127.5)
+
+Then, with two loops C one nested in the other,
+然后用两个循环,一个套另一个
+
+so that the inner loop runs once for every iteration of the outer loop,
+这样外部每跑一次,内部会循环多次 \N 可以画一个矩形
+
+we can draw a rectangle.
+这样外部每跑一次,内部会循环多次 \N 可以画一个矩形
+
+When the computer executes our code as part of its draw routine, it colors in all the
+计算机绘图时会用指定的颜色 127
+
+pixels we specified.
+计算机绘图时会用指定的颜色 127
+
+Let's wrap this up into a "draw rectangle function", like this:
+我们来包装成 "画矩形函数",就像这样:
+
+Now, to draw a second rectangle on the other side of the screen, maybe in black this time,
+假设要在屏幕的另一边 画第二个矩形 \N 这次可能是黑色矩形
+
+we can just call our rectangle drawing function. Voila!!
+可以直接调用 "画矩形函数", 超棒!
+
+Just like the other graphics schemes we've discussed,
+就像之前说的其他方案
+
+programs can manipulate pixel data in the frame buffer, creating interactive graphics.
+程序可以操纵"帧缓冲区"中的像素数据,实现交互式图形
+
+Pong time!
+乒乓球时间!
+
+Of course, programmers aren't wasting time writing drawing functions from scratch.
+当然,程序员不会浪费时间从零写绘图函数 \N 而是用预先写好的函数来做,画直线,曲线,图形,文字等
+
+They use graphics libraries with ready-to-go functions
+当然,程序员不会浪费时间从零写绘图函数 \N 而是用预先写好的函数来做,画直线,曲线,图形,文字等
+
+for drawing lines, curves, shapes, text, and other cool stuff.
+当然,程序员不会浪费时间从零写绘图函数 \N 而是用预先写好的函数来做,画直线,曲线,图形,文字等
+
+Just a new level of abstraction!
+一层新抽象!
+
+The flexibility of bitmapped graphics opened up a whole new world of possibilities for
+位图的灵活性,为交互式开启了全新可能 \N 但它的高昂成本持续了十几年
+
+interactive computing, but it remained expensive for decades.
+位图的灵活性,为交互式开启了全新可能 \N 但它的高昂成本持续了十几年
+
+As I mentioned last episode, by as late as 1971,
+上集提到,1971 年 \N 整个美国也只有大约 7 万个电传打字机和 7 万个终端
+
+it was estimated there were around 70,000 electro-mechanical teletype machines
+上集提到,1971 年 \N 整个美国也只有大约 7 万个电传打字机和 7 万个终端
+
+and 70,000 terminals in use, in the United States.
+上集提到,1971 年 \N 整个美国也只有大约 7 万个电传打字机和 7 万个终端
+
+Amazingly, there were only around 1,000 computers in the US that had interactive graphical screens.
+令人惊讶的是 \N 只有大约 1000 台电脑有交互式图形屏幕
+
+That's not a lot!
+这可不多!
+
+But the stage was set helped along by pioneering efforts like Sketchpad and Space Wars
+Sketchpad 和 太空大战 这样的先驱 \N 推动了图形界面发展
+
+for computer displays to become ubiquitous,
+帮助普及了计算机显示器 \N 由此,图形界面的曙光初现
+
+and with them, the dawn of graphical user interfaces,
+帮助普及了计算机显示器 \N 由此,图形界面的曙光初现
+
+which we'll cover in a few episodes!
+接下来讲图形界面
+
+I'll see you next week.
+下周见
+
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Early in this series we covered computing history
+之前介绍了计算机历史 \N 从人类文明的曙光开始 (第1集)
+
+From roughly the dawn of civilization,
+之前介绍了计算机历史 \N 从人类文明的曙光开始 (第1集)
+
+up to the birth of electronic general purpose computers in the mid 1940s.
+一直到 1940 年代中期 电子计算机诞生
+
+A lot of the material we've discussed over the past 23 episodes
+过去 23 集里讲的很多东西
+
+like programming languages and compilers
+比如编程语言和编译器,算法和集成电路
+
+Algorithms and integrated circuits
+比如编程语言和编译器,算法和集成电路
+
+Floppy disks and operating systems, telly types and screens
+软盘和操作系统,电报机和屏幕
+
+all emerged over roughly a 30-year period,
+全都是1940~1970年代,大概这30年间里出现的
+
+From the mid 1940s up to the mid 1970s
+全都是1940~1970年代,大概这30年间里出现的
+
+This is the era of computing before companies like Apple and Microsoft existed
+那时苹果和微软还不存在,也没有推特,谷歌或者 Uber.
+
+and long before anyone Tweeted, Googled or Uber-d.
+那时苹果和微软还不存在,也没有推特,谷歌或者 Uber.
+
+It was a formative period setting the stage for personal computers,
+还没到个人电脑时代
+
+worldwide web, self-driving cars, virtual reality, and many other topics
+而万维网,无人驾驶汽车,虚拟现实等主题,\N 这个系列的后半部分会讲
+
+we'll get to in the second half of this series.
+而万维网,无人驾驶汽车,虚拟现实等主题,\N 这个系列的后半部分会讲
+
+Today we're going to step back from circuits and algorithms
+今天, 我们不管电路和算法 \N 来聊聊这个影响力巨大的时代
+
+and review this influential period.
+今天, 我们不管电路和算法 \N 来聊聊这个影响力巨大的时代
+
+We'll pay special attention to the historical backdrop of the cold war,
+我们会把重点放在 \N 冷战,太空竞赛,全球化,消费主义的兴起.
+
+The space race and the rise of globalization and consumerism.
+我们会把重点放在 \N 冷战,太空竞赛,全球化,消费主义的兴起.
+
+Pretty much immediately after World War II concluded in 1945,
+1945年二战结束后不久
+
+there was tension between the world's two new superpowers
+两个超级大国的关系越发紧张,美国和苏联开始了冷战
+
+the United States and the USSR
+两个超级大国的关系越发紧张,美国和苏联开始了冷战
+
+The Cold War had begun and with it,
+因此政府往科学和工程学 投入大量资金
+
+massive government spending on science and engineering.
+因此政府往科学和工程学 投入大量资金
+
+Computing which had already demonstrated its value
+计算机在战时已经证明了自身的价值 \N 比如曼哈顿计划 和 破解纳粹通讯加密
+
+in wartime efforts like the Manhattan Project
+计算机在战时已经证明了自身的价值 \N 比如曼哈顿计划 和 破解纳粹通讯加密
+
+and code breaking Nazi communications,
+计算机在战时已经证明了自身的价值 \N 比如曼哈顿计划 和 破解纳粹通讯加密
+
+was lavished with government funding.
+所以政府大量投入资源 \N 各种雄心勃勃的项目得以进行
+
+They enabled huge ambitious computing projects to be undertaken,
+所以政府大量投入资源 \N 各种雄心勃勃的项目得以进行
+
+like ENIAC, EDVAC, Atlas and Whirlwind all mentioned in previous episodes.
+比如之前提过的 ENIAC, EDVAC, Atlas, Whirlwind
+
+This spurred rapid advances that simply weren't possible in the commercial sector alone,
+这种高速发展,如果仅靠商业运作是根本无法做到的
+
+where projects were generally expected to recoup development costs through sales.
+要依靠销售收回开发成本.
+
+This began to change in the early 1950s,
+1950年代,事情开始发生变化,
+
+especially with Eckert and Buckley's Univac 1,
+特别是 Univac 1,它是第一台取得商业成功的电脑
+
+the first commercially successful computer.
+特别是 Univac 1,它是第一台取得商业成功的电脑
+
+Unlike ENIAC or Atlas , this wasn't just one single computer. It was a model of computers.
+不像 ENIAC 或 Atlas \N Univanc 1 不是一台机器,而是一个型号
+
+in total more than 40 were built.
+一共造了40多台
+
+Most of these Univacs went to government offices or large companies.
+大部分 Univac 去了政府或大公司
+
+Which was part of the growing military industrial complex in the United States,
+成为美国日益增长的军事工业综合体的一部分
+
+with pockets deep enough to afford the cutting edge.
+因为政府有钱承担这些尖端科技.
+
+Famously, a Univac 1 built for the U.S atomic energy commission
+一个著名的例子是,\N 一台给 美国原子能委员会 生产的 Univac 1
+
+was used by CBS to predict the results of the 1952 U.S. presidential election.
+被 CBS 用来预测 1952 年美国总统大选的结果
+
+With just 1% of the vote the computer correctly predicted
+仅用1%的选票,Univac 1 正确预测了结果. \N 艾森豪威尔 获得压倒性胜利,而专家预测 史蒂文森 会赢
+
+Eisenhower landslide, while pundits favored Stevenson.
+仅用1%的选票,Univac 1 正确预测了结果. \N 艾森豪威尔 获得压倒性胜利,而专家预测 史蒂文森 会赢
+
+It was a media event that helped propel computing to the forefront of the public's imagination
+这次事件把计算机推到了公众面前
+
+Computing was unlike machines of the past,
+计算机和以前的机器不一样
+
+which generally augmented human physical abilities.
+以前的机器 增强人类的物理能力
+
+Trucks allowed us to carry more, automatic looms whoa faster,
+比如卡车能带更多东西,自动织布机更快
+
+Machine tools were more precise and so on
+机床更精确 等等. 这些东西代表了工业革命.
+
+for a bunch of contraptions that typify the industrial revolution.
+机床更精确 等等. 这些东西代表了工业革命.
+
+But computers on the other hand could augment human intellect.
+而计算机增强的是人类智力
+
+This potential wasn't lost on Vannevar Bush,
+范内瓦·布什 看到了这种潜力 \N 他在1945年发表了一篇文章
+
+who in 1945 published an article on a
+范内瓦·布什 看到了这种潜力 \N 他在1945年发表了一篇文章
+
+hypothetical computing device he envisioned called the Memex.
+描述了一种假想计算设备叫 Memex
+
+This was a device in which an individual stores all his books,
+可以用这个设备 \N 存自己所有的书, 其他资料 以及和别人沟通
+
+records and communications and which is mechanized,
+而且数据是按照格式存储, \N 所以可以快速查询,有很大灵活性.
+
+so it may be consulted with exceeding speed and flexibility
+而且数据是按照格式存储, \N 所以可以快速查询,有很大灵活性.
+
+It is an enlarged intimate supplement to his memory.
+可以辅助我们的记忆
+
+He also predicted that wholly new forms of encyclopedia will appear,
+他还预测会出现 新的百科全书形式
+
+ready-made, with a mesh of associative trails running through them.
+信息之间相互链接
+
+Sound familiar?
+听起来是不是很熟悉?(维基百科)
+
+Memex directly inspired several subsequent game-changing systems,
+Memex 启发了 之后几个重要里程碑
+
+like Ivan Sutherland Sketchpad, which we discussed last episode,
+比如上集 伊万·萨瑟兰 的 Sketchpad(画板)
+
+and Dough Engelbart's online system, which we will cover soon.
+以及后面很快会讲到 \N Dough Engelbart 的 oN-LINE 系统(第26集)
+
+Vannevar Bush was the head of the U.S. office of Scientific Research and Development,
+范内瓦·布什 \N 做过"美国科学研究与开发办公室"的头头
+
+which was responsible for funding and coordinating scientific research during World War 2.
+这个部门负责在二战期间 \N 资助和安排科学研究
+
+With the Cold War brewing, Bush lobbied for a creation of a peace time equivalent,
+冷战时 范内瓦·布什 到处游说,\N 想建立一个职责类似,但是在和平时期运作的部门
+
+the National Science Foundation, formed in 1950.
+因此 国家科学基金会 于1950年成立
+
+To this day the NSF provides federal funding to support scientific research in the United States.
+至今,国家科学基金会 \N 依然负责给科学研究 提供政府资金
+
+And it is a major reason the U.S. has continued to be a leader in the technology sector.
+美国的科技领先全球,主要原因之一就是这个机构.
+
+It was also in the 1950s that consumers started to buy transistor powered gadgets,
+1950年代,消费者开始买晶体管设备
+
+notable among them was the transistor radio,
+其中值得注意的是 收音机
+
+which was small, durable and battery-powered.
+它又小又耐用,用电池就够了,而且便携
+
+And it was portable,
+它又小又耐用,用电池就够了,而且便携
+
+unlike the vacuum tube based radio sets from the 1940s and before.
+不像 1940 年代之前的收音机,用的是真空管.
+
+It was a runaway success, the Furby or iPhone of its day.
+收音机非常成功,卖的像"菲比精灵"和 iPhone 一样畅销.
+
+The Japanese government looking for industrial opportunities,
+日本政府也在寻求工业机会,想振兴战后经济,
+
+to bolster their post-war economy, soon got in on the action.
+日本政府也在寻求工业机会,想振兴战后经济,
+
+Licensing the rights to Transistors from Bell Labs in 1952.
+他们很快动手从贝尔实验室 取得晶体管的授权
+
+Helping launch the Japanese semiconductor and electronics industry.
+帮助振兴日本的半导体和电子行业
+
+In 1955, the first Sony product was released:
+1955年,索尼的第一款产品面世
+
+The TR-55 Transistor Radio. Concentrating on quality and price,
+TR-55 晶体管收音机. 他们把重心放在质量和价格.
+
+Japanese companies captured half of the U.S. Market for portable radios in just five years.
+因此日本公司在短短5年内,就占有了美国便携式收音机市场的一半.
+
+This planted the first seeds of a major industrial rivalry in the decades to come.
+这为日本成为美国的强大工业对手,埋下伏笔
+
+In 1953, there were only around 100 computers on the entire planet
+1953年,整个地球大概有100台计算机
+
+and at this point, the USSR was only a few years behind the West in computing technology,
+苏联这时的计算机科技 只比西方落后几年
+
+completing their first programmable electronic computer in 1950.
+苏联在1950年 \N完成了第一个可编程电子计算机
+
+But the Soviets were way ahead in the burgeoning space race.
+但苏联在太空竞赛远远领先
+
+Let's go to the thought-bubble.
+我们进入思想泡泡
+
+The Soviets launched the world's first satellite into orbit, Sputnik one,
+苏联在1957年 \N 把第一个卫星送上轨道,史波尼克1号
+
+in 1957, and a few years later in 1961.
+不久,在1961年
+
+Soviet Cosmonaut, Yuri Gagarin became the first human in space.
+苏联宇航员 尤里·加加林 第一个进入太空
+
+This didn't sit well with the American public
+美国民众对此不满
+
+and prompted President Kennedy, a month after Gagarin's mission,
+使得肯尼迪总统 \N 在加加林太空任务一个月后
+
+to encourage the nation to land a man on the moon within the decade. And it was expensive!
+提出要登陆月球. 登月很贵的!
+
+NASA's budget grew almost tenfold,
+NASA 的预算增长了几乎十倍,
+
+peaking in 1966 at roughly 4.5 percent of the U.S. Federal budget
+在 1966 年达到顶峰,占了政府预算的4.5%
+
+Today, It's around half a percent
+如今, NASA 的预算只占 0.5%
+
+NASA used this funding to tackle a huge array of enormous challenges
+NASA 用这笔钱资助各种科学研究
+
+this culminated in the Apollo program
+阿波罗计划花的钱最多,雇了40万人左右
+
+Which is peak employed roughly 400,000 people
+阿波罗计划花的钱最多,雇了40万人左右
+
+further supported by over 20,000 universities and companies
+而且有2万多家大学和公司参与.
+
+one of these huge challenges was navigating in space
+其中一个挑战是 怎样在太空中导航
+
+NASA needed a computer to process complex trajectories
+NASA 需要电脑计算复杂的轨道来引导太空船
+
+and issue guidance commands to the spacecraft
+NASA 需要电脑计算复杂的轨道来引导太空船
+
+For this, they built the Apollo guidance computer,
+因此,他们造了 "阿波罗导航计算机"
+
+There were three significant requirements
+有3个重要要求
+
+First, the computer had to be fast, no surprise there.
+1. 计算机要快, 这在意料之中.
+
+Second, it had to be small & lightweight
+2. 计算机要又小又轻.
+
+there's not a lot of room in a spacecraft
+太空船里的空间不多
+
+and every ounce is precious when you're flying a quarter million miles to the moon
+而且要飞去月球,能轻一点是一点
+
+And finally it had to be really really ridiculously reliable
+3. 要超级可靠
+
+This is super important in a spacecraft
+这对太空船非常重要,因为太空中有很多震动,辐射,极端温度变化
+
+Where there's lots of vibration radiation and temperature change
+这对太空船非常重要,因为太空中有很多震动,辐射,极端温度变化
+
+And there's no running to Best Buy, if something breaks.
+如果东西坏掉了,可没办法去"百思买"买新的
+
+the technology of the era of vacuum tubes and discrete transistors
+那时的主流科技 \N 真空管和晶体管 无法胜任这些要求
+
+Just weren't up to the task
+那个时代的主流科技,真空管和离散晶体管,无法胜任这些要求.
+
+so NASA turned to a brand-new technology, integrated circuits.
+所以 NASA 用全新科技:集成电路
+
+Which we discussed a few episodes ago
+我们几集前聊过
+
+The Apollo guidance computer was the first computer to use them, a huge paradigm shift
+阿波罗导航计算机 首先使用了集成电路
+
+NASA was also the only place that could afford them
+NASA 是唯一负担得起集成电路的组织
+
+Initially each chip cost around $50
+最初,一个芯片差不多50美金
+
+And the guidance computer needed thousands of them.
+导航计算机需要上千个芯片
+
+But by paying that price, the Americans were able to beat the soviets to the moon
+但美国也因此成功登月,打败苏联
+
+Thanks, thought-bubble
+谢了 思想泡泡
+
+Although the Apollo Guidance computer is credited
+虽然人们经常把集成电路的发展 \N 归功于阿波罗导航计算机
+
+with spurring the development and adoption of integrated circuits
+虽然人们经常把集成电路的发展 \N 归功于阿波罗导航计算机
+
+It was a low volume, product there are only 17 Apollo missions after all.
+但它们的产量很低,一共只有 17 次阿波罗任务
+
+it was actually military applications
+实际上是军事 大大推进了集成电路发展
+
+Especially the minuteman and polaris nuclear missile systems
+特别是洲际导弹和核弹,使集成电路大规模生产
+
+That allowed integrated circuits to become a mass-produced item
+特别是洲际导弹和核弹,使集成电路大规模生产
+
+This rapid Advancement was further accelerated by the U.S.
+美国建造强大计算机时,也进一步推进了集成电路
+
+Building and buying huge powerful computers
+美国建造强大计算机时,也进一步推进了集成电路
+
+Often called supercomputers, because they were frequently
+一般叫"超级计算机",\N 因为它们经常比全球最快电脑还快10倍以上
+
+10 times faster than any other computer on the planet, upon their release.
+一般叫"超级计算机",\N 因为它们经常比全球最快电脑还快10倍以上
+
+but these machines built by companies like CDC, Cray and IBM were also
+但 CDC,Cray,IBM 制造的计算机非常昂贵
+
+super in cost, and pretty much only governments could afford to buy them.
+几乎只有政府负担得起
+
+in the U.S. these machines went to government Agencies like the NSA.
+这些计算机用于政府机构,比如美国国家安全局
+
+and government research labs like Lawrence Livermore and Los Alamos National laboratories
+以及实验室比如 \N 劳伦斯·利弗莫尔 实验室 \N 洛斯·阿拉莫斯 国家实验室
+
+Initially the U.S. semiconductor industry boomed
+最初,美国的半导体行业 \N 靠高利润政府合同起步
+
+buoyed by High profit government contracts
+最初,美国的半导体行业 \N 靠高利润政府合同起步
+
+However this meant that most U.S.companies overlooked
+因此忽略了消费者市场,因为利润小
+
+the consumer market where profit margins were small
+因此忽略了消费者市场,因为利润小
+
+the Japanese Semiconductor industry came to dominate this niche
+因此日本半导体行业在1950和1960年代 \N 靠低利润率占领了消费者市场
+
+by having to operate with lean profit margins in the 1950s and 60s
+因此日本半导体行业在1950和1960年代 \N 靠低利润率占领了消费者市场
+
+the Japanese had invested heavily in manufacturing capacity
+日本人投入大量资金,大量制造以达到规模经济
+
+to achieve economies of scale
+日本人投入大量资金,大量制造以达到规模经济
+
+in research to improve quality and Yields and in automation to keep manufacturing costs low.
+同时研究技术,提高质量和产量 \N 以及用自动化来降低成本
+
+in the 1970s with the Space Race and cold war subsiding
+1970年代,太空竞赛和冷战逐渐消退 \N 高利润的政府合同变少
+
+previously juicy defense contracts began to dry up.
+1970年代,太空竞赛和冷战逐渐消退 \N 高利润的政府合同变少
+
+and American semi-conductor and electronics companies found it harder to compete.
+美国的半导体和电子设备公司发现更难竞争了
+
+it didn't help the many computing components had been commoditized
+虽然很多计算机组件商品化了,但并没有什么帮助
+
+DRAM was DRAM
+DRAM 就是 DRAM
+
+So why buy expensive Intel memory when you could buy the same chip for less from Hitachi?
+能从日立买便宜的,干嘛要从英特尔买贵的?
+
+Throughout the 1970s U.S. companies began to downsize,
+1970年代 美国公司开始缩小,合并,或直接倒闭
+
+consolidate or outright fail.
+1970年代 美国公司开始缩小,合并,或直接倒闭
+
+Intel had to lay off a third of its workforce in 1974
+1974年 英特尔不得不裁员三分之一
+
+and even the storied Fairchild semiconductor
+知名的仙童半导体也在 1979 年濒临倒闭 \N 被其他公司收购了
+
+was acquired in 1979 after near bankruptcy
+知名的仙童半导体也在 1979 年濒临倒闭 \N 被其他公司收购了
+
+to survive many of these companies began to outsource their manufacturing in a bid to reduce costs.
+为了生存,很多公司把生产外包出去,降低成本
+
+Intel withdrew from its main product category, Memory IC
+英特尔不再把精力放在 内存集成电路 \N 而是把精力放在处理器
+
+and decided to refocus on processes.
+英特尔不再把精力放在 内存集成电路 \N 而是把精力放在处理器
+
+Which ultimately saved the company.
+这个决定最后挽救了公司
+
+This low and U.S.
+美国公司的无力 \N 导致 夏普 和 卡西欧 这样的日本公司
+
+electronics industry allowed Japanese companies like Sharp and Casio
+美国公司的无力 \N 导致 夏普 和 卡西欧 这样的日本公司
+
+to dominate the breakout computing product of the 1970s.
+占领了1970年代的主流产品
+
+Handheld electronic calculators.
+手持计算器
+
+by using integrated circuits, these could be made small and cheap.
+因为集成电路,计算机又小又便宜
+
+They replaced expensive desktop adding machines you find in offices.
+取代了办公室里昂贵的桌面计算器
+
+For most people it was the first time they didn't have to do math on paper, or use a slide rule
+对大多数人 \N 这是他们第一次不必用纸笔和计算尺来做计算
+
+They were an instant hit, selling by the millions.
+手持计算机因此大卖
+
+This further drove down the cost of integrated circuits
+进一步降低了集成电路的成本
+
+and led to the development and widespread use of micro processors.
+使得微处理器被广泛使用
+
+like the Intel 4004 we've discussed previously
+比如之前讨论过的 Intel 4004
+
+This chip was built by Intel in 1971
+Intel 在1971年 \N 应日本计算器公司 Busicom 的要求做了这个芯片
+
+at the request of Japanese calculator company Busicom.
+Intel 在1971年 \N 应日本计算器公司 Busicom 的要求做了这个芯片
+
+Soon, Japanese electronics were everywhere.
+很快,日本电子产品到处都是
+
+from televisions of VCRs to digital wristwatches and Walkmans
+从电视到手表到随身听
+
+the availability of inexpensive microprocessor
+而廉价的微处理器,也催生了全新的产品,比如街机游戏
+
+Spawned in entirely new products like video arcades,
+而廉价的微处理器,也催生了全新的产品,比如街机游戏
+
+the world got Pong in 1972 and Breakout in 1976.
+1972年诞生了Pong,1976年诞生了打砖块
+
+as cost continued to plummet
+因为成本不断下降
+
+soon it became possible for regular people to afford computing devices
+很快,普通人也买得起计算机了
+
+during this time we see the emergence of the first successful home computers
+这段期间,第一批家用电脑开始出现,比如1975年的 Altair 8800
+
+like the 1975 Altair 8800
+这段期间,第一批家用电脑开始出现,比如1975年的 Altair 8800
+
+and also the first home gaming consoles
+以及第一款家用游戏机,比如1977年的Atari 2600
+
+like the Atari 2600 in 1977,
+以及第一款家用游戏机,比如1977年的Atari 2600
+
+Home, now I repeat that, Home.
+家用!我再说一遍 家用!
+
+That seems like a small thing today.
+如今没什么大不了的.
+
+But this was the dawn of a whole new era in computing.
+但那时是计算机的全新时代
+
+in just three decades, computers have evolved from
+在短短三十年内,计算机从大到人类可以在 CPU 里走来走去
+
+machines where you could literally walk inside of the CPU.
+在短短三十年内,计算机从大到人类可以在 CPU 里走来走去
+
+assuming you had government clearance
+当然,你要有政府许可你这样做.
+
+to the point where a child could play with a handheld toy
+发展到小到小孩都能拿住的手持玩具,而且微处理器还快得多.
+
+Containing a microprocessor many times faster,
+发展到小到小孩都能拿住的手持玩具,而且微处理器还快得多.
+
+Critically, this dramatic evolution would have been but without two powerful forces at play
+这种巨大变化是由两种力量推动的:政府和消费者
+
+Governments and Consumers.
+这种巨大变化是由两种力量推动的:政府和消费者
+
+Government funding like the United States provided during the cold war
+政府资金,比如冷战期间美国投入的钱
+
+enabled early adoption of many nascent computing technologies
+推动了计算机的早期发展
+
+This funding helped flow entire Industries relate into computing long enough
+并且让计算机行业活得足够久,使得技术成熟到可以商用
+
+for the technology to mature and become commercially feasible.
+并且让计算机行业活得足够久,使得技术成熟到可以商用
+
+Then businesses and ultimately consumers, provided the demand to take it mainstream.
+然后是公司,最后是消费者,把计算机变成了主流
+
+The cold war may be over, but this relationship continues today
+冷战虽然结束了,但这种关系今天仍在继续
+
+Governments are still funding science research.
+政府依然在资助科学研究
+
+intelligence agencies are still buying supercomputers.
+情报机构依然在超级计算机
+
+humans are still being launched into space.
+人类仍然被发射到太空里
+
+And you're still buying TV, Xbox, Playstation, Laptop and Smartphone
+而你依然在买电视,Xbox,Playstation,笔记本电脑和手机
+
+and for these reasons,
+因此,计算机会继续飞速发展
+
+Computing continues to advance a lightning pace.
+因此,计算机会继续飞速发展
+
+I'll see you next week
+我们下周见
+
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+As we discussed last week, the idea of having a computer all to yourself a personal
+上周说过"个人计算机"的概念 \N 在计算机发展的头 30 年难以想象
+
+computer was elusive for the first three decades of electronic computing.
+上周说过"个人计算机"的概念 \N 在计算机发展的头 30 年难以想象
+
+It was just way too expensive for a computer to be owned and used by one single person.
+如果只让一个人用,成本实在太高
+
+But, by the early 1970s, all the required components had fallen into place to build
+但到 70 年代初,各种组件的成本都下降了 \N 可以做出低成本 同时性能足够强大的计算机
+
+a low cost, but still usefully powerful computer.
+但到 70 年代初,各种组件的成本都下降了 \N 可以做出低成本 同时性能足够强大的计算机
+
+Not a toy, but a tool.
+不是玩具级计算机,是真正能用的计算机
+
+Most influential in this transition was the advent of single-chip CPUs,
+这个转变中 \N 最有影响力的是 单芯片 CPU 的出现
+
+which were surprisingly powerful, yet small and inexpensive.
+强大 + 体积小 + 便宜
+
+Advances in integrated circuits also offered low-cost solid-state memory,
+集成电路的进步,也提供了低成本固态存储器
+
+both for computer RAM and ROM.
+可以用于计算机的 RAM 和 ROM
+
+Suddenly it was possible to have an entire computer on one circuit board,
+忽然间 \N 把整台计算机做到一张电路板上成为可能
+
+dramatically reducing manufacturing costs.
+大大地降低了制造成本
+
+Additionally, there was cheap and reliable computer storage,
+而且,那时有便宜可靠的储存介质 \N 比如磁带和软盘
+
+like magnetic tape cassettes and floppy disks.
+而且,那时有便宜可靠的储存介质 \N 比如磁带和软盘
+
+And finally, the last ingredient was low cost displays, often just repurposed televisions.
+最后是 低成本的显示器 \N 通常是电视机稍作改装而成
+
+If you blended these four ingredients together in the 1970s, you got,
+如果在 1970 年代 \N 将这四种原料混在一起
+
+what was called a microcomputer,
+就得到了"微型计算机"
+
+because these things were so tiny compared to "normal" computers of that era, the
+因为和那个时代的"普通"计算机相比 \N 这些计算机很小
+
+types you'd see in business or universities.
+"普通"计算机就是公司或大学里的那种
+
+But more important than their size was their cost.
+但比大小更重要的是成本
+
+These were, for the first time, sufficiently cheap.
+这是有史以来第一次,计算机的价格足够低
+
+It was practical to buy one and only have one person ever use it.
+"一个人专用"的想法变得可行
+
+No time sharing,
+不用划分时间和别人公用计算机
+
+no multi-user logins, just a single owner and user.
+没有多用户登录,计算机只属于一个人,只有一个用户
+
+The personal computer era had arrived.
+个人计算机时代到来
+
+Computer cost and performance eventually reached the point
+计算机成本下降+性能提升, 让个人计算机成为可能
+
+where personal computing became viable.
+计算机成本下降+性能提升, 让个人计算机成为可能
+
+But, it's hard to define exactly when that happened.
+但这个时间点很难准确定义, 并没有一个具体时间点
+
+There's no one point in time.
+但这个时间点很难准确定义, 并没有一个具体时间点
+
+And as such, there are many contenders for the title of "first" personal computer,
+因此"第一台个人计算机"这个名号,有很多竞争者
+
+like the Kenback-1 and MCM/70.
+比如 Kenback-1 和 MCM/70
+
+Less disputed, however, is the first commercially successful personal computer: The Altair 8800.
+不过第一台取得商业成功的个人计算机 \N 争议较小:Altair 8800
+
+This machine debuted on the cover of Popular Electronics in 1975,
+首次亮相在 1975 年《Popular Electronics》封面
+
+and was sold as a $439 kit that you built yourself.
+售价 $439 美元,需要自己组装
+
+Inflation adjusted, that's about $2,000 today,
+计算通货膨胀后,相当如今的 2000 美元左右
+
+which isn't chump change, but extremely cheap for a computer in 1975.
+不算小钱,但比起 1975 年的其它计算机,算是非常便宜了
+
+Tens of thousands of kits were sold to computer hobbyists,
+各种需要自己组装的组件包 \N卖给了计算机爱好者
+
+and because of its popularity, there were soon all sorts of nifty add-ons available...
+因为买的人多,很快相关产品出现了
+
+things like extra memory, a paper tape reader and even a teletype interface.
+比如内存,纸带读取器,甚至电传接口
+
+This allowed you, for example, to load a longer, more complicated program from punch tape,
+让你可以从纸带上读取更长更复杂的程序
+
+and then interact with it using a teletype terminal.
+然后用电传终端交互
+
+However, these programs still had to be written in machine code,
+但程序还是要用 机器码 写
+
+which was really low level and nasty, even for hardcore computer enthusiasts.
+写起来很麻烦,即使计算机爱好者也讨厌写
+
+This problem didn't escape a young Bill Gates and Paul Allen,
+这没有吓跑年轻的比尔·盖茨和保罗·艾伦
+
+who were 19 and 22 respectively.
+他们当时是19岁和22岁
+
+They contacted MITS, the company making the Altair 8800,
+他们联系了制造 Altair 8800 的 MITS 公司
+
+suggesting the computer would be more attractive to hobbyists
+建议说,如果能运行 BASIC 程序 \N 会对爱好者更有吸引力
+
+if it could run programs written in BASIC,
+建议说,如果能运行 BASIC 程序 \N 会对爱好者更有吸引力
+
+a popular and simple programming language.
+BASIC 是一门更受欢迎更简单的编程语言
+
+To do this, they needed to write a program that converted BASIC instructions
+为此,他们需要一个程序 \N 把 BASIC 代码转成可执行机器码
+
+into native machine code, what's called an interpreter.
+这叫 解释器 (interpreter)
+
+This is very similar to a compiler,
+"解释器"和"编译器"类似
+
+but happens as the programs runs instead of beforehand.
+区别是"解释器"运行时转换\N而"编译器"提前转换
+
+Let's go to the thought bubble!
+让我们进入思想泡泡!
+
+MITS was interested,
+MITS 表示感兴趣
+
+and agreed to meet Bill and Paul for a demonstration.
+同意与 Bill 和 Paul 见个面,让他们演示一下
+
+Problem is, they hadn't written the interpreter yet.
+问题是,他们还没写好解释器
+
+So, they hacked it together in just a few weeks
+所以他们花了几个星期赶工 \N 而且还不是在 Altair 8800 上写的
+
+without even an Altair 8800 to develop on,
+所以他们花了几个星期赶工 \N 而且还不是在 Altair 8800 上写的
+
+finishing the final piece of code on the plane.
+最后在飞机上完成了代码
+
+The first time they knew their code worked was at MITS headquarters
+他们在墨西哥 阿尔伯克基(城市) \N 的 MITS 总部做演示时,才知道代码可以成功运行
+
+in Albuquerque, New Mexico, for the demo.
+他们在墨西哥 阿尔伯克基(城市) \N 的 MITS 总部做演示时,才知道代码可以成功运行
+
+Fortunately, it went well and MITS agreed to distribute their software.
+幸运的是进展顺利 \N MITS 同意在计算机上搭载他们的软件
+
+Altair BASIC became the newly formed Microsoft's first product.
+Altair BASIC 成了微软的第一个产品
+
+Although computer hobbyists existed prior to 1975,
+虽然1975年之前就有计算机爱好者
+
+the Altair 8800 really jump-started the movement.
+但 Altair 8800 大量催生了更多计算机爱好者
+
+Enthusiast groups formed, sharing knowledge and software and passion about computing.
+爱好者们组成各种小组 \N 分享知识,软件,以及对计算机的热爱
+
+Most legendary among these is the Homebrew Computer Club,
+最具传奇色彩的小组是"家酿计算机俱乐部"
+
+which met for the first time in March 1975
+第一次小组聚会在1975年3月
+
+to see a review unit of the Altair 8800, one of the first to ship to California.
+看一台第一批运来加州的 Altair 8800
+
+At that first meeting was 24-year-old Steve Wozniak, who was so inspired by
+第一次聚会上,24岁的 Steve Wozniak \N 被 Altair 8800 大大激励
+
+the Altair 8800 that he set out to design his own computer.
+开始想设计自己的计算机
+
+In May 1976, he demonstrated his prototype to the Club
+1976年5月,他向小组展示了原型机
+
+and shared the schematics with interested members.
+并且把电路图分享给感兴趣的其他会员
+
+Unusual for the time, it was designed to connect to a TV and offered a text interface
+他的设计不同寻常 \N 要连到电视显示,并提供文本界面
+
+a first for a low-cost computer.
+在低成本计算机上还是第一次见
+
+Interest was high, and shortly after fellow club member and college friend Steve Jobs
+同是俱乐部成员和大学朋友的 史蒂夫·乔布斯
+
+suggested that instead of just sharing the designs for free,
+建议说与其免费分享设计,不如直接出售装好的主板
+
+they should just sell an assembled motherboard.
+建议说与其免费分享设计,不如直接出售装好的主板
+
+However, you still had to add your own keyboard, power supply, and enclosure.
+但用户依然需要自己加键盘,电源和机箱
+
+It went on sale in July 1976 with a price tag of $666.66.
+1976年7月开始发售,价格$666.66美元
+
+It was called the Apple-I, and it was Apple Computer's first product.
+它叫 Apple-I ,苹果计算机公司的第一个产品
+
+Thanks thought bubble!
+谢了 思想泡泡
+
+Like the Altair 8800, the Apple-I was sold as a kit.
+就像 Altair 8800 一样,Apple-I 也是作为套件出售
+
+It appealed to hobbyists,
+Apple-I 吸引了业余爱好者 \N 不介意机器买回来自己组装
+
+who didn't mind tinkering and soldering,
+Apple-I 吸引了业余爱好者 \N 不介意机器买回来自己组装
+
+but consumers and businesses weren't interested.
+但个人消费者和公司对 Apple-I 不感兴趣
+
+This changed in 1977,
+这在 1977 年发生变化 \N 市场上有了三款开箱即用的计算机
+
+with the release of three game-changing computers, that could be used right out of the box.
+这在 1977 年发生变化 \N 市场上有了三款开箱即用的计算机
+
+First was the Apple II,
+第一款是 Apple-II
+
+Apple's earliest product that sold as a complete system
+苹果公司第一个提供全套设备的产品
+
+that was professionally designed and manufactured.
+设计和制造工艺都是专业的
+
+It also offered rudimentary color graphics and sound output,
+它还提供了简单彩色图形和声音输出
+
+amazing features for a low cost machine.
+这些功能对低成本机器非常了不起
+
+The Apple II series of computers sold by the millions and quickly
+Apple-II 卖了上百万套
+
+propelled Apple to the forefront of the personal computing industry.
+把苹果公司推到了个人计算机行业的前沿
+
+The second computer was the TRS-80 Model I,
+第二款是"TRS-80 1型"
+
+made by the Tandy Corporation
+由 Tandy 公司生产
+
+and sold by RadioShack hence the "TRS"
+由 Radioshack 销售,所以叫 TRS
+
+Although less advanced than the Apple II,
+虽然不如 Apple-II 先进 \N 但因为价格只有一半,所以卖得很火爆
+
+it was half the cost and sold like hot cakes.
+虽然不如 Apple-II 先进 \N 但因为价格只有一半,所以卖得很火爆
+
+Finally, there was the Commodore PET 2001,
+最后一款是 Commodore PET 2001
+
+with a unique all-in-one design
+有一体化设计
+
+that combined computer, monitor, keyboard and tape drive into one device,
+集成了计算机,显示器,键盘和磁带驱动器
+
+aimed to appeal to consumers.
+目标是吸引普通消费者
+
+It started to blur the line between computer and appliance.
+计算机和家用电器之间的界限开始变得模糊
+
+These three computers became known as the 1977 Trinity.
+这3台计算机被称为1977年的"三位一体"
+
+They all came bundled with BASIC interpreters,
+它们都自带了 BASIC 解释器
+
+allowing non-computer-wizards to create programs.
+让不那么精通计算机的人也能用 BASIC 写程序
+
+The consumer software industry also took off,
+针对消费者的软件行业 开始腾飞
+
+offering games and productivity tools for personal computers,
+市场上出现了各种 \N 针对个人计算机的游戏和生产力工具
+
+like calculators and word processors.
+比如计算器和文字处理器
+
+The killer app of the era was 1979's VisiCalc,
+最火的是 1979 年的 VisiCalc
+
+the first spreadsheet program
+第一个电子表格程序
+
+which was infinitely better than paper
+比纸好无数倍
+
+and the forbearer of programs like Microsoft Excel and Google Sheets.
+是微软 Excel 和 Google Sheets 的老祖先
+
+But perhaps the biggest legacy of these computers was their marketing,
+但这些计算机带来的最大影响 \N 也许是他们的营销策略
+
+they were the first to be targeted at households, and not just businesses and hobbyists.
+它们针对普通消费者 \N 而不是企业和爱好者
+
+And for the first time in a substantial way,
+这是第一次大规模地
+
+computers started to appear in homes, and also small businesses and schools.
+计算机出现在家庭,小公司,以及学校中
+
+This caught the attention of the biggest computer company on the planet, IBM, who had seen its
+这引起了全球最大计算机公司 IBM 的注意
+
+share of the overall computer market shrink from 60% in 1970 to around 30% by 1980.
+其市场份额从1970年的60% \N 在1980年降到了30%左右
+
+This was mainly because IBM had ignored the microcomputer market,
+因为IBM忽略了增长的"微型计算机"市场
+
+which was growing at about 40% annually.
+这个市场每年增长约40%
+
+As microcomputers evolved into personal computers, IBM knew it needed to get in on the action.
+随着微型计算机演变成个人计算机 \N IBM 知道他们需要采取行动
+
+But to do this, it would have to radically rethink its computer strategy and design.
+但要做到这一点 \N 公司要从根本上重新思考战略和设计
+
+In 1980, IBM's least-expensive computer, the 5120, cost roughly ten thousand dollars,
+1980年 IBM 最便宜的计算机 \N "5120"的价格大概是一万美元
+
+which was never going to compete with the likes of the Apple II.
+永远也没法和 Apple-II 这样的计算机竞争
+
+This meant starting from scratch.
+意味着要从头开始
+
+A crack team of twelve engineers, later nicknamed the dirty dozen,
+一个由十二名工程师组成的精干团队(后来叫"肮脏十二人")
+
+were sent off to offices in Boca Raton, Florida,
+被派往佛罗里达州的 \N 博卡拉顿(Boca Raton)办公室
+
+to be left alone and put their talents to work.
+让他们独立工作
+
+Shielded from IBM internal politics, they were able to design a machine as they desired.
+不受 IBM 内部的政治斗争干扰 \N 他们想怎么设计怎么设计
+
+Instead of using IBM proprietary CPUs, they chose Intel chips.
+没用 IBM 的 CPU,选了 Intel 的芯片
+
+Instead of using IBM's prefered operating system, CP/M,
+也没用 IBM 的首选操作系统 CP/M
+
+they licenced Microsoft's Disk Operating System: DOS
+而是用了微软的 DOS
+
+and so on, from the screen to the printer.
+依此类推,从屏幕到打印机都这样自由选择
+
+For the first time, IBM divisions had to compete with outside firms
+IBM 第一次不得不与外部公司竞争
+
+to build hardware and software for the new computer.
+来给新计算机做硬件和软件
+
+This radical break from the company tradition of in-house development kept costs low
+这和 IBM 的传统做法不同:自己做硬件来节省成本
+
+and brought partner firms into the fold.
+然后和其它公司合作
+
+After just a year of development,
+经过短短一年
+
+the IBM Personal Computer, or IBM PC was released.
+IBM 个人计算机发布了,简称 IBM PC
+
+It was an immediate success,
+产品立马取得了成功
+
+especially with businesses that had long trusted the IBM brand.
+长期信任 IBM 品牌的企业买了很多
+
+But, most influential to its ultimate success was that the computer featured an open architecture,
+但最有影响力的是 \N 它使用 "开放式架构"
+
+with good documentation and expansion slots,
+有良好的文档和扩展槽
+
+allowing third parties to create new hardware and peripherals for the platform.
+使得第三方可以做硬件/外设
+
+That included things like graphics cards, sounds cards, external hard drives, joysticks,
+包括显卡,声卡,外置硬盘,游戏控制杆 \N 以及无数其它组件
+
+and countless other add-ons.
+包括显卡,声卡,外置硬盘,游戏控制杆 \N 以及无数其它组件
+
+This spurred innovation, and also competition, resulting in a huge ecosystem of products.
+这刺激了创新,激发了竞争,产生了巨大的生态系统
+
+This open architecture became known as "IBM Compatible".
+这个开放架构叫 IBM Compatible"(IBM 兼容)
+
+If you bought an "IBM Compatible" computer, it meant you
+意味着如果买了"IBM兼容"的计算机
+
+could use that huge ecosystem of software and hardware.
+你可以用庞大生态系统中的其它软硬件
+
+Being an open architecture also meant that competitor companies could follow the standard
+开放架构也意味着 竞争对手公司可以遵循这个标准
+
+and create their own IBM Compatible computers.
+做出自己的"IBM 兼容"计算机
+
+Soon, Compaq and Dell were selling their own PC clones...
+很快,康柏和戴尔也开始卖 PC
+
+And Microsoft was happy to license MS-DOS to them,
+微软很乐意把 MS-DOS 授权给他们
+
+quickly making it the most popular PC operating system.
+使 DOS 迅速成为最受欢迎的 PC 操作系统
+
+IBM alone sold two million PCs in the first three years, overtaking Apple.
+仅在前三年 \N IBM就卖出了200万台 PC ,超过了苹果
+
+With a large user base, software and hardware developers concentrated
+有了庞大用户群,软件和硬件开发人员 \N 把精力放在"IBM 兼容"平台,因为潜在用户更多
+
+their efforts on IBM Compatible platforms, there were just more users to sell to.
+有了庞大用户群,软件和硬件开发人员 \N 把精力放在"IBM 兼容"平台,因为潜在用户更多
+
+Then, people wishing to buy a computer bought the one with the
+同时,想买计算机的人 \N 也会看哪种计算机的软硬件选择更多
+
+most software and hardware available, and this effect snowballed.
+就像雪球效应一样
+
+Companies producing non-IBM-compatible computers, often with superior specs,
+而那些生产非"IBM兼容"计算机的公司 (一般性能更好)
+
+failed.
+都失败了
+
+Only Apple kept significant market share without IBM compatibility.
+只有苹果公司在没有"IBM兼容"的情况下 \N 保持了足够市场份额
+
+Apple ultimately chose to take the opposite approach a "closed architecture" proprietary
+苹果公司最终选了相反的方式:"封闭架构"
+
+designs that typically prevent people from adding new hardware to their computers.
+即自己设计一切,用户一般无法加新硬件到计算机中
+
+This meant that Apple made its own computers, with its own operating system, and often its
+意味着苹果公司要做自己的计算机,自己的操作系统
+
+own peripherals, like displays, keyboards, and printers.
+还有自己的外围设备,如显示器,键盘和打印机
+
+By controlling the full stack, from hardware to software,
+通过控制整个范围,从硬件到软件
+
+Apple was able to control the user experience and improve reliability.
+苹果能控制用户体验并提高可靠性
+
+These competing business strategies were the genesis of the "Mac" versus "PC" division
+不同的商业策略是"Mac vs PC 谁更好"这种争论的起源
+
+that still exists today... which is a misnomer, because they're both personal computers!
+这些争论如今还存在 \N 不过"Mac vs PC"用词不对,因为它们都是个人计算机!
+
+But whatever.
+但是随便啦
+
+To survive the onslaught of low-cost PCs,
+为了在低成本个人计算机的竞争冲击下生存下来
+
+Apple needed to up its game,
+苹果需要提高自身水平 \N 提供比 PC 和 DOS 更好的用户体验
+
+and offer a user experience that PCs and DOS couldn't.
+苹果需要提高自身水平 \N 提供比 PC 和 DOS 更好的用户体验
+
+Their answer was the Macintosh, released in 1984.
+他们的答案是 Macintosh,于 1984 年发布
+
+This ground breaking, reasonably-low-cost, all-in-one computer
+一台突破性 价格适中的一体式计算机 \N 用的不是命令行界面,而是图形界面
+
+booted not a command-line text-interface, but rather a graphical user interface,
+一台突破性 价格适中的一体式计算机 \N 用的不是命令行界面,而是图形界面
+
+our topic for next week. See you then.
+我们下周讨论图形界面. 到时见
+
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨 我是 Carrie Anne 欢迎收看计算机科学速成课
+
+We ended last episode with the 1984 release of Apple's Macintosh personal computer.
+我们上集最后 \N 谈了苹果在1984年发布的 Macintosh
+
+It was the first computer a regular person could buy with a graphical user interface
+这是普通人可以买到的 \N 第一台带图形用户界面的计算机
+
+and a mouse to interact with it.
+还带一个鼠标
+
+This was a radical evolution from the command line interfaces
+那时的计算机全是命令行 \N 图形界面是个革命性进展
+
+found on all other personal computers of the era.
+那时的计算机全是命令行 \N 图形界面是个革命性进展
+
+Instead of having to remember...
+不必记住或猜正确的命令
+
+or guess... the right commands to type in,
+我们不必记住或猜测正确的命令
+
+a graphical user interface shows you what functions are possible.
+图形界面直接显示了,你可以做什么
+
+You just have to look around the screen for what you want to do.
+只要在屏幕上找选项就行了
+
+It's a "point and click" interface.
+这是一个"选择并点击"的界面
+
+All of a sudden, computers were much more intuitive.
+突然间计算机更直观了
+
+Anybody, not just hobbyists or computer scientists,
+不只是爱好者或科学家能用计算机 \N 任何人都可以用计算机解决问题
+
+could figure things out all by themselves.
+不只是爱好者或科学家能用计算机 \N 任何人都可以用计算机解决问题
+
+The Macintosh is credited with taking Graphical User Interfaces, or GUIs, mainstream,
+人们认为是 Macintosh \N 把图形用户界面(GUI)变成主流
+
+but in reality they were the result of many decades of research.
+但实际上图形界面是数十年研究的成果
+
+In previous episodes, we discussed some early interactive graphical applications,
+前几集,我们讨论了早期的交互式图形程序
+
+like Sketchpad and Spacewar!, both made in 1962.
+比如 Sketchpad 和太空战争 \N 都是1962年制作的
+
+But these were one-off programs,
+但都是一次性项目,不是整合良好的体验
+
+and not whole integrated computing experiences.
+但都是一次性项目,不是整合良好的体验
+
+Arguably, the true forefather of modern GUIs was Douglas Engelbart.
+现代图形界面的先驱 \N 可以说是 道格拉斯·恩格尔巴特
+
+Let's go to the thought bubble!
+让我们进入思想泡泡!
+
+During World War 2, while Engelbart was stationed in the Philippines as a radar operator,
+二战期间 \N 恩格尔巴特 驻扎在菲律宾做雷达操作员
+
+he read Vannevar Bush's article on the Memex.
+他读了 万尼瓦尔·布什 的 Memex 文章
+
+These ideas inspired him,
+这些文章启发了他
+
+and when his Navy service ended,
+当他海军服役结束时
+
+he returned to school, completing a Ph.D. in 1955 at U.C. Berkeley.
+他回到学校 \N 1955年在 UCB 取得博士学位
+
+Heavily involved in the emerging computing scene,
+他沉溺于新兴的计算机领域
+
+he collected his thoughts in a seminal 1962 report,
+他在1962年一份开创性报告中 \N 汇集了各种想法
+
+titled: "Augmenting Human Intellect".
+报告名为:"增强人类智力"
+
+Engelbart believed that the complexity of the problems facing mankind
+恩格尔巴特认为,人类面临的问题 \N 比解决问题的能力增长得更快
+
+was growing faster than our ability to solve them.
+恩格尔巴特认为,人类面临的问题 \N 比解决问题的能力增长得更快
+
+Therefore, finding ways to augment our intellect
+因此,找到增强智力的方法 \N 似乎是必要且值得一做的目标
+
+would seem to be both a necessary and a desirable goal.
+因此,找到增强智力的方法 \N 似乎是必要且值得一做的目标
+
+He saw that computers could be useful beyond just automation,
+他构想计算机不仅做自动化工作
+
+and be essential interactive tools for future knowledge workers to tackle complex problems.
+也可以成为未来知识型员工 \N 应对复杂问题的工具
+
+Further inspired by Ivan Sutherland's recently demonstrated Sketchpad,
+伊凡·苏泽兰 的"几何画板" \N 进一步启发了 恩格尔巴特
+
+Engelbart set out to make his vision a reality, recruiting a team to build the oN-Line System.
+他决定动手把愿景变为现实 \N 开始招募团队来做 oN-Line System
+
+He recognized that a keyboard alone was insufficient
+他意识到如果只有键盘 \N 对他想搭建的程序来说是不够的
+
+for the type of applications he was hoping to enable.
+他意识到如果只有键盘 \N 对他想搭建的程序来说是不够的
+
+In his words:
+用他的话说:
+
+"We envisioned problem-solvers using computer-aided working stations to augment their efforts.
+"我们设想人们用计算机辅助工作站来增强工作
+
+They required the ability to interact with information displays
+用户需要和屏幕上的信息互动
+
+using some sort of device to move [a cursor] around the screen."
+用某种设备在屏幕上移动[光标]"
+
+And in 1964, working with colleague Bill English,
+1964年,和同事比尔·英格利希的共同努力下
+
+he created the very first computer mouse.
+他创造了第一个计算机鼠标,尾部有一根线
+
+The wire came from the bottom of the device
+他创造了第一个计算机鼠标,尾部有一根线
+
+and looked very much like a rodent and the nickname stuck.
+看起来很像老鼠 \N 因此"鼠标"这个名字沿用了下来
+
+Thanks thought bubble!
+谢了思想泡泡!
+
+In 1968, Engelbart demonstrated his whole system at the Fall Joint Computer Conference,
+1968年 恩格尔巴特 \N 在"秋季计算机联合会议"展示了他的系统
+
+in what's often referred to as "the mother of all demos".
+这次演示 被视为如今所有演示的祖先
+
+The demo was 90 minutes long and demonstrated many features of modern computing:
+演示有90分钟 \N 展现了现代计算机的许多功能:
+
+bitmapped graphics,
+包括 位图图像
+
+video conferencing,
+视频会议
+
+word processing,
+文字处理
+
+and collaborative real-time editing of documents.
+和 实时协作编辑文件
+
+There were also precursors to modern GUIs,
+还有现代图形界面的原型 比如鼠标和多窗口
+
+like the mouse and multiple windows
+还有现代图形界面的原型 比如鼠标和多窗口
+
+- although they couldn't overlap.
+- 不过窗口不能重叠
+
+It was way ahead of its time,
+远远先于那个时代
+
+and like many products with that label, it ultimately failed,
+就像其它"跨时代"的产品一样,它最终失败了
+
+at least commercially.
+至少商业上是这样
+
+But its influence on computer researchers of the day was huge.
+但它对当时的计算机研究者影响巨大
+
+Engelbart was recognized for this watershed moment in computing with a Turing Award in 1997.
+恩格尔巴特 因此获得1997年图灵奖
+
+Federal funding started to reduce in the early 1970s,
+政府资金在 1970 年代初开始减少
+
+which we discussed two episodes ago.
+我们在两集前说过\N(第24集:冷战和消费主义)
+
+At that point, many of Engelbart's team, including Bill English,
+那时,恩格尔巴特团队里的许多人,包括比尔·英格利希
+
+left and went to Xerox's newly formed Palo Alto Research Center,
+去了施乐公司新成立的"帕洛阿尔托研究中心"
+
+more commonly known as Xerox PARC.
+更为人熟知的名字是 Xerox PARC
+
+It was here that the first true GUI computer was developed:
+他们在这里开发了第一台带真正 GUI 的计算机:
+
+the Xerox Alto, finished in 1973.
+施乐奥托 于1973年完成
+
+For the computer to be easy to use,
+为了让计算机易于使用,需要的不只是花哨的图形
+
+it needed more than just fancy graphics.
+为了让计算机易于使用,需要的不只是花哨的图形
+
+It needed to be built around a concept that people were already familiar with,
+还要借助一些人们已经熟悉的概念
+
+so they could immediately recognize how to use the interface with little or no training.
+让人们不用培训 就能很快明白如何使用
+
+Xerox's answer was to treat the 2D screen like the top of a desk or desktop.
+施乐的答案是将2D屏幕当作"桌面"
+
+Just like how you can have many papers laid out on a desk,
+就像桌面上放很多文件一样
+
+a user could have several computer programs open at once.
+用户可以打开多个程序 \N 每个程序都在一个框里,叫"窗口"
+
+Each was contained in their own frame,
+用户可以打开多个程序 \N 每个程序都在一个框里,叫"窗口"
+
+which offered a view onto the application called a window.
+用户可以打开多个程序 \N 每个程序都在一个框里,叫"窗口"
+
+Also like papers on a desk,
+就像桌上的文件一样
+
+these windows could overlap, blocking the items behind them.
+窗口可以重叠,挡住后面的东西
+
+And there were desk accessories, like a calculator and clock,
+还有桌面配件,比如计算器和时钟
+
+that the user could place on the screen and move around.
+用户可以把配件在屏幕上四处移动
+
+It wasn't an exact copy of a desktop though.
+它不是现实桌面的完美复制,而是用桌面这种隐喻
+
+Instead, it was a metaphor of a desktop.
+它不是现实桌面的完美复制,而是用桌面这种隐喻
+
+For this reason, surprisingly, it's called the Desktop Metaphor.
+因此叫"桌面隐喻"
+
+There are many ways to design an interface like this,
+有很多方法来设计界面 \N 但 Alto 团队用窗口,图标,菜单和指针来做
+
+but the Alto team did it with windows, icons, menus, and a pointer
+有很多方法来设计界面 \N 但 Alto 团队用窗口,图标,菜单和指针来做
+
+- what's called a WIMP interface.
+- 因此叫 WIMP 界面
+
+It's what most desktop GUIs use today.
+如今大部分图形界面都用这个
+
+It also offered a basic set of widgets,
+它还提供了一套基本部件
+
+reusable graphical building blocks, things like buttons, checkboxes, sliders, and tabs
+可复用的基本元素 \N 比如按钮,打勾框,滑动条和标签页
+
+which were also drawn from real world objects to make them familiar.
+这些也来自现实世界,让人们有熟悉感
+
+GUI applications are constructed from these widgets,
+GUI 程序就是这些小组件组成的
+
+so let's try coding a simple example using this new programming paradigm.
+让我们试着写一个简单例子
+
+First, we have to tell the operating system that we need a new window to be created for our app.
+首先,我们必须告诉操作系统 \N 为程序创建一个窗口
+
+We do this through a GUI API.
+我们通过 GUI API 实现 \N 需要指定窗口的名字和大小
+
+We need to specify the name of the window and also its size.
+我们通过 GUI API 实现 \N 需要指定窗口的名字和大小
+
+Let's say 500 by 500 pixels.
+假设是 500×500 像素
+
+Now, let's add some widgets - a text box and a button.
+现在再加一些小组件,一个文本框和一个按钮
+
+These require a few parameters to create.
+创建它们需要一些参数
+
+First, we need to specify what window they should appear in,
+首先要指定出现在哪个窗口 \N 因为程序可以有多个窗口
+
+because apps can have multiple windows.
+首先要指定出现在哪个窗口 \N 因为程序可以有多个窗口
+
+We also need to specify the default text, the X and Y location in the window, and a width and height.
+还要指定默认文字\N 窗口中的 X,Y 位置 以及宽度和高度
+
+Ok, so now we've got something that looks like a GUI app,
+好,现在我们有个 \N 看起来像 GUI 程序的东西
+
+but has no functionality.
+但它还没有功能
+
+If you click the "roll" button, nothing happens.
+如果点 Roll 按钮,什么也不会发生
+
+In previous examples we've discussed,
+在之前的例子中,代码是从上到下执行的
+
+the code pretty much executes from top to bottom.
+在之前的例子中,代码是从上到下执行的
+
+GUIs, on the other hand, use what's called event-driven programming;
+但 GUI 是 "事件驱动编程"
+
+code can fire at any time, and in different orders, in response to events.
+代码可以在任意时间执行 以响应事件
+
+In this case, it's user driven events,
+这里是用户触发事件 \N 比如点击按钮,选一个菜单项,或滚动窗口
+
+like clicking on a button, selecting a menu item, or scrolling a window.
+这里是用户触发事件 \N 比如点击按钮,选一个菜单项,或滚动窗口
+
+Or if a cat runs across your keyboard,
+或一只猫踩过键盘
+
+it's a bunch of events all at once!
+就会一次触发好多事件!
+
+Let's say that when the user clicks the "roll" button,
+假设当用户点 Roll 按钮
+
+we want to randomly generate a number between 1 and 20,
+我们产生1到20之间的随机数
+
+and then show that value in our text box.
+然后在文本框中,显示这个数字
+
+We can write a function that does just that.
+我们可以写一个函数来做
+
+We can even get a little fancy and say if we get the number 20,
+我们还可以让它变有趣些,假设随机数是 20 \N 就把背景颜色变成血红色!
+
+set the background color of the window to blood red!
+我们还可以让它变有趣些,假设随机数是 20 \N 就把背景颜色变成血红色!
+
+The last thing we need to do is hook this code up
+最后,把代码与"事件"相连 \N 每次点按钮时 都触发代码
+
+so that it's triggered each time our button is clicked.
+最后,把代码与"事件"相连 \N 每次点按钮时 都触发代码
+
+To do this, we need to specify that our function "handles" this event for our button,
+那么,要设置事件触发时 \N 由哪个函数来处理
+
+by adding a line to our initialize function.
+我们可以在初始化函数中,加一行代码来实现
+
+The type of event, in this case, is a click event,
+我们要处理的,是"点击"事件 \N 然后函数会处理这个事件
+
+and our function is the event handler for that event.
+我们要处理的,是"点击"事件 \N 然后函数会处理这个事件
+
+Now we're done.
+现在完成了
+
+We can click that button all day long,
+可以点按钮点上一整天 \N 每次都会执行 rollD20 函数
+
+and each time, our "roll D20" function gets dispatched and executed.
+可以点按钮点上一整天 \N 每次都会执行 rollD20 函数
+
+This is exactly what's happening behind the scenes
+这就是程序背后的原理
+
+when you press the little bold button in a text editor, or select shutdown from a dropdown menu
+在编辑器里点 粗体 或菜单里选 关机 \N 一个处理该事件的函数会触发
+
+- a function linked to that event is firing.
+在编辑器里点 粗体 或菜单里选 关机 \N 一个处理该事件的函数会触发
+
+Hope I don't roll a 20.
+希望不会随机到 20
+
+Ahhhh!
+啊!!!
+
+Ok, back to the Xerox Alto!
+好,现在回到施乐奥托!
+
+Roughly 2000 Altos were made, and used at Xerox and given to University labs.
+大约制作了2000台奥托\N 有的在施乐公司内部用,有的送给大学实验室
+
+They were never sold commercially.
+从来没有商业出售过
+
+Instead, the PARC team kept refining the hardware and software,
+然而,PARC 团队不断完善硬件和软件
+
+culminating in the Xerox Star system, released in 1981.
+最终于1981年发布了 施乐之星系统
+
+The Xerox Star extended the desktop metaphor.
+施乐之星扩展了"桌面隐喻"
+
+Now, files looked like pieces of paper,
+现在文件看起来就像一张纸 \N 还可以存在文件夹里
+
+and they could be stored in little folders,
+现在文件看起来就像一张纸 \N 还可以存在文件夹里
+
+all of which could sit on your desktop, or be put away into digital filing cabinets.
+这些都可以放桌面上,或数字文件柜里
+
+It's a metaphor that sits ontop of the underlying file system.
+这样来隐喻底层的文件系统
+
+From a user's perspective, this is a new level of abstraction!
+从用户角度来看,是一层新抽象!
+
+Xerox, being in the printing machine business, also advanced text and graphics creation tools.
+施乐卖的是印刷机 \N 但在文本和图形制作工具领域也有领先
+
+For example, they introduced the terms: cut, copy and paste.
+例如,他们首先使用了\N "剪切""复制""粘贴"这样的术语
+
+This metaphor was drawn
+这个比喻来自编辑打字机文件
+
+from how people dealt with making edits in documents written on typewriters.
+这个比喻来自编辑打字机文件
+
+You'd literally cut text out with scissors, and then paste it, with glue,
+真的是剪刀"剪切" \N 然后胶水"粘贴" 到另一个文件
+
+into the spot you wanted in another document.
+真的是剪刀"剪切" \N 然后胶水"粘贴" 到另一个文件
+
+Then you'd photocopy the page to flatten it back down into a single layer,
+然后再复印一次,新文件就是一层了
+
+making the change invisible.
+看不出编辑的痕迹
+
+Thank goodness for computers!
+感谢计算机的出现!
+
+This manual process was moot with the advent of word processing software,
+文字处理软件出现后 \N 这种手工做法就消失了
+
+which existed on platforms like the Apple II and Commodore PET.
+Apple II 和 Commodore PET 上有文字处理软件
+
+But Xerox went way beyond the competition
+但施乐在这点上走的更远
+
+with the idea that whatever you made on the computer
+无论你在计算机上做什么 \N 文件打印出来应该长得一样
+
+should look exactly like the real world version, if you printed it out.
+无论你在计算机上做什么 \N 文件打印出来应该长得一样
+
+They dubbed this What-You-See-Is-What-You-Get or WYSIWYG.
+他们叫这个"所见即所得"
+
+Unfortunately, like Engelbart's oN-Line System,
+不幸的是,就像恩格尔巴特的 oN-Line System
+
+the Xerox Star was ahead of its time.
+施乐之星也领先于那个时代,销售量不高
+
+Sales were sluggish
+施乐之星也领先于那个时代,销售量不高
+
+because it had a price tag equivalent to nearly $200,000 today for an office setup.
+因为在办公室里配一个,相当如今20万美元
+
+It also didn't help that the IBM PC launched that same year,
+IBM 同年推出了 IBM PC
+
+followed by a tsunami of cheap "IBM Compatible" PC Clones.
+之后便宜的"IBM兼容"计算机席卷市场
+
+But the great ideas that PARC researchers had been cultivating
+但 PARC 研究人员花了十几年做的这些 \N 没有被浪费
+
+and building for almost a decade didn't go to waste.
+但 PARC 研究人员花了十几年做的这些 \N 没有被浪费
+
+In December of 1979, a year and a half before the Xerox Star shipped,
+1979年12月,施乐之星出货前一年半
+
+a guy you may have heard of visited: Steve Jobs.
+有个人去施乐公司参观 \N 你可能听说过这个人:史蒂夫·乔布斯
+
+There's a lot of lore surrounding this visit,
+这次参观有很多传闻
+
+with many suggesting that Steve Jobs and Apple stole Xerox's ideas.
+许多人认为\N 乔布斯和苹果偷走了施乐的创意
+
+But that simply isn't true.
+但那不是事实
+
+In fact, Xerox approached Apple, hoping to partner with them.
+事实上是施乐公司主动找苹果,希望合作
+
+Ultimately, Xerox was able to buy a million dollar stake in Apple
+最终施乐还买了苹果的一百万美元股份
+
+before its highly anticipated I.P.O.
+在苹果备受瞩目的 首次公开募股(IPO) 前买的
+
+-but it came with an extra provision:
+但一个额外条款是:
+
+"disclose everything cool going on at Xerox PARC".
+"公布一切施乐研究中心正在进行的酷工作"
+
+Steve knew they had some of the greatest minds in computing,
+史蒂夫知道他们很厉害
+
+but he wasn't prepared for what he saw.
+但他完全没预想到这些
+
+There was a demonstration of Xerox's graphical user interface,
+其中有个演示是
+
+running on a crisp, bitmapped display,
+一个清晰的位图显示器上,运行着施乐公司的图形界面 \N 操作全靠鼠标直观进行
+
+all driven with intuitive mouse input.
+一个清晰的位图显示器上,运行着施乐公司的图形界面 \N 操作全靠鼠标直观进行
+
+Steve later said, "It was like a veil being lifted from my eyes.
+史蒂夫后来说:"就像拨开了眼前的一层迷纱
+
+I could see the future of what computing was destined to be."
+我可以看到计算机产业的未来"
+
+Steve returned to Apple with his engineering entourage,
+史蒂夫和随行的工程师回到苹果公司,开始开发新功能
+
+and they got to work inventing new features,
+史蒂夫和随行的工程师回到苹果公司,开始开发新功能
+
+like the menu bar and a trash can to store files to be deleted;
+比如菜单栏和垃圾桶,垃圾桶存删除文件
+
+it would even bulge when full - again with the metaphors.
+满了甚至会膨胀 - 再次使用了隐喻
+
+Apple's first product with a graphical user interface, and mouse,
+苹果第一款有图形界面和鼠标的产品
+
+was the Apple Lisa, released in 1983.
+是 1983 年发行的 Apple Lisa
+
+It was a super advanced machine, with a super advanced price
+一台超级先进的机器,标了"超级先进"的价格
+
+- almost 25 thousand dollars today.
+- 差不多是如今的 25000 美元
+
+That was significantly cheaper than the Xerox Star,
+虽然比施乐之星便宜不少
+
+but it turned out to be an equal flop in the market.
+但在市场上同样失败
+
+Luckily, Apple had another project up its sleeve:
+幸运的是,苹果还有另一个项目:
+
+The Macintosh, released a year later, in 1984.
+Macintosh,于 1984 年发布
+
+It had a price of around 6,000 dollars today - a quarter of the Lisa's cost.
+价格大约是如今的6000美元 - Lisa 的四分之一
+
+And it hit the mark, selling 70,000 units in the first 100 days.
+它成功了,开售100天就卖了7万台
+
+But after the initial craze, sales started to falter,
+但在最初的狂潮后,销售额开始波动
+
+and Apple was selling more of its Apple II computers than Macs.
+苹果公司卖的 Apple II 比 Mac 多
+
+A big problem was that no one was making software for this new machine
+一个大问题是:没人给这台新机器做软件
+
+with it's new radical interface.
+一个大问题是:没人给这台新机器做软件
+
+And it got worse. The competition caught up fast.
+之后情况变得更糟,竞争对手赶上来了
+
+Soon, other personal computers had primitive,
+不久,其它价格只有 Mac 几分之一的个人计算机 \N 有了原始但可用的图形界面
+
+but usable graphical user interfaces on computers a fraction of the cost.
+不久,其它价格只有 Mac 几分之一的个人计算机 \N 有了原始但可用的图形界面
+
+Consumers ate it up, and so did PC software developers.
+消费者认可它们, PC 软件开发者也认可
+
+With Apple's finances looking increasingly dire,
+随着苹果的财务状况日益严峻 \N 以及和苹果新 CEO 约翰·斯卡利 的关系日益紧张
+
+and tensions growing with Apple's new CEO, John Sculley,
+随着苹果的财务状况日益严峻 \N 以及和苹果新 CEO 约翰·斯卡利 的关系日益紧张
+
+Steve Jobs was ousted.
+史蒂夫乔布斯被赶出了苹果公司
+
+A few months later, Microsoft released Windows 1.0.
+几个月后,微软发布了 Windows 1.0
+
+It may not have been as pretty as Mac OS,
+它也许不如 Mac OS 漂亮
+
+but it was the first salvo in what would become a bitter rivalry
+但让微软在市场中站稳脚跟 \N 奠定了统治地位
+
+and near dominance of the industry by Microsoft.
+但让微软在市场中站稳脚跟 \N 奠定了统治地位
+
+Within ten years, Microsoft Windows was running on almost 95% of personal computers.
+十年内,95%的个人计算机上都有微软的 Windows
+
+Initially, fans of Mac OS could rightly claim superior graphics and ease-of-use.
+最初,Mac OS 的爱好者还可以说\N Mac 有卓越的图形界面和易用性
+
+Those early versions of Windows were all built on top of DOS,
+Windows 早期版本都是基于 DOS \N 而 DOS 设计时 没想过运行图形界面
+
+which was never designed to run GUIs.
+Windows 早期版本都是基于 DOS \N 而 DOS 设计时 没想过运行图形界面
+
+But, after Windows 3.1,
+但 Windows 3.1 之后
+
+Microsoft began to develop a new consumer-oriented OS
+微软开始开发新的,\N 面向消费者的 GUI 操作系统
+
+with upgraded GUI called Windows 95.
+叫 Windows 95
+
+This was a significant rewrite that offered much more than just polished graphics.
+这是一个意义非凡的版本 \N 不仅提供精美的界面
+
+It also had advanced features Mac OS didn't have,
+还有 Mac OS 没有的高级功能
+
+like program multitasking and protected memory.
+比如"多任务"和"受保护内存"
+
+Windows 95 introduced many GUI elements still seen in Windows versions today,
+Windows 95 引入了许多 \N 如今依然见得到的 GUI 元素
+
+like the Start menu, taskbar, and Windows Explorer file manager.
+比如开始菜单,任务栏和 Windows 文件管理器
+
+Microsoft wasn't infallible though.
+不过微软也失败过
+
+Looking to make the desktop metaphor even easier and friendlier,
+为了让桌面更简单友好 \N 微软开发了一个产品叫 Microsoft Bob
+
+it worked on a product called Microsoft Bob,
+为了让桌面更简单友好 \N 微软开发了一个产品叫 Microsoft Bob
+
+and it took the idea of using metaphors to an extreme.
+将比喻用到极致
+
+Now you had a whole virtual room on your screen,
+现在屏幕上有了一个虚拟房间
+
+with applications embodied as objects that you could put on tables and shelves.
+程序是物品,可以放在桌子和书架上
+
+It even came with a crackling fireplace and a virtual dog to offer assistance.
+甚至还有噼啪作响的壁炉 \N 和提供帮助的虚拟狗狗
+
+And you see those doors on the sides?
+你看到那边的门没?
+
+Yep, those went to different rooms in your computer
+是的,那些门通往不同房间 \N 房间里有不同程序
+
+where different applications were available.
+是的,那些门通往不同房间 \N 房间里有不同程序
+
+As you might have guessed,
+你可能猜到了,它没有获得成功
+
+it was not a success.
+你可能猜到了,它没有获得成功
+
+This is a great example of how the user interfaces we enjoy today
+这是一个好例子,说明如今的用户界面
+
+are the product of what's essentially natural selection.
+是自然选择后的结果
+
+Whether you're running Windows, Mac, Linux, or some other desktop GUI,
+无论你用的是 \N Windows,Mac,Linux 或其他 GUI
+
+it's almost certainly an evolved version of the WIMP paradigm first introduced on the Xerox Alto.
+几乎都是施乐奥托 WIMP 的变化版
+
+Along the way, a lot of bad ideas were tried, and failed.
+一路上,人们试了各种做法并失败了
+
+Everything had to be invented, tested, refined, adopted or dropped.
+一切都必须发明,测试,改进,适应或抛弃
+
+Today, GUIs are everywhere and while they're good,
+如今,图形界面无处不在 \N 使用体验一般只是可以接受,而不是非常好
+
+they are not always great.
+如今,图形界面无处不在 \N 使用体验一般只是可以接受,而不是非常好
+
+No doubt you've experienced design-related frustrations
+你肯定体验过差劲的设计
+
+after downloading an application, used someone else's phone,
+比如下载了很烂的 App,用过别人糟糕的手机
+
+or visited a website. And for this reason,
+或者看到过很差的网站,因此
+
+computer scientists and interface designers continue to work hard
+计算机科学家和界面设计师 \N 会继续努力工作
+
+to craft computing experiences that are both easier and more powerful.
+做出更好更强大的界面
+
+Ultimately, working towards Engelbart's vision of augmenting human intellect.
+朝着恩格尔巴特"增强人类智能"的愿景努力
+
+I'll see you next week.
+我们下周见
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Over the past five episodes,
+在过去五集
+
+we've worked up from text-based teletype interfaces to pixelated bitmapped graphics.
+我们从基于电传打字机的命令行界面 \N 讲到图形怎么显示到屏幕上
+
+Then, last episode,we covered Graphical User Interfaces and all
+再到上集的 图形用户界面(GUI)
+
+their "Ooey Gooey" richness.
+以及图形界面的美味
+
+All of these examples have been 2D. But of course "we are living in a 3D world
+之前的例子都是2D, 但我们生活的世界是3D的
+
+and I'm a 3 dimensional girl!
+我也是个三维 girl~
+
+So today, we're going to talk about some fundamental methods in 3D computer graphics
+所以今天,我们讲3D图形的基础知识
+
+and how you render them onto a 2D screen.
+以及如何渲染 3D 图形到 2D 屏幕上
+
+As we discussed in episode 24 we can write functions that draw a line between any two points like A and B.
+24集中说过 \N 可以写一个函数,从A到B画一条线
+
+By manipulating the X and Y coordinates of points A and B, we can manipulate the line.
+通过控制 A 和 B 的(X,Y)坐标,可以控制一条线
+
+In 3D graphics, points have not just two coordinates, but three -- X, Y and Z.
+在3D图像中, 点的坐标不再是两点, 而是三点, X,Y,Z
+
+Or "zee" but I'm going to say "zed".
+或读"Zee",但我之后会读成"Zed"
+
+Of course, we don't have X/Y/Z coordinates on a 2D computer screen
+当然,2D的电脑屏幕上\N不可能有 XYZ 立体坐标轴
+
+so graphics algorithms are responsible for "flattening" 3D coordinates onto a 2D plane.
+所以有图形算法 \N 负责把3D坐标"拍平"显示到2D屏幕上
+
+This process is known as 3D Projection.
+这叫"3D投影"
+
+Once all of the points have been converted from 3D to 2D
+所有的点都从3D转成2D后
+
+we can use the regular 2D line drawing function to connect the dots… literally.
+就可以用画2D线段的函数 来连接这些点
+
+This is called Wireframe Rendering.
+这叫 "线框渲染"
+
+Imagine building a cube out of chopsticks, and shining a flashlight on it.
+想象用筷子做一个立方体,然后用手电筒照它
+
+The shadow it casts onto your wall - its projection - is flat.
+墙上的影子就是投射,是平的
+
+If you rotate the cube around
+如果旋转立方体
+
+you can see it's a 3D object, even though it's a flat projection.
+投影看起来会像 3D 物体,尽管是投影面是平的
+
+This transformation from 3D to 2D is exactly what your computer is doing
+电脑也是这样3D转2D
+
+just with a lot more math… and less chopsticks.
+只不过用大量数学,而不是筷子
+
+There are several types of 3D Projection.
+3D投影有好几种
+
+What you're seeing right now is an Orthographic Projection
+你现在看到的,叫 正交投影
+
+where, for example, the parallel sides in the cube appear as parallel in the projection.
+立方体的各个边,在投影中互相平行
+
+In the real 3D world through, parallel lines converge as they get further from the viewer
+在真实3D世界中,平行线段会在远处收敛于一点
+
+like a road going to the horizon.
+就像远处的马路汇聚到一点
+
+This type of 3D projection is called Perspective Projection .
+这叫 透视投射
+
+It's the same process, just with different math.
+过程是类似的,只是数学稍有不同
+
+Sometimes you want perspective and sometimes you don't --
+有时你想要透视投影,有时不想
+
+the choice is up to the developer.
+具体取决于开发人员
+
+Simple shapes, like cubes, are easily defined by straight lines.
+如果想画立方体这种简单图形,直线就够了
+
+But for more complex shapes, triangles are better
+但更复杂的图形,三角形更好
+
+-- what are called polygons in 3D graphics.
+在3D图形学中 \N 我们叫三角形"多边形"(Polygons)
+
+Look at this beautiful teapot made out of polygons.
+看看这个多边形组成的 漂亮茶壶
+
+A collection of polygons like this is a mesh
+一堆多边形的集合叫 网格
+
+The denser the mesh, the smoother the curves and the finer the details.
+网格越密,表面越光滑,细节越多
+
+But, that also increases the polygon count, which means more work for the computer
+但意味着更多计算量
+
+Game designers have to carefully balance model fidelity vs. polygon count,
+游戏设计者要平衡角色的真实度 \N 和多边形数量
+
+because if the count goes too high
+如果数量太多 \N 帧率会下降到肉眼可感知,用户会觉得卡
+
+the framerate of an animation drops below what users perceive as smooth.
+如果数量太多 \N 帧率会下降到肉眼可感知,用户会觉得卡
+
+For this reason, there are algorithms for simplifying meshes.
+因此有算法用来简化网格
+
+The reason triangles are used,
+之所以三角形更常用 \N 而不是用正方形,或其它更复杂的图形
+
+and not squares, or polygons, or some other more complex shape
+之所以三角形更常用 \N 而不是用正方形,或其它更复杂的图形
+
+is simplicity:
+是因为三角形的简单性
+
+three points in space unambiguously define a plane.
+空间中 三点定义一个平面
+
+If you give me three points in a 3D space, I can draw a plane through it
+如果给3个3D点,我能画出一个平面
+
+there is only one.. single.. answer.
+而且只有这一个答案
+
+This isn't guaranteed to be true for shapes with four or more points.
+4个或多于4个点就不一定了
+
+Also two points aren't enough to define a plane, only a line,
+而2个点不够定义平面,只能定义线段
+
+so three is the perfect and minimal number. Triangles for the win!
+所以3是最完美的数字,三角形万岁
+
+Wireframe rendering is cool and all - sorta retro - but of course 3D graphics can also be filled.
+线框渲染 虽然很酷,但3D图像需要填充
+
+The classic algorithm for doing this is called Scanline Rendering,
+填充图形的经典算法叫 扫描线渲染 (Scanline Rendering) \N 于1967年诞生在犹他州大学
+
+first developed in 1967 at the University of Utah
+填充图形的经典算法叫 扫描线渲染 (Scanline Rendering) \N 于1967年诞生在犹他州大学
+
+For a simple example, let's consider just one polygon.
+为了例子简单,我们只看一个多边形
+
+Our job here is to figure out how this polygon translates to filled pixels on a computer screen
+我们要思考 \N 这个多边形如何转成一块填满像素的区域
+
+so let's first overlay a grid of pixels to fill
+我们先铺一层像素网格
+
+The scanline algorithm starts by reading the three points that make up the polygon
+扫描线算法 先读多边形的3个点
+
+and finding the lowest and highest Y values. It will only consider rows between these two points.
+找最大和最小的Y值,只在这两点间工作
+
+Then, the algorithm works down one row at a time.
+然后算法从上往下,一次处理一行
+
+In each row, it calculates where a line running through
+计算每一行和多边形相交的2个点
+
+the center of a row - intersects with the side of the polygon.
+计算每一行和多边形相交的2个点
+
+Because polygons are triangles, if you intersect one line, you have to intersect with another.
+因为是三角形,如果相交一条边, 必然相交另一条
+
+It's guaranteed!
+因为是三角形,如果相交一条边, 必然相交另一条
+
+The job of the scanline algorithm is to fill in the pixels between the two intersections.
+扫描线算法 会填满2个相交点之间的像素
+
+Let's see how this works.
+来看个具体例子
+
+On the first row we look at we intersect here and here.
+第一行 相交于这里和这里
+
+The algorithm then colors in all pixels between those two intersections.
+算法把两点间填满颜色
+
+And this just continues, row by row, which is why it's called Scan... Line... Rendering.
+然后下一行,再下一行,所以叫 扫描..线..渲染
+
+When we hit the bottom of the polygon, we're done.
+扫到底部就完成了
+
+The rate at which a computer fills in polygons is called the fillrate.
+填充的速度叫 fillrate(填充速率)
+
+Admittedly, this is a pretty ugly filled polygon. It has what are known as "Jaggies" rough edges.
+当然 这样的三角形比较丑,边缘满是锯齿
+
+This effect is less pronounced when using smaller pixels.
+当像素较小时 就不那么明显
+
+But nonetheless, you see these in games all the time, especially on lower powered platforms.
+但尽管如此 \N 你肯定在游戏里见过这种效果,特别是低配电脑
+
+One method to soften this effect is Antialiasing.
+一种减轻锯齿的方法叫\N 抗锯齿(Antialiasing)
+
+Instead of filling pixels in a polygon with the same color,
+与其每个像素都涂成一样的颜色
+
+we can adjust the color based on how much the polygon cuts through each pixel
+可以判断多边形切过像素的程度,来调整颜色
+
+If a pixel is entirely inside of a polygon,it gets fully colored.
+如果像素在多边形内部,就直接涂颜色
+
+But if the polygon only grazes a pixel, it'll get a lighter shade.
+如果多边形划过像素,颜色就浅一些
+
+This feathering of the edges is much more pleasant to the eyes.
+这种边缘羽化的效果 看着更舒服些
+
+Antialiasing is used all over the place, including in 2D graphics, like fonts and icons.
+抗锯齿 被广泛使用,比如字体和图标
+
+If you lean in real close to your monitor..
+如果你把脸贴近屏幕
+
+Closer, Closer.
+近点..再近点
+
+You'll see all the fonts in your browser are Antialiased. So smooth!
+你能看到浏览器里字体是抗锯齿的,超平滑
+
+In a 3D scene, there are polygons that are part objects in the back, near the front,and just about everywhere.
+在3D场景中,多边形到处都是
+
+Only some are visible,
+但只有一部分能看见
+
+because some objects are hidden behind other objects in the scene
+因为其它的被挡住了
+
+-- what's called occlusion .
+这叫 遮挡
+
+The most straightforward way to handle this is to use a sort algorithm,
+最直接的处理办法是用排序算法
+
+and arrange all the polygons in the scene from farthest to nearest, then render them in that order.
+从远到近排列,然后从远到近渲染
+
+This is called the Painter's Algorithm , because painters also have to start with the background
+这叫 画家算法 因为画家也是先画背景
+
+and then increasingly work up to foreground elements.
+然后再画更近的东西
+
+Consider this example scene with three overlapping polygons.
+看这个例子,有3个重叠的多边形
+
+To make things easier to follow, we're going to color the polygons differently.
+为了简单,我们画成不同颜色
+
+Also for simplicity, we'll assume these polygons are all parallel to the screen
+同时,假设3个多边形都和屏幕平行
+
+but in a real program, like a game,
+但在实际应用中, 比如游戏里\N多边形可能是倾斜的
+
+the polygons can be tilted in 3D space.
+但在实际应用中, 比如游戏里\N多边形可能是倾斜的
+
+Our three polygons, A B and C… are at distance 20, 12 and 14.
+3个多边形A,B,C,距离20,12,14
+
+The first thing the Painter's Algorithm does is sort all the polygons, from farthest to nearest.
+画家算法的第一件事,是从远到近排序
+
+Now that they're in order, we can use scanline rendering to fill each polygon, one at a time.
+现在有序了,我们可以用 扫描线算法 填充多边形,一次填一个
+
+We start with Polygon A, the farthest one away.
+我们从最远的A开始
+
+Then we repeat the process for the next farthest polygon, in this case, C.
+然后重复这个过程,填充第二远的C
+
+And then we repeat this again, for Polygon B.
+然后是 B
+
+Now we're all done, and you can see the ordering is correct. The polygons that are closer, are in front!
+现在完成了,可以看到顺序是对的,近的多边形在前面!
+
+An alternative method for handling occlusion is called Z-Buffering .
+还有一种方法叫 深度缓冲
+
+It achieves the same output as before, but with a different algorithm.
+它和之前的算法做的事情一样,但方法不同
+
+Let's go back to our previous example, before it was sorted.
+我们回到之前的例子,回到排序前的状态
+
+That's because this algorithm doesn't need to sort any polygons, which makes it faster.
+因为这个算法不用排序,所以速度更快
+
+In short, Z-buffering keeps track of the closest distance
+简而言之,Z-buffering 算法会记录
+
+to a polygon for every pixel in the scene.
+场景中每个像素和摄像机的距离
+
+It does this by maintaining a Z-Buffer, which is just a matrix of values that sits in memory.
+在内存里存一个数字矩阵
+
+At first, every pixel is initialized to infinity.
+首先,每个像素的距离被初始化为"无限大"
+
+Then Z-buffering starts with the first polygon in its list. In this case, that's A.
+然后 Z-buffering 从列表里第一个多边形开始处理,也就是A
+
+It follows the same logic as the scanline algorithm, but instead of coloring in pixels,
+它和扫描线算法逻辑相同,但不是给像素填充颜色
+
+it checks the distance of the polygon versus what's recorded in its Z-Buffer.
+而是把多边形的距离\N和 Z-Buffer 里的距离进行对比
+
+It records the lower of the two values.
+它总是记录更低的值
+
+For our Polygon A, with a distance of 20, it wins against infinity every time.
+A距离20,20小于"无限大",所以缓冲区记录20
+
+When it's done with Polygon A, it moves on to the next polygon in its list, and the same thing happens.
+算完A之后算下一个,以此类推
+
+Now, because we didn't sort the polygons,
+因为没对多边形排序
+
+it's not always the case that later polygons overwrite high values.
+所以后处理的多边形并不总会覆盖前面的
+
+In the case of Polygon C,
+对于多边形C
+
+only some of the values in the Z-buffer get new minimum distances.
+缓冲区里只有一部分值会被多边形C的距离值覆盖
+
+This completed Z-buffer is used in conjunction with a fancier version of scanline rendering
+Z缓冲区完成后,会和"扫描线"算法的改进高级版配合使用
+
+that not only tests for line intersection,
+不仅可以勘测到线的交叉点
+
+but also does a look up to see if that pixel will even be visible in the final scene.
+还可以知道某像素是否在最终场景中可见
+
+If it's not, the algorithm skips it and moves on.
+如果不可见,扫描线算法会跳过那个部分
+
+An interesting problem arises when two polygons have the same distance,
+当两个多边形距离相同时 \N 会出现一个有趣问题
+
+like if Polygon A and B are both at a distance of 20. Which one do you draw on top?
+比如多边形 A 和 B 距离都是 20, 哪个画上面?
+
+Polygons are constantly being shuffled around in memory and changing their access order.
+多边形会在内存中移来移去,访问顺序会不断变化
+
+Plus, rounding errors are inherent in floating point computations.
+另外,计算浮点数有舍入误差
+
+So, which one gets drawn on top is often unpredictable.
+所以哪一个画在上面, 往往是不可预测的
+
+The result is a flickering effect called Z-Fighting, which if you've played 3D games no doubt encountered.
+导致出现 Z-fighting 效果 \N 如果你玩过3D游戏,肯定见过
+
+Speaking of glitches, another common optimization in 3D graphics is called Back-Face Culling.
+说起 故障,3D游戏中有个优化叫 背面剔除
+
+If you think about it, a triangle has two sides, a front and a back.
+你想想,三角形有两面,正面和背面
+
+With something like the head of an avatar, or the ground in a game,
+游戏角色的头部或地面,只能看到朝外的一面
+
+you should only ever see one side -- the side facing outwards.
+游戏角色的头部或地面,只能看到朝外的一面
+
+So to save processing time, the back-side of polygons are often ignored in the rendering pipeline
+所以为了节省处理时间,会忽略多边形背面
+
+which cuts the number of polygon faces to consider in half.
+减了一半多边形面数
+
+This is great, except when there's a bug that lets you get inside of those objects,and look outwards.
+这很好,但有个bug是 如果进入模型内部往外看
+
+Then the avatar head or ground becomes invisible.
+头部和地面会消失
+
+Moving on. We need to talk about lighting -- also known as shading
+继续,我们讲灯光,也叫 明暗处理
+
+because if it's a 3D scene, the lighting should vary over the surface of objects.
+因为3D场景中, 物体表面应该有明暗变化
+
+Let's go back to our teapot mesh.
+我们回到之前的茶壶网格
+
+With scanline rendering coloring in all the polygons, our teapot looks like this.
+用"扫描线"算法渲染所有多边形后,茶壶看起来像这样
+
+Not very 3D.
+没什么 3D 感
+
+So, let's add some lighting to enhance the realism!
+我们来加点灯光,提高真实感
+
+As an example, we'll pick 3 polygons from different parts of our teapot.
+为了举例,我们从茶壶上挑3个不同位置的多边形
+
+Unlike our previous examples, we're now going to consider how these polygons are oriented in 3D space
+和之前的例子不同,这次要考虑这些多边形面对的方向
+
+they're no longer parallel to the screen, but rather tilted in different 3D directions.
+它们不平行于屏幕,而是面对不同方向
+
+The direction they face is called the Surface Normal ,
+他们面对的方向叫 " 表面法线 "
+
+and we can visualize that direction with a little 3D arrow that's perpendicular to the polygon's surface.
+我们可以用一个垂直于表面的小箭头\N来显示这个方向
+
+Now let's add a light source.
+现在加个光源
+
+Each polygon is going to be illuminated a different amount. Some will appear brighter
+每个多边形被照亮的程度不同 有的更亮
+
+because their angle causes more light to be reflected towards the viewer.
+因为面对的角度\N导致更多光线反射到观察者
+
+For example, the bottom-most polygon is tilted downwards,
+举个例子,底部的多边形向下倾斜
+
+away from the light source, which means it's going to be dark.
+远离光源,所以更暗一些
+
+In a similar way, the rightmost polygon is slightly facing away from the light,
+类似的,最右的多边形更背对光源
+
+so it will be partially illuminated.
+所以只有部分照亮
+
+And finally, there's the upper-left polygon.
+最后是左上角的多边形
+
+Its angle means that it will reflect light from the light source towards our view.
+因为它面对的角度 意味着会把光线反射到我们这里
+
+So, it'll appear bright.
+所以会显得更亮
+
+If we do this for every polygon, our teapot looks like this which is much more realistic!
+如果对每个多边形执行同样的步骤,看上去会更真实!
+
+This approach is called Flat Shading, and it's the most basic lighting algorithm.
+这叫 平面着色,是最基本的照明算法
+
+Unfortunately, it also makes all those polygon boundaries really noticeable
+不幸的是,这使多边形的边界非常明显,看起来不光滑
+
+and the mesh doesn't look smooth.
+不幸的是,这使多边形的边界非常明显,看起来不光滑
+
+For this reason, more advanced lighting algorithms were developed,
+因此开发了更多算法
+
+such as Gouraud Shading and Phong Shading .
+比如 高洛德着色 和 冯氏着色
+
+Instead of coloring in polygons using just one colour,
+不只用一种颜色给整个多边形上色
+
+they vary the colour across the surface in clever ways,
+而是以巧妙的方式改变颜色
+
+which results in much nicer output.
+得到更好的效果
+
+We also need to talk about textures ,
+我们还要说下" 纹理 "
+
+which in graphics refers to the look of a surface,rather than its feel.
+纹理在图形学中指外观,而不是手感
+
+Like with lighting, there are many algorithms with all sorts of fancy effects.
+就像照明算法一样,\N 纹理也有多种算法,来做各种花哨效果
+
+The simplest is texture mapping .
+最简单的是 纹理映射
+
+To visualize this process,let's go back to our single polygon.
+为了理解纹理映射,回到单个多边形
+
+When we're filling this in, using scanline rendering,
+用"扫描线算法"填充时
+
+we can look up what color to use at every pixel according to a texture image saved in memory.
+可以看看内存内的纹理图像 决定像素用什么颜色
+
+To do this, we need a mapping between the polygon's coordinates and the texture's coordinates.
+为了做到这点,\N 需要把多边形坐标和纹理坐标对应起来
+
+Let's jump to the first pixel that scanline rendering needs to fill in.
+我们来看看"扫描线算法"要填充的第一个像素
+
+The texturing algorithm will consult the texture in memory,
+纹理算法会查询纹理
+
+take the average color from the corresponding region, and fill the polygon accordingly.
+从相应区域取平均颜色,并填充多边形
+
+This process repeats for all pixels in the polygon, and that's how we get textures.
+重复这个过程,就可以获得纹理
+
+If you combine all the techniques we've talked about this episode, you get a wonderfully funky little teapot.
+如果结合这集提到的所有技巧 \N 会得到一个精美的小茶壶
+
+And this teapot can sit in an even bigger scene, comprised of millions of polygons.
+这个茶壶可以放进更大的场景里 \N 场景由上百万个多边形组成
+
+Rendering a scene like this takes a fair amount of computation.
+渲染这样的场景需要大量计算
+
+But importantly, it's the same type of calculations being performed
+但重要的是,再大的场景,过程都是一样的 \N 一遍又一遍,处理所有多边形
+
+over and over and over again for many millions of polygons –
+但重要的是,再大的场景,过程都是一样的 \N 一遍又一遍,处理所有多边形
+
+scanline filling, antialiasing, lighting, and texturing.
+扫描线填充, 抗锯齿, 光照, 纹理化
+
+However there are a couple of ways to make this much faster!
+然而,有几种方法可以加速渲染
+
+First off, we can speed things up by having special hardware
+首先,我们可以为这种特定运算 \N 做专门的硬件来加快速度,让运算快如闪电
+
+with extra bells and whistles just for these specific types of computations, making them lightning fast.
+首先,我们可以为这种特定运算 \N 做专门的硬件来加快速度,让运算快如闪电
+
+And secondly,we can divide up a 3D scene into many smaller parts,
+其次,我们可以把3D场景分解成多个小部分
+
+and then render all the pieces in parallel,rather than sequentially.
+然后并行渲染,而不是按顺序渲染
+
+CPU's aren't designed for this, so they aren't particularly fast.
+CPU不是为此设计的,因此图形运算不快
+
+So, computer engineers created special processors just for graphics
+所以,计算机工程师为图形做了专门的处理器
+
+– a GPU, or Graphics Processing Unit.
+叫 GPU "图形处理单元"
+
+These can be found on graphics cards inside of your computer, along with RAM reserved for graphics.
+GPU 在显卡上,周围有专用的 RAM
+
+This is where all the meshes and textures live,
+所有网格和纹理都在里面
+
+allowing them to be accessed super fast by many different cores of the GPU all at once.
+让 GPU 的多个核心可以高速访问
+
+A modern graphics card, like a GeForce GTX 1080 TI,
+现代显卡,如 GeForce GTX 1080 TI
+
+contains 3584 processing cores, offering massive parallelization.
+有3584个处理核心,提供大规模并行处理
+
+It can process hundreds of millions of polygons every second!
+每秒处理上亿个多边形!
+
+Ok, that concludes our whistle stop tour of 3D graphics.
+好了,本集对3D图形的介绍到此结束
+
+Next week, we switch topics entirely.
+下周我们聊全新的主题
+
+I'll ping you then.
+我到时会 ping 你~
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+The internet is amazings
+互联网太棒啦
+
+In just a few keystrokes, we can stream videos on Youtube -- Hello!
+键盘敲几下就能在 Youtube 直播--哈喽!
+
+- read articles on Wikipedia,
+在维基百科上阅读文章
+
+order supplies on amazon, video chat with friends, and tweet about the weather.
+在亚马逊买东西 和朋友视频 发一条天气推特
+
+Without a doubt, the ability for computers, and their users, to send and receive information
+毫无疑问,\N 用户在全球网络中发送和接收信息的能力
+
+over a global telecommunications network forever changed the world.
+永远改变了这个世界
+
+150 years ago, sending a letter from London to California would have taken two to three
+150年前 发一封信件从伦敦到加州 要花2~3周
+
+weeks, and that’s if you paid for express mail.
+而且还是特快邮件
+
+Today, that email takes a fraction of a second.
+如今 电子邮件只要几分之一秒.
+
+This million fold improvement in latency, that’s the time it takes for a message to
+"时延"改善了上百万倍 \N (时延指传播一条信息所需的时间)
+
+transfer, juiced up the global economy helping the modern world to
+振兴了全球经济 \N 帮助现代世界在遍布全球的光纤中快速发展
+
+move at the speed of light on fiber optic cables spanning the globe.
+振兴了全球经济 \N 帮助现代世界在遍布全球的光纤中快速发展
+
+You might think that computers and networks always went hand in hand, but actually most
+你可能觉得计算机和网络密切相关,但事实上,
+
+computers pre-1970 were humming away all alone.
+1970年以前 大多数计算机是独立运行的
+
+However, as big computers began popping up everywhere,
+然而 因为大型计算机开始随处可见
+
+and low cost machines started to show up on people’s desks,
+廉价机器开始出现在书桌上
+
+it became increasingly useful to share data and resources,
+分享数据和资源渐渐变得有用起来
+
+and the first networks of computers appeared.
+首个计算机网络出现了
+
+Today, we’re going to start a three-episode arc on how computer networks came into being
+今天起,我们花3集视频讲网络是如何发展成现在的样子
+
+and the fundamental principles and techniques that power them.
+以及支撑它们的基础原理和技术
+
+The first computer networks appeared in the 1950s and 60s.
+第一个计算机网络出现在1950~1960年代
+
+They were generally used within an organization – like a company or research lab
+通常在公司或研究室内部使用,为了方便信息交换
+
+to facilitate the exchange of information between different people and computers.
+通常在公司或研究室内部使用,为了方便信息交换
+
+This was faster and more reliable than the previous method of having someone walk a pile
+比把纸卡或磁带送到另一栋楼里更快速可靠
+
+of punch cards, or a reel of magnetic tape, to a computer on the other side of a building
+比把纸卡或磁带送到另一栋楼里更快速可靠
+
+‒ which was later dubbed a sneakernet.
+这叫"球鞋网络"
+
+A second benefit of networks was the ability to share physical resources.
+第二个好处是能共享物理资源
+
+For example, instead of each computer having its own printer,
+举个例子,与其每台电脑配一台打印机
+
+everyone could share one attached to the network.
+大家可以共享一台联网的打印机
+
+It was also common on early networks to have large, shared, storage drives,
+早期网络也会共享存储空间
+
+ones too expensive to have attached to every machine.
+因为每台电脑都配存储器太贵了
+
+These relatively small networks of close-by computers
+计算机近距离构成的小型网络 \N 叫局域网, 简称LAN
+
+are called Local Area Networks, or LANs.
+计算机近距离构成的小型网络 \N 叫局域网, 简称LAN
+
+A LAN could be as small as two machines in the same room,
+局域网能小到是同一个房间里的两台机器
+
+or as large as a university campus with thousands of computers.
+或大到校园里的上千台机器
+
+Although many LAN technologies were developed and deployed,
+尽管开发和部署了很多不同 LAN 技术
+
+the most famous and successful was Ethernet, developed in the
+其中最著名和成功的是"以太网" , 开发于1970年代 \N 在施乐的"帕洛阿尔托研究中心"诞生, 今日仍被广泛使用
+
+early 1970s at Xerox PARC, and still widely used today.
+其中最著名和成功的是"以太网" , 开发于1970年代 \N 在施乐的"帕洛阿尔托研究中心"诞生, 今日仍被广泛使用
+
+In its simplest form, a series of computers are connected to a single, common ethernet cable.
+以太网的最简单形式是:一条以太网电线连接数台计算机
+
+When a computer wants to transmit data to another computer,
+当一台计算机要传数据给另一台计算机时
+
+it writes the data, as an electrical signal, onto the cable.
+它以电信号形式,将数据传入电缆
+
+Of course, because the cable is shared, every computer plugged into the network sees the
+当然 因为电缆是共享的 \N 连在同一个网络里的其他计算机也看得到数据
+
+transmission, but doesn’t know if data is intended for them or another computer.
+但不知道数据是给它们的,还是给其他计算机的
+
+To solve this problem, Ethernet requires that each computer has a unique
+为了解决这个问题 以太网需要每台计算机有唯一的 \N 媒体访问控制地址 简称 MAC地址
+
+Media Access Control address, or MAC address.
+为了解决这个问题 以太网需要每台计算机有唯一的 \N 媒体访问控制地址 简称 MAC地址
+
+This unique address is put into a header that prefixes any data sent over the network.
+这个唯一的地址放在头部,作为数据的前缀发送到网络中
+
+So, computers simply listen to the ethernet cable,
+所以,计算机只需要监听以太网电缆 \N 只有看到自己的 MAC 地址,才处理数据
+
+and only process data when they see their address in the header.
+所以,计算机只需要监听以太网电缆 \N 只有看到自己的 MAC 地址,才处理数据
+
+This works really well; every computer made today comes with its own unique MAC address
+这运作得很好 现在制造的每台计算机都自带唯一的MAC地址
+
+for both Ethernet and WiFi.
+用于以太网和无线网络
+
+The general term for this approach is Carrier Sense Multiple Access, or CSMA for short.
+多台电脑共享一个传输媒介,\N 这种方法叫 "载波侦听多路访问" 简称"CSMA"
+
+The "carrier", in this case, is any shared transmission medium that carries data
+载体(carrier)指运输数据的共享媒介
+
+copper wire in the case of ethernet, and the air carrying radio waves for WiFi.
+以太网的"载体"是铜线 \N WiFi 的"载体"是传播无线电波的空气
+
+Many computers can simultaneously sense the carrier,
+很多计算机同时侦听载体
+
+hence the "Sense" and "Multiple Access",
+所以叫"侦听"和"多路访问"
+
+and the rate at which a carrier can transmit data is called its Bandwidth.
+而载体传输数据的速度 叫"带宽"
+
+Unfortunately, using a shared carrier has one big drawback.
+不幸的是 使用共享载体有个很大的弊端
+
+When network traffic is light, computers can simply wait for silence on the carrier,
+当网络流量较小时 计算机可以等待载体清空
+
+and then transmit their data.
+然后传送数据
+
+But, as network traffic increases, the probability that
+但随着网络流量上升 两台计算机想同时写入数据的概率也会上升
+
+two computers will attempt to write data at the same time also increases.
+但随着网络流量上升 两台计算机想同时写入数据的概率也会上升
+
+This is called a collision, and the data gets all garbled up,
+这叫冲突 数据全都乱套了
+
+like two people trying to talk on the phone at the same time.
+就像两个人同时在电话里讲话
+
+Fortunately, computers can detect these collisions by listening to the signal on the wire.
+幸运的是 计算机能够通过监听电线中的信号检测这些冲突
+
+The most obvious solution is for computers to stop transmitting,
+最明显的解决办法是停止传输
+
+wait for silence, then try again.
+等待网络空闲, 然后再试一遍
+
+Problem is, the other computer is going to try that too,
+问题是 其他计算机也打算这样做
+
+and other computers on the network that have been waiting for the
+其他等着的计算机可能在任何停顿间隙闯入
+
+carrier to go silent will try to jump in during any pause.
+其他等着的计算机可能在任何停顿间隙闯入
+
+This just leads to more and more collisions.
+导致越来越多冲突
+
+Soon, everyone is talking over one another and has a backlog of things they need to say,
+很快,每个人都一个接一个地讲话 而且有一堆事要说
+
+like breaking up with a boyfriend over a family holiday dinner.
+就像在家庭聚餐中和男朋友分手一样
+
+Terrible idea!
+馊主意!
+
+Ethernet had a surprisingly simple and effective fix.
+以太网有个超简单有效的解决方法
+
+When transmitting computers detect a collision,
+当计算机检测到冲突 就会在重传之前等待一小段时间
+
+they wait for a brief period before attempting to re-transmit.
+当计算机检测到冲突 就会在重传之前等待一小段时间
+
+As an example, let’s say 1 second.
+因为要举例,假设是 1 秒好了
+
+Of course, this doesn’t work if all the computers use the same wait duration
+当然 如果所有计算机用同样的等待时间 是不行的
+
+-- they’ll just collide again one second later.
+它们会在一秒后再次冲突
+
+So, a random period is added: one computer might wait 1.3 seconds,
+所以加入一个随机时间 一台计算机可能等1.3秒
+
+while another waits 1.5 seconds.
+另一台计算机等待1.5秒
+
+With any luck, the computer that waited 1.3 seconds will wake up,
+要是运气好 等1.3秒的计算机会醒来
+
+find the carrier to be silent, and start transmitting.
+发现载体是空闲的 然后开始传输
+
+When the 1.5 second computer wakes up a moment later, it’ll see the carrier is in use,
+当1.5秒的计算机醒来后 会发现载体被占用 \N 会等待其他计算机完成
+
+and will wait for the other computer to finish.
+当1.5秒的计算机醒来后 会发现载体被占用 \N 会等待其他计算机完成
+
+This definitely helps, but doesn’t totally solve the problem, so an extra trick is used.
+这有用 但不能完全解决问题 所以要用另一个小技巧
+
+As I just explained, if a computer detects a collision while transmitting,
+正如我刚才说的 \N如果一台计算机在传输数据期间检测到冲突
+
+it will wait 1 second, plus some random extra time.
+会等一秒+随机时间
+
+However, if it collides again, which suggests network congestion,
+然而 如果再次发生冲突 表明有网络拥塞
+
+instead of waiting another 1 second, this time it will wait 2 seconds.
+这次不等1秒,而是等2秒
+
+If it collides again, it’ll wait 4 seconds, and then 8, and then 16,
+如果再次发生冲突 等4秒 然后8秒 16秒等等
+
+and so on, until it’s successful.
+直到成功传输
+
+With computers backing off, the rate of collisions goes down,
+因为计算机的退避 冲突次数降低了 \N 数据再次开始流动起来 网络变得顺畅
+
+and data starts moving again, freeing up the network.
+因为计算机的退避 冲突次数降低了 \N 数据再次开始流动起来 网络变得顺畅
+
+Family dinner saved!
+家庭晚餐有救啦!
+
+This "backing off" behavior using an exponentially growing wait time is called
+这种指数级增长等待时间的方法叫:
+
+Exponential Backoff.
+指数退避
+
+Both Ethernet and WiFi use it, and so do many transmission protocols.
+以太网和WiFi都用这种方法 很多其他传输协议也用
+
+But even with clever tricks like Exponential Backoff,
+但即便有了"指数退避"这种技巧
+
+you could never have an entire university’s
+想用一根网线链接整个大学的计算机还是不可能的
+
+worth of computers on one shared ethernet cable.
+想用一根网线链接整个大学的计算机还是不可能的
+
+To reduce collisions and improve efficiency,
+为了减少冲突+提升效率
+
+we need to shrink the number of devices on any given shared carrier
+我们需要减少同一载体中设备的数量 \N 载体和其中的设备总称 "冲突域"
+
+-- what’s called the Collision Domain.
+我们需要减少同一载体中设备的数量 \N 载体和其中的设备总称 "冲突域"
+
+Let go back to our earlier Ethernet example, where we had six computers on one shared cable,
+让我们回到之前以太网的例子 一根电缆连6台计算机
+
+a.k.a. one collision domain.
+也叫一个冲突域
+
+To reduce the likelihood of collisions, we can break this network
+为了减少冲突 我们可以用交换机把它拆成两个冲突域
+
+into two collision domains by using a Network Switch.
+为了减少冲突 我们可以用交换机把它拆成两个冲突域
+
+It sits between our two smaller networks, and only passes data between them if necessary.
+交换机位于两个更小的网络之间 \N 必要时才在两个网络间传数据
+
+It does this by keeping a list of what MAC addresses are on what side of the network.
+交换机会记录一个列表 \N 写着哪个 MAC 地址在哪边网络
+
+So if A wants to transmit to C, the switch doesn’t forward the data to the other network
+如果A想传数据给C \N 交换机不会把数据转发给另一边的网络
+
+– there’s no need.
+没必要
+
+This means if E wants to transmit to F at the same time, the network is wide open, and
+如果E想同一时间传数据给F,网络仍然是空的
+
+two transmissions can happen at once.
+两个传输可以同时发生
+
+But, if F wants to send data to A, then the switch passes it through,
+但如果F想发数据给A 数据会通过交换机
+
+and the two networks are both briefly occupied.
+两个网络都会被短暂占用
+
+This is essentially how big computer networks are constructed,
+大的计算机网络也是这样构建的
+
+including the biggest one of all – The Internet –
+包括最大的网络 - 互联网
+
+which literally inter-connects a bunch of smaller networks,
+也是多个连在一起的稍小一点网络
+
+allowing inter-network communication.
+使不同网络间可以传递信息
+
+What’s interesting about these big networks,
+这些大型网络有趣之处是
+
+is that there’s often multiple paths to
+从一个地点到另一个地点通常有多条路线
+
+get data from one location to another.
+从一个地点到另一个地点通常有多条路线
+
+And this brings us to another fundamental networking topic, routing.
+这就带出了另一个话题 路由
+
+The simplest way to connect two distant computers, or networks,
+连接两台相隔遥远的计算机或网路,最简单的办法 \N 是分配一条专用的通信线路
+
+is by allocating a communication line for their exclusive use.
+连接两台相隔遥远的计算机或网路,最简单的办法 \N 是分配一条专用的通信线路
+
+This is how early telephone systems worked.
+早期电话系统就是这样运作的
+
+For example, there might be 5 telephone lines running between Indianapolis and Missoula.
+假设"印第安纳波利斯"和"米苏拉"之间,有五条电话线
+
+If John picked up the phone wanting to call Hank, in the 1910s,
+如果在1910年代,John 想打电话给 Hank
+
+John would tell a human operator where he wanted to call,
+John要告诉操作员他想打到什么地方
+
+and they’d physically connect John’s phone line into
+然后工作人员手动将 John 的电话连到 \N 通往米苏拉的未使用线路
+
+an unused line running to Missoula.
+然后工作人员手动将 John 的电话连到 \N 通往米苏拉的未使用线路
+
+For the length of the call, that line was occupied, and if all 5 lines were already
+通话期间 这条线就被占用了 如果五条线都被占用了 \N John 要等待某条线空出来
+
+in use, John would have to wait for one to become free.
+通话期间 这条线就被占用了 如果五条线都被占用了 \N John 要等待某条线空出来
+
+This approach is called Circuit Switching,
+这叫 "电路交换"\N因为是把电路连接到正确目的地
+
+because you’re literally switching whole
+这叫 "电路交换"\N因为是把电路连接到正确目的地
+
+circuits to route traffic to the correct destination.
+这叫 "电路交换"\N因为是把电路连接到正确目的地
+
+It works fine, but it’s relatively inflexible and expensive,
+能用倒是能用 \N 但不灵活而且价格昂贵 因为总有闲置的线路
+
+because there’s often unused capacity.
+能用倒是能用 \N 但不灵活而且价格昂贵 因为总有闲置的线路
+
+On the upside, once you have a line to yourself – or if you have the money to buy one for
+好处是 如果有一条专属于自己的线路 \N 你可以最大限度地随意使用,无需共享
+
+your private use – you can use it to its full capacity, without having to share.
+好处是 如果有一条专属于自己的线路 \N 你可以最大限度地随意使用,无需共享
+
+For this reason, the military, banks and other high importance operations
+因此军队, 银行和其他一些机构
+
+still buy dedicated circuits to connect their data centers.
+依然会购买专用线路来连接数据中心
+
+Another approach for getting data from one place to another is Message Switching,
+传输数据的另一个方法是 "报文交换"
+
+which is sort of like how the postal system works.
+"报文交换" 就像邮政系统一样
+
+Instead of dedicated route from A to B, messages are passed through several stops.
+不像之前A和B有一条专有线路 \N 消息会经过好几个站点
+
+So if John writes a letter to Hank,
+如果 John 写一封信给 Hank
+
+it might go from Indianapolis to Chicago, and then
+信件可能从"印第安纳波利斯"到"芝加哥"
+
+hop to Minneapolis, then Billings, and then finally make it to Missoula.
+然后"明尼阿波利斯" 然后"比林斯" 最后到"米苏拉"
+
+Each stop knows where to send it next
+每个站点都知道下一站发哪里 \N 因为站点有表格,记录到各个目的地,信件该怎么传
+
+because they keep a table of where to pass letters given a destination address.
+每个站点都知道下一站发哪里 \N 因为站点有表格,记录到各个目的地,信件该怎么传
+
+What’s neat about Message Switching is that it can use different routes,
+报文交换的好处是 可以用不同路由 \N 使通信更可靠更能容错
+
+making communication more reliable and fault-tolerant.
+报文交换的好处是 可以用不同路由 \N 使通信更可靠更能容错
+
+Sticking with our mail example,
+回到邮件的例子
+
+if there’s a blizzard in Minneapolis grinding things to a halt,
+如果"明尼阿波利斯"有暴风雪中断了通信 \N "芝加哥"可以传给"奥马哈"
+
+the Chicago mail hub can decide to route the letter through Omaha instead.
+如果"明尼阿波利斯"有暴风雪中断了通信 \N "芝加哥"可以传给"奥马哈"
+
+In our example, cities are acting like network routers.
+在这个例子里,城市就像路由器一样
+
+The number of hops a message takes along a route is called the hop count.
+消息沿着路由跳转的次数 \N 叫"跳数"(hop count)
+
+Keeping track of the hop count is useful because it can help identify routing problems.
+记录跳数很有用,因为可以分辨出路由问题
+
+For example, let’s say Chicago thinks the fastest route to Missoula is through Omaha,
+举例,假设芝加哥认为 \N 去米苏拉的最快路线是 奥马哈
+
+but Omaha thinks the fastest route is through Chicago.
+但奥马哈认为 \N 去米苏拉的最快路线是 芝加哥
+
+That's bad, because both cities are going to look at the destination address, Missoula,
+这就糟糕了\N 因为2个城市看到目的地是米苏拉
+
+and end up passing the message back and forth between them, endlessly.
+结果报文会在2个城市之间\N不停传来传去
+
+Not only is this wasting bandwidth, but it’s a routing error that needs to get fixed!
+不仅浪费带宽 而且这个路由错误需要修复!
+
+This kind of error can be detected because the hop count is
+这种错误会被检测到,因为跳数记录在消息中 \N 而且传输时会更新跳数
+
+stored with the message and updated along its journey.
+这种错误会被检测到,因为跳数记录在消息中 \N 而且传输时会更新跳数
+
+If you start seeing messages with high hop counts,
+如果看到某条消息的跳数很高 \N 就知道路由肯定哪里错了
+
+you can bet something has gone awry in the routing!
+如果看到某条消息的跳数很高 \N 就知道路由肯定哪里错了
+
+This threshold is the Hop Limit.
+这叫"跳数限制"
+
+A downside to Message Switching is that messages are sometimes big.
+报文交换的缺点之一是有时候报文比较大
+
+So, they can clog up the network, because the whole message has to be transmitted from
+会堵塞网络 因为要把整个报文从一站传到下一站后 \N 才能继续传递其他报文
+
+one stop to the next before continuing on its way.
+会堵塞网络 因为要把整个报文从一站传到下一站后 \N 才能继续传递其他报文
+
+While a big file is transferring, that whole link is tied up.
+传输一个大文件时 整条路都阻塞了
+
+Even if you have a tiny, one kilobyte email trying to get through,
+即便你只有一个1KB的电子邮件要传输 \N 也只能等大文件传完,或是选另一条效率稍低的路线
+
+it either has to wait for the big file transfer to finish or take a less efficient route.
+即便你只有一个1KB的电子邮件要传输 \N 也只能等大文件传完,或是选另一条效率稍低的路线
+
+That’s bad.
+这就糟了
+
+The solution is to chop up big transmissions into many small pieces, called packets.
+解决方法是 将大报文分成很多小块,叫"数据包"
+
+Just like with Message Switching, each packet contains a destination address on the network,
+就像报文交换 每个数据包都有目标地址 \N 因此路由器知道发到哪里
+
+so routers know where to forward them.
+就像报文交换 每个数据包都有目标地址 \N 因此路由器知道发到哪里
+
+This format is defined by the "Internet Protocol", or IP for short,
+报文具体格式由"互联网协议"定义,简称 IP \N 这个标准创建于 1970 年代
+
+a standard created in the 1970s.
+报文具体格式由"互联网协议"定义,简称 IP \N 这个标准创建于 1970 年代
+
+Every computer connected to a network gets an IP Address.
+每台联网的计算机都需要一个IP地址
+
+You’ve probably seen these as four, 8-bit numbers written with dots in between.
+你可能见过,以点分隔的4组数字
+
+For example,172.217.7.238 is an IP Address for one of Google’s servers.
+例如 172.217.7.238 是 Google 其中一个服务器的IP地址
+
+With millions of computers online, all exchanging data,
+数百万台计算机在网络上不断交换数据 \N 瓶颈的出现和消失是毫秒级的
+
+bottlenecks can appear and disappear in milliseconds.
+数百万台计算机在网络上不断交换数据 \N 瓶颈的出现和消失是毫秒级的
+
+Network routers are constantly trying to balance the load across whatever routes they know
+路由器会平衡与其他路由器之间的负载 \N 以确保传输可以快速可靠,这叫"阻塞控制"
+
+to ensure speedy and reliable delivery, which is called congestion control.
+路由器会平衡与其他路由器之间的负载 \N 以确保传输可以快速可靠,这叫"阻塞控制"
+
+Sometimes different packets from the same message take different routes through a network.
+有时,同一个报文的多个数据包 \N 会经过不同线路
+
+This opens the possibility of packets arriving at their destination out of order,
+到达顺序可能会不一样,这对一些软件是个问题
+
+which is a problem for some applications.
+到达顺序可能会不一样,这对一些软件是个问题
+
+Fortunately, there are protocols that run on top of IP,
+幸运的是,在 IP 之上还有其他协议
+
+like TCP/IP, that handle this issue.
+比如 TCP/IP, 可以解决乱序问题
+
+We’ll talk more about that next week.
+我们下周会讲
+
+Chopping up data into small packets,
+将数据拆分成多个小数据包,然后通过灵活的路由传递
+
+and passing these along flexible routes with spare capacity,
+将数据拆分成多个小数据包,然后通过灵活的路由传递
+
+is so efficient and fault-tolerant, it’s what the whole internet runs on today.
+非常高效且可容错,如今互联网就是这么运行的
+
+This routing approach is called Packet Switching.
+这叫"分组交换"
+
+It also has the nice property of being decentralized,
+有个好处是 它是去中心化的
+
+with no central authority or single point of failure.
+没有中心权威机构 没有单点失败问题
+
+In fact, the threat of nuclear attack is why
+事实上 因为冷战期间有核攻击的威胁,所以创造了分组交换
+
+packet switching was developed during the cold war!
+事实上 因为冷战期间有核攻击的威胁,所以创造了分组交换
+
+Today, routers all over the globe work cooperatively to find efficient routings,
+如今,全球的路由器协同工作,找出最高效的线路
+
+exchanging information with each other using special protocols,
+用各种标准协议运输数据
+
+like the Internet Control Message Protocol (ICMP)
+比如 "因特网控制消息协议"(ICMP)
+
+and the Border Gateway Protocol (BGP).
+和 "边界网关协议"(BGP)
+
+The world's first packet-switched network,
+世界上第一个分组交换网络
+
+and the ancestor to the modern internet, was the ARPANET,
+以及现代互联网的祖先是 ARPANET
+
+named after the US agency that funded it,
+名字来源于赞助这个项目的机构,美国高级研究计划局
+
+the Advanced Research Projects Agency.
+名字来源于赞助这个项目的机构,美国高级研究计划局
+
+Here’s what the entire ARPANET looked like in 1974.
+这是 1974 年整个 ARPANET 的样子
+
+Each smaller circle is a location,
+每个小圆表示一个地点 \N 比如大学或实验室,那里运行着一个路由器
+
+like a university or research lab, that operated a router.
+每个小圆表示一个地点 \N 比如大学或实验室,那里运行着一个路由器
+
+They also plugged in one or more computers
+并且有一台或多台计算机
+
+– you can see PDP-1’s, IBM System 360s,
+能看到 "PDP-1" 和"IBM 360系统"
+
+and even an ATLAS in London connected over a satellite link.
+甚至还有一个伦敦的 ATLAS \N 是通过卫星连到网络里的
+
+Obviously the internet has grown by leaps and bounds in the decades since.
+显然 互联网在这几十年间发展迅速
+
+Today, instead of a few dozen computers online, it’s estimated to be nearing 10 billion.
+如今不再只有几十台计算机联网 \N 据估计 有接近100亿台联网设备
+
+And it continues to grow rapidly,
+而且互联网会继续快速发展
+
+especially with the advent of wifi-connected refrigerators, thermostat
+特别是如今各种智能设备层出不穷 \N 比如联网冰箱,恒温器
+
+and other smart appliances, forming an "internet of things".
+以及其他智能家电,它们组成了"物联网"
+
+So that’s part one – an overview of computer networks.
+第一部分到此结束 \N 我们对计算机网络进行了概览
+
+Is it a series of tubes?
+网络是一堆管子组成的吗?
+
+Well, sort of.
+额 算是吧
+
+Next week we’ll tackle some higher-level transmission protocols,
+下周我们会讨论一些高级传输协议
+
+slowly working our way up to the World Wide Web.
+然后讲万维网
+
+I’ll see you then!
+到时见啦
+
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+As we talked about last episode, your computer is connected to a large, distributed network,
+上集讲到,你的计算机和一个巨大的分布式网络连在一起
+
+called The Internet.
+这个网络叫互联网
+
+I know this because you’re watching a YouTube video,
+你现在就在网上看视频呀
+
+which is being streamed over that very internet.
+你现在就在网上看视频呀
+
+It’s arranged as an ever-enlarging web of interconnected devices.
+互联网由无数互联设备组成,而且日益增多
+
+For your computer to get this video,
+计算机为了获取这个视频 \N 首先要连到局域网,也叫 LAN
+
+the first connection is to your local area network, or LAN,
+计算机为了获取这个视频 \N 首先要连到局域网,也叫 LAN
+
+which might be every device in your house that’s connected to your wifi router.
+你家 WIFI 路由器连着的所有设备,组成了局域网.
+
+This then connects to a Wide Area Network, or WAN,
+局域网再连到广域网,广域网也叫 WAN
+
+which is likely to be a router run by your Internet Service Provider, or ISP,
+WAN 的路由器一般属于你的"互联网服务提供商",简称 ISP
+
+companies like Comcast, AT&T or Verizon.
+比如 Comcast,AT&T 和 Verizon 这样的公司
+
+At first, this will be a regional router, like one for your neighborhood,
+广域网里,先连到一个区域性路由器,这路由器可能覆盖一个街区。
+
+and then that router connects to an even bigger WAN,
+然后连到一个更大的 WAN,可能覆盖整个城市
+
+maybe one for your whole city or town.
+然后连到一个更大的 WAN,可能覆盖整个城市
+
+There might be a couple more hops, but ultimately you’ll connect to the backbone of the internet
+可能再跳几次,但最终会到达互联网主干
+
+made up of gigantic routers with super high-bandwidth connections running between them.
+互联网主干由一群超大型、带宽超高路由器组成
+
+To request this video file from YouTube,
+为了从 YouTube 获得这个视频,
+
+a packet had to work its way up to the backbone,
+数据包(packet)要先到互联网主干
+
+travel along that for a bit, and then work its way back down to a YouTube server that had the file.
+沿着主干到达有对应视频文件的 YouTube 服务器
+
+That might be four hops up, two hops across the backbone,
+数据包从你的计算机跳到 Youtube 服务器,可能要跳个10次,
+
+and four hops down, for a total of ten hops.
+先跳4次到互联网主干,2次穿过主干,\N主干出来可能再跳4次,然后到 Youtube 服务器
+
+If you’re running Windows, Mac OS or Linux, you can see the route data takes to different
+如果你在用 Windows, Mac OS 或 Linux系统,可以用 traceroute 来看跳了几次
+
+places on the internet by using the traceroute program on your computer.
+如果你在用 Windows, Mac OS 或 Linux系统,可以用 traceroute 来看跳了几次
+
+Instructions in the Doobly Doo.
+更多详情看视频描述(YouTube原视频下)
+
+For us here at the Chad & Stacey Emigholz Studio in Indianapolis,
+我们在"印第安纳波利斯"的 Chad&Stacy Emigholz 工作室,\N 访问加州的 DFTBA 服务器,
+
+the route to the DFTBA server in California goes through 11 stops.
+经历了11次中转
+
+We start at 192.168.0.1 -- that's the IP address for my computer on our LAN.
+从 192.168.0.1 出发,这是我的电脑在 局域网(LAN)里的 IP 地址
+
+Then there’s the wifi router here at the studio,
+然后到工作室的 WIFI 路由器
+
+then a series of regional routers, then we get onto the backbone,
+然后穿过一个个地区路由器,到达主干.
+
+and then we start working back down to the computer hosting "DFTBA.com”,
+然后从主干出来,又跳了几次,到达"DFTBA.com”的服务器
+
+which has the IP address 104.24.109.186.
+IP 地址是 104.24.109.186.
+
+But how does a packet actually get there?
+但数据包*到底*是怎么过去的?
+
+What happens if a packet gets lost along the way?
+如果传输时数据包被弄丢了,会发生什么?
+
+If I type "DFTBA.com” into my web browser, how does it know the server’s address?
+如果在浏览器里输 "DFTBA.com",浏览器怎么知道服务器的地址多少?
+
+These are our topics for today!
+我们今天会讨论这些话题.
+
+As we discussed last episode, the internet is a huge distributed network
+上集说过,互联网是一个巨型分布式网络 \N 会把数据拆成一个个数据包来传输
+
+that sends data around as little packets.
+上集说过,互联网是一个巨型分布式网络 \N 会把数据拆成一个个数据包来传输
+
+If your data is big enough, like an email attachment,
+如果要发的数据很大,比如邮件附件 \N 数据会被拆成多个小数据包
+
+it might get broken up into many packets.
+如果要发的数据很大,比如邮件附件 \N 数据会被拆成多个小数据包
+
+For example, this video stream is arriving to your computer right now
+举例,你现在看的这个视频 \N 就是一个个到达你电脑的数据包
+
+as a series of packets, and not one gigantic file.
+而不是一整个大文件发过来
+
+Internet packets have to conform to a standard called the Internet Protocol, or IP.
+数据包(packet)想在互联网上传输 \N 要符合"互联网协议"的标准,简称 IP
+
+It’s a lot like sending physical mail through the postal system
+就像邮寄手写信一样,邮寄是有标准的\N 每封信需要一个地址,而且地址必须是独特的
+
+– every letter needs a unique and legible address written on it,
+就像邮寄手写信一样,邮寄是有标准的\N 每封信需要一个地址,而且地址必须是独特的
+
+and there are limits to the size and weight of packages.
+并且大小和重量是有限制的
+
+Violate this, and your letter won’t get through.
+违反这些规定,信件就无法送达.
+
+IP packets are very similar.
+IP 数据包也是如此
+
+However, IP is a very low level protocol
+因为 IP 是一个非常底层的协议
+
+– there isn’t much more than a destination address in a packet’s header
+数据包的头部(或者说前面)只有目标地址
+
+which is the metadata that’s stored in front of the data payload.
+头部存 "关于数据的数据" \N 也叫 元数据(metadata)
+
+This means that a packet can show up at a computer, but the computer may not know
+这意味着当数据包到达对方电脑 \N 对方不知道把包交给哪个程序,是交给 Skype 还是使命召唤?
+
+which application to give the data to; Skype or Call of Duty.
+这意味着当数据包到达对方电脑 \N 对方不知道把包交给哪个程序,是交给 Skype 还是使命召唤?
+
+For this reason, more advanced protocols were developed that sit on top of IP.
+因此需要在 IP 之上,开发更高级的协议.
+
+One of the simplest and most common is the User Datagram Protocol, or UDP.
+这些协议里 \N 最简单最常见的叫"用户数据报协议",简称 UDP
+
+UDP has its own header, which sits inside the data payload.
+UDP 也有头部,这个头部位于数据前面
+
+Inside of the UDP header is some useful, extra information.
+头部里包含有用的信息
+
+One of them is a port number.
+信息之一是端口号
+
+Every program wanting to access the internet will
+每个想访问网络的程序 \N 都要向操作系统申请一个端口号.
+
+ask its host computer’s Operating System to be given a unique port.
+每个想访问网络的程序 \N 都要向操作系统申请一个端口号.
+
+Like Skype might ask for port number 3478.
+比如 Skype 会申请端口 3478
+
+When a packet arrives to the computer, the Operating System
+当一个数据包到达时 \N 接收方的操作系统会读 UDP 头部,读里面的端口号
+
+will look inside the UDP header and read the port number.
+当一个数据包到达时 \N 接收方的操作系统会读 UDP 头部,读里面的端口号
+
+Then, if it sees, for example, 3478, it will give the packet to Skype.
+如果看到端口号是 3478,就把数据包交给 Skype
+
+So to review, IP gets the packet to the right computer,
+总结:\NIP 负责把数据包送到正确的计算机 \N UDP 负责把数据包送到正确的程序
+
+but UDP gets the packet to the right program running on that computer.
+总结:\NIP 负责把数据包送到正确的计算机 \N UDP 负责把数据包送到正确的程序
+
+UDP headers also include something called a checksum,
+UDP 头部里还有"校验和",用于检查数据是否正确
+
+which allows the data to be verified for correctness.
+UDP 头部里还有"校验和",用于检查数据是否正确
+
+As the name suggests, it does this by checking the sum of the data.
+正如"校验和"这个名字所暗示的 \N 检查方式是把数据求和来对比
+
+Here’s a simplified version of how this works.
+以下是个简单例子
+
+Let's imagine the raw data in our UDP packet is
+假设 UDP 数据包里 \N 原始数据是 89 111 33 32 58 41
+
+89 111 33 32 58 and 41.
+假设 UDP 数据包里 \N 原始数据是 89 111 33 32 58 41
+
+Before the packet is sent, the transmitting computer calculates the checksum
+在发送数据包前 \N 电脑会把所有数据加在一起,算出"校验和"
+
+by adding all the data together: 89 plus 111 plus 33 and so on.
+89+111+33+... 以此类推
+
+In our example, this adds up to a checksum of 364.
+得到 364,这就是"校验和".
+
+In UDP, the checksum value is stored in 16 bits.
+UDP 中,\N"校验和"以 16 位形式存储 (就是16个0或1)
+
+If the sum exceeds the maximum possible value, the upper-most bits overflw,
+如果算出来的和,超过了 16 位能表示的最大值 \N 高位数会被扔掉,保留低位
+
+and only the lower bits are used.
+如果算出来的和,超过了 16 位能表示的最大值 \N 高位数会被扔掉,保留低位
+
+Now, when the receiving computer gets this packet,
+当接收方电脑收到这个数据包
+
+it repeats the process, adding up all the data.
+它会重复这个步骤 \N 把所有数据加在一起,89+111+33... 以此类推
+
+89 plus 111 plus 33 and so on.
+它会重复这个步骤 \N 把所有数据加在一起,89+111+33... 以此类推
+
+If that sum is the same as the checksum sent in the header, all is well.
+如果结果和头部中的校验和一致 \N 代表一切正常
+
+But, if the numbers don’t match, you know that the data got corrupted
+如果不一致,数据肯定坏掉了
+
+at some point in transit, maybe because of a power fluctuation or faulty cable.
+也许传输时碰到了功率波动,或电缆出故障了
+
+Unfortunately, UDP doesn’t offer any mechanisms to fix the data, or request a new copy
+不幸的是,UDP 不提供数据修复或数据重发的机制
+
+receiving programs are alerted to the corruption, but typically just discard the packet.
+接收方知道数据损坏后,一般只是扔掉.
+
+Also, UDP provides no mechanisms to know if packets are getting through
+而且,UDP 无法得知数据包是否到达.
+
+a sending computer shoots the UDP packet off,
+发送方发了之后,无法知道数据包是否到达目的地
+
+but has no confirmation it ever gets to its destination successfully.
+发送方发了之后,无法知道数据包是否到达目的地
+
+Both of these properties sound pretty catastrophic, but some applications are ok with this,
+这些特性听起来很糟糕,但是有些程序不在意这些问题
+
+because UDP is also really simple and fast.
+因为 UDP 又简单又快.
+
+Skype, for example, which uses UDP for video chat, can handle corrupt or missing packets.
+拿 Skype 举例 \N 它用 UDP 来做视频通话,能处理坏数据或缺失数据
+
+That’s why sometimes if you’re on a bad internet connection,
+所以网速慢的时候 Skype 卡卡的 \N 因为只有一部分数据包到了你的电脑
+
+Skype gets all glitchy – only some of the UDP packets are making it to your computer.
+所以网速慢的时候 Skype 卡卡的 \N 因为只有一部分数据包到了你的电脑
+
+But this approach doesn’t work for many other types of data transmission.
+但对于其他一些数据,这个方法不适用.
+
+Like, it doesn’t really work if you send an email, and it shows up with the middle missing.
+比如发邮件,\N 邮件不能只有开头和结尾 没有中间.
+
+The whole message really needs to get there correctly!
+邮件要完整到达收件方
+
+When it "absolutely, positively needs to get there”,
+如果"所有数据必须到达" \N 就用"传输控制协议",简称 TCP
+
+programs use the Transmission Control Protocol, or TCP,
+如果"所有数据必须到达" \N 就用"传输控制协议",简称 TCP
+
+which like UDP, rides inside the data payload of IP packets.
+TCP 和 UDP 一样,头部也在存数据前面
+
+For this reason, people refer to this combination of protocols as TCP/IP.
+因此,人们叫这个组合 TCP/IP
+
+Like UDP, the TCP header contains a destination port and checksum.
+就像 UDP ,TCP 头部也有"端口号"和"校验和"
+
+But, it also contains fancier features, and we’ll focus on the key ones.
+但 TCP 有更高级的功能,我们这里只介绍重要的几个
+
+First off, TCP packets are given sequential numbers.
+1. TCP 数据包有序号
+
+So packet 15 is followed by packet 16, which is followed by 17, and so on...
+15号之后是16号,16号之后是17号,以此类推 \N 发上百万个数据包也是有可能的.
+
+for potentially millions of packets sent during that session.
+15号之后是16号,16号之后是17号,以此类推 \N 发上百万个数据包也是有可能的.
+
+These sequence numbers allow a receiving computer to put the packets into the correct order,
+序号使接收方可以把数据包排成正确顺序,即使到达时间不同.
+
+even if they arrive at different times across the network.
+序号使接收方可以把数据包排成正确顺序,即使到达时间不同.
+
+So if an email comes in all scrambled, the TCP implementation in your computer’s operating
+哪怕到达顺序是乱的,TCP 协议也能把顺序排对
+
+system will piece it all together correctly.
+哪怕到达顺序是乱的,TCP 协议也能把顺序排对
+
+Second, TCP requires that once a computer has correctly received a packet
+2. TCP 要求接收方的电脑收到数据包 \N 并且"校验和"检查无误后(数据没有损坏)\N 给发送方发一个确认码,代表收到了
+
+– and the data passes the checksum – that it send back an acknowledgement,
+2. TCP 要求接收方的电脑收到数据包 \N 并且"校验和"检查无误后(数据没有损坏)\N 给发送方发一个确认码,代表收到了
+
+or "ACK” as the cool kids say, to the sending computer.
+"确认码" 简称 ACK \N 得知上一个数据包成功抵达后,发送方会发下一个数据包
+
+Knowing the packet made it successfully, the sender can now transmit the next packet.
+"确认码" 简称 ACK \N 得知上一个数据包成功抵达后,发送方会发下一个数据包
+
+But this time, let’s say, it waits, and doesn’t get an acknowledgement packet back.
+假设这次发出去之后,没收到确认码 \N 那么肯定哪里错了
+
+Something must be wrong. If enough time elapses,
+如果过了一定时间还没收到确认码 \N 发送方会再发一次
+
+the sender will go ahead and just retransmit the same packet.
+如果过了一定时间还没收到确认码 \N 发送方会再发一次
+
+It’s worth noting here that the original packet might have actually gotten there,
+注意 数据包可能的确到了
+
+but the acknowledgment is just really delayed.
+只是确认码延误了很久,或传输中丢失了
+
+Or perhaps it was the acknowledgment that was lost.
+只是确认码延误了很久,或传输中丢失了
+
+Either way, it doesn’t matter, because the receiver has those sequence numbers,
+但这不碍事 因为收件方有序列号
+
+and if a duplicate packet arrives, it can be discarded.
+如果收到重复的数据包就删掉
+
+Also, TCP isn’t limited to a back and forth conversation – it can send many packets,
+还有,TCP 不是只能一个包一个包发
+
+and have many outstanding ACKs, which increases bandwidth significantly, since you aren’t
+可以同时发多个数据包,收多个确认码 \N 这大大增加了效率,不用浪费事件等确认码
+
+wasting time waiting for acknowledgment packets to return.
+可以同时发多个数据包,收多个确认码 \N 这大大增加了效率,不用浪费事件等确认码
+
+Interestingly, the success rate of ACKs, and also the round trip time
+有趣的是,确认码的成功率和来回时间 \N 可以推测网络的拥堵程度
+
+between sending and acknowledging, can be used to infer network congestion.
+有趣的是,确认码的成功率和来回时间 \N 可以推测网络的拥堵程度
+
+TCP uses this information to adjust how aggressively it sends packets –
+TCP 用这个信息,调整同时发包数量,解决拥堵问题
+
+a mechanism for congestion control.
+TCP 用这个信息,调整同时发包数量,解决拥堵问题
+
+So, basically, TCP can handle out-of-order packet delivery, dropped packets
+简单说,TCP 可以处理乱序和丢失数据包,丢了就重发.
+
+– including retransmission – and even throttle its transmission rate according to available bandwidth.
+还可以根据拥挤情况自动调整传输率
+
+Pretty awesome!
+相当厉害!
+
+You might wonder why anyone would use UDP when TCP has all those nifty features.
+你可能会奇怪,既然 TCP 那么厉害,还有人用 UDP 吗?
+
+The single biggest downside are all those acknowledgment packets
+TCP 最大的缺点是 \N 那些"确认码"数据包把数量翻了一倍
+
+– it doubles the number of messages on the network,
+TCP 最大的缺点是 \N 那些"确认码"数据包把数量翻了一倍
+
+and yet, you're not transmitting any more data.
+但并没有传输更多信息
+
+That overhead, including associated delays, is sometimes not worth the improved robustness,
+有时候这种代价是不值得的 \N 特别是对时间要求很高的程序,比如在线射击游戏
+
+especially for time-critical applications, like Multiplayer First Person Shooters.
+有时候这种代价是不值得的 \N 特别是对时间要求很高的程序,比如在线射击游戏
+
+And if it’s you getting lag-fragged you’ll definitely agree!
+如果你玩游戏很卡,你也会觉得这样不值!
+
+When your computer wants to make a connection to a website, you need two things
+当计算机访问一个网站时 \N 需要两个东西:1.IP地址 2.端口号
+
+- an IP address and a port.
+当计算机访问一个网站时 \N 需要两个东西:1.IP地址 2.端口号
+
+Like port 80, at 172.217.7.238.
+例如 172.217.7.238 的 80 端口 \N 这是谷歌的 IP 地址和端口号
+
+This example is the IP address and port for the Google web server.
+例如 172.217.7.238 的 80 端口 \N 这是谷歌的 IP 地址和端口号
+
+In fact, you can enter this into your browser’s address bar, like so,
+事实上,你可以输到浏览器里,然后你会进入谷歌首页
+
+and you’ll end up on the google homepage.
+事实上,你可以输到浏览器里,然后你会进入谷歌首页
+
+This gets you to the right destination,
+有了这两个东西就能访问正确的网站 \N 但记一长串数字很讨厌
+
+but remembering that long string of digits would be really annoying.
+有了这两个东西就能访问正确的网站 \N 但记一长串数字很讨厌
+
+It’s much easier to remember: google.com.
+google.com 比一长串数字好记
+
+So the internet has a special service that maps these domain names to addresses.
+所以互联网有个特殊服务 \N 负责把域名和 IP 地址一一对应
+
+It’s like the phone book for the internet.
+就像专为互联网的电话簿 \N 它叫"域名系统",简称 DNS
+
+And it’s called the Domain Name System, or DNS for short.
+就像专为互联网的电话簿 \N 它叫"域名系统",简称 DNS
+
+You can probably guess how it works.
+它的运作原理你可能猜到了
+
+When you type something like "youtube.com” into your web browser,
+在浏览器里输 youtube.com \N 浏览器会去问 DNS 服务器,它的 IP 地址是多少
+
+it goes and asks a DNS server – usually one provided by your ISP – to lookup the address.
+一般 DNS 服务器 \N 是互联网供应商提供的
+
+DNS consults its huge registry, and replies with the address... if one exists.
+DNS 会查表,如果域名存在,就返回对应 IP 地址.
+
+In fact, if you try mashing your keyboard, adding ".com”, and then hit enter in your
+如果你乱敲键盘加个.com 然后按回车
+
+browser, you’ll likely be presented with an error that says DNS failed.
+你很可能会看到 DNS 错误
+
+That’s because that site doesn’t exist, so DNS couldn’t give your browser an address.
+因为那个网站不存在,所以 DNS 无法返回给你一个地址
+
+But, if DNS returns a valid address, which it should for "YouTube.com”, then your
+如果你输的是有效地址,比如 youtube.com \N DNS 按理会返回一个地址
+
+browser shoots off a request over TCP for the website’s data.
+然后浏览器会给这个 IP 地址 \N 发 TCP 请求
+
+There’s over 300 million registered domain names, so to make out DNS Lookup a little
+如今有三千万个注册域名,所以为了更好管理
+
+more manageable, it’s not stored as one gigantically long list,
+DNS 不是存成一个超长超长的列表,而是存成树状结构
+
+but rather in a tree data structure.
+DNS 不是存成一个超长超长的列表,而是存成树状结构
+
+What are called Top Level Domains, or TLDs, are at the very top.
+顶级域名(简称 TLD)在最顶部,比如 .com 和 .gov
+
+These are huge categories like .com and .gov.
+顶级域名(简称 TLD)在最顶部,比如 .com 和 .gov
+
+Then, there are lower level domains that sit below that, called second level domains; Examples
+下一层是二级域名,比如 .com 下面有 \N google.com 和 dftba.com
+
+under .com include google.com and dftba.com.
+下一层是二级域名,比如 .com 下面有 \N google.com 和 dftba.com
+
+Then, there are even lower level domains, called subdomains,
+再下一层叫子域名,\N 比如 images.google.com, store.dftba.com
+
+like images.google.com, store.dftba.com.
+再下一层叫子域名,\N 比如 images.google.com, store.dftba.com
+
+And this tree is absolutely HUGE!
+这个树超!级!大!
+
+Like I said, more than 300 million domain names, and that's just second level domain
+我前面说的"三千万个域名"只是二级域名 \N 不是所有子域名
+
+names, not all the sub domains.
+我前面说的"三千万个域名"只是二级域名 \N 不是所有子域名
+
+For this reason, this data is distributed across many DNS servers,
+因此,这些数据散布在很多 DNS 服务器上
+
+which are authorities for different parts of the tree.
+不同服务器负责树的不同部分
+
+Okay, I know you’ve been waiting for it...
+好了 我知道你肯定在等这个梗:
+
+We’ve reached a new level of abstraction!
+我们到了一层新抽象!
+
+Over the past two episodes, we’ve worked up from electrical signals on wires,
+过去两集里 \N 我们讲了线路里的电信号,以及无线网络里的无线信号
+
+or radio signals transmitted through the air in the case of wireless networks.
+过去两集里 \N 我们讲了线路里的电信号,以及无线网络里的无线信号
+
+This is called the Physical Layer.
+这些叫"物理层"
+
+MAC addresses, collision detection,
+而"数据链路层"负责操控"物理层",\N 数据链路层有:媒体访问控制地址(MAC),碰撞检测,
+
+exponential backoff and similar low level protocols that
+而"数据链路层"负责操控"物理层",\N 数据链路层有:媒体访问控制地址(MAC),碰撞检测,
+
+mediate access to the physical layer are part of the Data Link Layer.
+指数退避,以及其他一些底层协议
+
+Above this is the Network Layer,
+再上一层是"网络层"
+
+which is where all the switching and routing technologies that we discussed operate.
+负责各种报文交换和路由
+
+And today, we mostly covered the Transport layer, protocols like UDP and TCP,
+而今天,我们讲了"传输层"里一大部分, 比如 UDP 和 TCP 这些协议,
+
+which are responsible for point to point data transfer between computers,
+负责在计算机之间进行点到点的传输
+
+and also things like error detection and recovery when possible.
+而且还会检测和修复错误
+
+We’ve also grazed the Session Layer –
+我们还讲了一点点"会话层"
+
+where protocols like TCP and UDP are used to open a connection,
+"会话层"会使用 TCP 和 UDP 来创建连接,传递信息,然后关掉连接
+
+pass information back and forth, and then close the connection when finished
+"会话层"会使用 TCP 和 UDP 来创建连接,传递信息,然后关掉连接
+
+– what’s called a session.
+这一整套叫"会话"
+
+This is exactly what happens when you, for example, do a DNS Lookup, or request a webpage.
+查询 DNS 或看网页时,就会发生这一套流程
+
+These are the bottom five layers of the Open System Interconnection (OSI) model,
+这是 开放式系统互联通信参考模型(OSI) 的底下5层
+
+a conceptual framework for compartmentalizing all these different network processes.
+这个概念性框架 把网络通信划分成多层
+
+Each level has different things to worry about and solve,
+每一层处理各自的问题
+
+and it would be impossible to build one huge networking implementation.
+如果不分层 \N 直接从上到下捏在一起实现网络通信,是完全不可能的
+
+As we’ve talked about all series, abstraction allows computer scientists and engineers to
+抽象使得科学家和工程师能分工同时改进多个层 \N 不被整体复杂度难倒.
+
+be improving all these different levels of the stack simultaneously,
+抽象使得科学家和工程师能分工同时改进多个层 \N 不被整体复杂度难倒.
+
+without being overwhelmed by the full complexity.
+抽象使得科学家和工程师能分工同时改进多个层 \N 不被整体复杂度难倒.
+
+And amazingly, we’re not quite done yet
+而且惊人的是!我们还没讲完呢!
+
+The OSI model has two more layers, the Presentation Layer and the Application Layer,
+OSI 模型还有两层,"表示层"和"应用程序层"
+
+which include things like web browsers, Skype,
+其中有浏览器,Skype,HTML解码,在线看电影等
+
+HTML decoding, streaming movies and more.
+其中有浏览器,Skype,HTML解码,在线看电影等
+
+Which we’ll talk about next week. See you then.
+我们下周说,到时见
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Over the past two episodes, we’ve delved into the wires, signals, switches, packets,
+前两集我们深入讨论了电线 信号 交换机 数据包 \N 路由器以及协议,它们共同组成了互联网.
+
+routers and protocols that make up the internet.
+前两集我们深入讨论了电线 信号 交换机 数据包 \N 路由器以及协议,它们共同组成了互联网.
+
+Today we’re going to move up yet another level of abstraction
+今天我们向上再抽象一层,来讨论万维网
+
+and talk about the World Wide Web.
+今天我们向上再抽象一层,来讨论万维网
+
+This is not the same thing as the Internet,
+万维网(World Wide Web) \N 和互联网(Internet)不是一回事
+
+even though people often use the two terms interchangeably.
+尽管人们经常混用这两个词
+
+The World Wide Web runs on top of the internet,
+万维网在互联网之上运行
+
+in the same way that Skype, Minecraft or Instagram do.
+互联网之上还有 Skype, Minecraft 和 Instagram
+
+The Internet is the underlying plumbing that conveys the data for all these different applications.
+互联网是传递数据的管道,各种程序都会用,
+
+And The World Wide Web is the biggest of them all
+其中传输最多数据的程序是万维网
+
+– a huge distributed application running on millions of servers worldwide,
+分布在全球数百万个服务器上
+
+accessed using a special program called a web browser.
+可以用"浏览器"来访问万维网
+
+We’re going to learn about that, and much more, in today’s episode.
+这集我们会深入讲解万维网
+
+The fundamental building block of the World Wide Web – or web for short
+万维网的最基本单位,是单个页面
+
+– is a single page.
+万维网的最基本单位,是单个页面
+
+This is a document, containing content, which can include links to other pages.
+页面有内容,也有去往其他页面的链接 \N 这些链接叫"超链接"
+
+These are called hyperlinks.
+页面有内容,也有去往其他页面的链接 \N 这些链接叫"超链接"
+
+You all know what these look like: text or images that you can click,
+你们都见过:可以点击的文字或图片,把你送往另一个页面
+
+and they jump you to another page.
+你们都见过:可以点击的文字或图片,把你送往另一个页面
+
+These hyperlinks form a huge web of interconnected information,
+这些超链接形成巨大的互联网络
+
+which is where the whole thing gets its name.
+这就是"万维网"名字的由来
+
+This seems like such an obvious idea.
+现在说起来觉得很简单,但在超链接做出来之前
+
+But before hyperlinks were implemented,
+现在说起来觉得很简单,但在超链接做出来之前
+
+every time you wanted to switch to another piece of information on a computer,
+计算机上每次想看另一个信息时
+
+you had to rummage through the file system to find it, or type it into a search box.
+你需要在文件系统中找到它 \N 或是把地址输入搜索框
+
+With hyperlinks, you can easily flow from one related topic to another.
+有了超链接,你可以在相关主题间轻松切换
+
+The value of hyperlinked information was conceptualized by Vannevar Bush way back in 1945.
+超链接的价值早在 1945 年 \N 就被 Vannevar Bush 意识到了
+
+He published an article describing a hypothetical machine called a Memex,
+在第 24 集中我们说过,他发过一篇文章 \N 描述一个假想的机器 Memex
+
+which we discussed in Episode 24.
+在第 24 集中我们说过,他发过一篇文章 \N 描述一个假想的机器 Memex
+
+Bush described it as "associative indexing... whereby any item may be caused
+Bush的形容是"关联式索引.. 选一个物品会引起
+
+at will to select another immediately and automatically."
+另一个物品被立即选中"
+
+He elaborated: "The process of tying two things together is the important thing...
+他解释道:"将两样东西联系在一起的过程十分重要
+
+thereafter, at any time, when one of those items is in view,
+在任何时候,当其中一件东西进入视线
+
+the other [item] can be instantly recalled merely by tapping a button."
+只需点一下按钮,立马就能回忆起另一件"
+
+In 1945, computers didn’t even have screens, so this idea was way ahead of its time!
+1945年的时候计算机连显示屏都没有,\N 所以这个想法非常超前!
+
+Text containing hyperlinks is so powerful,
+因为文字超链接是如此强大
+
+it got an equally awesome name: hypertext!
+它得到了一个同样厉害的名字:"超文本"!
+
+Web pages are the most common type of hypertext document today.
+如今超文本最常指向的,是另一个网页
+
+They’re retrieved and rendered by web browsers
+然后网页由浏览器渲染,我们待会会讲
+
+which we'll get to in a few minutes.
+然后网页由浏览器渲染,我们待会会讲
+
+In order for pages to link to one another, each hypertext page needs a unique address.
+为了使网页能相互连接,每个网页需要一个唯一的地址
+
+On the web, this is specified by a Uniform Resource Locator, or URL for short.
+这个地址叫 "统一资源定位器",简称 URL
+
+An example web page URL is thecrashcourse.com/courses.
+一个网页URL的例子是 "thecrashcourse.com/courses"
+
+Like we discussed last episode, when you request a site,
+就像上集讨论的,当你访问一个网站时
+
+the first thing your computer does is a DNS lookup.
+计算机首先会做"DNS查找"
+
+This takes a domain name as input – like "thecrashcourse.com"
+"DNS查找"的输入是一个域名 \N 比如 thecrashcourse.com
+
+and replies back with the corresponding computer’s IP address.
+DNS 会输出对应的IP地址
+
+Now, armed with the IP address of the computer you want,
+现在有了IP地址 \N 你的浏览器会打开一个 TCP 连接到这个 IP 地址
+
+your web browser opens a TCP connection to a computer
+现在有了IP地址 \N 你的浏览器会打开一个 TCP 连接到这个 IP 地址
+
+that’s running a special piece of software called a web server.
+这个地址运行着"网络服务器"
+
+The standard port number for web servers is port 80.
+网络服务器的标准端口是 80 端口
+
+At this point, all your computer has done is connect to
+这时,你的计算机连到了 \N thecrashcourse.com 的服务器
+
+the web server at the address thecrashcourse.com
+这时,你的计算机连到了 \N thecrashcourse.com 的服务器
+
+The next step is to ask that web server for the "courses" hypertext page.
+下一步是向服务器请求"courses"这个页面
+
+To do this, it uses the aptly named Hypertext Transfer Protocol, or HTTP.
+这里会用"超文本传输协议"(HTTP)
+
+The very first documented version of this spec, HTTP 0.9, created in 1991,
+HTTP的第一个标准,HTTP 0.9,创建于1991年
+
+only had one command – "GET".
+只有一个指令,"GET" 指令
+
+Fortunately, that’s pretty much all you need.
+幸运的是,对当时来说也够用
+
+Because we’re trying to get the "courses" page,
+因为我们想要的是"courses"页面
+
+we send the server the following command– GET /courses.
+我们向服务器发送指令:"GET /courses"
+
+This command is sent as raw ASCII text to the web server,
+该指令以"ASCII编码"发送到服务器
+
+which then replies back with the web page hypertext we requested.
+服务器会返回该地址对应的网页 \N 然后浏览器会渲染到屏幕上
+
+This is interpreted by your computer's web browser and rendered to your screen.
+服务器会返回该地址对应的网页 \N 然后浏览器会渲染到屏幕上
+
+If the user follows a link to another page, the computer just issues another GET request.
+如果用户点了另一个链接,计算机会重新发一个GET请求
+
+And this goes on and on as you surf around the website.
+你浏览网站时,这个步骤会不断重复
+
+In later versions, HTTP added status codes,
+在之后的版本,HTTP添加了状态码
+
+which prefixed any hypertext that was sent following a GET request.
+状态码放在请求前面
+
+For example, status code 200 means OK – I’ve got the page and here it is!
+举例,状态码 200 代表 "网页找到了,给你"
+
+Status codes in the four hundreds are for client errors.
+状态码400~499代表客户端出错
+
+Like, if a user asks the web server for a page that doesn’t exist,
+比如网页不存在,就是可怕的404错误
+
+that’s the dreaded 404 error!
+比如网页不存在,就是可怕的404错误
+
+Web page hypertext is stored and sent as plain old text,
+"超文本"的存储和发送都是以普通文本形式
+
+for example, encoded in ASCII or UTF-16, which we talked about in Episodes 4 and 20.
+举个例子,编码可能是 ASCII 或 UTF-16 \N 我们在第4集和第20集讨论过
+
+Because plain text files don’t have a way to specify what’s a link and what’s not,
+因为如果只有纯文本 \N 无法表明什么是链接,什么不是链接
+
+it was necessary to develop a way to "mark up" a text file with hypertext elements.
+所以有必要开发一种标记方法
+
+For this, the Hypertext Markup Language was developed.
+因此开发了 超文本标记语言(HTML)
+
+The very first version of HTML version 0.8, created in 1990,
+HTML 第一版的版本号是 0.8,创建于 1990 年
+
+provided 18 HTML commands to markup pages.
+有18种HTML指令
+
+That’s it!
+仅此而已
+
+Let’s build a webpage with these!
+我们来做一个网页吧!
+
+First, let’s give our web page a big heading.
+首先,给网页一个大标题
+
+To do this, we type in the letters "h1", which indicates the start of a first level
+我们输 h1 代表一级标题,然后用<>括起来
+
+heading, and we surround that in angle brackets.
+我们输 h1 代表一级标题,然后用<>括起来
+
+This is one example of an HTML tag.
+这就是一个HTML标签
+
+Then, we enter whatever heading text we want.
+然后输入想要的标题
+
+We don’t want the whole page to be a heading.
+我们不想一整页都是标题 \N 所以加 作为结束标签
+
+So, we need to "close" the "h1" tag like so, with a little slash in the front.
+我们不想一整页都是标题 \N 所以加 作为结束标签
+
+Now lets add some content.
+现在来加点内容
+
+Visitors may not know what Klingons are, so let’s make that word a hyperlink to the
+读者可能不知道"克林贡"是什么,所以我们给这个词
+
+Klingon Language Institute for more information.
+加一个超链接到"克林贡语言研究院"
+
+We do this with an "A" tag, inside of which we include an attribute
+我们用 标签来做,它有一个 href 属性
+
+that specifies a hyperlink reference.
+说明链接指向哪里,当点击链接时就会进入那个网页
+
+That’s the page to jump to if the link is clicked.
+说明链接指向哪里,当点击链接时就会进入那个网页
+
+And finally, we need to close the A tag.
+最后用 关闭标签
+
+Now lets add a second level heading, which uses an "h2" tag.
+接下来用
标签做二级标题
+
+HTML also provides tags to create lists.
+HTML也有做列表的标签
+
+We start this by adding the tag for an ordered list.
+我们先写 \N 代表 有序列表(ordered list)
+
+Then we can add as many items as we want,
+然后想加几个列表项目 就加几个 \N 用 - 包起来就行
+
+surrounded in "
- " tags, which stands for list item.
+然后想加几个列表项目 就加几个 \N 用
- 包起来就行
+
+People may not know what a bat'leth is, so let’s make that a hyperlink too.
+读者可能不知道Bat'leth是什么,那么也加上超链接
+
+Lastly, for good form, we need to close the ordered list tag.
+最后,为了保持良好格式,用
代表列表结束
+
+And we’re done – that’s a very simple web page!
+这就完成了 - 一个很简单的网页!
+
+If you save this text into notepad or textedit, and name it something like "test.html",
+如果把这些文字存入记事本或文本编辑器,\N 然后文件取名"test.html"
+
+you should be able to open it by dragging it into your computer’s web browser.
+就可以拖入浏览器打开
+
+Of course, today’s web pages are a tad more sophisticated.
+当然,如今的网页更复杂一些
+
+The newest version of HTML, version 5, has over a hundred different tags –
+最新版的 HTML,HTML5,有100多种标签
+
+for things like images, tables, forms and buttons.
+图片标签,表格标签,表单标签,按钮标签,等等
+
+And there are other technologies we’re not going to discuss, like Cascading Style Sheets
+还有其他相关技术就不说了\N 比如 层叠样式表 (CSS)
+
+or CSS and JavaScript, which can be embedded into HTML pages and do even fancier things.
+和 JavaScript,这俩可以加进网页,做一些更厉害的事
+
+That brings us back to web browsers.
+让我们回到浏览器
+
+This is the application on your computer that lets you talk with all these web servers.
+网页浏览器可以和网页服务器沟通
+
+Browsers not only request pages and media,
+浏览器不仅获取网页和媒体,获取后还负责显示.
+
+but also render the content that’s being returned.
+浏览器不仅获取网页和媒体,获取后还负责显示.
+
+The first web browser, and web server,
+第一个浏览器和服务器
+
+was written by (now Sir) Tim Berners-Lee over the course of two months in 1990.
+是 Tim Berners-Lee 在 1990 年写的,一共花了2个月
+
+At the time, he was working at CERN in Switzerland.
+那时候他在瑞士的"欧洲核子研究所"工作
+
+To pull this feat off, he simultaneously created several of the fundamental web standards
+为了做出来,他同时建立了几个最基本的网络标准
+
+we discussed today: URL, HTML and HTTP.
+URL, HTML 和 HTTP.
+
+Not bad for two months work!
+两个月能做这些很不错啊!
+
+Although to be fair, he’d been researching hypertext systems for over a decade.
+不过公平点说,他研究超文本系统已经有十几年了
+
+After initially circulating his software amongst colleagues at CERN,
+和同事在 CERN 内部使用一阵子后
+
+it was released to the public in 1991.
+在 1991 年发布了出去
+
+The World Wide Web was born.
+万维网就此诞生
+
+Importantly, the web was an open standard,
+重要的是,万维网有开放标准
+
+making it possible for anyone to develop new web servers and browsers.
+大家都可以开发新服务器和新浏览器
+
+This allowed a team at the University of Illinois at Urbana-Champaign to
+因此"伊利诺伊大学香槟分校"的一个小组
+
+create the Mosaic web browser in 1993.
+在 1993 年做了 Mosaic 浏览器
+
+It was the first browser that allowed graphics to be embedded alongside text;
+第一个可以在文字旁边显示图片的浏览器
+
+previous browsers displayed graphics in separate windows.
+之前浏览器要单开一个新窗口显示图片
+
+It also introduced new features like bookmarks, and had a friendly GUI interface,
+还引进了书签等新功能,界面友好,使它很受欢迎
+
+which made it popular.
+还引进了书签等新功能,界面友好,使它很受欢迎
+
+Even though it looks pretty crusty, it’s recognizable as the web we know today!
+尽管看上去硬邦邦的,但和如今的浏览器长的差不多
+
+By the end of the 1990s, there were many web browsers in use,
+1990年代末有许多浏览器面世
+
+like Netscape Navigator, Internet Explorer, Opera, OmniWeb and Mozilla.
+Netscape Navigator, Internet Explorer \N Opera, OmniWeb, Mozilla
+
+Many web servers were also developed,
+也有很多服务器面世
+
+like Apache and Microsoft’s Internet Information Services (IIS).
+比如 Apache 和 微软互联网信息服务(IIS)
+
+New websites popped up daily, and web mainstays
+每天都有新网站冒出来,如今的网络巨头
+
+like Amazon and eBay were founded in the mid-1990s.
+比如亚马逊和 eBay,创始于 1990 年代中期
+
+It was a golden era!
+那是个黄金时代!
+
+The web was flourishing and people increasingly needed ways to find things.
+随着万维网日益繁荣,人们越来越需要搜索
+
+If you knew the web address of where you wanted to go –
+如果你知道网站地址 \N 比如 ebay.com,直接输入浏览器就行
+
+like ebay.com – you could just type it into the browser.
+如果你知道网站地址 \N 比如 ebay.com,直接输入浏览器就行
+
+But what if you didn’t know where to go?
+如果不知道地址呢?
+
+Like, you only knew that you wanted pictures of cute cats.
+比如想找可爱猫咪的图片
+
+Right now!
+现在就要!
+
+Where do you go?
+去哪里找呢?
+
+At first, people maintained web pages
+起初人们会维护一个目录,链接到其他网站
+
+which served as directories hyperlinking to other websites.
+起初人们会维护一个目录,链接到其他网站
+
+"Most famous among these was "Jerry and David's guide to the World Wide Web",
+其中最有名的叫"Jerry和David的万维网指南"
+
+renamed Yahoo in 1994.
+1994年改名为Yahoo
+
+As the web grew, these human-edited directories started to get unwieldy,
+随着网络越来越大,人工编辑的目录变得不便利
+
+and so search engines were developed.
+所以开发了搜索引擎
+
+Let’s go to the thought bubble!
+让我们进入思想泡泡!
+
+The earliest web search engine that operated like the ones we use today, was JumpStation,
+长的最像现代搜索引擎的最早搜素引擎,叫JumpStation
+
+created by Jonathon Fletcher in 1993 at the University of Stirling.
+由Jonathon Fletcher于1993年在斯特林大学创建
+
+This consisted of three pieces of software that worked together.
+它有 3 个部分
+
+The first was a web crawler, software that followed all the links it could find on the web;
+第一个是爬虫,一个跟着链接到处跑的软件
+
+anytime it followed a link to a page that had new links,
+每当看到新链接,就加进自己的列表里
+
+it would add those to its list.
+每当看到新链接,就加进自己的列表里
+
+The second component was an ever enlarging index,
+第二个部分是不断扩张的索引
+
+recording what text terms appeared on what pages the crawler had visited.
+记录访问过的网页上,出现过哪些词
+
+The final piece was a search algorithm that consulted the index;
+最后一个部分,是查询索引的搜索算法
+
+for example, if I typed the word "cat" into JumpStation,
+举个例子,如果我在 JumpStation 输入"猫"
+
+every webpage where the word "cat" appeared would come up in a list.
+每个有"猫"这个词的网页都会出现
+
+Early search engines used very simple metrics to rank order their search results, most often
+早期搜索引擎的排名方式 非常简单
+
+just the number of times a search term appeared on a page.
+取决于 搜索词在页面上的出现次数
+
+This worked okay, until people started gaming the system,
+刚开始还行,直到有人开始钻空子
+
+like by writing "cat" hundreds of times on their web pages just to steer traffic their way.
+比如在网页上写几百个"猫",把人们吸引过来
+
+Google’s rise to fame was in large part
+谷歌成名的一个很大原因是 \N 创造了一个聪明的算法来规避这个问题
+
+due to a clever algorithm that sidestepped this issue.
+谷歌成名的一个很大原因是 \N 创造了一个聪明的算法来规避这个问题
+
+Instead of trusting the content on a web page,
+与其信任网页上的内容 \N 搜索引擎会看其他网站 有没有链接到这个网站
+
+they looked at how other websites linked to that page.
+与其信任网页上的内容 \N 搜索引擎会看其他网站 有没有链接到这个网站
+
+If it was a spam page with the word cat over and over again, no site would link to it.
+如果只是写满"猫"的垃圾网站,没有网站会指向它
+
+But if the webpage was an authority on cats, then other sites would likely link to it.
+如果有关于猫的有用内容,有网站会指向它
+
+So the number of what are called "backlinks", especially from reputable sites,
+所以这些"反向链接"的数量,特别是有信誉的网站
+
+was often a good sign of quality.
+代表了网站质量
+
+This started as a research project called BackRub at Stanford University in 1996, before
+Google 一开始时是 1996 年斯坦福大学 \N 一个叫 BackRub 的研究项目
+
+being spun out, two years later, into the Google we know today.
+两年后分离出来,演变成如今的谷歌
+
+Thanks thought bubble!
+谢谢思想泡泡!
+
+Finally, I want to take a second to talk about a term you’ve probably heard a lot recently,
+最后 我想讲一个词,你最近可能经常听到
+
+"Net Neutrality".
+网络中立性
+
+Now that you’ve built an understanding of packets, internet routing, and the World Wide
+现在你对数据包,路由和万维网,有了个大体概念
+
+Web, you know enough to understand the essence, at least the technical essence, of this big debate.
+足够你理解这个争论的核心点,至少从技术角度
+
+In short, network neutrality is the principle that
+简单说"网络中立性"是
+
+all packets on the internet should be treated equally.
+应该平等对待所有数据包
+
+It doesn’t matter if the packets are my email or you streaming this video,
+不论这个数据包是我的邮件,或者是你在看视频
+
+they should all chug along at the same speed and priority.
+速度和优先级应该是一样的
+
+But many companies would prefer that their data arrive to you preferentially.
+但很多公司会乐意让它们的数据优先到达
+
+Take for example, Comcast, a large ISP that also owns many TV channels,
+拿 Comcast 举例,它们不但是大型互联网服务提供商\N 而且拥有多家电视频道
+
+like NBC and The Weather Channel, which are streamed online.
+比如 NBC 和 The Weather Channel,可以在线看.
+
+Not to pick on Comcast, but in the absence of Net Neutrality rules,
+我不是特意找Comcast麻烦 \N 但要是没有网络中立性
+
+they could for example say that they want their content to be delivered silky smooth, with high priority…
+Comcast 可以让自己的内容优先到达 \N 节流其他线上视频
+
+But other streaming videos are going to get throttled,
+Comcast 可以让自己的内容优先到达 \N 节流其他线上视频
+
+that is, intentionally given less bandwidth and lower priority.
+节流(Throttled) 意思是故意给更少带宽和更低优先级
+
+Again I just want to reiterate here this is just conjecture.
+再次重申,这只是举例,不是说 Comcast 很坏
+
+At a high level, Net Neutrality advocates argue that giving internet providers this
+支持网络中立性的人说 \N 没有中立性后,服务商可以推出提速的"高级套餐"
+
+ability to essentially set up tolls on the internet – to provide premium packet delivery
+支持网络中立性的人说 \N 没有中立性后,服务商可以推出提速的"高级套餐"
+
+plants the seeds for an exploitative business model.
+给剥削性商业模式埋下种子
+
+ISPs could be gatekeepers to content, with strong incentives to not play nice with competitors.
+互联网服务供应商成为信息的"守门人",\N 它们有着强烈的动机去碾压对手
+
+Also, if big companies like Netflix and Google can pay to get special treatment,
+另外,Netflix和Google这样的大公司可以花钱买特权
+
+small companies, like start-ups, will be at a disadvantage, stifling innovation.
+而小公司,比如刚成立的创业公司,\N 会处于劣势,阻止了创新
+
+On the other hand, there are good technical reasons why you might
+另一方面,从技术原因看
+
+want different types of data to flow at different speeds.
+也许你会希望不同数据传输速度不同
+
+That skype call needs high priority,
+你希望Skype的优先级更高,邮件晚几秒没关系
+
+but it’s not a big deal if an email comes in a few seconds late.
+你希望Skype的优先级更高,邮件晚几秒没关系
+
+Net-neutrality opponents also argue that market forces and competition would discourage bad
+而反对"网络中立性"的人认为,市场竞争会阻碍不良行为
+
+behavior, because customers would leave ISPs that are throttling sites they like.
+如果供应商把客户喜欢的网站降速 \N 客户会离开供应商
+
+This debate will rage on for a while yet, and as we always encourage on Crash Course,
+这场争辩还会持续很久,\N 就像我们在 Crash Course 其他系列中说过
+
+you should go out and learn more
+你应该自己主动了解更多信息
+
+because the implications of Net Neutrality are complex and wide-reaching.
+因为"网络中立性"的影响十分复杂而且广泛
+
+I’ll see you next week.
+我们下周再见
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Over the last three episodes, we’ve talked about how computers have become interconnected,
+过去3集 我们讲了计算机如何互连
+
+allowing us to communicate near-instantly across the globe.
+让我们能瞬时跨全球沟通
+
+But, not everyone who uses these networks is going to play by the rules,
+但不是每个使用网络的人都会规规矩矩 不损害他人利益
+
+or have our best interests at heart.
+但不是每个使用网络的人都会规规矩矩 不损害他人利益
+
+Just as how we have physical security like locks, fences
+就像现实世界中我们用锁和栅栏保证物理安全
+
+and police officers to minimize crime in the real world,
+有警察减少犯罪
+
+we need cybersecurity to minimize crime and harm in the virtual world.
+我们需要网络安全减少虚拟世界中的犯罪
+
+Computers don’t have ethics.
+计算机没有道德观念
+
+Give them a formally specified problem and
+只要给计算机写清具体问题 它们很乐意地闪电般算出答案
+
+they’ll happily pump out an answer at lightning speed.
+只要给计算机写清具体问题 它们很乐意地闪电般算出答案
+
+Running code that takes down a hospital’s computer systems
+破坏医院计算机系统的代码 和 保持病人心跳的代码 \N 对计算机来说没有区别
+
+is no different to a computer than code that keeps a patient's heart beating.
+破坏医院计算机系统的代码 和 保持病人心跳的代码 \N 对计算机来说没有区别
+
+Like the Force, computers can be pulled to the light side or the dark side.
+就像"原力"一样 \N 计算机可以被拉到"光明面"或"黑暗面"
+
+Cybersecurity is like the Jedi Order, trying to bring peace and justice to the cyber-verse.
+网络安全就像 绝地武士团 \N 给网络世界带来和平与正义
+
+The scope of cybersecurity evolves as fast as the capabilities of computing,
+计算机安全的范围,和计算能力的发展速度一样快
+
+but we can think of it as a set of techniques to protect the secrecy,
+我们可以把计算机安全,看成是保护系统和数据的:
+
+integrity and availability of computer systems and data against threats.
+保密性,完整性和可用性
+
+Let’s unpack those three goals:
+我们逐个细说:
+
+Secrecy, or confidentiality, means that only authorized people
+"保密性"是只有有权限的人 \N 才能读取计算机系统和数据
+
+should be able to access or read specific computer systems and data.
+"保密性"是只有有权限的人 \N 才能读取计算机系统和数据
+
+Data breaches, where hackers reveal people’s credit card information,
+黑客泄露别人的信用卡信息,就是攻击保密性.
+
+is an attack on secrecy.
+黑客泄露别人的信用卡信息,就是攻击保密性.
+
+Integrity means that only authorized people
+"完整性"是只有有权限的人 \N 才能使用和修改系统和数据
+
+should have the ability to use or modify systems and data.
+"完整性"是只有有权限的人 \N 才能使用和修改系统和数据
+
+Hackers who learn your password and send e-mails masquerading as you, is an integrity attack.
+黑客知道你的邮箱密码,假冒你发邮件\N 就是攻击"完整性"
+
+And availability means that authorized people should
+"可用性"是有权限的人 \N 应该随时可以访问系统和数据
+
+always have access to their systems and data.
+"可用性"是有权限的人 \N 应该随时可以访问系统和数据
+
+Think of Denial of Service Attacks, where hackers overload a website
+拒绝服务攻击(DDOS) 就是黑客
+
+with fake requests to make it slow or unreachable for others.
+发大量的假请求到服务器,让网站很慢或者挂掉
+
+That’s attacking the service’s availability.
+这就是攻击"可用性"
+
+To achieve these three general goals, security experts start with
+为了实现这三个目标,安全专家会从 \N 抽象层面想象"敌人"可能是谁,这叫"威胁模型分析"
+
+a specification of who your "enemy" is, at an abstract level, called a threat model.
+为了实现这三个目标,安全专家会从 \N 抽象层面想象"敌人"可能是谁,这叫"威胁模型分析"
+
+This profiles attackers: their capabilities, goals, and probable means of attack
+模型会对攻击者有个大致描述:\N 能力如何,目标可能是什么,可能用什么手段
+
+– what’s called, awesomely enough, an attack vector.
+攻击手段又叫"攻击矢量"
+
+Threat models let you prepare against specific threats, rather than
+"威胁模型分析"让你能为特定情境做准备
+
+being overwhelmed by all the ways hackers could get to your systems and data.
+不被可能的攻击手段数量所淹没 \N 因为手段实在有太多种了
+
+And there are many, many ways.
+不被可能的攻击手段数量所淹没 \N 因为手段实在有太多种了
+
+Let’s say you want to "secure" physical access to your laptop.
+假设你想确保笔记本计算机的"物理安全" \N 你的威胁模型是"好管闲事的室友"
+
+Your threat model is a nosy roommate.
+假设你想确保笔记本计算机的"物理安全" \N 你的威胁模型是"好管闲事的室友"
+
+To preserve the secrecy, integrity and availability of your laptop,
+为了保证保密性,完整性和可用性 \N 你可以藏在脏兮兮的洗衣篮里
+
+you could keep it hidden in your dirty laundry hamper.
+为了保证保密性,完整性和可用性 \N 你可以藏在脏兮兮的洗衣篮里
+
+But, if your threat model is a mischievous younger sibling
+但如果威胁模型是调皮的兄弟姐妹,知道你喜欢藏哪里
+
+who knows your hiding spots,
+但如果威胁模型是调皮的兄弟姐妹,知道你喜欢藏哪里
+
+then you’ll need to do more: maybe lock it in a safe.
+那么你需要更多保护:比如锁在保险箱里
+
+In other words, how a system is secured depends heavily on who it’s being secured against.
+换句话说,要怎么保护,具体看对抗谁
+
+Of course, threat models are typically a bit more formally defined than just "nosy roommate".
+当然,威胁模型通常比"好管闲事的室友"更正式一些
+
+Often you’ll see threat models specified in terms of technical capabilities.
+通常威胁模型分析里 会以能力水平区分
+
+For example, "someone who has physical access to your laptop along with unlimited time".
+比如"某人可以物理接触到笔记本计算机,而且时间无限"
+
+With a given threat model, security architects need to come up
+在给定的威胁模型下,安全架构师要
+
+with a solution that keeps a system secure –
+提供解决方案,保持系统安全
+
+as long as certain assumptions are met,
+只要某些假设不被推翻
+
+like no one reveals their password to the attacker.
+比如没人会告诉攻击者密码
+
+There are many methods for protecting computer systems, networks and data.
+保护计算机系统,网络和数据的方法有很多
+
+A lot of security boils down to two questions:
+很多安全问题可以总结成2个问题:
+
+who are you, and what should you have access to?
+你是谁?你能访问什么?
+
+Clearly, access should be given to the right people, but refused to the wrong people.
+权限应该给合适的人,拒绝错误的人
+
+Like, bank employees should be able to open ATMs to restock them, but not me…
+比如银行员工可以打开取款机来补充现金。\N 但我不应该有权限打开
+
+because I’d take it all... all of it!
+因为我会把钱拿走 全拿走!
+
+That ceramic cat collection doesn’t buy itself!
+陶瓷猫收藏品可不会从天上掉下来哟!
+
+So, to differentiate between right and wrong people, we use authentication
+所以,为了区分谁是谁,\N 我们用 "身份认证"(authentication)
+
+- the process by which a computer understands who it’s interacting with.
+- 让计算机得知使用者是谁
+
+Generally, there are three types, each with their own pros and cons:
+身份认证有三种,各有利弊:
+
+What you know.
+你知道什么
+
+What you have.
+你有什么
+
+And what you are.
+你是什么
+
+What you know authentication is based on knowledge of a secret that
+"你知道什么" 是基于某个秘密
+
+should be known only by the real user and the computer,
+只有用户和计算机知道
+
+for example, a username and password.
+比如 用户名和密码
+
+This is the most widely used today because it’s the easiest to implement.
+这是如今使用最广泛的,因为最容易实现
+
+But, it can be compromised if hackers guess or otherwise come to know your secret.
+但如果黑客通过猜测或其他方式,知道你的密码,就惨了
+
+Some passwords are easy for humans to figure out, like 12356 or qwerty.
+有些密码很容易猜中,比如12356或qwerty
+
+But, there are also ones that are easy for computers.
+但有些密码对计算机很容易
+
+Consider the PIN: 2580.
+比如PIN码:2580
+
+This seems pretty difficult to guess – and it is – for a human.
+看起来很难猜中 - 起码对人类来说是这样
+
+But there are only ten thousand possible combinations of 4-digit PINs.
+但4位数字,只有一万种可能
+
+A computer can try entering 0000, then try 0001, and then 0002,
+一台计算机可以尝试0000,然后0001,然后0002,
+
+all the way up to 9999... in a fraction of a second.
+然后到9999,不到一秒内试完
+
+This is called a brute force attack, because it just tries everything.
+这叫"暴力攻击",因为只是试遍一切可能
+
+There’s nothing clever to the algorithm.
+这种算法没什么聪明的地方
+
+Some computer systems lock you out, or have you wait a little, after say three wrong attempts.
+如果你错误尝试3次,\N 有些系统会阻止你继续尝试,或让你等一会儿
+
+That’s a common and reasonable strategy,
+这个策略普遍而且合理
+
+and it does make it harder for less sophisticated attackers.
+对于一般的攻击者确实很难
+
+But think about what happens if hackers have already taken over
+但假设黑客控制了
+
+tens of thousands of computers, forming a botnet.
+数以万计的计算机,形成一个僵尸网络
+
+Using all these computers, the same pin – 2580 –
+用这么多计算机尝试密码 2580
+
+can be tried on many tens of thousands of bank accounts simultaneously.
+同时尝试很多银行账户
+
+Even with just a single attempt per account, they’ll very likely
+即使每个账户只试一次,也很可能
+
+get into one or more that just happen to use that PIN.
+碰到某个账户刚好用这个 PIN
+
+In fact, we’ve probably guessed the pin of someone watching this video!
+事实上,看视频的某人可能刚好用这个 PIN
+
+Increasing the length of PINs and passwords can help,
+增加密码长度有帮助
+
+but even 8 digit PINs are pretty easily cracked.
+但即使8位数字的PIN码也很容易破解
+
+This is why so many websites now require you to use a mix of upper and lowercase letters,
+这就是为什么现在很多网站 要求大写+小写字母
+
+special symbols, and so on – it explodes the number of possible password combinations.
+还有特殊符号等,大大增加可能的密码
+
+An 8-digit numerical PIN only has a hundred million combinations
+8位数字的PIN只有一亿种组合
+
+– computers eat that for breakfast!
+对计算机轻而易举
+
+But an 8-character password with all those funky things mixed in
+但包含各种字符的8位长度密码
+
+has more than 600 trillion combinations.
+有超过600万亿种组合
+
+Of course, these passwords are hard for us mere humans to remember,
+当然,这些密码会难以记住,
+
+so a better approach is for websites to let us pick something more memorable,
+所以更好的方法是 选一些更好记的东西
+
+like three words joined together:
+比如三个单词连在一起:
+
+"green brothers rock" or "pizza tasty yum".
+"格林兄弟好厉害"或"披萨尝起来好好吃"
+
+English has around 100,000 words in use,
+英文大约有10万个单词
+
+so putting three together would give you roughly
+所以三个单词连一起大概有
+
+1 quadrillion possible passwords. Good luck trying to guess that!
+1亿亿种可能,想猜中的话,祝你好运!
+
+I should also note here that using non-dictionary words
+另外使用不在字典内的单词
+
+is even better against more sophisticated kinds of attacks,
+被猜中的可能性更低
+
+but we don’t have time to get into that here.
+但我们没时间细说这个
+
+Computerphile has a great video on choosing a password - link in the dooblydoo.
+Computerphile 频道有个视频讲怎么选择好密码 - \N 链接请看 Youtube 描述
+
+What you have authentication, on the other hand,
+"你有什么"这种验证方式
+
+is based on possession of a secret token that only the real user has.
+是基于用户有特定物体
+
+An example is a physical key and lock.
+比如钥匙和锁
+
+You can only unlock the door if you have the key.
+如果你有钥匙,就能开门
+
+This escapes this problem of being "guessable".
+这避免了被人"猜中"的问题
+
+And they typically require physical presence,
+而且通常需要人在现场
+
+so it’s much harder for remote attackers to gain access.
+所以远程攻击就更难了
+
+Someone in another country can’t gain access to your front door in Florida
+另一个国家的人,得先来佛罗里达州
+
+without getting to Florida first.
+才能到你家前门
+
+But, what you have authentication can be compromised if an attacker is physically close.
+但如果攻击者离你比较近,那么也不安全
+
+Keys can be copied, smartphones stolen, and locks picked.
+钥匙可以被复制,手机可能被偷,锁可以撬开
+
+Finally, what you are authentication is based on... you!
+最后,"你是什么"这种验证,是基于你
+
+You authenticate by presenting yourself to the computer.
+把特征展示给计算机进行验证
+
+Biometric authenticators, like fingerprint readers and iris scanners are classic examples.
+生物识别验证器,\N 比如指纹识别器和虹膜扫描仪就是典型例子
+
+These can be very secure, but the best technologies are still quite expensive.
+这些非常安全,但最好的识别技术仍然很贵
+
+Furthermore, data from sensors varies over time.
+而且,来自传感器的数据每次会不同
+
+What you know and what you have authentication have the nice property of being deterministic
+"你知道什么"和"你有什么"。这两种验证是"确定性"的
+
+– either correct or incorrect.
+- 要么正确,要么错误
+
+If you know the secret, or have the key, you’re granted access 100% of the time.
+如果你知道密码,或有钥匙,那么100%能获得访问权限
+
+If you don’t, you get access zero percent of the time.
+如果没有,就绝对进不去
+
+Biometric authentication, however, is probabilistic.There’s some chance the system won’t recognize you…
+但"生物识别"是概率性的,系统有可能认不出你
+
+maybe you’re wearing a hat or the lighting is bad.
+可能你戴了帽子,或者光线不好
+
+Worse, there’s some chance the system will recognize the wrong person as you
+更糟的是,系统可能把别人错认成你
+
+– like your evil twin!
+比如你的邪恶双胞胎
+
+Of course, in production systems, these chances are low, but not zero.
+当然,在现实世界中几率很低,但不是零
+
+Another issue with biometric authentication is it can’t be reset.
+生物认证的另一个问题是无法重设
+
+You only have so many fingers, so what happens if an attacker compromises your fingerprint data?
+你只有这么多手指,如果攻击者拿到你的指纹数据怎么办
+
+This could be a big problem for life.
+你一辈子都麻烦了
+
+And, recently, researchers showed it’s possible to forge your iris
+最近还有研究人员表示,拍个照都有可能伪造虹膜
+
+just by capturing a photo of you, so that’s not promising either.
+所以也不靠谱
+
+Basically, all forms of authentication have strengths and weaknesses,
+所有认证方法都有优缺点,
+
+and all can be compromised in one way or another.
+它们都可以被攻破
+
+So, security experts suggest using two or more forms of authentication
+所以,对于重要账户,\N 安全专家建议用两种或两种以上的认证方式
+
+for important accounts.
+所以,对于重要账户,\N 安全专家建议用两种或两种以上的认证方式
+
+This is known as two-factor or multi-factor authentication.
+这叫"双因素"或"多因素"认证
+
+An attacker may be able to guess your password or steal your phone:
+攻击者可能猜出你密码,或偷走你的手机:
+
+but it’s much harder to do both.
+但两个都做到,会比较难
+
+After authentication comes Access Control.
+"身份验证"后,就来到了"访问控制"
+
+Once a system knows who you are, it needs to know what you should be able to access,
+一旦系统知道你是谁,它需要知道你能访问什么,
+
+and for that there’s a specification of who should be able to see, modify and use what.
+因此应该有个规范,\N 说明谁能访问什么,修改什么,使用什么。
+
+This is done through Permissions or Access Control Lists (ACL),
+这可以通过"权限"或"访问控制列表"(ACL)来实现
+
+which describe what access each user has for every file, folder and program on a computer.
+其中描述了用户对每个文件,文件夹和程序的访问权限
+
+"Read" permission allows a user to see the contents of a file,
+"读"权限允许用户查看文件内容,
+
+"write" permission allows a user to modify the contents,
+"写"权限允许用户修改内容,
+
+and "execute" permission allows a user to run a file, like a program.
+"执行"权限允许用户运行文件,比如程序
+
+For organizations with users at different levels of access privilege
+有些组织需要不同层级的权限
+
+– like a spy agency – it’s especially important for Access Control Lists
+比如间谍机构,"访问控制列表"的正确配置非常重要
+
+to be configured correctly to ensure secrecy, integrity and availability.
+以确保保密性,完整性和可用性
+
+Let’s say we have three levels of access: public, secret and top secret.
+假设我们有三个访问级别:公开,机密,顶级机密
+
+The first general rule of thumb is that people shouldn’t be able to "read up".
+第一个普遍的好做法是,\N 用户不能"读上", 不能读等级更高的信息
+
+If a user is only cleared to read secret files, they shouldn’t be able to read top secret
+如果用户能读"机密"文件\N 那么不应该有权限读"顶级机密"文件
+
+files, but should be able to access secret and public ones.
+但能访问"机密"和"公开"文件
+
+The second general rule of thumb is that people shouldn’t be able to "write down".
+第二个法则是用户不能"写下"
+
+If a member has top secret clearance, then they should be able to
+如果用户等级是"顶级机密"
+
+write or modify top secret files, but not secret or public files.
+那么能写入或修改"顶级机密"文件,\N 但不能修改"机密"或"公共"文件
+
+It may seem weird that even with the highest clearance,
+听起来好像很奇怪 \N 有最高等级也不能改等级更低的文件
+
+you can’t modify less secret files.
+听起来好像很奇怪 \N 有最高等级也不能改等级更低的文件
+
+But, it guarantees that there’s no accidental leakage of
+但这样确保了"顶级机密" \N 不会意外泄露到"机密"文件或"公共"文件里
+
+top secret information into secret or public files.
+但这样确保了"顶级机密" \N 不会意外泄露到"机密"文件或"公共"文件里
+
+This "no read up, no write down" approach is called the Bell-LaPadula model.
+这个"不能向上读,不能向下写"的方法\N 叫 Bell-LaPadula 模型
+
+It was formulated for the U.S. Department of Defense’s Multi-Level Security policy.
+它是为美国国防部"多层安全政策"制定的
+
+There are many other models for access control – like the Chinese Wall model and Biba model.
+还有许多其他的访问控制模型 - 比如"中国墙"模型和"比伯"模型
+
+Which model is best depends on your use-case.
+哪个模型最好,取决于具体情况
+
+Authentication and access control help a computer determine who you are
+"身份验证"和"访问控制"帮助计算机知道"你是谁"
+
+and what you should access,
+以及"你可以访问什么",
+
+but depend on being able to trust the hardware and software
+但做这些事情的软硬件必须是可信的
+
+that run the authentication and access control programs.
+但做这些事情的软硬件必须是可信的
+
+That’s a big dependence.
+这个依赖很重要
+
+If an attacker installs malicious software – called malware
+如果攻击者给计算机装了恶意软件
+
+– compromising the host computer’s operating system,
+- 控制了计算机的操作系统
+
+how can we be sure security programs don’t have a backdoor that let attackers in?
+我们怎么确定安全程序没有给攻击者留后门?
+
+The short answer is… we can’t.
+短回答是...无法确定
+
+We still have no way to guarantee the security of a program or computing system.
+我们仍然无法保证程序或计算机系统的安全
+
+That’s because even while security software might be "secure" in theory,
+因为安全软件在理论上可能是"安全的"
+
+implementation bugs can still result in vulnerabilities.
+实现时可能会不小心留下漏洞
+
+But, we do have techniques to reduce the likelihood of bugs,
+但我们有办法减少漏洞出现的可能性
+
+like quickly find and patch bugs when they do occur,
+比如一找到就马上修复
+
+and mitigate damage when a program is compromised.
+以及当程序被攻破时尽可能减少损害
+
+Most security errors come from implementation error.
+大部分漏洞都是具体实现的时候出错了
+
+To reduce implementation error, reduce implementation.
+为了减少执行错误,减少执行
+
+One of the holy grails of system level security is a "security kernel"
+系统级安全的圣杯之一是"安全内核"
+
+or a "trusted computing base": a minimal set of operating system software
+或"可信计算基础":一组尽可能少的操作系统软件
+
+that’s close to provably secure.
+安全性都是接近可验证的
+
+A challenge in constructing these security kernels is deciding what should go into it.
+构建安全内核的挑战在于 决定内核应该有什么
+
+Remember, the less code, the better!
+记住,代码越少越好!
+
+Even after minimizing code bloat, it would be great to "guarantee"
+在最小化代码数量之后,\N 要是能"保证"代码是安全的,会非常棒
+
+that’s code is written in secure.
+在最小化代码数量之后,\N 要是能"保证"代码是安全的,会非常棒
+
+Formally verifying the security of code is an active area of research.
+正式验证代码的安全性 是一个活跃的研究领域
+
+The best we have right now is a process called Independent Verification and Validation.
+我们现在最好的手段,叫"独立安全检查和质量验证"
+
+This works by having code audited by a crowd of security-minded developers.
+让一群安全行业内的软件开发者来审计代码
+
+This is why security code is almost always open-sourced.
+这就是为什么安全型代码几乎都是开源的
+
+It’s often difficult for people who wrote the original code to find bugs,
+写原始代码的人通常很难找到错误
+
+but external developers, with fresh eyes and different expertise, can spot problems.
+但外部开发人员有新鲜的眼光 \N和不同领域的专业知识,可以发现问题.
+
+There are also conferences where like-minded hackers and security experts
+另外还有一些安全大会,安全专家可以相互认识,分享想法.
+
+can mingle and share ideas,
+另外还有一些安全大会,安全专家可以相互认识,分享想法.
+
+the biggest of which is DEF CON, held annually in Las Vegas.
+一年一次在拉斯维加斯举办的 DEF CON \N 是全球最大的安全大会
+
+Finally, even after reducing code and auditing it,
+最后,即便尽可能减少代码 并进行了安全审计
+
+clever attackers are bound to find tricks that let them in.
+聪明的攻击者还是会找到方法入侵
+
+With this in mind, good developers should take the approach that,
+因为如此,优秀的开发人员
+
+not if, but when their programs are compromised,
+应该计划当程序被攻破后,\N如何限制损害,控制损害的最大程度
+
+the damage should be limited and contained,
+应该计划当程序被攻破后,\N如何限制损害,控制损害的最大程度
+
+and not let it compromise other things running on the computer.
+并且不让它危害到计算机上其他东西
+
+This principle is called isolation.
+这叫"隔离"
+
+To achieve isolation, we can "sandbox" applications.
+要实现隔离,我们可以"沙盒"程序
+
+This is like placing an angry kid in a sandbox; when the kid goes ballistic,
+这好比把生气的小孩放在沙箱里,
+
+they only destroy the sandcastle in their own box,
+他们只能摧毁自己的沙堡,不会影响到其他孩子
+
+but other kids in the playground continue having fun.
+他们只能摧毁自己的沙堡,不会影响到其他孩子
+
+Operating Systems attempt to sandbox applications
+操作系统会把程序放到沙盒里
+
+by giving each their own block of memory that others programs can’t touch.
+方法是给每个程序独有的内存块,其他程序不能动
+
+It’s also possible for a single computer to run multiple Virtual Machines, essentially
+一台计算机可以运行多个虚拟机
+
+simulated computers, that each live in their own sandbox.
+虚拟机模拟计算机,每个虚拟机都在自己的沙箱里
+
+If a program goes awry, worst case is that it crashes or
+如果一个程序出错,最糟糕的情况是它自己崩溃
+
+compromises only the virtual machine on which it’s running.
+或者搞坏它处于的虚拟机
+
+All other Virtual Machines running on the computer are isolated and unaffected.
+计算机上其他虚拟机是隔离的,不受影响
+
+Ok, that’s a broad overview of some key computer security topics.
+好,一些重要安全概念的概览 \N 我们到此就介绍完了
+
+And I didn’t even get to network security, like firewalls.
+我都还没讲网络安全,比如防火墙
+
+Next episode, we’ll discuss some methods
+下集我们会讨论 黑客侵入系统的一些方法
+
+hackers use to get into computer systems.
+下集我们会讨论 黑客侵入系统的一些方法
+
+After that, we’ll touch on encryption.
+然后我们学加密
+
+Until then, make your passwords stronger, turn on 2-factor authentication,
+在此之前,别忘了加强你的密码,打开两步验证
+
+and NEVER click links in unsolicited emails!
+永远不要点可疑邮件
+
+I’ll see you next week.
+我们下周见
+
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode, we talked about the basics of computer security,
+上集我们讲了计算机安全的基础知识,
+
+principles and techniques used to keep computer systems safe and sound.
+包括各种原则和技术
+
+But, despite our best efforts, the news is full of stories of individuals, companies
+但尽管尽了最大努力,新闻上还是各种 \N 个人,公司,政府被黑客攻击的故事
+
+and governments getting cyberattacked by hackers, people who,
+但尽管尽了最大努力,新闻上还是各种 \N 个人,公司,政府被黑客攻击的故事
+
+with their technical knowledge, break into computer systems.
+那些黑客凭技术知识 闯入计算机系统
+
+Not all hackers are bad though.
+不是所有黑客都是坏人
+
+There are hackers who hunt for bugs and try to close security holes
+有些黑客会寻找并修复软件漏洞 \N 让系统更安全
+
+in software to make systems safer and more resilient.
+有些黑客会寻找并修复软件漏洞 \N 让系统更安全
+
+They’re often hired by companies and governments to perform security evaluations.
+他们经常被公司和政府雇来做安全评估
+
+These hackers are called White Hats, they’re the good guys.
+这些黑客叫"白帽子",他们是好人
+
+On the flip side, there are Black Hats, malicious hackers with
+另一方面,也有"黑帽"黑客,他们窃取,
+
+intentions to steal, exploit and sell computer vulnerabilities and data.
+利用和销售计算机漏洞和数据
+
+Hackers’ motivations also differ wildly.
+黑客的动机有很多种
+
+Some hack for amusement and curiosity,
+有些是好玩和好奇
+
+while cybercriminals hack most often for monetary gain.
+而网络罪犯一般是为了钱
+
+And then there are hacktivists, who use their skills to promote a social or political goal.
+还有的叫"黑客行动主义者",\N 通过黑客手段影响社会或达到政治目的
+
+And that’s just the tip of the iceberg.
+这只是冰山一角
+
+Basically, the stereotypical view of a hacker as some unpopular kid sitting in a dark room
+一般对黑客的刻板印象是 \N 某个不受欢迎的小孩在黑暗的房间里
+
+full of discarded pizza boxes probably better describes John Green in college than it does hackers.
+到处都是吃完的比萨盒,这个印象是错的,\N形容约翰·格林的宿舍还更贴切些
+
+Today, we’re not going to teach you how to be a hacker.
+今天,我们不会教你如何成为黑客
+
+Instead, we’ll discuss some classic examples of how hackers
+而是讨论一些入侵原理,给你一个大概概念
+
+break into computer systems to give you an idea of how it’s done.
+而是讨论一些入侵原理,给你一个大概概念
+
+The most common way hackers get into computer systems isn’t
+黑客入侵最常见的方式
+
+by hacking at all; it’s by tricking users into letting them in.
+不是通过技术,而是欺骗别人
+
+This is called social engineering, where a person is manipulated into divulging confidential
+这叫"社会工程学",欺骗别人让人泄密信息
+
+information, or configuring a computer system so that it permits entry by attackers.
+或让别人配置电脑系统,变得易于攻击
+
+The most common type of attack is phishing, which you most often encounter as an email
+最常见的攻击是网络钓鱼,你可能见过
+
+asking you to login to an account on a website, say your bank.
+银行发邮件叫你点邮件里的链接,登陆账号
+
+You’ll be asked to click a link in the email, which takes you to a site that looks legit
+然后你会进入一个像官网的网站
+
+to the casual observer, but is really an evil clone.
+但实际上是个假网站
+
+When you enter your username and password, that information goes straight to the hackers,
+当你输入用户名和密码时,信息会发给黑客,
+
+who then can login to the real website as you.
+然后黑客就可以假扮你登陆网站
+
+Bad news!
+坏消息!
+
+Even with a 1/10th of one percent success rate, a million phishing emails might yield
+即使成功率只有1/1000,发一百万封钓鱼邮件
+
+a thousand compromised accounts.
+也有一千个帐户中招
+
+Another social engineering attack is pretexting, where attackers call up, let's say a company,
+另一种方法叫 假托(Pretexting),\N 攻击者给某个公司打电话
+
+and then confidently pretend to be from their IT department.
+假装是IT部门的人
+
+Often attackers will call a first number, and then ask to be transferred to a second,
+攻击者的第一通电话一般会叫人转接
+
+so that the phone number appears to be internal to the company.
+这样另一个人接的时候,电话看起来像内部的
+
+Then, the attacker can instruct an unwitting user to configure their computer in a compromising
+然后让别人把电脑配置得容易入侵
+
+way, or get them to reveal confidential details, like passwords or network configurations.
+或让他们泄露机密信息,比如密码或网络配置
+
+Sorry, one sec…
+不好意思,等一下
+
+Oh. Hey, it's Susan from It.
+嘿,我是 IT 部门的苏珊
+
+We’re having some network issues down here, can you go ahead and check a setting for me?"
+我们遇到一些网络问题,你能帮我检查一个配置吗?
+
+... and it begins.
+然后就开始了
+
+Attackers can be very convincing, especially with a little bit
+只要预先做一点研究,攻击者可以装得很像真的
+
+of research beforehand to find things like key employees’ names.
+比如关键员工的名字
+
+It might take ten phone calls to find an victim, but you only need one to get in.
+也许要10通电话才能找到一个受害者,\N 但只要一个人上当就够了
+
+Emails are also a common delivery mechanism for trojan horses,
+邮件里带"木马"也是常见手段
+
+programs that masquerade as harmless attachments, like a photo or invoice,
+木马会伪装成无害的东西,比如照片或发票
+
+but actually contain malicious software, called malware.
+但实际上是恶意软件
+
+Malware can take many forms.
+恶意软件有很多种
+
+Some might steal your data, like your banking credentials.
+有的会偷数据,比如银行凭证
+
+Others might encrypt your files and demand a ransom, what's known as ransomware.
+有的会加密文件,交赎金才解密,也就是"勒索软件"
+
+If they can’t run malware or get a user to let them in,
+如果攻击者无法用木马或电话欺骗
+
+attackers have to force their way in through other means.
+攻击者只能被迫用其他手段
+
+One method, which we briefly discussed last episode, is to brute force a password
+方法之一是暴力尝试,我们上集讨论过
+
+try every combination of password until you gain entry.
+尝试所有可能的密码,直到进入系统
+
+Most modern systems defend against this type of attack by having you wait incrementally
+大多数现代系统会加长等待时间,来抵御这种攻击
+
+longer periods of time following each failed attempt,
+每次失败就加长等待时间
+
+or even lock you out entirely after a certain number of tries.
+甚至失败超过一定次数后,完全锁住
+
+One recent hack to get around this is called NAND Mirroring,
+最近出现一种攻破方法叫 "NAND镜像"
+
+where if you have physical access to the computer,
+如果能物理接触到电脑
+
+you can attach wires to the device's memory chip
+可以往内存上接几根线
+
+and make a perfect copy of its contents.
+复制整个内存
+
+With this setup, you can try a series of passwords, until the device starts making you wait.
+复制之后,暴力尝试密码,直到设备让你等待
+
+When this happens, you just reflash the memory with the original copy you made,
+这时只要把复制的内容覆盖掉内存
+
+essentially resetting it, allowing you to try more passwords immediately, with no waiting.
+本质上重置了内存,就不用等待,可以继续尝试密码了
+
+This technique was shown to be successful on an iPhone 5C,
+这项方法在 iPhone 5C 上管用
+
+but many newer devices include mechanisms to thwart this type of attack.
+更新的设备有机制阻止这种攻击
+
+If you don’t have physical access to a device,
+如果你无法物理接触到设备
+
+you have to find a way to hack it remotely, like over the internet.
+就必须远程攻击,比如通过互联网.
+
+In general, this requires an attacker to find and take advantage of a bug in a system, and
+远程攻击一般需要攻击者利用系统漏洞
+
+successfully utilizing a bug to gain capabilities or access is called an exploit.
+来获得某些能力或访问权限,这叫"漏洞利用"(Exploit)
+
+One common type of exploit is a buffer overflow.
+一种常见的漏洞利用叫"缓冲区溢出"
+
+Buffers are a general term for a block of memory reserved for storing data.
+"缓冲区"是一种概称,指预留的一块内存空间
+
+We talked about video buffers for storing pixel data in Episode 23.
+我们在第23集,讨论过存像素数据的视频缓冲区
+
+As a simple example, we can imagine an operating system’s login prompt,
+举个简单例子,假设我们在系统登陆界面
+
+which has fields for a username and password.
+要输入用户名和密码
+
+Behind the scenes, this operating system uses buffers for storing the text values that are entered.
+在幕后,系统用缓冲区存输入的值
+
+For illustration, let's say these buffers were specified to be of size ten.
+假设缓冲区大小是10
+
+In memory, the two text buffers would look something like this:
+两个文本缓冲区看起来会像这样:
+
+Of course, the operating system is keeping track of a lot more than just a username and
+当然,操作系统记录的远不止用户名和密码
+
+password, so there’s going to be data stored both before and after in memory.
+所以缓冲区前后 肯定有其他数据
+
+When a user enters a username and password, the values are copied into the buffers,
+当用户输入用户名和密码时,这些值会复制到缓冲区
+
+where they can be verified.
+然后验证是否正确
+
+A buffer overflow attack does exactly what the name suggests: overflows the buffer.
+"缓冲区溢出"正如名字所暗示的:它会溢出缓冲区
+
+In this case, any password longer than ten characters
+在这个例子中,超过十个字符的密码
+
+will overwrite adjacent data in memory.
+会覆盖掉相邻的数据
+
+Sometimes this will just cause a program or operating system to crash,
+有时只会让程序或系统崩溃,
+
+because important values are overwritten with gobbledygook.
+因为重要值被垃圾数据覆盖了
+
+Crashing a system is bad, and maybe that’s all that
+系统崩溃是坏事
+
+a mischievous hacker wants to do, be a nuisance.
+但也许恶作剧黑客就只是想系统崩溃,当个讨厌鬼
+
+But attackers can also exploit this bug more cleverly by injecting purposeful new values
+但攻击者可以更巧妙地利用这个漏洞(bug),\N 注入有意义的新值
+
+into a program’s memory, for example, setting an "is admin" variable to true.
+到程序的内存中,比如把"is_admin"的值改成true
+
+With the ability to arbitrarily manipulate a program’s memory,
+有了任意修改内存的能力,
+
+hackers can bypass things like login prompts,
+黑客可以绕过"登录"之类的东西,
+
+and sometimes even use that program to hijack the whole system.
+甚至使用那个程序劫持整个系统
+
+There are many methods to combat buffer overflow attacks.
+有很多方法阻止缓冲区溢出
+
+The easiest is to always test the length of input before copying it into a buffer,
+最简单的方法是,复制之前先检查长度,
+
+called bounds checking.
+这叫 "边界检查"
+
+Many modern programming languages implement bounds checking automatically.
+许多现代编程语言自带了边界检查
+
+Programs can also randomize the memory location of variables,
+程序也会随机存放变量在内存中的位置,
+
+like our hypothetical "is admin" flag,
+比如我们之前假设的"is_admin"
+
+so that hackers don’t know what memory location to overwrite,
+这样黑客就不知道应该覆盖内存的哪里
+
+and are more likely to crash the program than gain access.
+导致更容易让程序崩溃,而不是获得访问权限
+
+Programs can also leave unused space after buffers,
+程序也可以在缓冲区后,留一些不用的空间
+
+and keep an eye on those values to see if they change;
+然后跟踪里面的值,看是否发生变化
+
+if they do, they know an attacker is monkeying around with memory.
+如果发生了变化,说明有攻击者在乱来
+
+These regions are called canaries, named after the small birds miners
+这些不用的内存空间叫"金丝雀",因为以前矿工会带
+
+used to take underground to warn them of dangerous conditions.
+金丝雀下矿,金丝雀会警告危险
+
+Another classic hack is code injection.
+另一种经典手段叫"代码注入"
+
+It’s most commonly used to attack websites that use databases,
+最常用于攻击用数据库的网站,
+
+which pretty much all big websites do.
+几乎所有大网站都用数据库
+
+We won’t be covering databases in this series,
+我们这个系列中不会讲解数据库,
+
+so here’s a simple example to illustrate this type of attack.
+所以以下是个简单例子
+
+We’ll use Structured Query Language, S-Q-L, also called sequel, a popular database API.
+我们会用"结构化查询语言",也叫SQL,\N 一种流行的数据库API
+
+Let’s imagine our login prompt is now running on a webpage.
+假设网页上有登录提示
+
+When a user clicks "login", the text values are sent to a server, which executes code
+当用户点击"登录"时,值会发到服务器
+
+that checks if that username exists, and if it does, verifies the password matches.
+服务器会运行代码,检查用户名是否存在,\N 如果存在,看密码是否匹配
+
+To do this, the server will execute code, known as a SQL query,
+为了做检查,服务器会执行一段叫 "SQL查询" 的代码
+
+that looks something like this.
+看起来像这样
+
+First, it needs to specify what data we’re retrieving from the database.
+首先,语句要指定从数据库里查什么数据
+
+In this case, we want to fetch the password.
+在这个例子中,我们想查的是密码 (password) \N (SELECT password)
+
+The server also needs to specify from what place in the database
+还要指定从哪张表查数据 \N (FROM users)
+
+to retrieve the value from.
+还要指定从哪张表查数据 \N (FROM users)
+
+In this case, let’s imagine all the users’ data is stored
+在这个例子里,\N 我们假设所有用户数据都存在 "users" 表里
+
+in a data structure called a table labeled "users".
+在这个例子里,\N 我们假设所有用户数据都存在 "users" 表里
+
+Finally, the server doesn’t want to get back a giant list of passwords for every user
+最后,服务器不想每次取出一个巨大密码列表,\N 包含所有用户密码
+
+in the database, so it specifies that it only wants data for the account
+所以用 username = '用户名'\N 代表只要这个用户
+
+whose username equals a certain value.
+所以用 username = '用户名'\N 代表只要这个用户
+
+That value is copied into the SQL query by the server, based on what the user typed in,
+用户输的值会复制到"SQL查询"
+
+so the actual command that’s sent to the SQL database would look something like this,
+所以实际发到 SQL 数据库的命令,是这样的.
+
+where username='philbin'
+Where username='philbin'
+
+Note also that SQL commands end with a semicolon.
+还要注意,SQL命令以分号结尾
+
+So how does someone hack this?
+那怎么破解这个?
+
+By sending in a malicious username, with embedded SQL commands!
+做法是把"SQL命令"输入到用户名里!
+
+Like, we could send the server this funky username:
+比如我们可以发这个奇怪的用户名:
+
+When the server copies this text into the SQL Query, it ends up looking like this:
+当服务器把值复制到SQL查询中,会变成这样:
+
+As I mentioned before, semicolons are used to separate commands,
+正如之前提的,分号用于分隔命令,
+
+so the first command that gets executed is this:
+所以第一条被执行的命令是:
+
+If there is a user named ‘whatever’, the database will return the password.
+如果有个用户叫"whateer",数据库将返回密码
+
+Of course, we have no idea what ‘whatever’s’ password is,
+当然,我们不知道密码是什么
+
+so we’ll get it wrong and the server will reject us.
+所以会出错,服务器会拒绝我们
+
+If there’s no user named ‘whatever’, the database will return
+如果没有一个用户叫"whatever",数据库会返回 \N 空密码或直接错误,服务器也会拒绝我们
+
+no password or provide an error, and the server will again reject us.
+如果没有一个用户叫"whatever",数据库会返回 \N 空密码或直接错误,服务器也会拒绝我们
+
+Either way, we don’t care, because it’s the next SQL command we’re interested in:
+总之 我们不在乎,\N 我们感兴趣的是下一个SQL命令:
+
+"drop table users" – a command that we injected by manipulating the username field.
+"drop table users" - 我们注入的命令
+
+This command instructs the SQL database to delete the table containing all user data.
+这条命令的意思是 删掉 users 这张表
+
+Wiped clean!
+全删干净!
+
+Which would cause a lot of headaches at a place like a bank... or really anywhere.
+这会造成很多麻烦,不管是银行或什么其他地方
+
+And notice that we didn’t even break into the system –
+注意,我们甚至不需要侵入系统
+
+it’s not like we correctly guessed a username and password.
+我们没有猜到正确的用户名和密码
+
+Even with no formal access, we were able to create mayhem by exploiting a bug.
+即使没有正式访问权限,还是可以利用 bug 来制造混乱
+
+This is a very simple example of code injection,
+这是代码注入的一个简单例子,
+
+which almost all servers today have defenses against.
+如今几乎所有服务器都会防御这种手段
+
+With more sophisticated attacks, it’s possible to add records to the database
+如果指令更复杂一些,也许可以添加新记录到数据库
+
+– like a new administrator account –
+- 比如一个新管理员帐户 -
+
+or even get the database to reveal data, allowing hackers
+甚至可以让数据库泄露数据,使得黑客
+
+to steal things like credit card numbers, social security numbers
+窃取信用卡号码,社会安全号码
+
+and all sorts of nefarious goodies.
+以及各种其他信息
+
+But we’re not going to teach you how to do that.
+但我们不会教你具体怎么做
+
+As with buffer overflows, programmers should always assume input coming from the outside
+就像缓冲区溢出攻击一样,应该总是假设外部数据
+
+to be potentially dangerous, and examine it carefully.
+是危险的,应该好好检查
+
+Most username and password forms on the web don’t let you
+很多用户名和密码表单,不让你输入
+
+include special symbols like semicolons or quotes as a first level of defense.
+特殊字符,比如分号或者括号,作为第一道防御
+
+Good servers also sanitize input by removing or
+好的服务器也会清理输入
+
+modifying special characters before running database queries.
+比如修改或删除特殊字符,然后才放到数据库查询语句里
+
+Working exploits are often sold or shared online.
+管用的漏洞利用(Exploits)一般会在网上贩卖或分享
+
+The more prevalent the bug, or the more damaging the exploit,
+如果漏洞很流行,或造成的危害很大
+
+the higher the price or prestige it commands.
+价格会越高,或者名气越大
+
+Even governments sometimes buy exploits,
+有时甚至政府也会买漏洞利用
+
+which allow them to compromise computers for purposes like spying.
+让他们侵入系统做间谍工作
+
+When a new exploitable bug is discovered that the software creators weren’t aware of,
+当软件制造者不知道软件有新漏洞被发现了
+
+it’s called a zero day vulnerability.
+那么这个漏洞叫 "零日漏洞"
+
+Black Hat Hackers rush to use the exploit for maximum benefit
+黑帽黑客经常赶时间,抢在白帽程序员做出补丁之前
+
+before white hat programmers release a patch for the bug.
+尽可能利用漏洞
+
+This is why it’s so important to keep your computer’s software up to date;
+所以保持系统更新非常重要
+
+a lot of those downloads are security patches.
+很多更新都是安全性补丁
+
+If bugs are left open on enough systems, it allows hackers to
+如果有足够多的电脑有漏洞
+
+write a program that jump from computer to computer automatically
+让恶意程序可以在电脑间互相传播
+
+which are called worms.
+那么叫"蠕虫"
+
+If a hacker can take over a large number of computers, they can be used together,
+如果黑客拿下大量电脑,这些电脑可以组成
+
+to form what’s called a botnet.
+"僵尸网络"
+
+This can have many purposes, like sending huge volumes of spam,
+可以用于很多目的,比如发大量垃圾邮件,
+
+mining bitcoins using other people's computing power and electricity,
+用别人电脑的计算能力和电费挖 Bitcoin,
+
+and launching Distributed Denial of Service or DDoS attacks against servers.
+或发起"拒绝服务攻击"简称DDoS,攻击服务器
+
+DDoS is where all the computers in the botnet send a flood of dummy messages.
+DDoS 就是僵尸网络里的所有电脑发一大堆垃圾信息
+
+This can knock services offline, either to force owners
+堵塞服务器,要么迫使别人交钱消灾
+
+to pay a ransom or just to be evil.
+或纯粹为了作恶
+
+Despite all of the hard working white hats, exploits documented online,
+尽管白帽黑客非常努力工作,漏洞利用的文档都在网上,
+
+and software engineering best practices, cyberattacks happen on a daily basis.
+编写软件有很多"最佳实践",网络攻击每天都在发生
+
+They cost the global economy roughly half a trillion dollars annually,
+每年损害全球经济差不多5000亿
+
+and that figure will only increase as we become more reliant on computing systems.
+并且随着我们越来越依赖计算机系统,这个数字只会增加.
+
+This is especially worrying to governments, as infrastructure is increasingly computer-driven,
+这使得政府非常担心,因为基础设施越来越电脑化
+
+like powerplants, the electrical grid, traffic lights, water treatment plants, oil refineries,
+比如电力厂,电网,交通灯,水处理厂,炼油厂
+
+air traffic control, and lots of other key systems.
+空管,还有很多其他关键系统
+Many experts predict that the next major war will be fought in cyberspace,
+很多专家预测下一次大战会主要是网络战争
+
+where nations are brought to their knees not by physical attack,
+国家不是被物理攻击打败
+
+but rather crippled economically and infrastructurally through cyberwarfare.
+而是因为网络战争导致经济和基础设施崩溃
+
+There may not be any bullets fired, but the potential for lives lost is still very high...
+也许不会发射一颗子弹,但是人员伤亡的可能性依然很高
+
+maybe even higher than conventional warfare.
+甚至可能高于传统战争
+
+So, we should all adopt good cybersecurity practices.
+所以大家都应该知道一些方法保证网络安全
+
+And, as a community interconnected over the internet,
+全球社区因为互联网而互相连接,
+
+we should ensure our computers are secured against those
+我们应该确保自己的电脑安全
+
+who wish to use their great potential for harm.
+抵御其他想做坏事的人
+
+So maybe stop ignoring that update notification?
+也许不要再忽略更新提示?
+
+I’ll see you next week.
+我们下周见
+
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the past two episodes, we’ve talked a lot about computer security.
+在过去两集,我们聊了很多计算机安全话题
+
+But the fact is, there’s no such thing as a perfectly, 100% secure, computer system.
+但事实是 世上不存在100%安全的系统
+
+There will always be bugs and security experts know that.
+总会有漏洞存在,而且安全专家知道这一点
+
+So system architects employ a strategy called defence in depth
+所以系统架构师会部署"多层防御"
+
+which uses many layers of varying security mechanisms to frustrate attackers.
+用多层不同的安全机制来阻碍攻击者
+
+It’s a bit like how castles are designed
+有点像城堡的设计一样
+
+first you’ve got to dodge the archers
+首先要避开弓箭手
+
+then cross the moat, scale the walls, avoid the hot oil, get over the ramparts, and defeat the guards
+穿过护城河,翻过城墙,避开热油,打败守卫
+
+before you get to the throne room
+才能达到王座
+
+but in this case we’re talking about one of the most common forms of computer security
+不过我们这里要说的是,计算机安全中最常见的防御形式
+
+Cryptography
+密码学
+
+The word cryptography comes from the roots ‘crypto’ and ‘graphy’, roughly translating to "secret writing".
+密码学(cryptography) 一词 \N 来自 crypto 和 graphy,大致翻译成"秘密写作"
+
+In order to make information secret, you use a cipher – an algorithm that converts plain text into ciphertext
+为了加密信息,要用加密算法(Cipher) 把明文转为密文
+
+which is gibberish unless you have a key that lets you undo the cipher.
+除非你知道如何解密,不然密文看起来只是一堆乱码
+
+The process of making text secret is called encryption
+把明文转成密文叫"加密"(encryption)
+
+and the reverse process is called decryption
+把密文恢复回明文叫"解密"(decryption)
+
+Ciphers have been used long before computers showed up.
+加密算法早在计算机出现前就有了
+
+Julius Caesar used what’s now called a Caesar cipher, to encrypt private correspondence.
+朱利叶斯·凯撒 用如今我们叫"凯撒加密"的方法 来加密私人信件
+
+He would shift the letters in a message forward by three places.
+他会把信件中的字母 向前移动三个位置
+
+So, A became D, and the word "brutus" became this: "euxwxv".
+所以A会变成D,brutus变成euxwxv
+
+To decipher the message, recipients had to know both the algorithm and the number to shift by, which acted as the key.
+为了解密,接收者要知道 \N 1. 用了什么算法 2. 要偏移的字母位数
+
+The Caesar cipher is one example of a larger class of techniques called substitution ciphers.
+有一大类算法叫"替换加密",凯撒密码是其中一种
+
+These replace every letter in a message with\Nsomething else according to a translation.
+算法把每个字母替换成其他字母
+
+A big drawback of basic substitution ciphers is that letter frequencies are preserved.
+但有个巨大的缺点是,字母的出现频率是一样的
+
+For example, E is the most common letter in English
+举个例子,E在英语中是最常见的字母
+
+so if your cipher translates E to an X
+如果把E加密成X
+
+then X will show up the most frequently in the ciphertext.
+那么密文中 X 的出现频率会很高
+
+A skilled cryptanalyst can work backwards from these kinds of statistics to figure out the message.
+熟练的密码破译师可以从统计数据中发现规律,进而破译密码
+
+Indeed, it was the breaking of a substitution cipher that led to the execution of Mary Queen of Scots,in 1587 for plotting to kill Queen Elizabeth.
+1587年,正因为一个"替换加密"的密文被破译,\n导致杀伊丽莎白女王的阴谋暴露,使得玛丽女王被处决
+
+Another fundamental class of techniques are permutation ciphers.
+另一类加密算法叫 "移位加密"
+
+Let’s look at a simple example, called a columnar transposition cipher.
+我们来看一个简单例子叫 "列移位加密"
+
+Here, we take a message, and fill the letters into a grid.
+我们把明文填入网格
+
+In this case, we’ve chosen 5 by 5
+网格大小我们这里选择 5x5
+
+To encrypt our message, we read out the characters in a different order
+为了加密信息,我们换个顺序来读
+
+let’s say from the bottom left, working upwards, one column at a time.
+比如从左边开始,从下往上,一次一列。
+
+The new letter ordering, what’s called a permutation, is the encrypted message.
+加密后字母的排列不同了
+
+The ordering direction, as well as the 5 by 5 grid size, serves as the key.
+解密的关键是,知道读取方向和网格大小是5x5
+
+Like before, if the cipher and key are known, a recipient can reverse the process to reveal the original message.
+就像之前,如果接收者知道密文和加密方法 \N 才能解密得到原始消息
+
+By the 1900s, cryptography was mechanized in the form of encryption machines.
+到了1900年代,人们用密码学做了加密机器
+
+The most famous was the German Enigma, used by the Nazis to encrypt their wartime communications.
+其中最有名的是德国的英格玛(Enigma)\N 纳粹在战时用英格玛加密通讯信息
+
+As we discussed back in Episode 15, the Enigma was a typewriter-like machine, with a keyboard and lampboard, both showing the full alphabet.
+正如第15集中说过,Enigma 是一台像打字机的机器,\N 有键盘和灯板,两者都有完整的字母表
+
+Above that, there was a series of configurable rotors that were the key to the Enigma’s encryption capability.
+而且它有一系列"转子"(rotros) ,是加密的关键
+
+First, let’s look at just one rotor.
+首先,我们只看一个转子
+
+One side had electrical contacts for all 26 letters.
+它一面有26个接触点,代表26个字母
+
+These connected to the other side of the rotor using cross-crossing wires that swapped one letter for another.
+然后线会连到另一面,替换字母
+
+If ‘H’ went in, ‘K’ might come out the other side.
+如果输入'H','K'会从另一边出来
+
+If "K’ went in, ‘F’ might come out, and so on.
+如果输入'K','F'会从另一边出来,以此类推
+
+This letter swapping behavior should sound familiar: it’s a substitution cipher!
+这个字母替换过程你应该听起来很熟悉:它是"替换加密"!
+
+But, the Enigma was more sophisticated becauseit used three or more rotors in a row, each feeding into the next.
+但英格玛(Enigma)更复杂一些,因为它有3个或更多转子,\N 一个转子的输出作为下一个转子的输入。
+
+Rotors could also be rotated to one of 26 possible starting positions
+转子还有26个起始位置
+
+and they could be inserted in different orders, providinga lot of different substitution mappings.
+还可以按不同顺序放入转子,提供更多字母替换映射
+
+Following the rotors was a special circuit called a reflector.
+转子之后是一个叫"反射器"的特殊电路
+
+Instead of passing the signal on to another rotor, it connected every pin to another,
+它每个引脚会连到另一个引脚
+
+and sent the electrical signal back through the rotors.
+并把信号发回给转子
+
+Finally, there was a plug board at the front of the machine
+最后,机器前方有一个插板
+
+that allowed letters coming from the keyboard to be optionally swapped,
+可以把输入键盘的字母预先进行替换
+
+adding another level of complexity.
+又加了一层复杂度
+
+With our simplified circuit, let’s encrypta letter on this example enigma configuration.
+让我们用这里的简化版电路,加密一些字母
+
+If we press the ‘H’ key, electricity flows through the plugboard, then the rotors
+如果我们按下"H"键,电流会先通过插板,然后通过转子
+
+hits the reflector, comes back through the rotorsand plugboard, and illuminates the letter ‘L’ on the lampboard.
+到达反射器,然后回来转子,回来插板,并照亮键盘灯板的字母"L"。
+
+So H is encrypted to L.
+H 就加密成了 L
+
+Note that the circuit can flow both ways –
+注意, 电路是双向的
+
+so if we typed the letter ‘L’, ‘H’ would light up.
+所以如果我们按下 L,H 会亮起来
+
+In other words, it’s the same process for encrypting and decrypting;
+换句话说,加密和解密的步骤是一样的
+
+you just have to make sure the sending and receiving machineshave the same initial configuration.
+你只需要确保 发送机和接收机的初始配置一样就行
+
+If you look carefully at this circuit, you’ll notice it’s impossible for a letter to be encrypted as itself
+如果你有仔细观察,会注意到字母加密后一定会变成另一个字母
+
+which turned out to be a fatal cryptographic weakness.
+之后这成为最大的弱点
+
+Finally, to prevent the Enigma from being a simple substitution cipher
+最后,为了让英格玛不只是简单的"替换加密"
+
+every single time a letter was entered, the rotors advanced by one spot, sort of like an odometer in a car.
+每输入一个字母,转子会转一格,有点像汽车里程表。
+
+So if you entered the text A-A-A, it might come out as B-D-K, where the substitution mapping changed with every key press.
+如果你输入A-A-A,可能会变成B-D-K,\n映射会随着每次按键而改变
+
+The Enigma was a tough cookie to crack, for sure.
+英格玛当然是一块难啃的骨头
+
+But as we discussed in Episode 15, Alan Turingand and his colleagues
+但正如我们第15集中说的,艾伦·图灵和同事
+
+at Bletchley Park were able to break Enigma codes and largely automate the process.
+破解了英格玛加密,并把大部分破解流程做成了自动化
+
+But with the advent of computers, cryptography moved from hardware into software.
+但随着计算机出现,加密从硬件转往软件
+
+One of the earliest software ciphers to become widespread
+早期加密算法中,应用最广泛的
+
+was the Data Encryption Standard developed by IBM and the NSA in 1977
+是 IBM 和 NSA 于1977年开发的"数据加密标准"
+
+DES, as it was known, originally used binary keys that were 56 bits long,
+DES最初用的是56 bit长度的二进制密钥,
+
+which means that there are 2 to the 56, or about 72 quadrillion different keys.
+意味着有2的56次方,或大约72千万亿个不同密钥
+
+Back in 1977, that meant that nobody – except perhaps the NSA –
+在1977年时,也许 NSA 有这能力,
+
+had enough computing power to brute-force all possible keys.
+但没有其他人有足够计算能力 来暴力破解所有可能密钥。
+
+But, by 1999, a quarter-million dollar computer could try every possible DES key in just two days, rendering the cipher insecure.
+但到1999年,一台25万美元的计算机能在两天内 \N 把 DES 的所有可能密钥都试一遍,让 DES 算法不再安全
+
+So, in 2001, the Advanced Encryption Standard(AES) was finalized and published.
+因此 2001 年出了:高级加密标准(AES)
+
+AES is designed to use much bigger keys – 128,192 or 256 bits in size – making brute force attacks much, much harder.
+AES 用更长的密钥 - 128位/192位/256位 - 让暴力破解更加困难
+
+For a 128-bit keys, you'd need trillions of years to try every combination, even if you used every single computer on the planet today.
+128位的密钥,哪怕用现在地球上的所有计算机\N 也要上万亿年才能试遍所有组合
+
+So you better get started!
+你最好赶紧开始!
+
+AES chops data up into 16-byte blocks, and then applies a series of substitutions and permutations,
+AES将数据切成一块一块,每块16个字节,\N 然后用密钥进行一系列替换加密和移位加密
+
+based on the key value plus some other operations to obscure the message,
+再加上一些其他操作,进一步加密信息
+
+and this process is repeated ten or more times for each block.
+每一块数据,会重复这个过程10次或以上
+
+You might be wondering: why only ten rounds?
+你可能想知道:为什么只重复10次?
+
+Or why only 128 bit keys, and not ten thousand bit keys?
+为什么用128位密钥,而不是10000位?
+
+Well, it’s a performance tradeoff.
+这其实是基于性能的权衡
+
+If it took hours to encrypt and send an email,or minutes to connect to a secure website, people wouldn't use it
+如果要花几小时加密和发邮件,或几分钟载入网站,没人愿意用
+
+AES balances performance and security to provide practical cryptography.
+AES 在性能和安全性间取得平衡
+
+Today, AES is used everywhere, from encrypting files on iPhones
+如今AES被广泛使用,比如iPhone上加密文件
+
+and transmitting data over WiFi with WPA2 to accessing websites using HTTPS.
+用 WPA2 协议在 WiFi 中访问 HTTPS 网站
+
+So far, the cryptographic techniques we’ve discussed rely on keys that are known by both sender and recipient.
+到目前为止 我们讨论过的加密技术\N 依赖于发送者和接收者都知道密钥
+
+The sender encrypts a message using a key, and the recipient decrypts it using the same key.
+发件人用密钥加密,收件人用相同的密钥解密
+
+In the old days, keys would be shared by voice, or physically;
+以前,密钥可以口头约定,或依靠物品
+
+for example, the Germans distributed codebooks with daily settings for their Enigma machines.
+比如德国人给英格玛配了密码本,上面有每天的配置
+
+But this strategy could never work in the internet era.
+但互联网时代没法这样做
+
+Imagine having to crack open a codebook to connect to youtube
+你能想象 要打开密码本才能访问 YouTube 吗?
+
+What’s needed is a way for a server to send a secret key over the public internet to a user wishing to connect securely.
+我们需要某种方法 在公开的互联网上传递密钥给对方
+
+It seems like that wouldn’t be secure, because if the key is sent in the open and intercepted by a hacker
+这看起来好像不安全,如果密钥被黑客拦截了
+
+couldn’t they use that to decrypt all communication between the two?
+黑客不就能解密通信了吗?
+
+The solution is key exchange!
+解决方案是 "密钥交换"!
+
+– An algorithm that lets two computers agreeon a key without ever sending one.
+密钥交换是一种不发送密钥,\N 但依然让两台计算机在密钥上达成共识的算法
+
+We can do this with one-way functions –
+我们可以用"单向函数"来做
+
+mathematical operations that are very easy to do in one direction, but hard to reverse.
+单项函数是一种数学操作,很容易算出结果,\N 但想从结果逆向推算出输入非常困难
+
+To show you how one-way functions work, let’ s use paint colors as an analogy.
+为了让你明白单项函数,我们拿颜色作比喻
+
+It’s easy to mix paint colors together, but it’s not so easy to figure
+将颜色混合在一起很容易,
+
+out the constituent colors that were used to make a mixed paint color.
+但想知道混了什么颜色很难
+
+You’d have to test a lot of possibilities to figure it out.
+要试很多种可能才知道
+
+In this metaphor, our secret key is a unique shade of paint.
+用这个比喻,那么我们的密钥是一种独特的颜色
+
+First, there’s a public paint color that everyone can see.
+首先,有一个公开的颜色,所有人都可以看到
+
+Then, John and I each pick a secret paint color.
+然后,约翰和我各自选一个秘密颜色,只有自己知道.
+
+To exchange keys, I mix my secret paint color with the public paint color.
+为了交换密钥,我把我的 秘密颜色 和 公开颜色 混在一起
+
+Then, I send that mixed color to John by anymeans – mail, carrier pigeon, whatever.
+然后发给约翰,可以写信发,用信鸽发,什么方式都行.
+
+John does the same – mixing his secret paint color with the public color, then sending that to me.
+约翰也这样做,把他的秘密颜色和公开颜色混在一起,然后发我
+
+When I receive John’s color, I simply add my private color to create a blend of all three paints.
+我收到约翰的颜色之后,把我的秘密颜色加进去,\N 现在3种颜色混合在一起
+
+John does the same with my mixed color.
+John 也一样做
+
+And Voila!
+瞧!
+
+We both end up with the same paint color!
+我们有了一样的颜色
+
+We can use this as a shared secret, even though we never sent each other our individual secret colors.
+我们可以把这个颜色当密钥,尽管我们从来没有给对方发过这颜色
+
+A snooping outside observer would know partial information, but they’d find it very difficult to figure out our shared secret color.
+外部窥探者可以知道部分信息,但无法知道最终颜色
+
+Of course, sending and mixing paint colors isn’t going to work well for transmitting computer data.
+当然,计算机要传输数据时,混合颜料和发颜料不太合适
+
+But luckily, mathematical one-way functions are perfect,
+但幸运的是,数学单向函数是完美的
+
+and this is what Diffie-Hellman Key Exchange uses.
+我们可以用 "迪菲-赫尔曼密钥交换"
+
+In Diffie-Hellman, the one-way function is modular exponentiation.
+在 Diffie-Hellman 中,单向函数是模幂运算
+
+This means taking one number, the base, to the power of another number,
+意思是先做幂运算,拿一个数字当底数,拿一个数字当指数,比如 A
+
+b
+
+the exponent, and taking the remainder when dividing by a third number, the modulus.
+然后除以第三个数字,最后拿到我们想要的余数
+
+So, for example, if we wanted to calculate 3 to the 5th power, modulo 31,
+举个例子,假设我们想算3的5次方,模31
+
+we would calculate 3 to the 5th, which is 243,
+我们先算3的5次方,得到243
+
+then take the remainder when divided by 31, which is 26.
+\N然后除31,取余数,得到26
+
+The hard part is figuring out the exponent given only the result and the base.
+重点是 如果只给余数和基数。很难得知指数是多少
+
+If I tell you I raised 3 to some secret number, modulo 31, and got 7 as the remainder
+如果我告诉你,3的某次方 模31,余数是7
+
+you'd have to test a lot of exponents to know which one I picked.
+你要试很多次,才能知道次方是多少
+
+If we make these numbers big, say hundreds of digits long,
+如果把数字变长一些,比如几百位长
+
+then finding the secret exponent is nearly impossible.
+想找到秘密指数是多少,几乎是不可能的。
+
+Now let’s talk about how Diffie-Hellman
+现在我们来讨论 Diffie-Hellman 是怎么
+
+uses modular exponentiation to calculate a shared key.
+用模幂运算 算出双方共享的密钥
+
+First, there's a set of public values – the base and the modulus,
+首先,我们有公开的值 - 基数和模数
+
+that, like our public paint color, everyone gets to know... even the bad guys!
+就像公开的油漆颜色,所有人都看的到,甚至坏人!
+
+To send a message securely to John, I would pick a secret exponent: X.
+为了安全向 John 发信息,我选一个秘密指数:X
+
+Then, I’d calculate B to the power of X, modulo M.
+然后算 B^X mod M 的结果
+
+I send this big number over to John.
+然后把这个大数字发给 John.
+
+John does the same, picking a secret exponent Y, and sending me B to the Y modulo M.
+John 也一样做,选一个秘密指数Y,然后把 B^Y mod M 的结果发我
+
+To create a shared secret key,
+为了算出 双方共用的密钥
+
+I take what John sent me, and take it to the power of X, my secret exponent.
+我把 John 给我的数,用我的秘密指数 X,进行模幂运算 (看上图)
+
+This is mathematically equivalent to B to the XY modulus M.
+数学上相等于 B的XY次方 模M
+
+John does the same, taking what I sent to him to the power of Y, and we both end up with the exact same number!
+John也一样做,拿我给他的数 进行模幂运算,最终得到一样的数
+
+It’s a secret shared key, even though we never sent each other our secret number.
+双方有一样的密钥,即使我们从来没给对方发过各自的秘密指数
+
+We can use this big number as a shared key for encrypted communication, using something like AES for encryption.
+我们可以用这个大数字当密钥,用 AES 之类的加密技术来加密通信
+
+Diffie-Hellman key exchange is one method for establishing a shared key.
+"Diffie-Hellman 密钥交换"是建立共享密钥的一种方法。
+
+These keys that can be used by both sender and receiver, to encrypt and decrypt messages
+双方用一样的密钥加密和解密消息,这叫"对称加密", 因为密钥一样
+
+are called symmetric keys because the key is the same on both sides.
+双方用一样的密钥加密和解密消息,这叫"对称加密", 因为密钥一样
+
+The Caesar Cipher, Enigma and AES are all symmetric encryption.
+凯撒加密,英格玛,AES 都是"对称加密"
+
+There’s also asymmetric encryption, where there are two different keys
+还有"非对称加密",有两个不同的密钥
+
+most often one that’s public and another that’s private.
+一个是公开的,另一个是私有的
+
+So, people can encrypt a message using a public key that
+人们用公钥加密消息 \N 只有有私钥的人能解密
+
+only the recipient, with their private key, can decrypt.
+人们用公钥加密消息 \N 只有有私钥的人能解密
+
+In other words, knowing the public key only lets you encrypt, but not decrypt – it’s asymmetric!
+换句话说,知道公钥只能加密但不能解密 \N - 它是"不对称"的!
+
+So, think about boxes with padlocks that you can open with a key.
+想象一个可以锁上的盒子
+
+To receive a secure message, I can give a sender a box and padlock.
+为了收到安全的信息,我们可以给别人箱子和锁
+
+They put their message in it and lock it shut.
+别人把信息放箱子,然后锁起来
+
+Now, they can send that box back to me and only I can open it, with my private key.
+把盒子寄回给我,只有我的钥匙能打开
+
+After locking the box, neither the sender,
+上锁后,如果发件人或其他人想打开盒子 \N 除了暴力尝试没有其他办法.
+
+nor anyone else who finds the box, can open it without brute force.
+上锁后,如果发件人或其他人想打开盒子 \N 除了暴力尝试没有其他办法.
+
+In the same way, a digital public key can encrypt something that can only be decrypted with a private key.
+和盒子例子一样,公钥加密后只能私钥来解密.
+
+The reverse is possible too: encrypting something with a
+反过来也是可以的:私钥加密后 用公钥解密
+
+private key that can be decrypted with a public key.
+反过来也是可以的:私钥加密后 用公钥解密
+
+This is used for signing, where a server encrypts data using their private key.
+这种做法用于签名,服务器可以用私钥加密,
+
+Anyone can decrypt it using the server's public key.
+任何人都可以用服务器的公钥解密
+
+This acts like an unforgeable signature,
+就像一个不可伪造的签名
+
+as only the owner, using their private key, can encrypt.
+因为只有私钥的持有人 能加密
+
+It proves that you're getting data from the right server or person, and not an imposter.
+这能证明数据来自正确的服务器或个人,而不是某个假冒者
+
+The most popular asymmetric encryption technique used today is RSA,
+目前最流行的"非对称加密"技术是 RSA
+
+named after its inventors: Rivest, Shamir and Adleman.
+名字来自发明者: Rivest, Shamir, Adleman.
+
+So, now you know all the "key" parts of modern cryptography:
+现在你学会了现代密码学的所有"关键"部分:
+
+symmetric encryption, key exchange and public-key cryptography.
+对称加密,密钥交换,公钥密码学
+
+When you connect to a secure website, like your bank,
+当你访问一个安全的网站,比如银行官网
+
+that little padlock icon means that your computer has used public key cryptography
+绿色锁图标代表 用了公钥密码学
+
+to verify the server key exchange to establish a secret temporary key,
+验证服务器的密钥,然后建立临时密钥
+
+and symmetric encryption to protect all the back-and-forth communication from prying eyes.
+然后用对称加密保证通信安全
+
+Whether you're buying something online, sending emails to BFFs,
+不管你是网上购物,发邮件给朋友,还是看猫咪视频
+
+or just browsing cat videos
+不管你是网上购物,发邮件给朋友,还是看猫咪视频
+
+cryptography keeps all that safe, private and secure.
+密码学都在保护你的隐私和安全
+
+Thanks cryptography!
+谢啦密码学!
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+As we've touched on many times in this series,
+我们之前说过 \N 计算机很擅长存放,整理,获取和处理大量数据
+
+computers are incredible at storing, organizing,
+我们之前说过 \N 计算机很擅长存放,整理,获取和处理大量数据
+
+fetching and processing huge volumes of data.
+我们之前说过 \N 计算机很擅长存放,整理,获取和处理大量数据
+
+That's perfect for things like e-commerce websites with millions of items for sale,
+很适合有上百万商品的电商网站
+
+and for storing billions of health records for quick access by doctors.
+或是存几十亿条健康记录,方便医生看.
+
+But what if we want to use computers not just to fetch and display data,
+但如果想根据数据做决定呢?
+
+but to actually make decisions about data?
+但如果想根据数据做决定呢?
+
+This is the essence of machine learning
+这是机器学习的本质
+
+algorithms that give computers the ability to learn from data,
+机器学习算法让计算机可以从数据中学习,\N 然后自行做出预测和决定
+
+and then make predictions and decisions.
+机器学习算法让计算机可以从数据中学习,\N 然后自行做出预测和决定
+
+Computer prosgrams with this ability
+能自我学习的程序很有用 \N 比如判断是不是垃圾邮件
+
+are extremely useful in answering questions like Is an email spam?
+能自我学习的程序很有用 \N 比如判断是不是垃圾邮件
+
+Does a person's heart have arrhythmia?
+这人有心律失常吗?
+
+or what video should youtube recommend after this one?
+YouTube 的下一个视频该推荐哪个?
+
+While useful, we probably wouldn't describe these programs as "intelligent"
+虽然有用,但我们不会说它有人类一般的智能
+
+in the same way we think of human intelligence.
+虽然有用,但我们不会说它有人类一般的智能
+
+So, even though the terms are often interchanged,
+虽然 AI 和 ML 这两词经常混着用
+
+most computer scientists would say that machine learning is a set of techniques
+大多数计算机科学家会说 \N机器学习是为了实现人工智能这个更宏大目标的技术之一
+
+that sits inside the even more ambitious goal of Artificial Intelligence,
+大多数计算机科学家会说 \N机器学习是为了实现人工智能这个更宏大目标的技术之一
+
+or AI for short.
+人工智能简称 AI
+
+Machine Learning and AI algorithms tend to be pretty sophisticated.
+机器学习和人工智能算法一般都很复杂
+
+So rather than wading into the mechanics of how they work,
+所以我们不讲具体细节 重点讲概念
+
+we're going to focus on what the algorithms do conceptually.
+所以我们不讲具体细节 重点讲概念
+
+Let's start with a simple example:
+我们从简单例子开始:
+
+deciding if a moth is a Luna Moth or an Emperor Moth.
+判断飞蛾是"月蛾"还是"帝蛾"
+
+This decision process is called classification,
+这叫"分类"
+
+and an algorithm that does it is called a classifier.
+做分类的算法叫 "分类器"
+
+Although there are techniques that can use raw data for training
+虽然我们可以用 照片和声音 来训练算法
+
+- like photos and sounds -
+虽然我们可以用 照片和声音 来训练算法
+
+many algorithms reduce the complexity of real world objects
+很多算法会减少复杂性
+
+and phenomena into what are called features.
+把数据简化成 "特征"
+
+Features are values that usefully characterize the things we wish to classify.
+"特征"是用来帮助"分类"的值
+
+For our moth example, we're going to use two features: "wingspan" and "mass".
+对于之前的飞蛾分类例子\N 我们用两个特征:"翼展"和"重量"
+
+In order to train our machine learning classifier to make good predictions,
+为了训练"分类器"做出好的预测,
+
+we're going to need training data.
+我们需要"训练数据"
+
+To get that,
+为了得到数据
+
+we'd send an entomologist out into a forest to collect data for both luna and emperor moths.
+我们派昆虫学家到森林里 收集"月蛾"和"帝蛾"的数据
+
+These experts can recognize different moths,
+专家可以认出不同飞蛾,
+
+so they not only record the feature values,
+所以专家不只记录特征值,还会把种类也写上
+
+but also label that data with the actual moth species.
+所以专家不只记录特征值,还会把种类也写上
+
+This is called labeled data.
+这叫 "标记数据"
+
+Because we only have two features,
+因为只有两个特征
+
+it's easy to visualize this data in a scatterplot.
+很容易用散点图把数据视觉化
+
+Here, I've plotted data for 100 Emperor Moths in red and 100 Luna Moths in blue.
+红色标了100个帝蛾\N 蓝色标了100个月蛾
+
+We can see that the species make two groupings, but.
+可以看到大致分成了两组
+
+there's some overlap in the middle
+但中间有一定重叠
+
+so it's not entirely obvious how to best separate the two.
+所以想完全区分两个组比较困难
+
+That's what machine learning algorithms do
+所以机器学习算法登场
+
+- find optimal separations!
+- 找出最佳区分
+
+I'm just going to eyeball it
+我用肉眼大致估算下
+
+and say anything less than 45 millimeters in wingspan is likely to be an Emperor Moth.
+然后判断 翼展小于45毫米的 很可能是帝蛾
+
+We can add another division that says additionally mass must be less than .75
+可以再加一个条件,重量必须小于.75
+
+in order for our guess to be Emperor Moth.
+才算是帝蛾。
+
+These lines that chop up the decision space are called decision boundaries.
+这些线叫 "决策边界"
+
+If we look closely at our data,
+如果仔细看数据
+
+we can see that 86 emperor moths would correctly end up inside the emperor decision region,
+86只帝蛾在正确的区域
+
+but 14 would end up incorrectly in luna moth territory.
+但剩下14只在错误的区域
+
+On the other hand, 82 luna moths would be correct,
+另一方面,82只月蛾在正确的区域
+
+with 18 falling onto the wrong side.
+18个在错误的区域
+
+A table, like this, showing where a classifier gets things right and wrong
+这里有个表 记录正确数和错误数
+
+is called a confusion matrix...
+这表叫"混淆矩阵"
+
+which probably should have also been the title of the last two movies in the Matrix Trilogy!
+"黑客帝国三部曲"的后两部也许该用这个标题
+
+Notice that there's no way for us to draw lines that give us 100% accuracy.
+注意我们没法画出 100% 正确分类的线
+
+If we lower our wingspan decision boundary,
+降低翼展的决策边界,会把更多"帝蛾"误分类成"月蛾"
+
+we misclassify more Emperor moths as Lunas.
+降低翼展的决策边界,会把更多"帝蛾"误分类成"月蛾"
+
+If we raise it, we misclassify more Luna moths.
+如果提高,会把更多月蛾分错类.
+
+The job of machine learning algorithms,
+机器学习算法的目的
+
+at a high level,
+机器学习算法的目的
+
+is to maximize correct classifications while minimizing errors
+是最大化正确分类 + 最小化错误分类
+
+On our training data, we get 168 moths correct, and 32 moths wrong,
+在训练数据中,有168个正确,32个错误
+
+for an average classification accuracy of 84%.
+平均准确率84%
+
+Now, using these decision boundaries,
+用这些决策边界
+
+if we go out into the forest and encounter an unknown moth,
+如果我们进入森林,碰到一只不认识的飞蛾,
+
+we can measure its features and plot it onto our decision space.
+我们可以测量它的特征, 并绘制到决策空间上
+
+This is unlabeled data.
+这叫 "未标签数据"
+
+Our decision boundaries offer a guess as to what species the moth is.
+决策边界可以猜测飞蛾种类
+
+In this case, we'd predict it's a Luna Moth.
+这里我们预测是"月蛾"
+
+This simple approach, of dividing the decision space up into boxes,
+这个把决策空间 切成几个盒子的简单方法
+
+can be represented by what's called a decision tree,
+可以用"决策树"来表示
+
+which would look like this pictorially or could be written in code using If-Statements, like this.
+画成图像,会像左侧 \N 用 if 语句写代码,会像右侧
+
+A machine learning algorithm that produces decision trees
+生成决策树的 机器学习算法
+
+needs to choose what features to divide on
+需要选择用什么特征来分类
+
+and then for each of those features, what values to use for the division.
+每个特征用什么值
+
+Decision Trees are just one basic example of a machine learning technique.
+"决策树"只是机器学习的一个简单例子
+
+There are hundreds of algorithms in computer science literature today.
+如今有数百种算法,而且新算法不断出现
+
+And more are being published all the time.
+如今有数百种算法,而且新算法不断出现
+
+A few algorithms even use many decision trees working together to make a prediction.
+一些算法甚至用多个"决策树"来预测
+
+Computer scientists smugly call those Forests
+计算机科学家叫这个"森林",因为有多颗树嘛
+
+because they contain lots of trees.
+计算机科学家叫这个"森林",因为有多颗树嘛
+
+There are also non-tree-based approaches,
+也有不用树的方法,比如"支持向量机"
+
+like Support Vector Machines,
+也有不用树的方法,比如"支持向量机"
+
+which essentially slice up the decision space using arbitrary lines.
+本质上是用任意线段来切分"决策空间"
+
+And these don't have to be straight lines;
+不一定是直线
+
+they can be polynomials or some other fancy mathematical function.
+可以是多项式或其他数学函数
+
+Like before, it's the machine learning algorithm's job
+就像之前,机器学习算法负责
+
+to figure out the best lines to provide the most accurate decision boundaries.
+找出最好的线,最准的决策边界
+
+So far, my examples have only had two features,
+之前的例子只有两个特征,人类也可以轻松做到
+
+which is easy enough for a human to figure out.
+之前的例子只有两个特征,人类也可以轻松做到
+
+If we add a third feature,
+如果加第3个特征,比如"触角长度"
+
+let's say, length of antennae,
+如果加第3个特征,比如"触角长度"
+
+then our 2D lines become 3D planes,
+那么2D线段,会变成3D平面
+
+creating decision boundaries in three dimensions.
+在三个维度上做决策边界
+
+These planes don't have to be straight either.
+这些平面不必是直的
+
+Plus, a truly useful classifier would contend with many different moth species.
+而且 真正有用的分类器 会有很多飞蛾种类
+
+Now I think you'd agree this is getting too complicated to figure out by hand
+你可能会同意 现在变得太复杂了
+
+But even this is a very basic example
+但这也只是个简单例子
+
+- just three features and five moth species.
+- 只有3个特征和5个品种
+
+We can still show it in this 3D scatter plot.
+我们依然可以用 3D散点图 画出来
+
+Unfortunately, there's no good way to visualize four features at once, or twenty features,
+不幸的是,一次性看4个或20个特征,没有好的方法
+
+let alone hundreds or even thousands of features.
+更别说成百上千的特征了
+
+But that's what many real-world machine learning problems face.
+但这正是机器学习要面临的问题
+
+Can YOU imagine trying to figure out the equation for a hyperplane
+你能想象靠手工 在一个上千维度的决策空间里
+
+rippling through a thousand-dimensional decision space?
+给超平面(Hyperplane)找出一个方程吗
+
+Probably not,
+大概不行
+
+but computers, with clever machine learning algorithms can
+但聪明的机器学习算法可以做到
+
+and they do, all day long, on computers at places like Google, Facebook, Microsoft and Amazon.
+Google,Facebook,微软和亚马逊的计算机里\N 整天都在跑这些算法
+
+Techniques like Decision Trees and Support Vector Machines are strongly rooted in the field of statistics,
+"决策树"和"支持向量机"这样的技术 \N 发源自统计学
+
+which has dealt with making confident decisions,
+统计学早在计算机出现前,就在用数据做决定
+
+using data, long before computers ever existed.
+统计学早在计算机出现前,就在用数据做决定
+
+There's a very large class of widely used statistical machine learning techniques,
+有一大类机器学习算法用了统计学
+
+but there are also some approaches with no origins in statistics.
+但也有不用统计学的算法
+
+Most notable are artificial neural networks,
+其中最值得注意的是 人工神经网络
+
+which were inspired by neurons in our brains!
+灵感来自大脑里的神经元
+
+For a primer of biological neurons,
+想学习神经元知识的人,可以看这3集
+
+check out our three-part overview here,
+想学习神经元知识的人,可以看这3集
+
+but basically neurons are cells
+神经元是细胞
+
+that process and transmit messages using electrical and chemical signals.
+用电信号和化学信号 来处理和传输消息
+
+They take one or more inputs from other cells,
+它从其他细胞 得到一个或多个输入
+
+process those signals,
+然后处理信号并发出信号
+
+and then emit their own signal.
+然后处理信号并发出信号
+
+These form into huge interconnected networks that are able to process complex information.
+形成巨大的互联网络,能处理复杂的信息
+
+Just like your brain watching this youtube video.
+就像你的大脑 在看这个视频
+
+Artificial Neurons are very similar.
+人造神经元很类似
+
+Each takes a series of inputs, combines them, and emits a signal.
+可以接收多个输入,然后整合并发出一个信号
+
+Rather than being electrical or chemical signals,
+它不用电信号或化学信号
+
+artificial neurons take numbers in, and spit numbers out.
+而是吃数字进去,吐数字出来
+
+They are organized into layers that are connected by links,
+它们被放成一层层
+
+forming a network of neurons, hence the name.
+形成神经元网络,因此得名神经网络
+
+Let's return to our moth example to see how neural nets can be used for classification.
+回到飞蛾例子,看如何用神经网络分类
+
+Our first layer - the input layer -
+我们的第一层 - 输入层 -
+
+provides data from a single moth needing classification.
+提供需要被分类的单个飞蛾数据
+
+Again, we'll use mass and wingspan.
+同样,这次也用重量和翼展
+
+At the other end, we have an output layer, with two neurons:
+另一边是输出层,有两个神经元:
+
+one for Emperor Moth and another for Luna Moth.
+一个是帝蛾,一个是月蛾
+
+The most excited neuron will be our classification decision.
+2个神经元里最兴奋的 就是分类结果
+
+In between, we have a hidden layer,
+中间有一个隐藏层
+
+that transforms our inputs into outputs, and does the hard work of classification.
+负责把输入变成输出,负责干分类这个重活
+
+To see how this is done,
+为了看看它是如何分类的
+
+let's zoom into one neuron in the hidden layer.
+我们放大"隐藏层"里的一个神经元
+
+The first thing a neuron does is multiply each of its inputs by a specific weight,
+神经元做的第一件事 \N 是把每个输入乘以一个权重
+
+let's say 2.8 for its first input, and .1 for it's second input.
+假设2.8是第一个输入,0.1是第二个输入。
+
+Then, it sums these weighted inputs together,
+然后它会相加输入
+
+which is in this case, is a grand total of 9.74.
+总共是9.74
+
+The neuron then applies a bias to this result
+然后对这个结果,用一个偏差值处理
+
+- in other words, it adds or subtracts a fixed value,
+意思是 加或减一个固定值
+
+for example, minus six, for a new value of 3.74.
+比如-6,得到3.74
+
+These bias and inputs weights are initially set to random values when a neural network is created.
+做神经网络时,这些偏差和权重,\N一开始会设置成随机值
+
+Then, an algorithm goes in, and starts tweaking all those values to train the neural network,
+然后算法会调整这些值 来训练神经网络
+
+using labeled data for training and testing.
+使用"标记数据"来训练和测试
+
+This happens over many interactions, gradually improving accuracy
+逐渐提高准确性
+
+- a process very much like human learning.
+- 很像人类学习的过程
+
+Finally, neurons have an activation function, also called a transfer function,
+最后,神经元有激活函数,它也叫传递函数,
+
+that gets applied to the output, performing a final mathematical modification to the result.
+会应用于输出,对结果执行最后一次数学修改
+
+For example, limiting the value to a range from negative one and positive one,
+例如,把值限制在-1和+1之间
+
+or setting any negative values to 0.
+或把负数改成0
+
+We'll use a linear transfer function that passes the value through unchanged,
+我们用线性传递函数,它不会改变值
+
+so 3.74 stays as 3.74.
+所以3.74还是3.74
+
+So for our example neuron,
+所以这里的例子
+
+given the inputs .55 and 82, the output would be 3.74.
+输入0.55和82,输出3.74
+
+This is just one neuron,
+这只是一个神经元,
+
+but this process of weighting, summing, biasing
+但加权,求和,偏置,激活函数
+
+and applying an activation function is computed for all neurons in a layer,
+会应用于一层里的每个神经元
+
+and the values propagate forward in the network, one layer at a time.
+并向前传播,一次一层
+
+In this example, the output neuron with the highest value is our decision:
+数字最高的就是结果:
+
+Luna Moth.
+月蛾
+
+Importantly, the hidden layer doesn't have to be just one layer
+重要的是,隐藏层不是只能有一层,可以有很多层
+
+it can be many layers deep.
+重要的是,隐藏层不是只能有一层,可以有很多层
+
+This is where the term deep learning comes from.
+"深度学习"因此得名
+
+Training these more complicated networks takes a lot more computation and data.
+训练更复杂的网络 需要更多的计算量和数据
+
+Despite the fact that neural networks were invented over fifty years ago,
+尽管神经网络50多年前就发明了
+
+deep neural nets have only been practical very recently,
+深层神经网络直到最近才成为可能
+
+thanks to powerful processors,
+感谢强大的处理器和超快的GPU
+
+but even more so, wicked fast GPUs.
+感谢强大的处理器和超快的GPU
+
+So, thank you gamers for being so demanding about silky smooth framerates!
+感谢游戏玩家对帧率的苛刻要求!
+
+A couple of years ago, Google and Facebook
+几年前,Google和Facebook
+
+demonstrated deep neural nets that could find faces in photos as well as humans
+展示了深度神经网络 \N 在照片中识别人脸的准确率,和人一样高
+
+- and humans are really good at this!
+- 人类可是很擅长这个的!
+
+It was a huge milestone.
+这是个巨大的里程碑
+
+Now deep neural nets are driving cars,
+现在有深层神经网络开车,翻译,诊断医疗状况等等
+
+translating human speech,
+现在有深层神经网络开车,翻译,诊断医疗状况等等
+
+diagnosing medical conditions and much more.
+现在有深层神经网络开车,翻译,诊断医疗状况等等
+
+These algorithms are very sophisticated,
+这些算法非常复杂,但还不够"聪明"
+
+but it's less clear if they should be described as "intelligent".
+这些算法非常复杂,但还不够"聪明"
+
+They can really only do one thing like classify moths, find faces, or translate languages.
+它们只能做一件事,分类飞蛾,找人脸,翻译
+
+This type of AI is called Weak AI or Narrow AI.
+这种AI叫"弱AI"或"窄AI",只能做特定任务
+
+It's only intelligent at specific tasks.
+这种AI叫"弱AI"或"窄AI",只能做特定任务
+
+But that doesn't mean it's not useful;
+但这不意味着它没用
+
+I mean medical devices that can make diagnoses,
+能自动做出诊断的医疗设备,
+
+and cars that can drive themselves are amazing!
+和自动驾驶的汽车真是太棒了!
+
+But do we need those computers to compose music
+但我们是否需要这些计算机来创作音乐
+
+and look up delicious recipes in their free time?
+在空闲时间找美味食谱呢?
+
+Probably not.
+也许不要
+
+Although that would be kinda cool.
+如果有的话 还挺酷的
+
+Truly general-purpose AI, one as smart and well-rounded as a human,
+真正通用的,像人一样聪明的AI,叫 "强AI"
+
+is called Strong AI.
+真正通用的,像人一样聪明的AI,叫 "强AI"
+
+No one has demonstrated anything close to human-level artificial intelligence yet.
+目前没人能做出来 接近人类智能的 AI
+
+Some argue it's impossible,
+有人认为不可能做出来
+
+but many people point to the explosion of digitized knowledge
+但许多人说 数字化知识的爆炸性增长
+
+- like Wikipedia articles, web pages, and Youtube videos -
+- 比如维基百科,网页和Youtube视频 -
+
+as the perfect kindling for Strong AI.
+是"强 AI"的完美引燃物
+
+Although you can only watch a maximum of 24 hours of youtube a day,
+你一天最多只能看24小时的 YouTube \N 计算机可以看上百万小时
+
+a computer can watch millions of hours.
+你一天最多只能看24小时的 YouTube \N 计算机可以看上百万小时
+
+For example, IBM's Watson consults and synthesizes information from 200 million pages of content,
+比如,IBM 的沃森吸收了 2 亿个网页的内容
+
+including the full text of Wikipedia.
+包括维基百科的全文
+
+While not a Strong AI, Watson is pretty smart,
+虽然不是"强AI" 但沃森也很聪明 \N 在2011年的知识竞答中碾压了人类
+
+and it crushed its human competition in Jeopardy way back in 2011.
+虽然不是"强AI" 但沃森也很聪明 \N 在2011年的知识竞答中碾压了人类
+
+Not only can AIs gobble up huge volumes of information,
+AI不仅可以吸收大量信息 \N 也可以不断学习进步,而且一般比人类快得多
+
+but they can also learn over time, often much faster than humans.
+AI不仅可以吸收大量信息 \N 也可以不断学习进步,而且一般比人类快得多
+
+In 2016, Google debuted AlphaGo,
+2016 年 Google 推出 AlphaGo
+
+a Narrow AI that plays the fiendishly complicated board game Go.
+一个会玩围棋的窄AI
+
+One of the ways it got so good and able to beat the very best human players,
+它和自己的克隆版下无数次围棋 \N 从而打败最好的人类围棋选手
+
+was by playing clones of itself millions and millions of times.
+它和自己的克隆版下无数次围棋 \N 从而打败最好的人类围棋选手
+
+It learned what worked and what didn't,
+学习什么管用,什么不管用 \N 自己发现成功的策略
+
+and along the way, discovered successful strategies all by itself.
+学习什么管用,什么不管用 \N 自己发现成功的策略
+
+This is called Reinforcement Learning,
+这叫 "强化学习" 是一种很强大的方法
+
+and it's a super powerful approach.
+这叫 "强化学习" 是一种很强大的方法
+
+In fact, it's very similar to how humans learn.
+和人类的学习方式非常类似
+
+People don't just magically acquire the ability to walk...
+人类不是天生就会走路,是上千小时的试错学会的
+
+it takes thousands of hours of trial and error to figure it out.
+人类不是天生就会走路,是上千小时的试错学会的
+
+Computers are now on the cusp of learning by trial and error,
+计算机现在才刚学会反复试错来学习
+
+and for many narrow problems,
+对于很多狭窄的问题,强化学习已被广泛使用
+
+reinforcement learning is already widely used.
+对于很多狭窄的问题,强化学习已被广泛使用
+
+What will be interesting to see, is if these types of learning techniques can be applied more broadly,
+有趣的是,如果这类技术可以更广泛地应用
+
+to create human-like, Strong AIs that learn much like how kids learn, but at super accelerated rates.
+创造出类似人类的"强AI" \N 能像人类小孩一样学习,但学习速度超快
+
+If that happens, there are some pretty big changes in store for humanity
+如果这发生了,对人类可能有相当大的影响
+
+- a topic we'll revisit later.
+- 我们以后会讨论
+
+Thanks for watching. See you next week.
+感谢收看. 我们下周见
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨 我是Carrie Anne,欢迎收看计算机科学速成课
+
+Today, let's start by thinking about how important vision can be.
+今天 我们来思考视觉的重要性
+
+Most people rely on it to prepare food,
+大部分人靠视觉来做饭
+
+walk around obstacles,
+越过障碍
+
+read street signs,
+读路牌
+
+watch videos like this,
+看视频
+
+and do hundreds of other tasks.
+以及无数其它任务
+
+Vision is the highest bandwidth sense,
+视觉是信息最多的感官 \N 比如周围的世界是怎样的,如何和世界交互
+
+and it provides a firehose of information about the state of the world and how to act on it.
+视觉是信息最多的感官 \N 比如周围的世界是怎样的,如何和世界交互
+
+For this reason, computer scientists have been trying to give computers vision for half a century,
+因此半个世纪来\N 计算机科学家一直在想办法让计算机有视觉
+
+birthing the sub-field of computer vision.
+因此诞生了"计算机视觉"这个领域
+
+Its goal is to give computers the ability
+目标是让计算机理解图像和视频
+
+to extract high-level understanding from digital images and videos.
+目标是让计算机理解图像和视频
+
+As everyone with a digital camera or smartphone knows,
+用过相机或手机的都知道 \N 可以拍出有惊人保真度和细节的照片
+
+computers are already really good at capturing photos with incredible fidelity and detail
+用过相机或手机的都知道 \N 可以拍出有惊人保真度和细节的照片
+
+- much better than humans in fact.
+- 比人类强得多
+
+But as computer vision professor Fei-Fei Li recently said,
+但正如计算机视觉教授 李飞飞 最近说的
+
+"Just like to hear is the not the same as to listen.
+"听到"不等于"听懂"
+
+To take pictures is not the same as to see."
+"看到"不等于"看懂"
+
+As a refresher, images on computers are most often stored as big grids of pixels.
+复习一下,图像是像素网格
+
+Each pixel is defined by a color, stored as a combination of three additive primary colors:
+每个像素的颜色 通过三种基色定义:红,绿,蓝
+
+red, green and blue.
+每个像素的颜色 通过三种基色定义:红,绿,蓝
+
+By combining different intensities of these three colors,
+通过组合三种颜色的强度 \N 可以得到任何颜色, 也叫 RGB 值
+
+we can represent any color. what's called a RGB value,
+通过组合三种颜色的强度 \N 可以得到任何颜色, 也叫 RGB 值
+
+Perhaps the simplest computer vision algorithm
+最简单的计算机视觉算法
+
+- and a good place to start -
+最合适拿来入门的
+
+is to track a colored object, like a bright pink ball.
+是跟踪一个颜色物体,比如一个粉色的球
+
+The first thing we need to do is record the ball's color.
+首先,我们记下球的颜色,保存最中心像素的 RGB 值
+
+For that, we'll take the RGB value of the centermost pixel.
+首先,我们记下球的颜色,保存最中心像素的 RGB 值
+
+With that value saved, we can give a computer program an image,
+然后给程序喂入图像,让它找最接近这个颜色的像素
+
+and ask it to find the pixel with the closest color match.
+然后给程序喂入图像,让它找最接近这个颜色的像素
+
+An algorithm like this might start in the upper right corner,
+算法可以从左上角开始,逐个检查像素
+
+and check each pixel, one at time,
+算法可以从左上角开始,逐个检查像素
+
+calculating the difference from our target color.
+计算和目标颜色的差异
+
+Now, having looked at every pixel,
+检查了每个像素后,最贴近的像素,很可能就是球
+
+the best match is very likely a pixel from our ball.
+检查了每个像素后,最贴近的像素,很可能就是球
+
+We're not limited to running this algorithm on a single photo;
+不只是这张图片 \N 我们可以在视频的每一帧图片跑这个算法
+
+we can do it for every frame in a video,
+不只是这张图片 \N 我们可以在视频的每一帧图片跑这个算法
+
+allowing us to track the ball over time.
+跟踪球的位置
+
+Of course, due to variations in lighting, shadows, and other effects,
+当然,因为光线,阴影和其它影响
+
+the ball on the field is almost certainly not going to be the exact same RGB value as our target color,
+球的颜色会有变化,不会和存的 RGB 值完全一样
+
+but merely the closest match.
+但会很接近
+
+In more extreme cases, like at a game at night,
+如果情况更极端一些 \N 比如比赛是在晚上,追踪效果可能会很差
+
+the tracking might be poor.
+如果情况更极端一些 \N 比如比赛是在晚上,追踪效果可能会很差
+
+And if one of the team's jerseys used the same color as the ball,
+如果球衣的颜色和球一样,算法就完全晕了
+
+our algorithm would get totally confused.
+如果球衣的颜色和球一样,算法就完全晕了
+
+For these reasons, color marker tracking and similar algorithms are rarely used,
+因此很少用这类颜色跟踪算法
+
+unless the environment can be tightly controlled.
+除非环境可以严格控制
+
+This color tracking example was able to search pixel-by-pixel,
+颜色跟踪算法是一个个像素搜索 \N 因为颜色是在一个像素里
+
+because colors are stored inside of single pixels.
+颜色跟踪算法是一个个像素搜索 \N 因为颜色是在一个像素里
+
+But this approach doesn't work for features larger than a single pixel,
+但这种方法 不适合占多个像素的特征
+
+like edges of objects, which are inherently made up of many pixels.
+比如物体的边缘,是多个像素组成的.
+
+To identify these types of features in images,
+为了识别这些特征,算法要一块块像素来处理
+
+computer vision algorithms have to consider small regions of pixels,
+为了识别这些特征,算法要一块块像素来处理
+
+called patches.
+每一块都叫"块"
+
+As an example, let's talk about an algorithm that finds vertical edges in a scene,
+举个例子,找垂直边缘的算法
+
+let's say to help a drone navigate safely through a field of obstacles.
+假设用来帮无人机躲避障碍
+
+To keep things simple, we're going to convert our image into grayscale,
+为了简单,我们把图片转成灰度 \N 不过大部分算法可以处理颜色
+
+although most algorithms can handle color.
+为了简单,我们把图片转成灰度 \N 不过大部分算法可以处理颜色
+
+Now let's zoom into one of these poles to see what an edge looks like up close.
+放大其中一个杆子,看看边缘是怎样的
+
+We can easily see where the left edge of the pole starts,
+可以很容易地看到 杆子的左边缘从哪里开始
+
+because there's a change in color that persists across many pixels vertically.
+因为有垂直的颜色变化
+
+We can define this behavior more formally by creating a rule
+我们可以弄个规则说
+
+that says the likelihood of a pixel being a vertical edge
+某像素是垂直边缘的可能性 \N 取决于左右两边像素的颜色差异程度
+
+is the magnitude of the difference in color
+某像素是垂直边缘的可能性 \N 取决于左右两边像素的颜色差异程度
+
+between some pixels to its left and some pixels to its right.
+某像素是垂直边缘的可能性 \N 取决于左右两边像素的颜色差异程度
+
+The bigger the color difference between these two sets of pixels,
+左右像素的区别越大,这个像素越可能是边缘
+
+the more likely the pixel is on an edge.
+左右像素的区别越大,这个像素越可能是边缘
+
+If the color difference is small, it's probably not an edge at all.
+如果色差很小,就不是边缘
+
+The mathematical notation for this operation looks like this
+这个操作的数学符号 看起来像这样
+
+it's called a kernel or filter.
+这叫"核"或"过滤器"
+
+It contains the values for a pixel-wise multiplication,
+里面的数字用来做像素乘法
+
+the sum of which is saved into the center pixel.
+总和 存到中心像素里
+
+Let's see how this works for our example pixel.
+我们来看个实际例子
+
+I've gone ahead and labeled all of the pixels with their grayscale values.
+我已经把所有像素转成了灰度值
+
+Now, we take our kernel, and center it over our pixel of interest.
+现在把"核"的中心,对准感兴趣的像素
+
+This specifies what each pixel value underneath should be multiplied by.
+这指定了每个像素要乘的值
+
+Then, we just add up all those numbers.
+然后把所有数字加起来
+
+In this example, that gives us 147.
+在这里,最后结果是 147
+
+That becomes our new pixel value.
+成为新像素值
+
+This operation, of applying a kernel to a patch of pixels,
+把 核 应用于像素块,这种操作叫"卷积"
+
+is call a convolution.
+把 核 应用于像素块,这种操作叫"卷积"
+
+Now let's apply our kernel to another pixel.
+现在我们把"核"应用到另一个像素
+
+In this case, the result is 1. Just 1.
+结果是 1
+
+In other words, it's a very small color difference, and not an edge.
+色差很小,不是边缘
+
+If we apply our kernel to every pixel in the photo,
+如果把"核"用于照片中每个像素
+
+the result looks like this,
+结果会像这样
+
+where the highest pixel values are where there are strong vertical edges.
+垂直边缘的像素值很高
+
+Note that horizontal edges, like those platforms in the background,
+注意,水平边缘(比如背景里的平台)
+
+are almost invisible.
+几乎看不见
+
+If we wanted to highlight those features,
+如果要突出那些特征
+
+we'd have to use a different kernel
+要用不同的"核"
+
+- one that's sensitive to horizontal edges.
+用对水平边缘敏感的"核"
+
+Both of these edge enhancing kernels are called Prewitt Operators,
+这两个边缘增强的核叫"Prewitt 算子"
+
+named after their inventor.
+以发明者命名
+
+These are just two examples of a huge variety of kernels,
+这只是众多"核"的两个例子
+
+able to perform many different image transformations.
+"核"能做很多种图像转换
+
+For example, here's a kernel that sharpens images.
+比如这个"核"能锐化图像
+
+And here's a kernel that blurs them.
+这个"核"能模糊图像
+
+Kernels can also be used like little image cookie cutters that match only certain shapes.
+"核"也可以像饼干模具一样,匹配特定形状
+
+So, our edge kernels looked for image patches
+之前做边缘检测的"核"
+
+with strong differences from right to left or up and down.
+会检查左右或上下的差异
+
+But we could also make kernels that are good at finding lines, with edges on both sides.
+但我们也可以做出 擅长找线段的"核"
+
+And even islands of pixels surrounded by contrasting colors.
+或者包了一圈对比色的区域
+
+These types of kernels can begin to characterize simple shapes.
+这类"核"可以描述简单的形状
+
+For example, on faces, the bridge of the nose tends to be brighter than the sides of the nose,
+比如鼻梁往往比鼻子两侧更亮
+
+resulting in higher values for line-sensitive kernels.
+所以线段敏感的"核"对这里的值更高
+
+Eyes are also distinctive
+眼睛也很独特
+
+- a dark circle sounded by lighter pixels -
+- 一个黑色圆圈被外层更亮的一层像素包着
+
+a pattern other kernels are sensitive to.
+有其它"核"对这种模式敏感
+
+When a computer scans through an image,
+当计算机扫描图像时,最常见的是用一个窗口来扫
+
+most often by sliding around a search window,
+当计算机扫描图像时,最常见的是用一个窗口来扫
+
+it can look for combinations of features indicative of a human face.
+可以找出人脸的特征组合
+
+Although each kernel is a weak face detector by itself,
+虽然每个"核"单独找出脸的能力很弱 \N 但组合在一起会相当准确
+
+combined, they can be quite accurate.
+虽然每个"核"单独找出脸的能力很弱 \N 但组合在一起会相当准确
+
+It's unlikely that a bunch of face-like features will cluster together if they're not a face.
+不是脸但又有一堆脸的特征在正确的位置,\N 这种情况不太可能
+
+This was the basis of an early and influential algorithm
+这是一个早期很有影响力的算法的基础
+
+called Viola-Jones Face Detection.
+叫 维奥拉·琼斯 人脸检测算法
+
+Today, the hot new algorithms on the block are Convolutional Neural Networks.
+如今的热门算法是 "卷积神经网络"
+
+We talked about neural nets last episode, if you need a primer.
+我们上集谈了神经网络,如果需要可以去看看
+
+In short, an artificial neuron
+总之,神经网络的最基本单位,是神经元
+
+- which is the building block of a neural network -
+总之,神经网络的最基本单位,是神经元
+
+takes a series of inputs, and multiplies each by a specified weight,
+它有多个输入,然后会把每个输入 乘一个权重值
+
+and then sums those values all together.
+然后求总和
+
+This should sound vaguely familiar, because it's a lot like a convolution.
+听起来好像挺耳熟,因为它很像"卷积"
+
+In fact, if we pass a neuron 2D pixel data, rather than a one-dimensional list of inputs,
+实际上,如果我们给神经元输入二维像素
+
+it's exactly like a convolution.
+完全就像"卷积"
+
+The input weights are equivalent to kernel values,
+输入权重等于"核"的值
+
+but unlike a predefined kernel,
+但和预定义"核"不同
+
+neural networks can learn their own useful kernels
+神经网络可以学习对自己有用的"核"
+
+that are able to recognize interesting features in images.
+来识别图像中的特征
+
+Convolutional Neural Networks use banks of these neurons to process image data,
+"卷积神经网络"用一堆神经元处理图像数据
+
+each outputting a new image, essentially digested by different learned kernels.
+每个都会输出一个新图像,\N 本质上是被不同的"核"处理了
+
+These outputs are then processed by subsequent layers of neurons,
+输出会被后面一层神经元处理
+
+allowing for convolutions on convolutions on convolutions.
+卷积卷积再卷积
+
+The very first convolutional layer might find things like edges,
+第一层可能会发现"边缘"这样的特征
+
+as that's what a single convolution can recognize, as we've already discussed.
+单次卷积可以识别出这样的东西,之前说过
+
+The next layer might have neurons that convolve on those edge features
+下一层可以在这些基础上识别
+
+to recognize simple shapes, comprised of edges, like corners.
+比如由"边缘"组成的角落
+
+A layer beyond that might convolve on those corner features,
+然后下一层可以在"角落"上继续卷积
+
+and contain neurons that can recognize simple objects,
+下一些可能有识别简单物体的神经元
+
+like mouths and eyebrows.
+比如嘴和眉毛
+
+And this keeps going, building up in complexity,
+然后不断重复,逐渐增加复杂度
+
+until there's a layer that does a convolution that puts it together:
+直到某一层把所有特征放到一起:
+
+eyes, ears, mouth, nose, the whole nine yards,
+眼睛,耳朵,嘴巴,鼻子
+
+and says "ah ha, it's a face!"
+然后说:"啊哈,这是脸!"
+
+Convolutional neural networks aren't required to be many layers deep,
+"卷积神经网络"不是非要很多很多层
+
+but they usually are, in order to recognize complex objects and scenes.
+但一般会有很多层,来识别复杂物体和场景
+
+That's why the technique is considered deep learning.
+所以算是"深度学习"
+
+Both Viola-Jones and Convolutional Neural Networks can be applied to many image recognition problems,
+"维奥拉·琼斯"和"卷积神经网络"\N 不只是认人脸,还可以识别手写文字
+
+beyond faces, like recognizing handwritten text,
+"维奥拉·琼斯"和"卷积神经网络"\N 不只是认人脸,还可以识别手写文字
+
+spotting tumors in CT scans and monitoring traffic flow on roads.
+在 CT 扫描中发现肿瘤,监测马路是否拥堵
+
+But we're going to stick with faces.
+但我们这里接着用人脸举例
+
+Regardless of what algorithm was used, once we've isolated a face in a photo,
+不管用什么算法,识别出脸之后
+
+we can apply more specialized computer vision algorithms to pinpoint facial landmarks,
+可以用更专用的计算机视觉算法 \N 来定位面部标志
+
+like the tip of the nose and corners of the mouth.
+比如鼻尖和嘴角
+
+This data can be used for determining things like if the eyes are open,
+有了标志点,判断眼睛有没有张开就很容易了
+
+which is pretty easy once you have the landmarks
+有了标志点,判断眼睛有没有张开就很容易了
+
+it's just the distance between points.
+只是点之间的距离罢了
+
+We can also track the position of the eyebrows;
+也可以跟踪眉毛的位置
+
+their relative position to the eyes can be an indicator of surprise, or delight.
+眉毛相对眼睛的位置 可以代表惊喜或喜悦
+
+Smiles are also pretty straightforward to detect based on the shape of mouth landmarks.
+根据嘴巴的标志点,检测出微笑也很简单
+
+All of this information can be interpreted by emotion recognition algorithms,
+这些信息可以用"情感识别算法"来识别
+
+giving computers the ability to infer when you're happy, sad, frustrated, confused and so on.
+让电脑知道你是开心,忧伤,沮丧,困惑等等
+
+In turn, that could allow computers to intelligently adapt their behavior...
+然后计算机可以做出合适的行为.
+
+maybe offer tips when you're confused,
+比如当你不明白时 给你提示
+
+and not ask to install updates when you're frustrated.
+你心情不好时,就不弹更新提示了
+
+This is just one example of how vision can give computers the ability to be context sensitive,
+这只是计算机通过视觉感知周围的一个例子
+
+that is, aware of their surroundings.
+这只是计算机通过视觉感知周围的一个例子
+
+And not just the physical surroundings
+不只是物理环境 - 比如是不是在上班,或是在火车上
+
+- like if you're at work or on a train -
+不只是物理环境 - 比如是不是在上班,或是在火车上
+
+but also your social surroundings
+还有社交环境 - 比如是朋友的生日派对,还是正式商务会议
+
+- like if you're in a formal business meeting versus a friend's birthday party.
+还有社交环境 - 比如是朋友的生日派对,还是正式商务会议
+
+You behave differently in those surroundings, and so should computing devices,
+你在不同环境会有不同行为,计算机也应如此
+
+if they're smart.
+如果它们够聪明的话...
+
+Facial landmarks also capture the geometry of your face,
+面部标记点 也可以捕捉脸的形状
+
+like the distance between your eyes and the height of your forehead.
+比如两只眼睛之间的距离,以及前额有多高
+
+This is one form of biometric data,
+做生物识别
+
+and it allows computers with cameras to recognize you.
+让有摄像头的计算机能认出你
+
+Whether it's your smartphone automatically unlocking itself when it sees you,
+不管是手机解锁 还是政府用摄像头跟踪人
+
+or governments tracking people using CCTV cameras,
+不管是手机解锁 还是政府用摄像头跟踪人
+
+the applications of face recognition seem limitless.
+人脸识别有无限应用场景
+
+There have also been recent breakthroughs in landmark tracking for hands and whole bodies,
+另外 跟踪手臂和全身的标记点,最近也有一些突破
+
+giving computers the ability to interpret a user's body language,
+让计算机理解用户的身体语言
+
+and what hand gestures they're frantically waving at their internet connected microwave.
+比如用户给联网微波炉的手势
+
+As we've talked about many times in this series,
+正如系列中常说的,抽象是构建复杂系统的关键
+
+abstraction is the key to building complex systems,
+正如系列中常说的,抽象是构建复杂系统的关键
+
+and the same is true in computer vision.
+计算机视觉也是一样
+
+At the hardware level, you have engineers building better and better cameras,
+硬件层面,有工程师在造更好的摄像头 \N 让计算机有越来越好的视力
+
+giving computers improved sight with each passing year,
+硬件层面,有工程师在造更好的摄像头 \N 让计算机有越来越好的视力
+
+which I can't say for myself.
+我自己的视力却不能这样
+
+Using that camera data,
+用来自摄像头的数据 可以用视觉算法找出脸和手
+
+you have computer vision algorithms crunching pixels to find things like faces and hands.
+用来自摄像头的数据 可以用视觉算法找出脸和手
+
+And then, using output from those algorithms,
+然后可以用其他算法接着处理,解释图片中的东西
+
+you have even more specialized algorithms for interpreting things
+然后可以用其他算法接着处理,解释图片中的东西
+
+like user facial expression and hand gestures.
+比如用户的表情和手势
+
+On top of that, there are people building novel interactive experiences,
+有了这些,人们可以做出新的交互体验
+
+like smart TVs and intelligent tutoring systems,
+比如智能电视和智能辅导系统 \N 会根据用户的手势和表情来回应
+
+that respond to hand gestures and emotion.
+比如智能电视和智能辅导系统 \N 会根据用户的手势和表情来回应
+
+Each of these levels are active areas of research,
+这里的每一层都是活跃的研究领域
+
+with breakthroughs happening every year.
+每年都有突破,这只是冰山一角
+
+And that's just the tip of the iceberg.
+每年都有突破,这只是冰山一角
+
+Today, computer vision is everywhere
+如今 计算机视觉无处不在
+
+- whether it's barcodes being scanned at stores,
+- 商店里扫条形码 \N 等红灯的自动驾驶汽车
+
+self-driving cars waiting at red lights,
+- 商店里扫条形码 \N 等红灯的自动驾驶汽车
+
+or snapchat filters superimposing mustaches.
+或是 Snapchat 里添加胡子的滤镜
+
+And, the most exciting thing is that computer scientists are really just getting started,
+令人兴奋的是 一切才刚刚开始
+
+enabled by recent advances in computing, like super fast GPUs.
+最近的技术发展,比如超快的GPU,\N 会开启越来越多可能性
+
+Computers with human-like ability to see is going to totally change how we interact with them.
+视觉能力达到人类水平的计算机 \N 会彻底改变交互方式
+
+Of course, it'd also be nice if they could hear and speak,
+当然,如果计算机能听懂我们然后回话,就更好了
+
+which we'll discuss next week. I'll see you then.
+我们下周讨论 到时见
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨 我是Carrie Anne,欢迎收看计算机科学速成课
+
+Last episode we talked about computer vision
+上集我们讨论了计算机视觉 - 让电脑能看到并理解
+
+- giving computers the ability to see and understand visual information.
+上集我们讨论了计算机视觉 - 让电脑能看到并理解
+
+Today we're going to talk about how to give computers the ability to understand language.
+今天我们讨论 怎么让计算机理解语言
+
+You might argue they've always had this capability.
+你可能会说:计算机已经有这个能力了
+
+Back in Episodes 9 and 12,
+在第9和第12集
+
+we talked about machine language instructions,
+我们聊了机器语言和更高层次的编程语言
+
+as well as higher-level programming languages.
+我们聊了机器语言和更高层次的编程语言
+
+While these certainly meet the definition of a language,
+虽然从定义来说 它们也算语言
+
+they also tend to have small vocabularies and follow highly structured conventions.
+但词汇量一般很少,而且非常结构化
+
+Code will only compile and run if it's 100 percent free of spelling and syntactic errors.
+代码只能在拼写和语法完全正确时,编译和运行
+
+Of course, this is quite different from human languages
+当然,这和人类语言完全不同 \N - 人类语言叫"自然语言"
+
+- what are called natural languages -
+当然,这和人类语言完全不同 \N - 人类语言叫"自然语言"
+
+containing large, diverse vocabularies,
+自然语言有大量词汇
+
+words with several different meanings,
+有些词有多种含义
+
+speakers with different accents,
+不同口音
+
+and all sorts of interesting word play.
+以及各种有趣的文字游戏
+
+People also make linguistic faux pas when writing and speaking,
+人们在写作和说话时也会犯错
+
+like slurring words together, leaving out key details so things are ambiguous,
+比如单词拼在一起发音 \N 关键细节没说 导致意思模糊两可
+
+and mispronouncing things.
+以及发错音
+
+But, for the most part, humans can roll right through these challenges.
+但大部分情况下,另一方能理解
+
+The skillful use of language is a major part of what makes us human.
+人类有强大的语言能力
+
+And for this reason,
+因此,让计算机拥有语音对话的能力
+
+the desire for computers to understand and speak our language
+因此,让计算机拥有语音对话的能力
+
+has been around since they were first conceived.
+这个想法从构思计算机时就有了
+
+This led to the creation of Natural Language Processing, or NLP,
+"自然语言处理"因此诞生,简称 NLP
+
+an interdisciplinary field combining computer science and linguistics.
+结合了计算机科学和语言学的 一个跨学科领域
+
+There's an essentially infinite number of ways to arrange words in a sentence.
+单词组成句子的方式有无限种
+
+We can't give computers a dictionary of all possible sentences
+我们没法给计算机一个字典,包含所有可能句子
+
+to help them understand what humans are blabbing on about.
+让计算机理解人类在嘟囔什么
+
+So an early and fundamental NLP problem was deconstructing sentences into bite-sized pieces,
+所以 NLP 早期的一个基本问题是 \N 怎么把句子切成一块块
+
+which could be more easily processed.
+这样更容易处理
+
+In school, you learned about nine fundamental types of English words:
+上学时,老师教你 英语单词有九种基本类型:
+
+nouns, pronouns, articles, verbs, adjectives,
+名词,代词,冠词,动词,形容词
+
+adverbs, prepositions, conjunctions, and interjections.
+副词,介词,连词和感叹词
+
+These are called parts of speech.
+这叫"词性"
+
+There are all sorts of subcategories too,
+还有各种子类,比如
+
+like singular vs. plural nouns and superlative vs. comparative adverbs,
+单数名词 vs 复数名词 \N 副词最高级 vs 副词比较级
+
+but we're not going to get into that.
+但我们不会深入那些.
+
+Knowing a word's type is definitely useful,
+了解单词类型有用
+
+but unfortunately, there are a lot words that have multiple meanings - like "rose" and "leaves",
+但不幸的是,很多词有多重含义 比如 rose 和 leaves
+
+which can be used as nouns or verbs.
+可以用作名词或动词
+
+A digital dictionary alone isn't enough to resolve this ambiguity,
+仅靠字典,不能解决这种模糊问题
+
+so computers also need to know some grammar.
+所以电脑也要知道语法
+
+For this, phrase structure rules were developed, which encapsulate the grammar of a language.
+因此开发了 "短语结构规则" 来代表语法规则
+
+For example, in English there's a rule
+例如,英语中有一条规则
+
+that says a sentence can be comprised of a noun phrase followed by a verb phrase.
+句子可以由一个名词短语和一个动词短语组成
+
+Noun phrases can be an article, like "the",
+名词短语可以是冠词,如 the
+
+followed by a noun or they can be an adjective followed by a noun.
+然后一个名词,或一个形容词后面跟一个名词
+
+And you can make rules like this for an entire language.
+你可以给一门语言制定出一堆规则
+
+Then, using these rules, it's fairly easy to construct what's called a parse tree,
+用这些规则,可以做出"分析树"
+
+which not only tags every word with a likely part of speech,
+它给每个单词标了可能是什么词性
+
+but also reveals how the sentence is constructed.
+也标明了句子的结构
+
+These smaller chunks of data allow computers to more easily access,
+数据块更小 更容易处理
+
+process and respond to information.
+数据块更小 更容易处理
+
+Equivalent processes are happening every time you do a voice search,
+每次语音搜索,都有这样的流程
+
+like: "where's the nearest pizza".
+比如 "最近的披萨在哪里"
+
+The computer can recognize that this is a "where" question,
+计算机能明白这是"哪里"(where)的问题
+
+knows you want the noun "pizza",
+知道你想要名词"披萨"(pizza)
+
+and the dimension you care about is "nearest".
+而且你关心的维度是"最近的"(nearest)
+
+The same process applies to "what is the biggest giraffe?" or "who sang thriller?"
+"最大的长颈鹿是什么?"或"Thriller是谁唱的?" \N 也是这样处理
+
+By treating language almost like lego,
+把语言像乐高一样拆分,方便计算机处理
+
+computers can be quite adept at natural language tasks.
+把语言像乐高一样拆分,方便计算机处理
+
+They can answer questions and also process commands,
+计算机可以回答问题 以及处理命令
+
+like "set an alarm for 2:20"
+比如"设 2:20 的闹钟"
+
+or "play T-Swizzle on spotify".
+或"用 Spotify 播放 T-Swizzle"
+
+But, as you've probably experienced, they fail when you start getting too fancy,
+但你可能体验过,如果句子复杂一点
+
+and they can no longer parse the sentence correctly, or capture your intent.
+计算机就没法理解了
+
+Hey Siri... me thinks the mongols doth roam too much,
+嘿Siri ...... 俺觉得蒙古人走得太远了
+
+what think ye on this most gentle mid-summer's day?
+在这个最温柔的夏日的日子里,你觉得怎么样?
+
+Siri: I'm not sure I got that.
+Siri:我没明白
+
+I should also note that phrase structure rules, and similar methods that codify language,
+还有,"短语结构规则"和其他把语言结构化的方法
+
+can be used by computers to generate natural language text.
+可以用来生成句子
+
+This works particularly well when data is stored in a web of semantic information,
+数据存在语义信息网络时,这种方法特别有效
+
+where entities are linked to one another in meaningful relationships,
+实体互相连在一起
+
+providing all the ingredients you need to craft informational sentences.
+提供构造句子的所有成分
+
+Siri: Thriller was released in 1983 and sung by Michael Jackson
+Siri:Thriller 于1983年发行,由迈克尔杰克逊演唱
+
+Google's version of this is called Knowledge Graph.
+Google 版的叫"知识图谱"
+
+At the end of 2016,
+在2016年底
+
+it contained roughly seventy billion facts about, and relationships between, different entities.
+包含大概七百亿个事实,以及不同实体间的关系
+
+These two processes, parsing and generating text,
+处理, 分析, 生成文字 \N 是聊天机器人的最基本部件
+
+are fundamental components of natural language chatbots
+处理, 分析, 生成文字 \N 是聊天机器人的最基本部件
+
+- computer programs that chat with you.
+- 聊天机器人就是能和你聊天的程序
+
+Early chatbots were primarily rule-based,
+早期聊天机器人大多用的是规则.
+
+where experts would encode hundreds of rules mapping what a user might say,
+专家把用户可能会说的话,和机器人应该回复什么,\N 写成上百个规则
+
+to how a program should reply.
+专家把用户可能会说的话,和机器人应该回复什么,\N 写成上百个规则
+
+Obviously this was unwieldy to maintain and limited the possible sophistication.
+显然,这很难维护,而且对话不能太复杂.
+
+A famous early example was ELIZA, created in the mid-1960s at MIT.
+一个著名早期例子叫 Eliza\N 1960年代中期 诞生于麻省理工学院
+
+This was a chatbot that took on the role of a therapist,
+一个治疗师聊天机器人
+
+and used basic syntactic rules to identify content in written exchanges,
+它用基本句法规则 来理解用户打的文字
+
+which it would turn around and ask the user about.
+然后向用户提问
+
+Sometimes, it felt very much like human-human communication,
+有时候会感觉像和人类沟通一样
+
+but other times it would make simple and even comical mistakes.
+但有时会犯简单 甚至很搞笑的错误
+
+Chatbots, and more advanced dialog systems,
+聊天机器人和对话系统
+
+have come a long way in the last fifty years, and can be quite convincing today!
+在过去五十年发展了很多,如今可以和真人很像!
+
+Modern approaches are based on machine learning,
+如今大多用机器学习
+
+where gigabytes of real human-to-human chats are used to train chatbots.
+用上GB的真人聊天数据 来训练机器人
+
+Today, the technology is finding use in customer service applications,
+现在聊天机器人已经用于客服回答
+
+where there's already heaps of example conversations to learn from.
+客服有很多对话可以参考
+
+People have also been getting chatbots to talk with one another,
+人们也让聊天机器人互相聊天
+
+and in a Facebook experiment, chatbots even started to evolve their own language.
+在 Facebook 的一个实验里,\N 聊天机器人甚至发展出自己的语言
+
+This experiment got a bunch of scary-sounding press,
+很多新闻把这个实验 报导的很吓人
+
+but it was just the computers crafting a simplified protocol to negotiate with one another.
+但实际上只是计算机 \N 在制定简单协议来帮助沟通
+
+It wasn't evil, it's was efficient.
+这些语言不是邪恶的,而是为了效率
+
+But what about if something is spoken
+但如果听到一个句子
+
+- how does a computer get words from the sound?
+- 计算机怎么从声音中提取词汇?
+
+That's the domain of speech recognition,
+这个领域叫"语音识别"
+
+which has been the focus of research for many decades.
+这个领域已经重点研究了几十年
+
+Bell Labs debuted the first speech recognition system in 1952,
+贝尔实验室在1952年推出了第一个语音识别系统
+
+nicknamed Audrey, the automatic digit recognizer.
+绰号 Audrey,自动数字识别器
+
+It could recognize all ten numerical digits,
+如果你说得够慢,它可以识别全部十位数字
+
+if you said them slowly enough.
+如果你说得够慢,它可以识别全部十位数字
+
+5
+
+9
+
+7?
+
+The project didn't go anywhere
+这个项目没有实际应用,因为手输快得多
+
+because it was much faster to enter telephone numbers with a finger.
+这个项目没有实际应用,因为手输快得多
+
+Ten years later, at the 1962 World's Fair,
+十年后,1962年的世界博览会上
+
+IBM demonstrated a shoebox-sized machine capable of recognizing sixteen words.
+IBM展示了一个鞋盒大小的机器,能识别16个单词
+
+To boost research in the area,
+为了推进"语音识别"领域的研究
+
+DARPA kicked off an ambitious five-year funding initiative in 1971,
+DARPA 在1971年启动了一项雄心勃勃的五年筹资计划
+
+which led to the development of Harpy at Carnegie Mellon University.
+之后诞生了卡内基梅隆大学的 Harpy
+
+Harpy was the first system to recognize over a thousand words.
+Harpy 是第一个可以识别1000个单词以上的系统
+
+But, on computers of the era,
+但那时的电脑
+
+transcription was often ten or more times slower than the rate of natural speech.
+语音转文字,经常比实时说话要慢十倍或以上
+
+Fortunately, thanks to huge advances in computing performance in the 1980s and 90s,
+幸运的是,1980,1990年代 计算机性能的大幅提升
+
+continuous, real-time speech recognition became practical.
+实时语音识别变得可行
+
+There was simultaneous innovation in the algorithms for processing natural language,
+同时也出现了处理自然语言的新算法
+
+moving from hand-crafted rules,
+不再是手工定规则
+
+to machine learning techniques
+而是用机器学习
+
+that could learn automatically from existing datasets of human language.
+从语言数据库中学习
+
+Today, the speech recognition systems with the best accuracy are using deep neural networks,
+如今准确度最高的语音识别系统 用深度神经网络
+
+which we touched on in Episode 34.
+我们在第34集讲过
+
+To get a sense of how these techniques work,
+为了理解原理
+
+let's look at some speech, specifically,
+我们来看一些对话声音
+
+the acoustic signal.
+我们来看一些对话声音
+
+Let's start by looking at vowel sounds,
+先看元音
+
+like aaaaa and eeeeee.
+比如 a 和 e
+
+These are the waveforms of those two sounds, as captured by a computer's microphone.
+这是两个声音的波形
+
+As we discussed in Episode 21 - on Files and File Formats -
+我们在第21集(文件格式)说过
+
+this signal is the magnitude of displacement,
+这个信号来自 麦克风内部隔膜震动的频率
+
+of a diaphragm inside of a microphone, as sound waves cause it to oscillate.
+这个信号来自 麦克风内部隔膜震动的频率
+
+In this view of sound data, the horizontal axis is time,
+在这个视图中,横轴是时间
+
+and the vertical axis is the magnitude of displacement, or amplitude.
+竖轴是隔膜移动的幅度,或者说振幅
+
+Although we can see there are differences between the waveforms,
+虽然可以看到2个波形有区别
+
+it's not super obvious what you would point at to say,
+但不能看出
+
+"ah ha! this is definitely an eeee sound".
+"啊!这个声音肯定是 e"
+
+To really make this pop out, we need to view the data in a totally different way:
+为了更容易识别,我们换个方式看:
+
+a spectrogram.
+谱图
+
+In this view of the data, we still have time along the horizontal axis,
+这里横轴还是时间
+
+but now instead of amplitude on the vertical axis,
+但竖轴不是振幅
+
+we plot the magnitude of the different frequencies that make up each sound.
+而是不同频率的振幅
+
+The brighter the color, the louder that frequency component.
+颜色越亮,那个频率的声音越大
+
+This conversion from waveform to frequencies is done with a very cool algorithm called
+这种波形到频率的转换 是用一种很酷的算法做的
+
+a Fast Fourier Transform.
+快速傅立叶变换(FFT)
+
+If you've ever stared at a stereo system's EQ visualizer,
+如果你盯过立体声系统的 EQ 可视化器
+
+it's pretty much the same thing.
+它们差不多是一回事
+
+A spectrogram is plotting that information over time.
+谱图是随着时间变化的
+
+You might have noticed that the signals have a sort of ribbed pattern to them
+你可能注意到,信号有种螺纹图案
+
+that's all the resonances of my vocal tract.
+那是我声道的回声
+
+To make different sounds,
+为了发出不同声音
+
+I squeeze my vocal chords, mouth and tongue into different shapes,
+我要把声带,嘴巴和舌头变成不同形状
+
+which amplifies or dampens different resonances.
+放大或减少不同的共振
+
+We can see this in the signal, with areas that are brighter, and areas that are darker.
+可以看到有些区域更亮,有些更暗
+
+If we work our way up from the bottom, labeling where we see peaks in the spectrum
+如果从底向上看,标出高峰
+
+- what are called formants -
+- 叫"共振峰" -
+
+we can see the two sounds have quite different arrangements.
+可以看到有很大不同
+
+And this is true for all vowel sounds.
+所有元音都是如此
+
+It's exactly this type of information that lets computers recognize spoken vowels,
+这让计算机可以识别元音
+
+and indeed, whole words.
+然后识别出整个词
+
+Let's see a more complicated example,
+让我们看一个更复杂的例子
+
+like when I say: "she.. was.. happy"
+当我说"她..很开心"的时候
+
+We can see our "eee" sound here, and "aaa" sound here.
+可以看到 e 声,和 a 声
+
+We can also see a bunch of other distinctive sounds,
+以及其它不同声音
+
+like the "shh" sound in "she",
+比如 she 中的 shh 声
+
+the "wah" and "sss" in "was", and so on.
+was 中的 wah 和 sss,等等
+
+These sound pieces, that make up words,
+这些构成单词的声音片段
+
+are called phonemes.
+叫"音素"
+
+Speech recognition software knows what all these phonemes look like.
+语音识别软件 知道这些音素
+
+In English, there are roughly forty-four,
+英语有大概44种音素
+
+so it mostly boils down to fancy pattern matching.
+所以本质上变成了音素识别
+
+Then you have to separate words from one another,
+还要把不同的词分开
+
+figure out when sentences begin and end...
+弄清句子的开始和结束点
+
+and ultimately, you end up with speech converted into text,
+最后把语音转成文字
+
+allowing for techniques like we discussed at the beginning of the episode.
+使这集视频开头里讨论的那些技术成为可能
+
+Because people say words in slightly different ways,
+因为口音和发音错误等原因
+
+due to things like accents and mispronunciations,
+人们说单词的方式略有不同
+
+transcription accuracy is greatly improved when combined with a language model,
+所以结合语言模型后,语音转文字的准确度会大大提高
+
+which contains statistics about sequences of words.
+里面有单词顺序的统计信息
+
+For example "she was" is most likely to be followed by an adjective, like "happy".
+比如:"她"后面很可能跟一个形容词,\N 比如"很开心"
+
+It's uncommon for "she was" to be followed immediately by a noun.
+"她"后面很少是名词
+
+So if the speech recognizer was unsure between, "happy" and "harpy",
+如果不确定是 happy 还是 harpy,会选 happy
+
+it'd pick "happy",
+如果不确定是 happy 还是 harpy,会选 happy
+
+since the language model would report that as a more likely choice.
+因为语言模型认为可能性更高
+
+Finally, we need to talk about Speech Synthesis,
+最后, 我们来谈谈 "语音合成"
+
+that is, giving computers the ability to output speech.
+让计算机输出语音
+
+This is very much like speech recognition, but in reverse.
+它很像语音识别,不过反过来
+
+We can take a sentence of text, and break it down into its phonetic components,
+把一段文字,分解成多个声音
+
+and then play those sounds back to back, out of a computer speaker.
+然后播放这些声音
+
+You can hear this chaining of phonemes very clearly with older speech synthesis technologies,
+早期语音合成技术,可以清楚听到音素是拼在一起的
+
+like this 1937, hand-operated machine from Bell Labs.
+比如这个1937年贝尔实验室的手动操作机器
+
+Say, "she saw me" with no expression.
+不带感情的说"她看见了我"
+
+She saw me.
+她看见了我
+
+Now say it in answer to these questions.
+现在回答问题
+
+Who saw you?
+谁看见你了?
+
+She saw me.
+她看见了我
+
+Who did she see?
+她看到了谁?
+
+She saw me.
+她看见了我
+
+Did she see you or hear you?
+她看到你还是听到你说话了?
+
+She saw me.
+她看见了我
+
+By the 1980s, this had improved a lot,
+到了1980年代,技术改进了很多
+
+but that discontinuous and awkward blending of phonemes
+但音素混合依然不够好,产生明显的机器人声
+
+still created that signature, robotic sound.
+但音素混合依然不够好,产生明显的机器人声
+
+Thriller was released in 1983 and sung by Michael Jackson.
+Thriller 于1983年发行,迈克尔·杰克逊 演唱.
+
+Today, synthesized computer voices, like Siri, Cortana and Alexa,
+如今,电脑合成的声音,比如 Siri, Cortana, Alexa
+
+have gotten much better, but they're still not quite human.
+好了很多,但还不够像人
+
+But we're soo soo close,
+但我们非常非常接近了
+
+and it's likely to be a solved problem pretty soon.
+这个问题很快会被解决
+
+Especially because we're now seeing an explosion of voice user interfaces on our phones,
+现在语音界面到处都是,手机里
+
+in our cars and homes, and maybe soon, plugged right into our ears.
+汽车里,家里,也许不久之后耳机也会有.
+
+This ubiquity is creating a positive feedback loop,
+这创造一个正反馈循环
+
+where people are using voice interaction more often,
+人们用语音交互的频率会提高
+
+which in turn, is giving companies like Google, Amazon and Microsoft
+这又给了谷歌,亚马逊,微软等公司
+
+more data to train their systems on.
+更多数据来训练语音系统.
+
+Which is enabling better accuracy,
+提高准确性
+
+which is leading to people using voice more,
+准确度高了,人们更愿意用语音交互
+
+which is enabling even better accuracy and the loop continues!
+越用越好,越好越用
+
+Many predict that speech technologies will become as common a form of interaction
+很多人预测,语音交互会越来越常见
+
+as screens, keyboards, trackpads and other physical input-output devices that we use today.
+就像如今的屏幕,键盘,触控板等设备
+
+That's particularly good news for robots,
+这对机器人发展是个好消息
+
+who don't want to have to walk around with keyboards in order to communicate with humans.
+机器人就不用走来走去时 带个键盘和人类沟通
+
+But, we'll talk more about them next week. See you then.
+下周我们讲机器人. 到时见
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+嗨,我是 Carrie Anne,欢迎收看计算机速成课
+
+Today we’re going to talk about robots.
+今天 我们要讨论机器人
+
+The first image that jumps to your mind is probably a humanoid robot,
+你脑中冒出来的第一个印象估计是 类人机器人
+
+like we usually see in shows or movies.
+经常在电视剧和电影里看到.
+
+Sometimes they’re our friends and colleagues,
+有时候它们是朋友和同事
+
+but more often, they're sinister, apathetic and battle-hardened.
+但更常见的是阴险无情,身经百战
+
+We also tend to think of robots as a technology of the future.
+我们经常把机器人看成未来科技
+
+But the reality is: they’re already here – by the millions
+但事实是:机器人时代已经来临了
+
+– and they're our workmates,
+- 它们是同事
+
+helping us to do things harder, better, faster, and stronger.
+帮我们把困难的工作,做得更快更好
+
+There are many definitions for robots, but in general,
+机器人的定义有很多种,但总的来说,
+
+these are machines capable of carrying out a series of actions automatically
+机器人由计算机控制,可以自动执行一系列动作的机器
+
+guided by computer control.
+机器人由计算机控制,可以自动执行一系列动作的机器
+
+How they look isn’t part of the equation –
+外观并不重要
+
+robots can be industrial arms that spray paint cars,
+可以是给汽车喷漆的机械臂
+
+drones that fly, snake-like medical robots that assist surgeons,
+无人机,或辅助外科医生的蛇状机器人
+
+as well as humanoid robotic assistants.
+以及人形机器人
+
+Although the term "robot" is sometimes
+有时我们叫虚拟人物"机器人"
+
+applied to interactive virtual characters,
+有时我们叫虚拟人物"机器人"
+
+it’s more appropriate to call these "bots", or even better, "agents."
+但叫 bot 甚至 agent 会更合适
+
+That’s because the term "robot" carries a physical connotation
+因为"机器人"的潜在含义是 存在于现实世界中的机器
+
+a machine that lives in and acts on the real world.
+因为"机器人"的潜在含义是 存在于现实世界中的机器
+
+The word "robot" was first used in a 1920 Czech play
+robot (机器人) 一词 \N 首次出现在1920年的一部捷克戏剧
+
+to denote artificial, humanoid characters.
+代表人造的类人角色
+
+The word was derived from "robota", the slavic-language word for a forced laborer,
+robot 源于斯拉夫语词汇 robota \N 代表强迫劳动
+
+indicating peasants in compulsory service in feudal, nineteenth century Europe.
+代表农民在十九世纪 \N 欧洲封建社会的强迫劳动
+
+The play didn’t go too much into technological details.
+戏剧没讲太多技术细节
+
+But, even a century later, it’s still a common portrayal:
+但即使一个世纪后,这种描述依然很普遍:
+
+mass-produced, efficient, tireless creatures that look human-esque,
+机器人都是大规模生产,高效不知疲倦,看起来像人的东西
+
+but are emotionless, indifferent to self-preservation and lack creativity.
+但毫无情感,不会保护自己,没有创造力
+
+The more general idea of self-operating machines
+更广义的自动运行机器,早在1920年代前就有了
+
+goes back even further than the 1920s.
+更广义的自动运行机器,早在1920年代前就有了
+
+Many ancient inventors created mechanical devices that
+很多古代发明家 \N 发明了能自动运行的机械装置
+
+performed functions automatically,
+很多古代发明家 \N 发明了能自动运行的机械装置
+
+like keeping the time and striking bells on the hour.
+比如计时和定时敲钟
+
+There are plenty of examples of automated animal and humanoid figures,
+有很多装置 有动物和人类的形象 \N 能跳舞,唱歌,打鼓等
+
+that would perform dances, sing songs, strike drums and do other physical actions.
+有很多装置 有动物和人类的形象 \N 能跳舞,唱歌,打鼓等
+
+These non-electrical and certainly non-electronic machines were called automatons.
+这些不用电,而且肯定没有电子部件的机器,叫"自动机"
+
+For instance, an early automaton created in 1739
+举个例子 \N 1739年法国人 Jacques de Vaucans 做了个自动机
+
+by the Frenchman Jacques de Vaucanson
+举个例子 \N 1739年法国人 Jacques de Vaucans 做了个自动机
+
+was the Canard Digerateur or Digesting Duck,
+法语叫 Canard Digerateur,翻译过来是 "吃饭鸭"
+
+a machine in the shape of a duck that appeared
+一个像鸭子的机器,能吃东西然后排便
+
+to eat grain and then defecate.
+一个像鸭子的机器,能吃东西然后排便
+
+In 1739 Voltaire wrote,
+伏尔泰在1739年写
+
+"Without the voice of le Maure and Vaucanson’s duck,
+"如果没有吃饭鸭的声音
+
+you would have nothing to remind you of the glory of France."
+还有什么能提醒你法国的荣光呢?"
+
+One of the most infamous examples was the "Mechanical Turk":
+一个名声很臭的例子是"土耳其行棋傀儡"
+
+a chess-playing, humanoid automaton.
+一个能下国际象棋的人形机器人
+
+After construction in 1770, it toured all over Europe,
+在1770年建造完成后,就在欧洲各地展览
+
+wowing audiences with its surprisingly good chess-playing.
+好棋艺惊叹观众
+
+It appeared to be a mechanical, artificial intelligence.
+像某种机械人工智能
+
+Unfortunately, it was a hoax – there was a dainty human stuffed inside the machine.
+不幸的是,这是个骗局 - 机器里有人控制
+
+The first machines controlled by computers emerged in the late 1940s.
+第一台计算机控制的机器,出现在1940年代晚期
+
+These Computer Numerical Control, or CNC machines,
+这些计算机数控的机器,简称 CNC 机器
+
+could run programs that instructed a machine to perform a series of operations.
+可以执行一连串 程序指定的操作
+
+This level of control also enabled the creation of new manufactured goods,
+精细的控制 让我们能生产之前很难做的物品
+
+like milling a complex propellor design out of a block of aluminum
+比如从一整块铝 加工出复杂的螺旋桨
+
+– something that was difficult to do using standard machine tools,
+- 这用普通机械工具很难做到
+
+and with tolerances too small to be done by hand.
+并且误差容忍度很小,无法手工加工
+
+CNC machines were a huge boon to industry,
+CNC 机器大大推进了制造业
+
+not just due to increased capability and precision,
+不仅提高了制造能力和精确度 还降低了生产成本
+
+but also in terms of reducing labor costs by automating human jobs
+不仅提高了制造能力和精确度 还降低了生产成本
+
+– a topic we'll revisit in a later episode.
+- 我们之后会深入讨论这个(第40集)
+
+The first commercial deployment was a programmable industrial robot
+第一个商业贩卖的 可编程工业机器人
+
+called the Unimate, sold to General Motors in 1960
+叫 Unimate,于1960年卖给通用汽车公司
+
+to lift hot pieces of metal from a die casting machine and stack them.
+它可以把压铸机做出来的热金属成品提起来,然后堆起来
+
+This was the start of the robotics industry.
+机器人行业由此开始
+
+Soon, robots were stacking pallets, welding parts, painting cars and much more.
+很快,机器人开始堆叠货盘,焊接,给汽车喷漆等等
+
+For simple motions – like a robotic gripper that moves back and forth on a track
+对于简单运动 - 比如机器爪子 在轨道上来回移动
+
+a robot can be instructed to move to a particular position,
+可以指示它移动到特定位置
+
+and it'll keep moving in that direction until the desired position is reached
+它会一直朝那个方向移动,直到到达 \N 然后停下来
+
+at which point it’ll stop.
+它会一直朝那个方向移动,直到到达 \N 然后停下来
+
+This behavior can be achieved through a simple control loop.
+这种行为 可以用简单控制回路做
+
+First, sense the robot position.
+首先,判断机器人的位置
+
+Are we there yet?
+我们到了吗?
+
+Nope.
+没有
+
+So keep moving.
+那么继续前进
+
+Now sense position again.
+再次判断位置
+
+Are we there yet?
+我们到了吗?
+
+Nope, so keep moving.
+没有,所以继续前进
+
+Are we there yet?
+我们到了吗?
+
+Yes!
+是的!
+
+So we can stop moving, and also please be quiet!
+现在可以停下来了,别问了!
+
+Because we’re trying to minimize the distance between
+因为我们在不断缩小 当前位置和目标位置的距离
+
+the sensed position and the desired position,
+因为我们在不断缩小 当前位置和目标位置的距离
+
+this control loop is, more specifically, a negative feedback loop.
+这个控制回路 更准确的叫"负反馈回路"
+
+A negative feedback control loop has three key pieces.
+负反馈回路 有三个重要部分
+
+There’s a sensor, that measures things in the real world,
+首先是一个传感器,可以测量现实中的东西
+
+like water pressure, motor position, air temperature,
+比如水压,马达位置,气温,
+
+or whatever you’re trying to control.
+或任何你想控制的东西
+
+From this measurement, we calculate how far we are from
+根据传感器,计算和目标值相差多大
+
+where we want to be – the error.
+得到一个"错误"
+
+The error is then interpreted by a controller,
+然后"控制器"会处理这个"错误"
+
+which decides how to instruct the system to minimize that error.
+决定怎么减小错误
+
+Then, the system acts on the world though pumps, motors,
+然后用泵,电机,加热元件,或其他物理组件来做出动作
+
+heating elements, and other physical actuators.
+然后用泵,电机,加热元件,或其他物理组件来做出动作
+
+In tightly controlled environments, simple control loops, like this, work OK.
+在严格控制的环境中,这种简单控制回路也够用了
+
+But in many real world applications, things are a tad more complicated.
+但在很多现实应用中,情况复杂得多
+
+Imagine that our gripper is really heavy, and even when the control loop says to stop,
+假设爪子很重,哪怕控制回路叫停了
+
+momentum causes the gripper to overshoot the desired position.
+惯性让爪子超过了预期位置
+
+That would cause the control loop to take over again,
+然后控制回路又开始运行
+
+this time backing the gripper up.
+叫爪子移动回去
+
+A badly tuned control loop might overshoot and overshoot and overshoot,
+一个糟糕的控制回路 可能会让爪子不断来回移动
+
+and maybe even wobble forever.
+甚至永远循环
+
+To make matters worse, in real world settings,
+更糟糕的是,现实世界中
+
+there are typically external and variable forces acting on a robot,
+机器人会受到各种外力影响
+
+like friction, wind and items of different weight.
+比如摩擦力,风,等等
+
+To handle this gracefully, more sophisticated control logic is needed.
+为了处理这些外力,我们需要更复杂的控制逻辑
+
+A widely used control-loop, feedback mechanism is a
+一个使用广泛的机制,有控制回路和反馈机制。
+
+proportional–integral–derivative controller.
+叫 "比例-积分-微分控制器"
+
+That’s a bit of a mouthful, so people call them PID controllers.
+这个有点绕口,所以一般简称 "PID控制器"
+
+These used to be mechanical devices, but now it’s all done in software.
+它以前是机械设备,现在全是纯软件了
+
+Let’s imagine a robot that delivers coffee.
+想象有一个机器人,端咖啡给客人
+
+Its goal is to travel between customers at two meters per second,
+设计目标是 每秒两米的速度在顾客间穿行
+
+which has been determined to be the ideal speed
+这个速度是理想速度
+
+that’s both safe and expedient.
+安全又合适
+
+Of course, the environment doesn’t always cooperate.
+当然,环境是会变化的
+
+Sometimes there’s wind, and sometimes there's uphills and downhills
+有时候有风,有时候有上坡下坡
+
+and all sorts of things that affect the speed of the robot.
+以及其他影响机器人速度的因素
+
+So, it’s going to have to increase and decrease power
+所以,给马达的动力要加大或减少,以保持目标速度
+
+to its motors to maintain the desired speed.
+所以,给马达的动力要加大或减少,以保持目标速度
+
+Using the robot's speed sensor, we can keep track of its
+用机器人的速度传感器,我们可以
+
+actual speed and plot that alongside its desired speed.
+把当前速度和目标速度画张图
+
+PID controllers calculate three values from this data.
+PID 控制器根据这些数据,算出3个值
+
+First is the proportional value, which is the difference between
+首先是"比例值",就是"实际值"和"理想值"差多少
+
+the desired value and the actual value
+首先是"比例值",就是"实际值"和"理想值"差多少
+
+at the most recent instant in time or the present.
+"实际值"可能有一定滞后,或者是实时的。
+
+This is what our simpler control loop used before.
+之前的简单控制回路,用的就是这个值
+
+The bigger the gap between actual and desired,
+"实际值"和"理想值"的差距越大,
+
+the harder you'll push towards your target.
+就越用力
+
+In other words, it’s proportional control.
+换句话说,它是"比例控制"的
+
+Next, the integral value is computed,
+接下来,算"积分值"
+
+which is the sum of error over a window of time,
+就是一段时间内 误差的总和
+
+like the last few seconds.
+比如最近几秒
+
+This look back helps compensate for steady state errors,
+帮助弥补误差
+
+resulting from things like motoring up a long hill.
+比如上坡时可能就会产生误差
+
+If this value is large, it means proportional control is not enough,
+如果这个值很大,说明比例控制不够,
+
+and we have to push harder still.
+要继续用力前进
+
+Finally, there’s the derivative value,
+最后有"导数值"
+
+which is the rate of change between the desired and actual values.
+是期望值与实际值之间的变化率
+
+This helps account for possible future error,
+有助于解决 未来可能出现的错误,
+
+and is sometimes called "anticipatory control".
+有时也叫"预期控制"
+
+For example, if you are screaming in towards your goal too fast,
+比如前进的太快
+
+you'll need to ease up a little to prevent overshoot.
+要稍微放松一点,避免冲过头
+
+These three values are summed together, with different relative weights,
+这三个值会一起使用,它们有不同权重
+
+to produce a controller output that’s passed to the system.
+然后用来控制系统
+
+PID controllers are everywhere,
+PID 控制器到处都是
+
+from the cruise control in your car,
+比如汽车里的巡航控制
+
+to drones that automatically adjust their rotor speeds to maintain level flight,
+无人机调整螺旋桨速度,以保持水平
+
+as well as more exotic robots,
+以及一些更奇怪的机器人,
+
+like this one that balances on a ball to move around.
+比如这个用球来平衡和移动的机器人
+
+Advanced robots often require many control loops running in parallel,
+更高级的机器人一般需要多个控制回路同时运行
+
+working together, managing everything from robot balance to limb position.
+来保持机器人平衡,调整肢体位置,等等
+
+As we’ve discussed, control loops are responsible for
+之前说过,控制回路负责
+
+getting robot attributes like location to desired values.
+把机器人的属性(比如当前位置)变成期望值
+
+So, you may be wondering where these values come from.
+你可能好奇这些值 是哪里来的
+
+This is the responsibility of higher-level robot software,
+这是更高层软件的责任
+
+which plans and executes robot actions,
+软件负责做出计划 并让机器人执行动作,
+
+like plotting a path around sensed obstacles, or breaking down physical tasks,
+比如制定一条路线来绕过障碍物,或者把任务分成一步步
+
+like picking up a ball, into simple, sequential motions.
+比如把拿起一个球,分解成一个个简单连续动作
+
+Using these techniques, robots have racked up some impressive achievements
+用这些技术,机器人已经取得不少令人印象深刻的成就
+
+– they've been to the deepest depths of Earth's oceans
+- 它们潜到了海洋最深处
+
+and roved around on Mars for over a decade.
+在火星上跑了十几年
+
+But interestingly, lots of problems that are trivial for many humans
+但有趣的是,许多对人类来说很简单的任务
+
+have turned out to be devilishly difficult for robots:
+对机器人很困难:
+
+like walking on two legs, opening a door, picking up objects
+比如两条腿走路,开门,拿东西时不要捏碎了
+
+without crushing them, putting on a t-shirt, or petting a dog.
+或是穿T恤,或是摸狗
+
+These are tasks you may be able to do without thinking,
+这些你可能想都不用想
+
+but a supercomputer-powered robot fails at spectacularly.
+但有超级计算机能力的机器人却做不到
+
+These sorts of tasks are all active areas of robotics research.
+机器人研究领域在全力解决这些问题
+
+Artificial intelligence techniques,
+我们前几集聊过的 人工智能
+
+which we discussed a few episodes ago, are perhaps
+我们前几集聊过的 人工智能
+
+the most promising avenue to overcome these challenges.
+最有可能解决这些问题
+
+For example, Google has been running an experiment
+例如,谷歌在进行一项实验
+
+with a series of robotic arms that spend their days
+让一堆机器人手臂把各种东西
+
+moving miscellaneous objects from one box to another, learning from trial and error.
+从一个盒子拿到另一个盒子,不断试错学习
+
+After thousands of hours of practice, the robots had cut their error rate in half.
+经过数千小时的练习,机器人把错误率降低了一半
+
+Of course, unlike humans, robots can run twenty-four hours a day
+不像人类,机器人可以24小时全天运行
+
+and practice with many arms at the same time.
+而且多个手臂同时练习
+
+So, it may just be a matter of time until they become adept at grasping things.
+所以机器人擅长抓东西只是时间问题
+
+But, for the time being, toddlers can out-grasp them.
+但现在,小婴儿都比机器人更会抓东西
+
+One of the biggest and most visible robotic breakthrough
+近年最大的突破之一
+
+in recent years has been self-driving, autonomous cars.
+是无人驾驶汽车
+
+If you think about it, cars don’t have too many system inputs
+如果你仔细想想,汽车没几个输入
+
+– you can speed up or slow down, and you can steer left or right.
+- 只是加速减速,左转右转
+
+The tough part is sensing lanes, reading signs,
+难的问题是 判断车道,理解路标
+
+and anticipating and navigating traffic, pedestrians,
+预测车流,车流中穿行,留心行人和骑自行车的。
+
+bicyclists, and a whole host of obstacles.
+以及各种障碍
+
+In addition to being studded with proximity sensors,
+车上布满了传感器
+
+these robotic vehicles heavily rely
+无人驾驶汽车非常依赖
+
+on Computer Vision algorithms, which we discussed in Episode 35.
+计算机视觉算法,我们在第35集讨论过
+
+We’re also seeing the emergence of very primitive androids
+现在也开始出现类人机器人
+
+– robots that look and act like humans.
+- 外貌和行为像人类的机器人
+
+Arguably, we’re not close on either of those goals,
+不过现在两个目标都没接近(外貌和行为)
+
+as they tend to look pretty weird and act even weirder.
+因为看起来一般怪怪的,行为也怪怪的.
+
+At least we’ll always have Westworld.
+但至少有《西部世界》可以看看
+
+But anyway, these remain a tantalizing goal for roboticists
+无论如何,对机器人研究者来说,把各种技术结合起来
+
+combine many computer science topics
+比如人工智能,计算机视觉和自然语言处理
+
+we’ve touched on over the last few episodes, like artificial intelligence,
+比如人工智能,计算机视觉和自然语言处理
+
+computer vision and natural language processing.
+来让机器人越来越像人,是个诱人的目标
+
+As for why humans are so fascinated by
+至于人类为什么如此着迷 做出和我们一样的机器人
+
+creating artificial embodiments of ourselves.
+至于人类为什么如此着迷 做出和我们一样的机器人
+
+you'll have to go to Crash Course Philosophy for that.
+你得去看《哲学速成课》
+
+And for the foreseeable future,
+在未来好一段时间里
+
+realistic androids will continue to be the stuff of science fiction.
+和人类一样的机器人 依然只能存在科幻小说里。
+
+Militaries also have a great interest in robots –
+军队也对机器人很有兴趣 -
+
+they're not only replaceable, but can surpass humans
+因为机器人可以替换,
+
+in attributes like strength, endurance, attention, and accuracy.
+而且力量,耐力,注意力,准确性可以远超人类
+
+Bomb disposal robots and reconnaissance drones are fairly common today.
+拆弹机器人和无人侦察机如今很常见
+
+But fully autonomous, armed-to-the-teeth robots are slowly appearing,
+但完全自主决定,全副武装的机器人也在慢慢出现
+
+like the Samsung SGR-A1 sentry gun deployed by South Korea.
+比如韩国的三星 SGR-A1 哨兵炮
+
+Robots with the intelligence and capability to take human lives
+有智力并且可以杀人的机器人
+
+are called lethal autonomous weapons.
+叫 "致命自主武器"
+
+And they’re widely considered a complex and thorny issue.
+这种武器是复杂又棘手的问题
+
+Without doubt, these systems could save soldiers lives
+毫无疑问,它们可以把士兵从战场带离 挽救生命
+
+by taking them off the battlefield and out of harm’s way.
+毫无疑问,它们可以把士兵从战场带离 挽救生命
+
+It might even discourage war all together.
+甚至阻止战争的发生
+
+Though it’s worth noting that people said the same thing
+值得注意的是 人们对炸药和核弹也说过一样的话
+
+about dynamite and nuclear weapons.
+值得注意的是 人们对炸药和核弹也说过一样的话
+
+On the flip side, we might be creating ruthlessly
+另一方面,我们可能会不小心创造出 \N 无情又高效的杀人机器
+
+efficient killing machines that don't apply human judgment
+没有人类般的判断力和同情心
+
+or compassion to complex situations.
+没有人类般的判断力和同情心
+
+And the fog of war is about as complex and murky as they come.
+战争的硝烟会变得更加黑暗和复杂
+
+These robots would be taking orders and executing them
+机器人会接受命令并高效执行
+
+as efficiently as they can and sometimes
+机器人会接受命令并高效执行
+
+human orders turn out to be really bad.
+但有时人类的命令是错的
+
+This debate is going to continue for a long time,
+这场辩论会持续很长时间,
+
+and pundits on both sides will grow louder as robotic technology improves.
+而且随着机器人技术的进步,两边的辩论会越来越激烈
+
+It’s also an old debate –
+这也是个老话题了
+
+the danger was obvious to science fiction writer Isaac Asimov,
+科幻作家 艾萨克·阿西莫夫 早预见了这种危险
+
+who introduced a fictional "Three Laws of Robotics" in his 1942 short story "Runaround".
+他在1942年短篇小说 Runaround 中写了"机器人三定律"
+
+And then, later he added a zeroth rule.
+之后又加了"定律0"
+
+In short, it’s a code of conduct or moral compass for robots –
+简单说 这些定律指导机器人的行为准则 或者说道德指南
+
+guiding them to do no harm, especially to humans.
+让机器人不要伤害,特别是不要伤害人类
+
+It’s pretty inadequate for practical application and it leaves plenty of room for equivocation.
+这些规则实践起来相当不足,并且有很多模糊的地方
+
+But still, Asimov’s laws inspired a ton of science fiction and academic discussion,
+但阿西莫夫三定律 激发了大量科幻小说讨论和学术讨论,
+
+and today there are whole conferences on robot ethics.
+如今有专门讨论机器人伦理的会议
+
+Importantly, Asimov crafted his fictional rules
+重要的是,阿西莫夫写这些虚构规则
+
+as a way to push back on "Robot as a Menace" memes
+是为了反对 "机器人都很邪恶" 这种常见描述
+
+common in fiction from his childhood.
+他童年读的小说里,这样的场景很常见
+
+These were stories where robots went off the rails,
+机器人脱离控制,然后伤害甚至毁灭创造者
+
+harming or even destroying their creators in the process.
+机器人脱离控制,然后伤害甚至毁灭创造者
+
+Asimov, on the other hand, envisioned robots as useful,
+阿西莫夫认为 机器人有用,可靠,甚至可以让人喜爱
+
+reliable, and even loveable machines.
+阿西莫夫认为 机器人有用,可靠,甚至可以让人喜爱
+
+And it’s this duality I want to leave you thinking about today.
+我想让你思考这种两面性
+
+Like many of the technologies we’ve discussed throughout this series,
+我们讨论过的许多技术,有好的一面也有坏的一面
+
+there are benevolent and malicious uses.
+我们讨论过的许多技术,有好的一面也有坏的一面
+
+Our job is to carefully reflect on computing's potential and peril,
+我们要认真思考计算机的潜力和危害
+
+and wield our inventive talents to improve the state of the world.
+来改善这个世界
+
+And robots are one of the most potent reminders of this responsibility.
+而机器人最能提醒我们这一点了
+
+I’ll see you next week.
+我 们 下 周 见
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+So, over the course of this series,
+在这个系列中,
+
+we’ve focused almost exclusively on computers –
+我们聊的话题几乎全是计算机-比如电路和算法
+
+the circuits and algorithms that make them tick.
+我们聊的话题几乎全是计算机-比如电路和算法
+
+Because...this is Crash Course Computer Science.
+毕竟这是*计算机*速成课
+
+But ultimately, computers are tools employed by people.
+但归根结底,计算机只是给人用的工具
+
+And humans are… well… messy.
+而人类有点... 乱
+
+We haven’t been designed by human engineers from the ground up
+人类不是被工程师设计的,没有具体性能规格
+
+with known performance specifications.
+人类不是被工程师设计的,没有具体性能规格
+
+We can be logical one moment and irrational the next.
+我们一会儿是理性的,一会儿是不理性的
+
+Have you ever gotten angry at your navigation system? Surfed wikipedia aimlessly?
+你有没有对导航生过气?或是漫无目的的刷维基百科?
+
+Begged your internet browser to load faster?
+求浏览器加载快点?
+
+Nicknamed your roomba?
+给扫地机器人取名?
+
+These behaviors are quintessentially human!
+这些是人类行为!
+
+To build computer systems that are useful, usable and enjoyable,
+为了做出使用愉快的计算机
+
+we need to understand the strengths and weaknesses of both computers and humans.
+我们需要了解计算机和人类的优缺点
+
+And for this reason, when good system designers are creating software,
+优秀的系统设计师在创造软件时
+
+they employ social, cognitive, behavioral, and perceptual psychology principles.
+会运用社会心理学,认知心理学,\N 行为心理学,感知心理学的原理
+
+No doubt you’ve encountered a physical or computer interface
+你肯定见过难用的物理界面/计算机界面 \N 阻碍你做事
+
+that was frustrating to use, impeding your progress.
+你肯定见过难用的物理界面/计算机界面 \N 阻碍你做事
+
+Maybe it was so badly designed that you couldn’t figure it out and just gave up.
+甚至糟糕到放弃使用
+
+That interface had poor usability.
+那个界面的"易用度"很差
+
+Usability is the degree to which a human-made artifact – like software
+"易用度"指的是人造物体,比如软件 \N 达到目的的效率有多高
+
+– can be used to achieve an objective effectively and efficiently.
+"易用度"指的是人造物体,比如软件 \N 达到目的的效率有多高
+
+To facilitate human work, we need to understand humans
+为了帮助人类工作,我们需要了解人类 \N - 怎么看,思考,反应和互动
+
+- from how they see and think, to how they react and interact.
+为了帮助人类工作,我们需要了解人类 \N - 怎么看,思考,反应和互动
+
+For instance, the human visual system has been well studied by Psychologists.
+举个例子,心理学家已经对 \N 人类的视觉系统做了全面的研究
+
+Like, we know that people are good at ordering intensities of colors.
+我们知道人类擅长给颜色强度排序
+
+Here are three.
+这里有三个颜色
+
+Can you arrange these from lightest to darkest?
+你能从浅色到深色排序吗?
+
+You probably don’t have to think too much about it.
+你可以轻易做到
+
+Because of this innate ability, color intensity is a great choice
+所以颜色强度很适合显示连续值
+
+for displaying data with continuous values.
+所以颜色强度很适合显示连续值
+
+On the other hand, humans are terrible at ordering colors.
+另一方面,人类很不擅长排序颜色
+
+Here’s another example for you to put in order.
+这是另一个例子
+
+is orange before blue, or after blue?
+把橙色放到蓝色前面还是后面?绿色放哪里?
+
+Where does green go?
+把橙色放到蓝色前面还是后面?绿色放哪里?
+
+You might be thinking we could order this by wavelength of light,
+你可能想通过光的波长排序 \N 就像彩虹一样,但这样太累了
+
+like a rainbow, but that’s a lot more to think about.
+你可能想通过光的波长排序 \N 就像彩虹一样,但这样太累了
+
+Most people are going to be much slower and error-prone at ordering.
+大部分人会很慢而且容易出错
+
+Because of this innate ineptitude of your visual system,
+由于视觉系统天生是这样
+
+displaying continuous data using colors can be a disastrous design choice.
+所以用不同颜色显示连续性数据,是个糟糕的选择
+
+You’ll find yourself constantly referring back to a color legend to compare items.
+你得经常看表格来对比数据
+
+However, colors are perfect for when the data is discrete with no ordering,
+然而,如果数据没有顺序,用不同颜色就很合适
+
+like categorical data.
+比如分类数据
+
+This might seem obvious, but you’d be amazed at
+也许这些看起来很明显 \N 但你会惊讶有多少设计把这些基本事情搞错
+
+how many interfaces get basic things like this wrong.
+也许这些看起来很明显 \N 但你会惊讶有多少设计把这些基本事情搞错
+
+Beyond visual perception, understanding human cognition helps us
+除了视觉 \N 理解人类的认知系统能帮我们设计更好的界面
+
+design interfaces that align with how the mind works.
+除了视觉 \N 理解人类的认知系统能帮我们设计更好的界面
+
+Like, humans can read, remember and process information more effectively
+比如,如果信息分块了 \N 会更容易读,更容易记
+
+when it's chunked–that is, when items are put together into small, meaningful groups.
+分块是指把信息分成更小,更有意义的块
+
+Humans can generally juggle seven items, plus-or-minus two, in short-term memory.
+人类的短期记忆能记住5到9个东西
+
+To be conservative, we typically see groupings of five or less.
+保守一点,分组一般是5个或更少
+
+That’s why telephone numbers are broken into chunks, like 317, 555, 3897.
+所以电话号码一般分块,比如 317-555-3897
+
+Instead of being ten individual digits that we’d likely forget, it’s three chunks,
+10个连续数可能会忘,分成3块更好记
+
+which we can handle better.
+10个连续数可能会忘,分成3块更好记
+
+From a computer's standpoint, this needlessly takes more time and space,
+从计算机的角度来看,分块更费时费空间
+
+so it's less efficient.
+效率更低
+
+But, it’s way more efficient for us humans –
+但这对人类更有效率
+
+a tradeoff we almost always make in our favor,
+- 碰到这种抉择时,我们总是以人类优先
+
+since we’re the ones running the show...for now.
+现在我们还是老大.. 暂时啦
+
+Chunking has been applied to computer interfaces for things
+界面设计用了分块 \N 比如下拉菜单 和带按钮的菜单栏
+
+like drop-down menu items and menu bars with buttons.
+界面设计用了分块 \N 比如下拉菜单 和带按钮的菜单栏
+
+It’d be more efficient for computers to just pack all those together, edge to edge
+对电脑来说,全部挤在一起更有效率
+
+– it’s wasted memory and screen real estate.
+分块浪费内存 浪费屏幕
+
+But designing interfaces in this way makes them much easier
+但这样设计更容易扫视,记住和访问
+
+to visually scan, remember and access.
+但这样设计更容易扫视,记住和访问
+
+Another central concept used in interface design is affordances.
+界面设计中另一个重点概念是"直观功能"
+
+According to Don Norman, who popularized the term in computing,
+Don Norman 让这个词在计算机界流行起来,根据他的说法
+
+"affordances provide strong clues to the operations of things.
+"直观功能 为如何操作物体提供线索
+
+Plates are for pushing.
+平板用来推
+
+Knobs are for turning.
+旋钮用来转
+
+Slots are for inserting things into.
+插槽用来插东西
+
+[...] When affordances are taken advantage of, the user knows what to do just by looking:
+[...]直观功能做的好,用户只需要看一眼就知道怎么做:
+
+no picture, label, or instruction needed."
+不需要图片,标签或指南来说明"
+
+If you’ve ever tried to pull a door handle, only to realize that you have to push it open,
+如果你拉过门把手打不开,然后意识到要推开才对
+
+you’ve discovered a broken affordance.
+那么你发现了一个坏掉的"直观功能"
+
+On the other hand, a door plate is a better design
+平板是更好的设计
+
+because it only gives you the option to push.
+因为只能推开
+
+Doors are pretty straightforward – if you need to put written instructions on them,
+门是简单的东西,如果你要贴指示让人们明白怎么用.
+
+you should probably go back to the drawing board.
+那么也许你应该重新设计
+
+Affordances are used extensively in graphical user interfaces,
+"直观功能"广泛用于图形界面
+
+which we discussed in episode 26.
+我们在第26集讨论过
+
+It’s one of the reasons why computers became so much easier to use than with command lines.
+这是图形界面比命令行更容易用的原因之一
+
+You don’t have to guess what things on-screen are clickable, because they look like buttons.
+你不用猜测屏幕上什么东西是可点的,\N 可点的会看起来像按钮
+
+They pop out, just waiting for you to press them!
+他们弹出来,只是等着你压他们!
+
+One of my favorite affordances, which suggests to users that an on-screen element is draggable,
+我最喜欢的"直观功能"之一,是向用户表明元素是可拖动的
+
+is knurling – that texture added to objects
+"滚花" - 一种视觉纹理
+
+to improve grip and show you where to best grab them.
+告诉用户哪里可以拖动
+
+This idea and pattern was borrowed from real world physical tools.
+这个点子来自现实世界中的工具
+
+Related to the concept of affordances is the psychology of recognition vs recall.
+和"直观功能"相关的一个心理学概念是 "认出与回想"
+
+You know this effect well from tests –
+如果你考过试,肯定感受过这个
+
+it's why multiple choice questions are easier than fill-in-the-blank ones.
+这就是为什么选择题比填空题容易
+
+In general, human memory is much better when it’s triggered by a sensory cue,
+一般来说,用感觉来触发记忆会容易得多
+
+like a word, picture or sound.
+比如文字,图片或声音
+
+That’s why interfaces use icons – pictorial representations of functions
+所以我们用图标代表功能
+
+– like a trash can for where files go to be deleted.
+- 比如"垃圾桶"图标 代表里面放着被删除的文件
+
+We don’t have to recall what that icon does, we just have to recognise the icon.
+我们不用去回想图标的功能是什么,只要能认出来就行了
+
+This was also a huge improvement over command line interfaces,
+比命令行好得多
+
+where you had to rely on your memory for what commands to use.
+命令行得依靠记忆来输命令
+
+Do I have to type "delete", or "remove", or... "trash", or… shoot, it could be anything!
+到底是输入"删除""移除""垃圾"还是"射出"?\N 可能是任何命令!
+
+It’s actually "rm" in linux,
+顺带一说,在 Linux 里删除文件的命令是 "rm"
+
+but anyway, making everything easy to discover and learn sometimes means slow to access,
+回到正题,\N 让所有菜单选项好找好记,有时候意味着用的时候会慢一些
+
+which conflicts with another psychology concept: expertise.
+这与另一个心理学概念冲突:"专业知识"
+
+As you gain experience with interfaces, you get faster,
+当你用界面熟悉之后,速度会更快一些
+
+building mental models of how to do things efficiently.
+建立如何高效完成事情的"心理模型"
+
+So, good interfaces should offer multiple paths to accomplish goals.
+所以 好的界面应该提供多种方法来实现目标
+
+A great example of this is copy and paste, which can be found in the edit dropdown menu
+一个好例子是复制粘贴,可以在"编辑"的下拉菜单中找到
+
+of word processors, and is also triggered with keyboard shortcuts.
+也可以用快捷键
+
+One approach caters to novices, while the other caters to experts, slowing down neither.
+一种适合新手,一种适合专家,两者都不耽误
+
+So, you can have your cake and eat it too!
+鱼和熊掌兼得!
+
+In addition to making humans more efficient,
+除了让人类做事更高效,
+
+we'd also like computers to be emotionally intelligent –
+我们也希望电脑能有一点情商
+
+adapting their behavior to respond appropriately
+能根据用户的状态做出合适地反应
+
+to their users' emotional state – also called affect.
+能根据用户的状态做出合适地反应
+
+That could make experiences more empathetic, enjoyable, or even delightful.
+让使用电脑更加愉快
+
+This vision was articulated by Rosalind Picard in her 1995 paper on Affective Computing,
+Rosalind Picard 在 1995 年关于"情感计算"的论文中,阐述了这一愿景
+
+which kickstarted an interdisciplinary field combining aspects
+这篇论文开创了心理学,社会科学和计算机科学的跨学科结合
+
+of psychology, social and computer sciences.
+这篇论文开创了心理学,社会科学和计算机科学的跨学科结合
+
+It spurred work on computing systems that could recognize,
+促进了让计算机理解人类情感的研究
+
+interpret, simulate and alter human affect.
+促进了让计算机理解人类情感的研究
+
+This was a huge deal, because we know emotion influences cognition and perception
+这很重要,因为情绪会影响日常活动
+
+in everyday tasks like learning, communication, and decision making.
+比如学习,沟通和决策
+
+Affect-aware systems use sensors, sometimes worn, that capture things like speech and
+情感系统会用传感器,录声音,
+
+video of the face, as well as biometrics, like sweatiness and heart rate.
+录像(你的脸)以及生物指标,比如出汗和心率
+
+This multimodal sensor data is used in conjunction with computational models that represent how
+得到的数据和计算模型结合使用
+
+people develop and express affective states, like happiness and frustration,
+模型会写明人类如何表达情感,怎么是快乐 怎么是沮丧
+
+and social states, like friendship and trust.
+以及社交状态,比如友谊和信任
+
+These models estimate the likelihood of a user being in a particular state,
+模型会估算用户的情绪
+
+and figure out how to best respond to that state,
+以及怎样以最好的回应用户
+
+in order to achieve the goals of the system.
+以达到目标
+
+This might be to calm the user down, build trust, or help them get their homework done.
+比如让用户冷静下来,建立信任,或帮忙完成作业
+
+A study, looking at user affect, was conducted by Facebook in 2012.
+Facebook 在 2012 年进行了一项"影响用户"的研究
+
+For one week, data scientists altered the content
+数据科学家在一个星期内
+
+on hundreds of thousands of users' feeds.
+修改了很多用户 时间线上显示的内容
+
+Some people were shown more items with positive content,
+有些人会看到更多积极向上的内容
+
+while others were presented with more negative content.
+有些人会看到更多负面消极的内容
+
+The researchers analyzed people's posts during that week,
+研究人员分析了那一周内人们的发帖
+
+and found that users who were shown more positive content,
+发现看到积极向上内容的用户,
+
+tended to also post more positive content.
+发的帖子往往更正面
+
+On the other hand, users who saw more negative content, tended to have more negative posts.
+另一方面,看到负面内容的用户,发的内容也更负面
+
+Clearly, what Facebook and other services show you
+显然,Facebook和其他网站向你展示的内容
+
+can absolutely have an affect on you.
+绝对会对你有影响
+
+As gatekeepers of content, that’s a huge opportunity and responsibility.
+作为信息的守门人,这是巨大的机会 同时也是责任
+
+Which is why this study ended up being pretty controversial.
+研究结果相当有争议性.
+
+Also, it raises some interesting questions about
+而且它还产生了一个有趣的问题:
+
+how computer programs should respond to human communication.
+计算机程序如何回应人类
+
+If the user is being negative, maybe the computer shouldn’t be
+如果用户的情绪比较负面,也许电脑不应该
+
+annoying by responding in a cheery, upbeat manner.
+以一种烦人的 "你要振作起来呀" 的态度回答问题.
+
+Or, maybe the computer should attempt to evoke a positive response,
+或者,也许电脑应该试着积极正面的回应用户
+
+even if it's a bit awkward.
+即使这有点尴尬.
+
+The "correct" behavior is very much an open research question.
+什么行为是"正确的",是个开放性的研究问题
+
+Speaking of Facebook, it’s a great example of computer-mediated communication, or CMC,
+既然说到Facebook,\N 这是一个"以计算机为媒介沟通"的好例子,简称 "CMC"
+
+another large field of research.
+也是一个很大的研究领域
+
+This includes synchronous communication – like video calls, where all participants are online
+这包括同步通信 - 所有参与者同时在线进行视频通话
+
+simultaneously – as well as asynchronous communication – like tweets, emails, and
+以及异步通信 - 比如推特,邮件,
+
+text messages, where people respond whenever they can or want.
+短信,人们可以随时随地回复信息
+
+Researchers study things like the use of emoticons, rules such as turn-taking,
+研究人员还研究用户怎么用表情包,怎么轮换发言,
+
+and language used in different communication channels.
+以及用不同沟通渠道时,用词有什么区别.
+
+One interesting finding is that people exhibit higher levels of self-disclosure
+一个有趣的发现是,比起面对面沟通,
+
+– that is, reveal personal information –in computer-mediated conversations,
+人们更愿意在网上透露自己的信息
+
+as opposed to face-to-face interactions.
+人们更愿意在网上透露自己的信息
+
+So if you want to build a system that knows how many hours a user truly spent
+所以如果想知道用户 \N 真正花了多少小时看"大英烘培大赛"(电视节目)
+
+watching The Great British Bakeoff, it might be better to build a chatbot
+比起做个带脸的虚拟助理 \N 做 聊天机器人 是个更好的选择
+
+than a virtual agent with a face.
+比起做个带脸的虚拟助理 \N 做 聊天机器人 是个更好的选择
+
+Psychology research has also demonstrated that eye gaze is
+心理学研究也表明,如果想说服,讲课,或引起注意 \N 眼神注视非常重要
+
+extremely important in persuading, teaching and getting people's attention.
+心理学研究也表明,如果想说服,讲课,或引起注意 \N 眼神注视非常重要
+
+Looking at others while talking is called mutual gaze.
+在谈话时看着别人叫 相互凝视
+
+This has been shown to boost engagement and help achieve the goals of a conversation,
+这被证明可以促进参与感 帮助实现谈话目标,
+
+whether that’s learning, making a friend, or closing a business deal.
+不管是学习,交朋友,还是谈生意
+
+In settings like a videotaped lecture, the instructor rarely, if ever, looks into the
+在录像讲座中,老师很少直视相机 \N 一般是看在场学生
+
+camera, and instead generally looks at the students who are physically present.
+在录像讲座中,老师很少直视相机 \N 一般是看在场学生
+
+That’s ok for them, but it means people who
+对他们没问题,但这会让在线看视频的人 没什么参与感
+
+watch the lectures online have reduced engagement.
+对他们没问题,但这会让在线看视频的人 没什么参与感
+
+In response, researchers have developed computer vision
+为此,研究人员开发了计算机视觉和图形软件 \N 来纠正头部和眼睛
+
+and graphics software that can warp the head and eyes,
+为此,研究人员开发了计算机视觉和图形软件 \N 来纠正头部和眼睛
+
+making it appear as though the instructor is looking into the camera
+视频时会觉得对方在直视摄像头,看着他们
+
+– right at the remote viewer.
+视频时会觉得对方在直视摄像头,看着他们
+
+This technique is called augmented gaze.
+这叫"增强凝视"
+
+Similar techniques have also been applied to video conference calls, to correct for
+类似技术也用于视频会议
+
+the placement of webcams, which are almost always located above screens.
+纠正摄像头位置,因为摄像头几乎总在屏幕上方
+
+Since you’re typically looking at the video of your conversation partner,
+因为你一般会盯着屏幕上的另一方 \N 而不是盯着摄像头
+
+rather than directly into the webcam,
+因为你一般会盯着屏幕上的另一方 \N 而不是盯着摄像头
+
+you'll always appear to them as though you're looking downwards –
+所以视频里看起来像在向下看
+
+breaking mutual gaze – which can create all kinds of
+没有相互凝视 - 这会导致各种不幸的副作用,比如权力不平衡
+
+unfortunate social side effects, like a power imbalance.
+没有相互凝视 - 这会导致各种不幸的副作用,比如权力不平衡
+
+Fortunately, this can be corrected digitally, and appear to participants
+幸运的是 可以用软件修正
+
+as though you're lovingly gazing into their eyes.
+看起来像在凝视着对方的眼睛
+
+Humans also love anthropomorphizing objects, and computers are no exception,
+人类也喜欢"拟人化"的物体,对计算机也不例外
+
+especially if they move, like our Robots from last episode.
+特别是会动的计算机,比如上集说的机器人
+
+Beyond industrial uses that prevailed over the last century,
+在过去一个世纪,除了工业用途机器人
+
+robots are used increasingly in medical, education, and entertainment settings,
+有越来越多机器人用于医疗,教育和娱乐 \N 它们经常和人类互动
+
+where they frequently interact with humans.
+有越来越多机器人用于医疗,教育和娱乐 \N 它们经常和人类互动
+
+Human-Robot Interaction – or HRI
+人机交互,简称 HRI
+
+– is a field dedicated to studying these interactions,
+- 是一个研究人类和机器人交互的领域,
+
+like how people perceive different robots behaviors and forms,
+比如人类如何感受 机器人的不同形式和不同行为
+
+or how robots can interpret human social cues to blend in and not be super awkward.
+或是机器人如何明白人类暗示来社交,而不是尴尬的互动
+
+As we discussed last episode, there’s an ongoing quest to make
+正如上集说的,我们有追求
+
+robots as human-like in their appearance and interactions as possible.
+把机器人的外表和行为,做得尽可能像人一样
+
+When engineers first made robots in the 1940s and 50s, they didn’t look very human at all.
+工程师在1940 1950年代刚开始做机器人时,\N 看起来完全不像人
+
+They were almost exclusively industrial machines with no human-likeness.
+是完完全全的工业机器
+
+Over time, engineers got better and better at making human-like robots
+随着时间的推移,工程师越来越擅长做类人机器人
+
+– they gained heads and walked around on two legs,
+它们有头,而且用两条腿走路
+
+but… they couldn't exactly go to restaurants and masquerade as humans.
+但它们做不到伪装成人类去餐馆点餐
+
+As people pushed closer and closer to human likeness,
+随着机器人可以做得越来越像人类
+
+replacing cameras with artificial eyeballs, and covering metal chassis with synthetic flesh,
+用人造眼球代替摄像头,用人工肌肉盖住金属骨架
+
+things started to get a bit... uncanny...
+事情会开始变得有些.. 奇怪.. \N 引起一种怪异不安的感觉
+
+eliciting an eerie and unsettling feeling.
+事情会开始变得有些.. 奇怪.. \N 引起一种怪异不安的感觉
+
+This dip in realism between almost-human and actually-human became known as the uncanny valley.
+这个"几乎像人类"和"真的人类"之间的小曲线,叫 "恐怖谷"
+
+There’s debate over whether robots should act like humans too.
+对于机器人是否应该有人类一样的行为,也存在争议
+
+Lots of evidence already suggests that even if robots don’t act like us,
+很多证据表明,即使机器人的行为不像人类
+
+people will treat them as though they know our social conventions.
+人类也会用社交习俗对待它们
+
+And when they violate these rules – such as not apologizing if they cut in front of
+而当机器人违反习俗时 - 比如插队或踩了脚不道歉 \N 人们会很生气!
+
+you or roll over your foot – people get really mad!
+而当机器人违反习俗时 - 比如插队或踩了脚不道歉 \N 人们会很生气!
+
+Without a doubt, psychology and computer science are a potent combination,
+毫无疑问,心理学+计算机科学是强大的组合
+
+and have tremendous potential to affect our everyday lives.
+可以影响日常生活的巨大潜力
+
+Which leaves us with a lot of question, like you might lie to your laptop,
+这也带来了很多开放式问题,比如你可能会对计算机撒谎
+
+but should your laptop lie to you?
+但计算机应不应该对你撒谎?
+
+What if it makes you more efficient or happy?
+如果撒谎能让你更高效更快乐呢?
+
+Or should social media companies curate the content they show you to
+或社交媒体公司 \N 是否应该精心挑选展示给你的内容
+
+make you stay on their site longer to make you buy more products?
+让你在网站上多待一会儿,买更多东西?
+
+They do by the way.
+顺带一说,他们的确有这样做
+
+These types of ethical considerations aren’t easy to answer, but psychology can at least
+这类道德问题不容易回答,但心理学至少可以
+
+help us understand the effects and implications of design choices in our computing systems.
+帮助我们理解不同选择 带来的影响和意义
+
+But, on the positive side, understanding the psychology behind design
+但从积极的方面来说,了解设计背后的心理学
+
+might lead to increased accessibility.
+能增加易用性
+
+A greater number of people can understand and use computers
+让更多人可以明白和使用电脑,如今计算机比以往更加直观
+
+now that they're more intuitive than ever.
+让更多人可以明白和使用电脑,如今计算机比以往更加直观
+
+Conference calls and virtual classrooms are becoming more agreeable experiences.
+线上会议和虚拟教室的体验越来越好
+
+As robot technology continues to improve, the population
+随着机器人技术不断提高,互动也会越来越舒适
+
+will grow more comfortable in those interactions.
+随着机器人技术不断提高,互动也会越来越舒适
+
+Plus, thanks to psychology, we can all bond over our love of knurling.
+另外,感谢心理学,让我们能分享对"滚花"的热爱
+
+I’ll see you next week.
+我们下周见
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!\N
+
+One of the most dramatic changes enabled by computing technology
+计算机带来的最大改变之一 \N 是信息的创造和传播能力
+
+has been the creation and widespread availability of information.
+计算机带来的最大改变之一 \N 是信息的创造和传播能力
+
+There are currently 1.3 billion websites on the internet.
+目前有13亿个网站在互联网上
+
+Wikipedia alone has five million English language articles,
+仅维基百科就有500万篇英文文章
+
+spanning everything from the Dancing Plague of 1518
+涵盖从"1518年的舞蹈瘟疫"
+
+to proper toilet paper roll orientation.
+到"正确的纸卷方向"
+
+Every day, Google serves up four billion searches to access this information.
+每天,Google提供40亿次搜索来访问这些信息
+
+And every minute, 3.5 million videos are viewed on Youtube,
+Youtube上每分钟有350万个视频被观看.
+
+and 400 hours of NEW video get uploaded by users.
+每分钟用户上传400小时的新视频
+
+Lots of these views are people watching Gangnam Style and Despacito.
+很多观看量都是 Gangnam Style 和 Despacito
+
+But another large percentage could be considered educational,
+但剩下的 大部分是教育型内容
+
+like what you’re doing right now.
+就像你现在看的这个.
+
+This amazing treasure trove of information can be accessed
+如今只要手机上点几下 就能访问到这些宝藏
+
+with just a few taps on your smartphone.
+如今只要手机上点几下 就能访问到这些宝藏
+
+Anywhere, anytime.
+任何时间,任何地点
+
+But, having information available isn’t the same as learning from it.
+但能获取到信息和学习不是一回事
+
+To be clear, we here at Crash Course we are big fans of interactive in-class learning,
+先说清楚,我们 Crash Course 喜欢互动式课堂学习
+
+directed conversations, and hands-on experiences as powerful tools for learning.
+课上提问,以及上手实践,它们是很棒的学习途径
+
+But we also believe in the additive power of educational technology
+但我们也相信教育型技术在课内课外带来的帮助
+
+both inside and outside the classroom.
+但我们也相信教育型技术在课内课外带来的帮助
+
+So today we’re going to go a little meta,
+今天我们要在这个教育型视频里 \N 聊教育型科技
+
+and talk specifically about how computer science
+具体讲解计算机怎么帮助我们学习
+
+can support learning with educational technology.
+具体讲解计算机怎么帮助我们学习
+
+Technology, from paper and pencil to recent machine-learning-based intelligent systems,
+从纸和笔 到用机器学习的智能系统,
+
+has been supporting education for millennia -
+科技几千年来一直在辅助教育
+
+even as early as humans drawing cave paintings
+甚至早期人类 在洞穴里画狩猎场景也是为了后代
+
+to record hunting scenes for posterity.
+甚至早期人类 在洞穴里画狩猎场景也是为了后代
+
+Teaching people at a distance has long been a driver of educational technology.
+远距离教育一直推动着教育科技的发展
+
+For example, around 50 CE, St. Paul was sending epistles
+例如公元前50年左右,圣保罗就发书信 \N 给亚洲设立的新教堂提供宗教课程
+
+that offered lessons on religious teachings
+例如公元前50年左右,圣保罗就发书信 \N 给亚洲设立的新教堂提供宗教课程
+
+for new churches being set up in Asia.
+例如公元前50年左右,圣保罗就发书信 \N 给亚洲设立的新教堂提供宗教课程
+
+Since then, several major waves of technological advances
+从那以后,有几大技术浪潮,自称要改变教育
+
+have each promised to revolutionize education,
+从那以后,有几大技术浪潮,自称要改变教育
+
+from radio and television, to DVDs and laserdiscs.
+从广播和电视,到DVD和光碟
+
+In fact, as far back as 1913, Thomas Edison predicted,
+事实上,在1913年 托马斯·爱迪生 预测说
+
+"Books will soon be obsolete in the schools…
+"书籍很快会过时.. 用影片来教授所有知识是可能的
+
+It is possible to teach every branch of human knowledge with the motion picture.
+"书籍很快会过时.. 用影片来教授所有知识是可能的
+
+Our school system will be completely changed in the next ten years."
+学校体系将在未来十年彻底改变"
+
+Of course, you know that didn’t happen.
+当然,他的预测没有成真
+
+But distributing educational materials in formats like video has become more and more popular.
+但发布教育视频变得越来越流行
+
+Before we discuss what educational technology research can do for you,
+在讨论教育技术可以帮你做什么之前
+
+there are some simple things research has shown you can do,
+有研究表明 有些简单事情 \N 可以显著提高学习效率
+
+while watching an educational video like this one,
+有研究表明 有些简单事情 \N 可以显著提高学习效率
+
+significantly increase what you learn and retain.
+有研究表明 有些简单事情 \N 可以显著提高学习效率
+
+First, video is naturally adjustable, so make sure the pacing is right for you,
+1. 把速度调整到适合你,YouTube 的速度设置在右下角
+
+by using the video speed controls.
+1. 把速度调整到适合你,YouTube 的速度设置在右下角
+
+On YouTube, you can do that in the right hand corner of the screen.
+1. 把速度调整到适合你,YouTube 的速度设置在右下角
+
+You should be able to understand the video and have enough time to reflect on the content.
+让你能理解视频 有足够的时间思考
+
+Second, pause!
+2. 暂停!在困难的部分暂停
+
+You learn more if you stop the video at the difficult parts.
+2. 暂停!在困难的部分暂停
+
+When you do, ask yourself questions about what you’ve watched, and see if you can answer.
+问自己一些问题,看能不能回答
+
+Or ask yourself questions about what might be coming up next,
+或想想视频接下来可能讲什么 \N 然后继续播放,看猜对没有
+
+and then play the video to see if you’re right.
+或想想视频接下来可能讲什么 \N 然后继续播放,看猜对没有
+
+Third, try any examples or exercises that are presented in the video on your own.
+3. 做视频中的提供的练习
+
+Even if you aren’t a programmer, write pseudocode on paper,
+即使不是程序员,你也可以在纸上写伪代码,或试试学编程
+
+and maybe even give coding a try.
+即使不是程序员,你也可以在纸上写伪代码,或试试学编程
+
+Active learning techniques like these
+这些主动学习的技巧已被证明 \N 可以把学习效率提升10倍或以上
+
+have been shown to increase learning by a factor of ten.
+这些主动学习的技巧已被证明 \N 可以把学习效率提升10倍或以上
+
+And if you want more information like this - we’ve got a whole course on it here.
+如果想学学习技巧,有整个系列专门讲这个
+
+The idea of video as a way to spread quality education
+把高质量教育内容做成视频传播 \N 在过去一个世纪吸引了很多人
+
+has appealed to a lot of people over the last century.
+把高质量教育内容做成视频传播 \N 在过去一个世纪吸引了很多人
+
+What’s just the latest incarnation of this idea
+这个老想法的新化身
+
+came in the form of Massive Open Online Courses, or MOOCs.
+以"大型开放式在线课程"(MOOC)的形式出现
+
+In fact, the New York Times declared 2012 the Year of the MOOC!
+纽约时报宣称 2012 年是 MOOC 年!
+
+A lot of the early forms were just videos of lectures from famous professors.
+很多早期视频 直接录制著名教授上课
+
+But for a while, some people thought this might mean the end of universities as we know them.
+有段时间,有些人以为大学要终结了
+
+Whether you were worried about this idea or excited by it,
+不管你是担心还是开心,这暂时还没成为现实
+
+that future also hasn’t really come to pass
+不管你是担心还是开心,这暂时还没成为现实
+
+and most of the hype has dissipated.
+现在热度也淡去了
+
+This is probably mostly because when you try to scale up learning
+这可能是因为加大规模时 同时教百万名学生
+
+using technology to include millions of students simultaneously
+这可能是因为加大规模时 同时教百万名学生
+
+with small numbers of instructional staff - or even none
+但老师数量很少,甚至完全没有老师
+
+- you run into a lot of problems.
+- 会遇到很多问题
+
+Fortunately, these problems have intrigued computer scientists and more specifically,
+幸运的是,这引起了计算机科学家,\N 或具体一点 "教育科技家"的兴趣
+
+educational technologists, who are finding ways to solve them.
+他们在想办法解决这些问题
+
+For example, effective learning involves getting timely and relevant feedback
+比如,为了有效学习,学生要及时获得反馈
+
+but how do you give good feedback
+但如果有几百万学生,只有一名老师,
+
+when you have millions of learners and only one teacher?
+怎么提供好的反馈?
+
+For that matter, how does a teacher grade a million assignments?
+一个老师怎么给一百万份作业打成绩?
+
+Solving many of these problems means creating hybrid, human-technology systems.
+为了解决问题,很多时候需要把科技和人类都用上
+
+A useful, but controversial insight,
+一种有用 但有些争议的做法是
+
+was that students could be a great resource to give each other feedback.
+学生互相之间提供反馈
+
+Unfortunately, they’re often pretty bad at doing so –
+不幸的是,学生一般做不好
+
+they’re neither experts in the subject matter, nor teachers.
+他们既不是专家也不是老师
+
+However, we can support their efforts with technology.
+但我们可以用技术来帮助他们
+
+Like, by using algorithms, we can match perfect learning partners together,
+比如通过算法,从数百万个选择里 \N 匹配出最完美的学习伙伴
+
+out of potentially millions of groupings.
+比如通过算法,从数百万个选择里 \N 匹配出最完美的学习伙伴
+
+Also, parts of the grading can be done with automated systems while humans do the rest.
+另外,有些部分可以机器打分,剩下的让人类打分
+
+For instance, computer algorithms that grade the
+例如,给 SAT 写作部分打分的电脑算法
+
+writing portions of the SATs have been found to be
+已被证实和人工打分一样准确
+
+just as accurate as humans hired to grade them by hand.
+已被证实和人工打分一样准确
+
+Other algorithms are being developed that provide personalized learning experiences,
+还有些算法提供个性化学习体验
+
+much like Netflix’s personalized movie recommendations or Google’s personalized search results.
+类似于 Netflix 的电影推荐 \N 或 Google 的个性化搜索结果
+
+To achieve this, the software needs to understand what a learner knows and doesn’t know.
+为了个性化推荐,\N 软件需要了解用户知道什么,不知道什么
+
+With that understanding, the software can present the right material, at the right time,
+在正确的时间提供正确的资料,
+
+to give each particular learner practice on the things that are hardest for them,
+让用户练习没理解的难的部分
+
+rather than what they’re already good at.
+而不是给出用户已经学会的内容
+
+Such systems – most often powered by Artificial Intelligence –
+这种系统一般用 AI 实现
+
+are broadly called Intelligent Tutoring Systems.
+泛称叫法是"智能辅导系统"
+
+Let’s break down a hypothetical system that follows common conventions.
+我们现在讲一个假想的辅导系统
+
+So, imagine a student is working on this algebra problem in our hypothetical tutoring software.
+假设学生在这个假想的辅导系统中,研究一个代数问题
+
+The correct next step to solve it, is to subtract both sides by 7.
+正确的下一步是两边-7
+
+The knowledge required to do this step can be represented by something called a production rule.
+我们可以用 "判断规则" 来表示这一步
+
+These describe procedures as IF-THEN statements.
+用 IF-THEN 语句来描述
+
+The pseudo code of a production rule for this step would say
+伪代码是
+
+IF there is a constant on the same side as the variable,
+*如果* 变量和常数在同一边
+
+THEN subtract that constant from both sides.
+*那么* 两侧都减去这个常数
+
+The cool thing about production rules is that they can also be used
+"判断规则" 酷的地方是也可以用来
+
+to represent common mistakes a student might make.
+代表学生的常犯错误
+
+These production rules are called "buggy rules".
+这些"判断规则"叫"错误规则"
+
+For example, instead of subtracting the constant,
+例如,学生可能不去减常数
+
+the student might mistakenly try to subtract the coefficient.
+而是去减系数
+
+No can do!
+这不行!
+
+It’s totally possible that multiple competing production rules
+学生做完一个步骤后可能触发多个"判断规则"
+
+are triggered after a student completes a step –
+学生做完一个步骤后可能触发多个"判断规则"
+
+it may not be entirely clear what misconception has led to a student’s answer.
+系统不能完全弄清 是什么原因让学生选了那个答案
+
+So, production rules are combined with an algorithm that selects the most likely one.
+所以"判断规则"会和算法结合使用,判断可能原因
+
+That way, the student can be given a helpful piece of feedback.
+让学生得到有用反馈
+
+These production rules, and the selection algorithm,
+"判断规则"+选择算法,组合在一起成为 "域模型"
+
+combine to form what’s called a Domain Model,
+"判断规则"+选择算法,组合在一起成为 "域模型"
+
+which is a formal representation of the knowledge,
+它给知识,解决步骤和一门学科 比如代数,\N 用一种"正式写法"来表示
+
+procedures and skills of a particular discipline - like algebra.
+它给知识,解决步骤和一门学科 比如代数,\N 用一种"正式写法"来表示
+
+Domain models can be used to assist learners on any individual problem,
+域模型可以用来 帮助学习者解决特定问题
+
+but they’re insufficient for helping learners move through a whole curriculum
+但它无法带着学习者 \N 以正确顺序搞定整个学科该上的所有课程
+
+because they don’t track any progress over time.
+因为域模型不记录进度
+
+For that, intelligent tutoring systems build and maintain a student model
+因此智能辅导系统 负责创建和维护学生模型
+
+– one that tracks, among other things, what production rules a student has mastered,
+- 记录学生已经掌握的判断规则
+
+and where they still need practice.
+以及还需练习的生疏部分
+
+This is exactly what we need to properly personalize the tutor.
+这正是个性化辅导系统需要的。
+
+That doesn’t sound so hard,
+听起来好像不难,
+
+but it’s actually a big challenge to figure out what a student knows and doesn’t know
+但只靠学生对一些问题的回答,\N 来弄清学生知道什么,不知道什么,是很大的挑战
+
+based only on their answers to problems.
+但只靠学生对一些问题的回答,\N 来弄清学生知道什么,不知道什么,是很大的挑战
+
+A common technique for figuring this out is Bayesian knowledge tracing.
+"贝叶斯知识追踪" 常用来解决这个问题
+
+The algorithm treats student knowledge as a set of latent variables,
+这个算法把学生的知识 当成一组隐藏变量
+
+which are variables whose true value is hidden from
+这些变量的值,对外部是不可见的
+
+an outside observer, like our software.
+比如我们的软件
+
+This is also true in the physical world,
+这在现实中也是一样的
+
+where a teacher would not know for certain whether
+老师无法知道 学生是否完全掌握了某个知识点
+
+a student knows something completely.
+老师无法知道 学生是否完全掌握了某个知识点
+
+Instead, they might probe that knowledge using a test
+老师会出考题,测试学生能否答对
+
+to see if the student gets the right answer.
+老师会出考题,测试学生能否答对
+
+Similarly, Bayesian knowledge tracing updates its estimate of the students’ knowledge
+同样,"贝叶斯知识追踪" \N 会看学生答题的正确度,更新学生掌握程度的估算值
+
+by observing the correctness of each interaction using that skill.
+同样,"贝叶斯知识追踪" \N 会看学生答题的正确度,更新学生掌握程度的估算值
+
+To do this, the software maintains four probabilities..
+它会记录四个概率
+
+First is the probability that a student has learned how to do a particular skill.
+首先是 "学生已经学会的概率"
+
+For example, the skill of subtracting constants from both sides of an algebraic equation.
+比如从代数方程的两边减去常数
+
+Let’s say our student correctly subtracts both sides by 7.
+假设学生正确将两边-7
+
+Because she got the problem correct,
+做对了
+
+we might assume she knows how to do this step.
+我们可以假设她知道怎么做
+
+But there’s also the possibility that the student got it correct by accident,
+但也有可能她是瞎蒙的
+
+and doesn’t actually understand how to solve the problem.
+没有真的学会怎么解决问题
+
+This is the probability of guess.
+这叫 "瞎猜的概率"
+
+Similarly, if the student gets it wrong,
+类似的,如果学生答错了,
+
+you might assume that she doesn’t know how to do the step.
+你可能会假设她不会做
+
+But, there’s also the possibility that she knows it,
+但她可能知道答案,只是不小心犯了个错
+
+but made a careless error or other slip-up.
+但她可能知道答案,只是不小心犯了个错
+
+This is called the probability of slip.
+这叫 "失误的概率"
+
+The last probability that Bayesian knowledge tracing calculates
+最后一个概率
+
+is the probability that the student started off the problem
+是学生一开始不会做,\N 但是在解决问题的过程中,学会了怎么做
+
+not knowing how to do the step, but learned how to do
+是学生一开始不会做,\N 但是在解决问题的过程中,学会了怎么做
+
+it as a result of working through the problem.
+是学生一开始不会做,\N 但是在解决问题的过程中,学会了怎么做
+
+This is called the probability of transit.
+这叫 "做题过程中学会的概率"
+
+These four probabilities are used in a set of equations that update the student model,
+有一组方程,会用这四个概率,更新学生模型
+
+keeping a running assessment for each skill the student is supposed to know.
+对学生应该学会的每项技能进行持续评估
+
+The first equation asks:
+第一个等式问:
+
+what’s the probability that the student has learned a particular skill
+学生已经知道某技能的概率是多少?
+
+which takes into account the probability that it was
+等式里有
+
+already learned previously and the probability of transit.
+"之前已经学会的概率"和"做题过程中学会的概率"
+
+Like a teacher, our estimate of this probability that it was already learned previously
+就像老师一样,"之前已经学会的概率"
+
+depends on whether we observe a student getting a question correct or incorrect,
+取决于学生回答问题正确与否,
+
+and so we have these two equations to pick from.
+回答正确和错误分别有2个公式
+
+After we compute the right value, we plug it into our first equation,
+算出结果之后,我们把结果放到第一个方程
+
+updating the probability that a student has learned a particular skill,
+更新"之前已经学会的概率"
+
+which then gets stored in their student model.
+然后存到学生模型里.
+
+Although there are other approaches,
+虽然存在其他方法,
+
+intelligent tutoring systems often use Bayesian knowledge tracing
+但"智能辅导系统"通常用 贝叶斯知识追踪
+
+to support what’s called mastery learning, where students practice skills,
+让学生练习技能,直到掌握
+
+until they’re deeply understood.
+让学生练习技能,直到掌握
+
+To do this most efficiently, the software selects the
+为了高效做到这点,软件要选择合适的问题
+
+best problems to present to the student to achieve mastery,
+呈现给学生,让学生学
+
+what’s called adaptive sequencing,
+这叫:自适应式程序
+
+which is one form of personalization.
+个性化算法的形式之一
+
+But, our example is still just dealing with data from one student.
+但我们的例子只是一个学生的数据
+
+Internet-connected educational apps or sites
+现在有 App 或网站
+
+now allow teachers and researchers the ability
+让教师和研究人员 收集上百万学习者的数据
+
+to collect data from millions of learners.
+让教师和研究人员 收集上百万学习者的数据
+
+From that data, we can discover things like common pitfalls and where students get frustrated.
+从数据中可以发现常见错误\N 一般哪里难倒学生
+
+Beyond student responses to questions,
+除了学生的回答,还可以看回答前暂停了多久
+
+this can be done by looking at how long they pause
+除了学生的回答,还可以看回答前暂停了多久
+
+before entering an answer, where they speed up a video,
+哪个部分加速视频,
+
+and how they interact with other students on discussion forums.
+以及学生如何在论坛和其他人互动
+
+This field is called Educational Data Mining,
+这个领域叫 "教育数据挖掘"
+
+and it has the ability to use all those face palms and "ah ha" moments
+它能用上学生所有的"捂脸"和"啊哈"时刻
+
+to help improve personalized learning in the future.
+帮助改善未来的个性化学习
+
+Speaking of the future, educational technologists have often
+谈到未来,教育技术人员经常从科幻小说中获得灵感
+
+drawn inspiration for their innovations from science fiction.
+谈到未来,教育技术人员经常从科幻小说中获得灵感
+
+In particular, many researchers were inspired by the future envisioned in the book
+具体来说,Neal Stephenson 的"钻石时代"这本书\N 激励了很多研究人员
+
+"The Diamond Age" by Neal Stephenson.
+具体来说,Neal Stephenson 的"钻石时代"这本书\N 激励了很多研究人员
+
+It describes a young girl who learns from a book
+里面说一个年轻女孩从书中学习
+
+that has a set of virtual agents who interact with her
+书中有一些虚拟助手会和她互动,教她知识
+
+in natural language acting as coaches, teachers,
+书中有一些虚拟助手会和她互动,教她知识
+
+and mentors who grow and change with her as she grows up.
+这些助手和她一起成长
+
+They can detect what she knows and how’s she’s feeling,
+直到她学会了什么,以及感觉如何,
+
+and give just the right feedback and support to help her learn.
+给她正确的反馈和支持,帮助她学习
+
+Today, there are non-science-fiction researchers, such as Justine Cassell,
+如今 有非科幻小说研究者,比如 贾斯汀卡塞尔,
+
+crafting pedagogical virtual agents
+在制作虚拟教学助手
+
+that can "exhibit the verbal and bodily behaviors found in
+助手可以"像人类一样沟通 有人类一样的行为
+
+conversation among humans, and in doing so, build trust,
+在陪伴过程中和学习者建立信任,
+
+rapport and even friendship with their human students."
+相处融洽,甚至和人类学生成为朋友"
+
+Maybe Crash Course in 2040 will have a little John Green A.I. that lives on your iPhone 30.
+2040年的"速成课" \N 可能会有一个 John Green AI,活在你的 iPhone 30 上
+
+Educational technology and devices are now moving off of laptop and desktop computers,
+教育科技和设备 \N如今在逐渐扩展到笔记本和台式电脑之外
+
+onto huge tabletop surfaces, where students can collaborate in groups,
+比如巨大桌面设备,让学生可以团队合作
+
+and also tiny mobile devices, where students can learn on the go.
+以及小型移动设备,让学生路上也能学习
+
+Virtual reality and augmented reality are also getting people excited
+"虚拟现实"和"增强现实"也让人们兴奋不已
+
+and enabling new educational experiences for learners –
+它们可以为学习者提供全新的体验 -
+
+diving deep under the oceans, exploring outer space,
+深潜海洋,探索太空,
+
+traveling through the human body, or interacting with cultures
+漫游人体,或是和现实中难以遇见的生物互动
+
+they might never encounter in their real lives.
+漫游人体,或是和现实中难以遇见的生物互动
+
+If we look far into the future, educational interfaces might disappear entirely,
+如果猜想遥远的未来,教育可能会完全消失,
+
+and instead happen through direct brain learning,
+直接在大脑层面进行
+
+where people can be uploaded with new skills, directly into their brains.
+把新技能直接下载到大脑
+
+This might seem really far fetched,
+这看起来可能很遥远,
+
+but scientists are making inroads already - such as detecting
+但科学家们已经在摸索 - 比如
+
+whether someone knows something just from their brain signals.
+仅仅通过检测大脑信号,得知某人是否知道什么
+
+That leads to an interesting question:
+这带来了一个有趣的问题:
+
+if we can download things INTO our brains,
+如果我们可以把东西下载到大脑里
+
+could we also upload the contents of our brains?
+我们能不能上传大脑里的东西?
+
+We’ll explore that in our series finale next week about the far future of computing.
+下周的最后一集,我们会讨论计算的未来
+
+I'll see you then.
+到时见
+
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+We’re here: the final episode!
+我们到了 最后一集!
+
+If you’ve watched the whole series,
+如果你看了整个系列,
+
+hopefully you’ve developed a newfound appreciation
+希望你对计算机影响的深度和广度 \N 有全新的认知和欣赏
+
+for the incredible breadth of computing applications and topics.
+希望你对计算机影响的深度和广度 \N 有全新的认知和欣赏
+
+It’s hard to believe we’ve worked up from mere transistors and logic gates,
+难以相信 我们从简单的晶体管和逻辑门开始
+
+all the way to computer vision, machine learning, robotics and beyond.
+一直到计算机视觉,机器学习,机器人以及更多
+
+We’ve stood on the shoulders of giants
+我们站在巨人的肩膀上
+
+like Babbage and Lovelace, Hollerith and Turing,
+Charles Babbage \N Ada Lovelac \N Herman Hollerith \N Alan Turing
+
+Eckert and Hopper, Sutherland and Engelbart,
+J. Presper Eckert \N Grace Hopper \N Ivan Sutherland \N Douglas Engelbart
+
+Bush and Berners Lee, Gates and the Woz,
+Vannevar Bush (Memex) \N Berners-Lee (万维网) \N Bill Gates (微软)\N Steve Wozniak (苹果)
+
+and many other computing pioneers.
+和许多其他先驱
+
+My biggest hope is that these episodes have inspired you to
+我最大的希望是 这些视频能激励你 \N 去了解这些东西如何影响你的人生
+
+learn more about how these subjects affect your life.
+我最大的希望是 这些视频能激励你 \N 去了解这些东西如何影响你的人生
+
+Maybe you’ll even pick up programming or choose a career in computing.
+甚至开始学编程,或找一份计算机职业
+
+It’s awesome!
+这很棒!
+
+It’s also a skill of the future.
+这是未来的技能
+
+I said in the very first episode that computer science isn’t magic, but it sort of is!
+我在第一集说过,计算机科学不是魔法\N 但它有点像魔法
+
+Knowing how to use and program computers is sorcery of the 21st century.
+学习使用电脑和编程,是21世纪的巫术
+
+Instead of incantations and spells, it’s scripts and code.
+只不过用的不是咒语 而是代码
+
+Those who know how to wield that tremendous power will be able to craft great things,
+懂得运用的人,能创造出伟大的东西
+
+not just to improve their own lives, but also their communities and humanity at large.
+不仅改善自己的生活,还有当地社区乃至整体人类
+
+Computing is also going to be literally everywhere –
+计算机会随处可见 -
+
+not just the computers we see today, sitting on desks and countertops,
+不仅是放在桌上 带在包里
+
+and carried in pockets and bags – but inside every object imaginable.
+而是在所有可想象的东西里
+
+Inside all your kitchen appliances, embedded in your walls, nanotagged in your food,
+厨房用具里,墙里,食物里
+
+woven into your clothes, and floating around inside your body.
+编织进衣服里,在你的血液里
+
+This is the vision of the field of Ubiquitous Computing.
+这是"普适计算"的愿景
+
+In some ways, it’s already here, and in other ways, we’ve got many decades to go.
+从某种角度来讲 它已经来临了\N 而换一个角度 还要几十年
+
+Some might view this eventuality as dystopian,
+有些人把这种未来看成 反乌托邦
+
+with computers everywhere surveilling us and competing for our attention.
+到处都有监视器,有无数东西想吸引我们的注意力
+
+But the late Mark Weiser, who articulated this idea in the 1990s,
+但 1990 年代提出这个想法的 马克·维泽尔
+
+saw the potential very differently:
+看到了非常不同的潜力:
+
+"For [fifty] years, most interface design, and most computer design,
+"[五十]年来,大多数界面和计算机设计,
+
+has been headed down the path of the "dramatic" machine.
+都是朝"戏剧性"方向前进
+
+Its highest idea is to make a computer so exciting, so wonderful,
+想把计算机做得超好,让人一刻也不想离开
+
+so interesting, that we never want to be without it.
+想把计算机做得超好,让人一刻也不想离开
+
+A less-traveled path I call the "invisible";
+另一条少有人走的路 是"无形"的
+
+its highest idea is to make a computer so imbedded, so fitting,
+把计算机整合到所有东西里 \N 用的时候很自然 完全注意不到
+
+so natural, that we use it without even thinking about it …
+把计算机整合到所有东西里 \N 用的时候很自然 完全注意不到
+
+The most profound technologies are those that disappear.
+最厉害的科技是看不见的科技
+
+They weave themselves into the fabric of everyday life
+它们融入到日常生活的每一部分 直到无法区分"
+
+until they are indistinguishable from it."
+它们融入到日常生活的每一部分 直到无法区分"
+
+That doesn’t describe computing of today
+如今我们还没达到这样
+
+– where people sit for hours upon end in front of computer monitors,
+- 人们在电脑前连续坐好几小时
+
+and social media notifications interrupt us at dinner.
+吃晚餐被手机推送通知打扰
+
+But, it could describe computing of the future, our final topic.
+但它可以描述计算的未来 \N 本系列最后一个主题
+
+When people think of computing in the future,
+人们思考计算机的未来时 经常会直接想到人工智能
+
+they often jump right to Artificial Intelligence.
+人们思考计算机的未来时 经常会直接想到人工智能
+
+No doubt there will be tremendous strides made in AI in the coming years,
+毫无疑问,接下来几十年人工智能会有巨大进步
+
+but not everything will be, or need to be, AI-powered.
+但不是所有东西都要做成 AI ,或需要 AI
+
+Your car might have an AI to self-drive, but the door locks
+车有自动驾驶AI,但门锁依然会很简单
+
+might continue to be powered by what are essentially if-statements.
+车有自动驾驶AI,但门锁依然会很简单
+
+AI technology is just as likely to enhance existing devices,
+人工智能可能只是增强现有设备
+
+like cars, as it is to open up entirely new product categories.
+比如汽车,AI 带来了一个全新的产品种类
+
+The exact same thing happened with the advent of electrical power – lightbulbs replaced candles.
+刚出现电力时也是这样,灯泡取代了蜡烛.
+
+But electrification also led to the creation of hundreds of new electrically-powered gadgets.
+但电气化也导致上百种新的电动小工具诞生
+
+And of course, we still have candles today.
+当然 我们如今仍然有蜡烛
+
+It’s most likely that AI will be yet another tool
+最可能的情况是 AI 变成 \N 计算机科学家手中的另一门新工具
+
+that computer scientists can draw upon to tackle problems.
+最可能的情况是 AI 变成 \N 计算机科学家手中的另一门新工具
+
+What really gets people thinking, and sometimes sweating,
+但真正让人深思和担忧的是
+
+is whether Artificial Intelligence will surpass human intelligence.
+人工智能是否会超越人类智能?
+
+This is a really tricky question for a multitude of reasons,
+这个问题很难 有多方面原因
+
+including most immediately: "what is intelligence?"
+比如 "智能的准确定义是什么?"
+
+On one hand, we have computers that can drive cars,
+一方面,有会开车的计算机
+
+recognize songs with only a few seconds of audio,
+几秒就能识别歌的 App
+
+translate dozens of languages, and totally dominate at games like chess, Jeopardy, and Go.
+翻译几十种语言,\N 还称霸了一些游戏,比如象棋,知识竞答和围棋
+
+That sounds pretty smart!
+听起来很聪明!
+
+But on the other hand, computers fail at some basic tasks,
+但另一方面,计算机连一些简单事情都做不了
+
+like walking up steps, folding laundry,
+比如走楼梯,叠衣服,
+
+understanding speech at a cocktail party, and feeding themselves.
+在鸡尾酒派对和人聊天,喂饱自己
+
+We’re a long way from Artificial Intelligence that’s as general purpose and capable as a human.
+人工智能成长到和人类一样通用,还有很长的路
+
+With intelligence being somewhat hard to quantify,
+因为"智能"是难以量化的指标
+
+people prefer to characterize computers and creatures
+人们更喜欢用处理能力来区分
+
+by their processing power instead,
+人们更喜欢用处理能力来区分
+
+but that’s a pretty computing-centric view of intelligence.
+但这种衡量智能的方法比较"以计算为中心"
+
+Nonetheless, if we do this exercise,
+但如果把视频中出现过的电脑和处理器 画张图
+
+plotting computers and processors we’ve talked about in this series,
+但如果把视频中出现过的电脑和处理器 画张图
+
+we find that computing today has very roughly equivalence in calculating
+可以看到 如今的计算能力粗略等同于一只老鼠
+
+power to that of a mouse...
+可以看到 如今的计算能力粗略等同于一只老鼠
+
+which, to be fair, also can’t fold laundry, although that would be super cute!
+公平点说,老鼠也不会叠衣服\N 但如果真的会叠 就太可爱了
+
+Human calculating power is up here, another 10 to the 5,
+人类的计算能力在这儿,多10的5次方
+
+or 100,000 times more powerful than computers today.
+也就是比如今电脑强10万倍
+
+That sounds like a big gap, but with the rate of change in computing technologies,
+听起来差距很大,但按如今的发展速度,
+
+we might meet that point in as early as a decade,
+也许十几年就可以赶上了
+
+even though processor speeds are no longer following Moore’s Law,
+虽然现在处理器的速度 不再按摩尔定律增长了
+
+like we discussed in Episode 17.
+我们在第17集讨论过
+
+If this trend continues, computers would have more processing power/intelligence,
+假设趋势继续保持下去,在本世纪结束前
+
+than the sum total of all human brains combined before the end of this century.
+计算机的处理能力/智能 会比全人类加起来还多
+
+And this could snowball as such systems need less human input,
+然后人的参与会越来越少,人工超级智能会开始改造自己
+
+with an artificial superintelligence designing and training new versions of itself.
+然后人的参与会越来越少,人工超级智能会开始改造自己
+
+This runaway technological growth, especially with respect to an intelligence explosion,
+智能科技的失控性发展叫 "奇点"
+
+is called the singularity.
+智能科技的失控性发展叫 "奇点"
+
+The term was first used by our old friend from Episode 10,
+第10集 约翰·冯·诺伊曼 最早用这个词
+
+John von Neumann, who said:
+他说:
+
+"The accelerating progress of technology and changes in the mode of human life,
+"越来越快的技术发展速度和人类生活方式的改变,
+
+give the appearance of approaching some essential singularity
+看起来会接近人类历史中某些重要的奇点
+
+in the history of the race beyond which human affairs,
+看起来会接近人类历史中某些重要的奇点
+
+as we know them, could not continue."
+这个势头不会永远继续下去"
+
+And Von Neumann suggested this back in the 1950s,
+冯诺依曼在 1950 年代说的这话.
+
+when computers were trillions of times slower than they are today.
+那时计算机比现在慢得多
+
+Sixty years later, though, the singularity is
+六十年后的今天,奇点仍然在遥远的地平线上
+
+still just a possibility on the horizon.
+六十年后的今天,奇点仍然在遥远的地平线上
+
+Some experts believe this progress is going to level off,
+一些专家认为 发展趋势会更平缓一些
+
+and be more of an S curve than an exponential one,
+更像是S型,而不是指数型
+
+where as complexity increases, it becomes more difficult to make additional progress.
+而随着复杂度增加,进步会越来越难
+
+Microsoft co-founder Paul Allen calls it a "complexity brake".
+微软联合创始人 保罗·艾伦 叫这个"复杂度刹车"
+
+But, as a thought experiment,
+但当作思维练习
+
+let’s just say that superintelligent computers will emerge.
+我们假设 超智能计算机会出现。
+
+What that would mean for humanity is a hotly debated topic.
+这对人类意味着什么,是个讨论激烈的话题
+
+There are people who eagerly await it,
+有些人迫不及待
+
+and those who are already working to stop it from happening.
+有些人则努力阻止它
+
+Probably the most immediate effect would be technological unemployment,
+最直接的影响可能是"技术性失业"
+
+where workers in many job sectors are rendered obsolete
+很多工作被计算机,比如AI和机器人,给代替掉了
+
+by computers – like AIs and Robots –
+很多工作被计算机,比如AI和机器人,给代替掉了
+
+that can do their work better and for less pay.
+它们的效率更高,成本更低
+
+Although computers are new, this effect is not.
+虽然计算机出现没多久,但"技术性失业"不是新事
+
+Remember Jacquard's Loom from Episode 10?
+还记得第10集里 雅卡尔的织布机 吗?
+
+That automated the task of skilled textile workers back in the 1800s, which led to riots.
+它让1800年代的纺织工人失业,导致了骚乱
+
+Also, back then, most of the population of the US and Europe were farmers.
+当时美国和欧洲 大部分人都是农民
+
+That’s dropped to under 5% today,
+如今农民占人口比例<5%
+
+due to advances like synthetic fertilizers and tractors.
+因为有合成肥料和拖拉机等等技术
+
+More modern examples include telephone switchboard operators
+时间更近一些的例子是"电话接线员"
+
+being replaced with automatic switchboards in 1960,
+在1960年被自动接线板代替了
+
+and robotic arms replacing human painters in car factories in the 1980s.
+还有1980年代的"机器喷漆臂"替代了人工喷漆
+
+And the list goes on and on.
+这样的例子还有很多.
+
+On one hand, these were jobs lost to automation.
+一方面,因为自动化失去了工作
+
+And on the other hand, clothes, food, bicycles, toys,
+另一方面,我们有大量产品,\N 衣服,食物,自行车,玩具等
+
+and a myriad of other products are all plentiful today
+另一方面,我们有大量产品,\N 衣服,食物,自行车,玩具等
+
+because they can be cheaply produced thanks to computing.
+因为可以廉价生产
+
+But, experts argue that AI, robots and computing technologies in general,
+但专家认为人工智能,机器人 以及更广义的计算
+
+are going to be even more disruptive than these historical examples.
+比之前更有破坏性
+
+Jobs, at a very high level, can be summarized along two dimensions.
+工作可以用两个维度概括
+
+First, jobs can be either more manual – like assembling toys
+首先,手工型工作,比如组装玩具
+
+– or more cognitive – like picking stocks.
+- 或思维型工作 - 比如选股票
+
+These jobs can also be routine – the same tasks over and over again
+还有重复性工作,一遍遍做相同的事
+
+or non-routine, where tasks vary and workers need to problem solve and be creative.
+或非重复性,需要创造性的解决问题
+
+We already know that routine-manual jobs can be automated by machines.
+我们知道 重复性手工工作,可以让机器自动化
+
+It has already happened for some jobs and is happening right now for others.
+现在有些已经替代了,剩下的在逐渐替代
+
+What’s getting people worried is that non-routine manual jobs,
+让人担心的是"非重复性手工型工作"
+
+like cooks, waiters and security guards, may get automated too.
+比如厨师,服务员,保安。
+
+And the same goes for routine cognitive work,
+思维型工作也一样
+
+like customer service agents, cashiers, bank tellers, and office assistants.
+比如客服,收银员,银行柜员和办公室助理
+
+That leaves us with just one quadrant that might be safe,
+剩下一个暂时比较安全的象限
+
+at least for a little while:
+剩下一个暂时比较安全的象限
+
+non-routine cognitive work,
+非重复性思维型工作
+
+which includes professions like teachers and artists,
+包括教师和艺术家,
+
+novelists and lawyers, and doctors and scientists.
+小说家和律师,医生和科学家
+
+These types of jobs encompass roughly 40% of the US workforce.
+这类工作占美国劳动力大概40%
+
+That leaves 60% of jobs vulnerable to automation.
+意味着剩下60%工作容易受自动化影响
+
+People argue that technological unemployment at this scale
+有人认为这种规模的技术失业
+
+would be unprecedented and catastrophic,
+是前所未有的,会导致灾难性的后果,
+
+with most people losing their jobs.
+大部分人会失业
+
+Others argue that this will be great,
+其他人则认为很好,
+
+freeing people from less interesting jobs to pursue better ones,
+让人们从无聊工作解脱,去做更好的工作,
+
+all while enjoying a higher standard of living with the bounty of food and products
+同时享受更高生活水平,有更多食物和物品
+
+that will result from computers and robots doing most of the hard work.
+都是计算机和机器人生产的.
+
+No one really knows how this is going to shake out,
+没人知道未来到底会怎样
+
+but if history is any guide, it’ll probably be ok in the long run.
+但如果历史有指导意义,长远看 一切会归于平静
+
+Afterall, no one is advocating that 90% of people
+毕竟,现在没人嚷嚷着让90%的人 回归耕田和纺织
+
+go back to farming and weaving textiles by hand.
+毕竟,现在没人嚷嚷着让90%的人 回归耕田和纺织
+
+The tough question, which politicians are now discussing,
+政界在讨论的棘手问题是
+
+is how to handle hopefully-short-term economic disruption,
+怎么处理数百万人突然失业 \N 造成的短期经济混乱
+
+for millions of people that might be suddenly out of a job.
+怎么处理数百万人突然失业 \N 造成的短期经济混乱
+
+Beyond the workplace, computers are also very likely to change our bodies.
+除了工作,计算机很可能会改变我们的身体
+
+For example, futurist Ray Kurzweil believes that
+举个例子, 未来学家 Ray Kurzweil 认为
+
+"The Singularity will allow us to transcend
+"奇点会让我们超越 肉体和大脑的局限性
+
+[the] limitations of our biological bodies and brains.
+"奇点会让我们超越 肉体和大脑的局限性
+
+We will gain power over our fates.
+我们能掌控自己的命运
+
+... We will be able to live as long as we want.
+可以想活多久活多久 我们能完全理解并扩展大脑思维
+
+We will fully understand human thinking and will vastly extend and expand its reach."
+可以想活多久活多久 我们能完全理解并扩展大脑思维
+
+Transhumanists see this happening in the form of cyborgs,
+超人类主义者认为会出现"改造人"
+
+where humans and technology merge, enhancing our intellect and physiology.
+人类和科技融合在一起,增强智力和身体
+
+There are already brain computer interfaces in use today.
+如今已经有脑电接口了
+
+And wearable computers, like Google Glass and Microsoft Hololens,
+而 Google Glass 和 微软 Hololens \N 这样的穿戴式计算机 也在模糊这条界线
+
+are starting to blur the line too.
+而 Google Glass 和 微软 Hololens \N 这样的穿戴式计算机 也在模糊这条界线
+
+There are also people who foresee "Digital Ascension",
+也有人预见到"数字永生"
+
+which, in the words of Jaron Lanier,
+Jaron Lanier 的说法是
+
+"would involve people dying in the flesh and being uploaded into a computer and remaining conscious".
+"人类的肉体死去,意识上传到计算机"
+
+This transition from biological to digital beings
+从生物体变成数字体 可能是下一次进化跨越
+
+might end up being our next evolutionary step...
+从生物体变成数字体 可能是下一次进化跨越
+
+and a new level of abstraction.
+一层新的抽象
+
+Others predict humans staying largely human,
+其他人则预测 人类大体会保持原样
+
+but with superintelligent computers as a benevolent force,
+但超智能电脑会照顾我们,帮我们管农场
+
+emerging as a caretaker for humanity – running all the farms,
+但超智能电脑会照顾我们,帮我们管农场
+
+curing diseases, directing robots to pick-up trash,
+治病,指挥机器人收垃圾,
+
+building new homes and many other functions.
+建房子 以及很多其他事情
+
+This would allow us to simply enjoy our time on this lovely pale blue dot.
+让我们在这个可爱蓝点上(地球) 好好享受
+
+Still others view AI with more suspicion –
+另一些人对 AI 持怀疑态度 -
+
+why would a superintelligent AI waste its time taking care of us?
+为什么超级人工智能 会费时间照顾我们?
+
+It’s not like we’ve taken on the role of being the benevolent caretaker of ants.
+人类不也没照顾蚂蚁吗?
+
+So maybe this play out like so many Sci-Fi movies
+也许会像许多科幻电影一样,和计算机开战
+
+where we’re at war with computers, our own creation having turned on us.
+也许会像许多科幻电影一样,和计算机开战
+
+It’s impossible to know what the future holds,
+我们无法知道未来到底会怎样
+
+but it’s great that this discussion and debate is already happening,
+但现在已经有相关讨论了,这非常好
+
+so as these technologies emerge, we can plan and react intelligently.
+所以等这些技术出现后,我们可以更好地计划
+
+What’s much more likely, regardless of whether you see computers as future friend or foe,
+不论你把计算机视为未来的朋友或敌人
+
+is that they will outlive humanity.
+更有可能的是,它们的存在时间会超过人类
+
+Many futurists and science fiction writers have speculated
+许多未来学家和科幻作家猜测
+
+that computers will head out into space and colonize the galaxy,
+机器人会去太空殖民
+
+ambivalent to time scales, radiation,
+无视时间,辐射 \N 以及一些其他让人类难以长时间太空旅行的因素.
+
+and all that other stuff that makes
+无视时间,辐射 \N 以及一些其他让人类难以长时间太空旅行的因素.
+
+long-distance space travel difficult for us humans.
+无视时间,辐射 \N 以及一些其他让人类难以长时间太空旅行的因素.
+
+And when the sun is burned up and the Earth is space dust,
+亿万年后太阳燃尽 地球成为星尘 \N 也许我们的机器人孩子 会继续努力探索宇宙每一个角落
+
+maybe our technological children will be hard at work
+亿万年后太阳燃尽 地球成为星尘 \N 也许我们的机器人孩子 会继续努力探索宇宙每一个角落
+
+exploring every nook and cranny of the universe,
+亿万年后太阳燃尽 地球成为星尘 \N 也许我们的机器人孩子 会继续努力探索宇宙每一个角落
+
+hopefully in honor of their parents’ tradition to build knowledge,
+以纪念它们的父母,同时让宇宙变得更好,
+
+improve the state of the universe,
+以纪念它们的父母,同时让宇宙变得更好,
+
+and to boldly go where no one has gone before!
+大胆探索无人深空
+
+In the meantime, computers have a long way to go,
+与此同时,计算机还有很长的路要走
+
+and computer scientists are hard at work advancing
+计算机科学家们在努力推进 过去40集谈到的话题
+
+all of the topics we talked about over the past forty episodes.
+计算机科学家们在努力推进 过去40集谈到的话题
+
+In the next decade or so,
+在接下来的十几年
+
+we’ll likely see technologies like virtual and augmented reality,
+VR 和 AR,无人驾驶车,无人机,可穿戴计算机,
+
+self-driving vehicles, drones, wearable computers,
+VR 和 AR,无人驾驶车,无人机,可穿戴计算机,
+
+and service robots go mainstream.
+和服务型机器人 会变得主流
+
+The internet will continue to evolve new services,
+互联网会继续诞生新服务
+
+stream new media, and connect people in different ways.
+在线看新媒体. 用新方式连接人们
+
+New programming languages and paradigms will be developed
+会出现新的编程语言和范例,帮助创造令人惊叹的新软件
+
+to facilitate the creation of new and amazing software.
+会出现新的编程语言和范例,帮助创造令人惊叹的新软件
+
+And new hardware will make complex operations blazingly fast,
+而新硬件能让复杂运算快如闪电 \N 比如神经网络和3D图形
+
+like neural networks and 3D graphics.
+而新硬件能让复杂运算快如闪电 \N 比如神经网络和3D图形
+
+Personal computers are also ripe for innovation,
+个人电脑也会创新
+
+perhaps shedding their forty-year old desktop metaphor
+不像过去40年着重宣传 "桌面" 电脑
+
+and being reborn as omnipresent and lifelong virtual assistants.
+而是变成无处不在的虚拟助手
+
+And there’s so much we didn’t get to talk about in this series,
+这个系列 我们还有很多话题没谈
+
+like cryptocurrencies, wireless communication,
+比如加密货币,无线通讯,3D打印,生物信息学和量子计算
+
+3D printing, bioinformatics, and quantum computing.
+比如加密货币,无线通讯,3D打印,生物信息学和量子计算
+
+We’re in a golden age of computing
+我们正处于计算机的黄金时代
+
+and there’s so much going on, it’s impossible to summarize.
+有很多事情在发生,全部总结是不可能的
+
+But most importantly, you can be a part of this amazing transformation and challenge,
+但最重要的是 你可以学习计算机 \N 成为这个惊人转型的一部分
+
+by learning about computing, and taking what’s arguably humanity’s greatest invention,
+但最重要的是 你可以学习计算机 \N 成为这个惊人转型的一部分
+
+to make the world a better place.
+把世界变得更好
+
+Thanks for watching.
+感谢收看
+
diff --git a/(字幕)全40集中英字幕文本/.DS_Store b/(字幕)全40集中英字幕文本/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/(字幕)全40集中英字幕文本/.DS_Store differ
diff --git a/(字幕)全40集中英字幕文本/1. 计算机早期历史-Early Computing.ass.txt b/(字幕)全40集中英字幕文本/1. 计算机早期历史-Early Computing.ass.txt
new file mode 100644
index 0000000..0af2dd6
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/1. 计算机早期历史-Early Computing.ass.txt
@@ -0,0 +1,615 @@
+Hello world, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+Hello world!我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the course of this series, we're going to go from bits, bytes, transistors and logic gates,
+在这个系列中,我们会学习 Bits(位),Bytes(字节),晶体管, 逻辑门,
+
+all the way to Operating Systems, Virtual Reality and Robots!
+一直到操作系统,虚拟现实和机器人!
+
+We're going to cover a lot, but just to clear things up
+我们要学很多东西,但预先说明
+
+we ARE NOT going to teach you how to program.
+我们 *不会* 教你怎么编程
+
+Instead, we're going to explore a range of computing topics as a discipline and a technology.
+我们会从高层次上纵览一系列计算机话题
+
+Computers are the lifeblood of today's world.
+计算机是当今世界的命脉
+
+If they were to suddenly turn off, all at once,
+如果突然关掉所有的计算机
+
+the power grid would shut down, cars would crash, planes would fall,
+电网会关闭,车辆会相撞,飞机会坠毁
+
+water treatment plants would stop, stock markets would freeze,
+净水厂会关闭,证券市场会停止运作
+
+trucks with food wouldn't know where to deliver, and employees wouldn't get paid.
+装满食物的卡车不知运往何方,员工得不到薪水
+
+Even many non-computer objects -like DFTBA shirts and the chair I'm sitting on-
+甚至很多和计算机无关的东西,例如 DFTBA 的 T 恤和我现在坐的椅子
+
+are made in factories run by computers.
+也都是在计算机管理的工厂中制造的
+
+Computing really has transformed nearly every aspect of our lives.
+计算机改变了我们生活中几乎所有方面
+
+And this isn't the first time we've seen this sort of technology-driven global change.
+我们也不是第一次遇到推动全球发展的科技了
+
+Advances in manufacturing during the Industrial Revolution
+工业革命中生产能力的提高
+
+brought a new scale to human civilization - in agriculture, industry and domestic life.
+大幅提升了农业,工业,畜牧业的规模
+
+Mechanization meant superior harvests and more food, mass produced goods,
+机械化导致更好的收成,更多的食物,商品可以大批量生产
+
+cheaper and faster travel and communication, and usually a better quality of life.
+旅行和通讯变得更便宜更快,生活质量变得更好.
+
+And computing technology is doing the same right now
+计算机和工业革命有一样的影响
+
+- from automated farming and medical equipment,
+从自动化农业和医疗设备
+
+to global telecommunications and educational opportunities,
+到全球通信和教育机会
+
+and new frontiers like Virtual Reality and Self Driving Cars.
+还有 虚拟现实 和 无人驾驶汽车 等新领域
+
+We are living in a time likely to be remembered as the Electronic Age.
+现在这个时代很可能会被后人总结成 "信息时代"
+
+And with billions of transistors in just your smartphones, computers can seem pretty complicated,
+你的智能手机中有数十亿个晶体管,看起来好像很复杂
+
+but really, they're just simple machines
+但实际上它是很简单的机器
+
+that perform complex actions through many layers of abstraction.
+通过一层层的抽象 来做出复杂操作
+
+So in this series, we're going break down those layers,
+在这个系列中,我们会一层层讲解,
+
+and build up from simple 1's and 0's, to logic units, CPUs,
+从最底层的1和0,到逻辑门,CPU
+
+operating systems, the entire internet and beyond.
+操作系统,整个互联网,以及更多~~
+
+And don't worry, in the same way someone buying t-shirts on a webpage
+不用担心,正如在网上买T恤的人 不用知道网站代码是怎么写的
+
+doesn't need to know how that webpage was programmed,
+不用担心,正如在网上买T恤的人 不用知道网站代码是怎么写的
+
+or the web designer doesn't need to know how all the packets are routed,
+设计师不用知道数据包是怎么传输的
+
+or router engineers don't need to know about transistor logic,
+设计路由器的工程师不用理解晶体管的逻辑
+
+this series will build on previous episodes but not be dependent on them.
+本系列中每个视频会接着上集继续讲,但并不依赖前面的视频
+
+By the end of this series,
+等这个系列结束后
+
+I hope that you can better contextualize computing's role both in your own life and society,
+希望你能了解计算机在你的人生 以及社会中扮演什么角色
+
+and how humanity's (arguably) greatest invention is just in its infancy,
+以及这个人类史上最伟大的发明(可以这样说啦)是怎么开始的,
+
+with its biggest impacts yet to come.
+它对未来还会有更大的影响
+
+But before we get into all that, we should start at computing's origins,
+但深入之前,我们应该从计算的起源讲起,
+
+because although electronic computers are relatively new, the need for computation is not.
+虽然电子计算机才出现不久,但人类对计算的需求早就有了
+
+The earliest recognized device for computing was the abacus,
+公认最早的计算设备是 算盘
+
+invented in Mesopotamia around 2500 BCE.
+发明于"美索不达米亚",大约公元前 2500 年
+
+It's essentially a hand operated calculator,
+它是手动计算器,用来帮助加减数字
+
+that helps add and subtract many numbers.
+它是手动计算器,用来帮助加减数字
+
+It also stores the current state of the computation, much like your hard drive does today.
+它存储着当前的计算状态,类似于如今的硬盘
+
+The abacus was created because,
+人们制造算盘是因为
+
+the scale of society had become greater than
+社会的规模已经超出个人心算的能力
+
+what a single person could keep and manipulate in their mind.
+社会的规模已经超出个人心算的能力
+
+There might be thousands of people in a village or tens of thousands of cattle.
+一个村庄可能有上千个人和上万头牛
+
+There are many variants of the abacus,
+算盘有很多变种
+
+but let's look at a really basic version with each row representing a different power of ten.
+但我们来看一个基础版,每行代表 10 的不同次方
+
+So each bead on the bottom row represents a single unit,
+最底下那行,一个珠子代表 10 的 0 次方,也就是 1,
+
+in the next row they represent 10, the row above 100, and so on.
+再上面一行是 10 的 1 次方(也就是 10) \N 再上面一行是 10 的 2 次方 (以此类推)
+
+Let's say we have 3 heads of cattle represented by 3 beads on the bottom row on the right side.
+假设最底部的 3 颗珠子,代表 3 头牛
+
+If we were to buy 4 more cattle we would just slide 4 more beads to the right for a total of 7.
+假设再买 4 头牛,只需要向右移动 4 颗珠子,共 7 个珠子
+
+But if we were to add 5 more after the first 3 we would run out of beads,
+但如果再买 5 头,珠子就不够用了
+
+so we would slide everything back to the left,
+所以把所有珠子移回左边
+
+slide one bead on the second row to the right, representing ten,
+在第二排把 1 颗珠子向右移动,代表 10
+
+and then add the final 2 beads on the bottom row for a total of 12.
+然后最底下那行,向右移动 2 颗珠子,代表 12
+
+This is particularly useful with large numbers.
+这种方法处理大数字很有效
+
+So if we were to add 1,251
+假设要表示 1251
+
+we would just add 1 to the bottom row, 5 to the second row, 2 to the third row, and 1 to the fourth row
+从下往上:\N第一行移 1 个,第二行移 5 个\N第三行移 2 个,第四行移 1 个
+
+- we don't have to add in our head and the abacus stores the total for us.
+我们不用记在脑子里,算盘会记住.
+
+Over the next 4000 years, humans developed all sorts of clever computing devices,
+在接下来 4000 年,人类发明了各种巧妙的计算设备
+
+like the astrolabe, which enabled ships to calculate their latitude at sea.
+比如星盘,让船只可以在海上计算纬度
+
+Or the slide rule, for assisting with multiplication and division.
+或计算尺,帮助计算乘法和除法
+
+And there are literally hundred of types of clocks created
+人们还创造了上百种时钟
+
+that could be used to calculate sunrise, tides, positions of celestial bodies, and even just the time.
+算日出,潮汐,天体的位置,或纯粹拿来计时
+
+Each one of these devices made something that was previously laborious to calculate much faster,
+这些设备让原先很费力的事变得更快,更简单,更精确
+
+easier, and often more accurate
+这些设备让原先很费力的事变得更快,更简单,更精确
+
+- it lowered the barrier to entry,
+降低了门槛
+
+and at the same time, amplified our mental abilities -
+加强了我们的能力
+
+take note, this is a theme we're going to touch on a lot in this series.
+记笔记!(敲黑板)这个系列会多次提到这一点
+
+As early computer pioneer Charles Babbage said:
+计算机先驱 Charles Babbage 说过:
+
+"At each increase of knowledge, as well as on the contrivance of every new tool,
+"随着知识的增长和新工具的诞生,人工劳力会越来越少"
+
+human labour becomes abridged."
+"随着知识的增长和新工具的诞生,人工劳力会越来越少"
+
+However, none of these devices were called "computers".
+然而,这些设备那时都不叫 "计算机"
+
+The earliest documented use of the word "computer" is from 1613, in a book by Richard Braithwait.
+最早使用 "计算机" 一词的文献 \N 来自 1613 年的一本书,作者 Richard Braithwait
+
+And it wasn't a machine at all - it was a job title.
+然而指的不是机器,而是一种职业
+
+Braithwait said,
+Braithwait 说:
+
+"I have read the truest computer of times,
+"我听说过的计算者里最厉害的,能把好几天的工作量大大缩减"
+
+and the best arithmetician that ever breathed, and he reduceth thy dayes into a short number".
+"我听说过的计算者里最厉害的,能把好几天的工作量大大缩减"
+
+In those days, computer was a person who did calculations,
+那时, "Computer" 指负责计算的人
+
+sometimes with the help of machines, but often not.
+"Computer" 偶尔会用机器帮忙,但大部分时候靠自己
+
+This job title persisted until the late 1800s,
+这个职位一直到 1800 年代还存在
+
+when the meaning of computer started shifting to refer to devices.
+之后 "Computer" 逐渐开始代表机器
+
+Notable among these devices was the Step Reckoner,
+其中"步进计算器"最有名
+
+built by German polymath Gottfried Leibniz in 1694.
+由德国博学家 戈特弗里德·莱布尼茨 建造于 1694 年
+
+Leibniz said "... it is beneath the dignity of excellent men to waste their time in calculation
+莱布尼茨说过 "... 让优秀的人浪费时间算数简直侮辱尊严
+
+when any peasant could do the work just as accurately with the aid of a machine."
+农民用机器能算得一样准"
+
+It worked kind of like the odometer in your car,
+"步进计算器"有点像汽车里的里程表,不断累加里程数
+
+which is really just a machine for adding up the number of miles your car has driven.
+"步进计算器"有点像汽车里的里程表,不断累加里程数
+
+The device had a series of gears that turned;
+它有一连串可以转动的齿轮
+
+each gear had ten teeth, to represent the digits from 0 to 9.
+每个齿轮有十个齿,代表数字0到9
+
+Whenever a gear bypassed nine, it rotated back to 0 and advanced the adjacent gear by one tooth.
+每当一个齿轮转过 9,它会转回 0,同时让旁边的齿轮前进 1 个齿
+
+Kind of like when hitting 10 on that basic abacus.
+就像算盘超过 10 一样.
+
+This worked in reverse when doing subtraction, too.
+做减法时,机器会反向运作.
+
+With some clever mechanical tricks,
+利用一些巧妙的机械结构
+
+the Step Reckoner was also able to multiply and divide numbers.
+步进计算器也能做乘法和除法
+
+Multiplications and divisions are really just many additions and subtractions.
+乘法和除法 实际上只是多个加法和减法
+
+For example, if we want to divide 17 by 5, we just subtract 5, then 5, then 5 again,
+举例,17除以5,我们只要减5,减5,再减5
+
+and then we can't subtract any more 5's… so we know 5 goes into 17 three times, with 2 left over.
+直到不能再减 5,就知道了 17=5x3+2
+
+The Step Reckoner was able to do this in an automated way,
+步进计算器 可以自动完成这种操作
+
+and was the first machine that could do all four of these operations.
+它是第一台能做"加减乘除"全部四种运算的机器
+
+And this design was so successful it was used for the next three centuries of calculator design.
+它的设计非常成功,以至于沿用了 3 个世纪.
+
+Unfortunately, even with mechanical calculators,
+不幸的是,即使有机械计算器
+
+most real world problems required many steps of computation before an answer was determined.
+许多现实问题 依然需要很多步
+
+It could take hours or days to generate a single result.
+算一个结果可能要几小时甚至几天
+
+Also, these hand-crafted machines were expensive, and not accessible to most of the population.
+而且这些手工制作的机器非常昂贵,大部分人买不起
+
+So, before 20th century,
+所以在 20 世纪以前
+
+most people experienced computing through pre-computed tables
+大部分人会用预先算好的计算表
+
+assembled by those amazing "human computers" we talked about.
+这些计算表由之前说的 "人力计算器" 编撰
+
+So if you needed to know the square root of 8 million 6 hundred and 75 thousand 3 hundred and 9,
+如果你想知道 867,5309 的平方根
+
+instead of spending all day hand-cranking your step reckoner,
+与其花一整天来手摇 "步进计算器"
+
+you could look it up in a huge book full of square root tables in a minute or so.
+你可以花一分钟在表里找答案
+
+Speed and accuracy is particularly important on the battlefield,
+速度和准确性在战场上尤为重要
+
+and so militaries were among the first to apply computing to complex problems.
+因此军队很早就开始用计算解决复杂问题
+
+A particularly difficult problem is accurately firing artillery shells,
+如何精确瞄准炮弹是一个很难的问题
+
+which by the 1800s could travel well over a kilometer (or a bit more than half a mile).
+19世纪,这些炮弹的射程可以达到 1 公里以上(比半英里多一点)
+
+Add to this varying wind conditions, temperature, and atmospheric pressure,
+因为风力,温度,大气压力会不断变化
+
+and even hitting something as large as a ship was difficult.
+想打中船一样大的物体也非常困难
+
+Range Tables were created that allowed gunners to look up environmental conditions
+于是出现了射程表,炮手可以查环境条件和射击距离
+
+and the distance they wanted to fire,
+于是出现了射程表,炮手可以查环境条件和射击距离
+
+and the table would tell them the angle to set the canon.
+然后这张表会告诉他们,角度要设成多少
+
+These Range Tables worked so well, they were used well into World War Two.
+这些射程表很管用,二战中被广泛应用
+
+The problem was, if you changed the design of the cannon or of the shell,
+问题是如果改了大炮或炮弹的设计,就要算一张新表
+
+a whole new table had to be computed,
+问题是如果改了大炮或炮弹的设计,就要算一张新表
+
+which was massively time consuming and inevitably led to errors.
+这样很耗时而且会出错
+
+Charles Babbage acknowledged this problem in 1822
+Charles Babbage 在 1822 年写了一篇论文
+
+in a paper to the Royal Astronomical Society entitled:
+向皇家天文学会指出了这个问题
+
+"Note on the application of machinery to the computation of astronomical and mathematical tables".
+标题叫: "机械在天文与计算表中的应用"
+
+Let's go to the thought bubble.
+让我们进入思想泡泡
+
+Charles Babbage proposed a new mechanical device called the Difference Engine,
+Charles Babbage 提出了一种新型机械装置叫 "差分机"
+
+a much more complex machine that could approximate polynomials.
+一个更复杂的机器,能近似多项式.
+
+Polynomials describe the relationship between several variables
+多项式描述了几个变量之间的关系
+
+- like range and air pressure, or amount of pizza Carrie Anne eats and happiness.
+比如射程和大气压力,或者 Carrie Anne 要吃多少披萨才开心
+
+Polynomials could also be used to approximate logarithmic and trigonometric functions,
+多项式也可以用于近似对数和三角函数
+
+which are a real hassle to calculate by hand.
+这些函数手算相当麻烦
+
+Babbage started construction in 1823,
+Charles Babbage 在 1823 年开始建造差分机
+
+and over the next two decades, tried to fabricate and assemble the 25,000 components,
+并在接下来二十年,试图制造和组装 25,000 个零件
+
+collectively weighing around 15 tons.
+总重接近 15 吨
+
+Unfortunately, the project was ultimately abandoned.
+不幸的是,该项目最终放弃了
+
+But, in 1991,
+但在 1991 年
+
+historians finished constructing a Difference Engine based on Babbage's drawings and writings
+历史学家根据 Charles Babbage 的草稿做了一个差分机
+
+- and it worked!
+而且它还管用!
+
+But more importantly, during construction of the Difference Engine,
+但更重要的是,在差分机的建造期间
+
+Babbage imagined an even more complex machine - the Analytical Engine.
+Charles Babbage 构想了一个更复杂的机器 - 分析机
+
+Unlike the Difference Engine,
+不像差分机,步进计算器 和以前的其他计算设备
+
+Step Reckoner and all other computational devices before it
+不像差分机,步进计算器 和以前的其他计算设备
+
+- the Analytical Engine was a "general purpose computer".
+分析机是 "通用计算机"
+
+It could be used for many things, not just one particular computation;
+它可以做很多事情,不只是一种特定运算
+
+it could be given data and run operations in sequence;
+甚至可以给它数据,然后按顺序执行一系列操作
+
+it had memory and even a primitive printer.
+它有内存 甚至一个很原始的打印机
+
+Like the Difference Engine, it was ahead of its time, and was never fully constructed.
+就像差分机,这台机器太超前了,所以没有建成
+
+However, the idea of an "automatic computer"
+然而,这种 "自动计算机" 的概念
+
+- one that could guide itself through a series of operations automatically,
+-计算机可以自动完成一系列操作
+
+was a huge deal, and would foreshadow computer programs.
+是个跨时代的概念,预示着计算机程序的诞生
+
+English mathematician Ada Lovelace wrote hypothetical programs for the Analytical Engine, saying,
+英国数学家 Ada Lovelace 给分析机写了假想的程序,她说:
+
+"A new, a vast, and a powerful language is developed for the future use of analysis."
+"未来会诞生一门全新的,强大的,专为分析所用的语言"
+
+For her work, Ada is often considered the world's first programmer.
+因此 Ada 被认为是世上第一位程序员.
+
+The Analytical Engine would inspire, arguably, the first generation of computer scientists,
+分析机激励了(可以这么讲)第一代计算机科学家
+
+who incorporated many of Babbage's ideas in their machines.
+这些计算机科学家 \N 把很多 Charles Babbage 的点子融入到他们的机器
+
+This is why Babbage is often considered the "father of computing".
+所以 Charles Babbage 经常被认为是 "计算之父"
+
+Thanks! Thought Bubble
+谢啦!思想泡泡
+
+So by the end of the 19th century,
+到了 19 世纪末
+
+computing devices were used for special purpose tasks in the sciences and engineering,
+科学和工程领域中的特定任务 会用上计算设备
+
+but rarely seen in business, government or domestic life.
+但公司,政府,家庭中很少见到计算设备
+
+However, the US government faced a serious problem for its 1890 census
+然而,美国政府在 1890 年的人口普查中面临着严重的问题
+
+that demanded the kind of efficiency that only computers could provide.
+只有计算机能提供所需的效率
+
+The US Constitution requires that a census be conducted every ten years,
+美国宪法要求 10 年进行一次人口普查
+
+for the purposes of distributing federal funds, representation in congress, and good stuff like that.
+目的是分配联邦资金,国会代表,等等
+
+And by 1880s, the US population was booming, mostly due to immigration.
+到 1880 年代,美国人口迅速增长,大部分因为移民
+
+That census took seven years to manually compile
+人口普查要七年时间来手工编制,等做完都过时了
+
+and by the time it was completed, it was already out of date
+人口普查要七年时间来手工编制,等做完都过时了
+
+- and it was predicted that the 1890 census would take 13 years to compute.
+而且 1890 年的人口普查,预计要 13 年完成
+
+That's a little problematic when it's required every decade!
+但人口普查可是 10 年一次啊!
+
+The Census bureau turned to Herman Hollerith, who had built a tabulating machine.
+人口普查局找了 Herman Hollerith,他发明了打孔卡片制表机
+
+His machine was "electro-mechanical"
+他的机器是 "电动机械的"
+
+- it used traditional mechanical systems for keeping count,
+- 用传统机械来计数
+
+like Leibniz's Step Reckoner - but coupled them with electrically-powered components.
+结构类似莱布尼茨的乘法器,但用电动结构连接其他组件
+
+Hollerith's machine used punch cards
+Hollerith 的机器用打孔卡
+
+which were paper cards with a grid of locations that can be punched out to represent data.
+一种纸卡,上面有网格,用打孔来表示数据.
+
+For example, there was a series of holes for marital status.
+举个例子,有一连串孔代表婚姻状况
+
+If you were married, you would punch out the married spot,
+如果你结婚了,就在 "结婚" 的位置打孔
+
+then when the card was inserted into Hollerith's machine, little metal pins would come down over the card
+当卡插入 Hollerith 的机器时,小金属针会到卡片上
+
+- if a spot was punched out, the pin would pass through the hole in the paper
+-如果有个地方打孔了,针会穿过孔
+
+and into a little vial of mercury, which completed the circuit.
+泡入一小瓶汞,联通电路
+
+This now completed circuit powered an electric motor,
+电路会驱动电机
+
+which turned a gear to add one, in this case, to the "married" total.
+然后给 "已婚" 的齿轮 + 1
+
+Hollerith's machine was roughly 10x faster than manual tabulations,
+Hollerith 的机器速度是手动的 10 倍左右
+
+and the Census was completed in just two and a half years
+使人口普查在短短两年半内完成
+
+- saving the census office millions of dollars.
+给人口普查办公室省了上百万美元
+
+Businesses began recognizing the value of computing,
+企业开始意识到计算机的价值
+
+and saw its potential to boost profits by improving labor- and data-intensive tasks,
+可以提升劳动力以及数据密集型任务 来提升利润
+
+like accounting, insurance appraisals, and inventory management.
+比如会计,保险评估和库存管理等行业
+
+To meet this demand, Hollerith founded The Tabulating Machine Company,
+为了满足这一需求,Hollerith 成立了制表机器公司
+
+which later merged with other machine makers in 1924
+这家公司后来在 1924 年与其它机械制造商合并
+
+to become The International Business Machines Corporation or IBM
+成为了 "国际商业机器公司",简称 IBM
+
+- which you've probably heard of.
+-你可能听过 IBM
+
+These electro-mechanical "business machines" were a huge success, transforming commerce and government,
+这些电子机械的 "商业机器" 取得了巨大成功,改变了商业和政府.
+
+and by the mid-1900s, the explosion in world population and the rise of globalized trade
+到了 1900 年代中叶,世界人口的爆炸和全球贸易的兴起
+
+demanded even faster and more flexible tools for processing data,
+要求更快,更灵活的工具来处理数据
+
+setting the stage for digital computers,
+为电子计算机的发展奠定了基础
+
+which we'll talk about next week.
+我们下周讨论
+
diff --git a/(字幕)全40集中英字幕文本/10. 早期的编程方式-Early Programming.ass.txt b/(字幕)全40集中英字幕文本/10. 早期的编程方式-Early Programming.ass.txt
new file mode 100644
index 0000000..2910712
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/10. 早期的编程方式-Early Programming.ass.txt
@@ -0,0 +1,474 @@
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the last few episodes,
+前几集我们把重点放在计算机的原理
+
+We've talked a lot about the mechanics of how computers work.
+前几集我们把重点放在计算机的原理
+
+How they use complex circuits to save and retrieve values from memory,
+怎么从内存读写数据,执行操作
+
+and perform operations on those values
+怎么从内存读写数据,执行操作
+
+like adding two numbers together.
+比如把两个数字加在一起
+
+We've even briefly talked about sequences of operations,
+还简单讲了下指令的执行,也就是计算机程序
+
+which is a computer program
+还简单讲了下指令的执行,也就是计算机程序
+
+What we haven't talked about is how a program gets into a computer?
+但我们还没讲的是:程序如何"进入"计算机
+
+You might remember in episode 7 and 8 ,
+你应该记得在第 7, 8 集,我们一步步讲了例子程序
+
+we step through some simple example programs for the CPU that we had created
+你应该记得在第 7, 8 集,我们一步步讲了例子程序
+
+For simplicity, we just waved our hands and said that the program was already magically in memory
+当时为了简单,我们假设程序已经魔法般在内存里了
+
+But in reality, programs have to be loaded into a computer's memory.
+但事实是,程序需要加载进内存
+
+It's not magic. It's computer science
+这不是魔法,是计算机科学!
+
+The need to program machines existed way before the development of computers.
+给机器编程这个需求,早在计算机出现之前就有了
+
+The most famous example of this was in textile manufacturing
+最著名的例子来自纺织业
+
+If you just wanted to weave a big red tablecloth
+如果你只想织一块红色大桌布
+
+You could simply feed red thread into a loom and let it run
+可以直接放红线进织布机
+
+What about if you wanted the cloth to have a pattern like stripes or plaid?
+但如果想要图案怎么办? 比如条纹或者方格
+
+Workers would have to periodically reconfigure the loom as dictated by the pattern,
+工人要每隔一会儿 调整一次织布机
+
+but this was labor intensive which made patterned fabrics expensive.
+因为非常消耗劳动力,所以图案纺织品很贵
+
+The presence or absence of a hole in the card determined if a specific thread was held high or low in the loom
+特定位置有没有穿孔,决定了线是高是低
+
+Such as the cross thread, called the weft, passed above or below the thread
+横线是从上/从下穿过
+
+To vary the pattern across rows these punch cards were arranged in long chains
+为了让每行图案不同,纸卡连成长条
+
+Forming a sequence of commands for the loom.
+形成连续指令
+
+Sound familiar?
+听起来很熟?
+
+Many consider Jacquard loom to be one of the earliest forms of programming.
+很多人认为雅卡尔织布机是最早的编程
+
+Punched cards, turned out to be a cheap, reliable, fairly human-readable way to store data.
+事实证明 穿孔纸卡便宜、可靠、也易懂
+
+Nearly a century later,
+近一个世纪后
+
+punch cards were used to help tabulate the 1890 US census
+穿孔纸卡用于 1890 年美国人口普查
+
+which we talked about in episode 1
+我们在第一集提过
+
+Each card held an individual person's data.
+一张卡存一个人的信息
+
+things like race
+比如种族
+
+marital status
+婚姻状况
+
+number of children
+子女数量
+
+country of birth and so on
+出生国家 等等
+
+for each demographic question
+针对每个问题,人口普查工作者会在对应位置打孔
+
+a census worker would punch out a hole of the appropriate position
+针对每个问题,人口普查工作者会在对应位置打孔
+
+when a card was fed into the tabulating machine
+当卡片插入汇总机
+
+a hole would cause the running total for that specific answer to be increased by one
+孔会让对应总和值+1
+
+in this way you could afeed the entire counties worth of people
+可以插入整个国家人口的卡片
+
+and at the end you'd have running totals for all of the questions that you ask
+在结束后得到各个总值
+
+It is important to note here that early tabulating machines were not truly computers
+值得注意的是,早期汇总机不算计算机
+
+as they can only do one thing-tabulate
+因为它们只做一件事 - 汇总数据
+
+their operation was fixed and not programmable
+操作是固定的,不能编程
+
+punched cards stored data, but not a program
+穿孔纸卡存的是数据,不是程序.
+
+over the next 60 years, these business machines grew in capability
+之后60年,这些机器被加强,可以做减、乘、除
+
+Adding features to subtract multiply divide
+之后60年,这些机器被加强,可以做减、乘、除
+
+and even make simple decisions about when to perform certain operations.
+甚至可以做一些小决定,决定何时执行某指令
+
+To trigger these functions appropriately
+为了正确执行不同计算,程序员需要某种控制面板
+
+so that different calculations could be performed, a programmer accessed a control panel
+为了正确执行不同计算,程序员需要某种控制面板
+
+this panel was full of little sockets into which a programmer would plug cables
+面板有很多小插孔,程序员可以插电线
+
+to pass values and signals between different parts of the machine
+让机器的不同部分 互相传数据和信号
+
+for this reason they were also called plug boards
+因此也叫 "插线板"
+
+Unfortunately this meant having to rewire the machine each time a different program needed to be run
+不幸的是, 这意味着 运行不同程序要重新接线
+
+And so by the 1920s these plug boards were made swappable
+所以到 1920 年代,控制面板变成了可拔插
+
+This not only made programming a lot more comfortable
+让编程更方便
+
+but also allowed for different programs be plugged into a machine
+可以给机器插入不同程序
+
+For example one board might be wired to calculate sales tax
+比如,一个插线板算销售税,另一个算工资单
+
+While another helps with payroll
+比如,一个插线板算销售税,另一个算工资单
+
+But plug boards were fiendishly complicated to program
+但给插线板编程很复杂
+
+This tangle of wires is a program for calculating a profit loss summary using an IBM 402 accounting machine
+图中乱成一团的线 负责算盈亏总额 \N 用于 IBM 402 核算机
+
+which were popular in the 1940s
+在 1940 年代这样做很流行
+
+And this style of plug board programming wasn't unique through electromechanical computers
+用插线板编程 不只在机电计算机流行
+
+The world's first general-purpose electronic computer, the ENIAC, completed in 1946
+世上第一台通用电子计算机,ENIAC,完成于 1946 年
+
+used a ton of them
+用了一大堆插线板
+
+Even after a program had been completely figured out on paper
+程序在纸上设计好之后
+
+Physically wiring up the ENIAC and getting the program to run could take upwards of three weeks
+给 ENIAC 连线,最多可能花三个星期
+
+Given the enormous cost of these early computers, weeks of downtime simply to switch programs was unacceptable
+因为早期计算机非常昂贵 \N 停机几个星期只为换程序 完全无法接受
+
+and the new faster more flexible way to program machines was badly needed
+人们急需更快、更灵活的新方式来编程
+
+Fortunately by the late 1940s and into the 50s
+幸运的是,到 1940 年代晚期 1950 年代初
+
+electronic memory was becoming feasible
+内存变得可行
+
+As costs fell, memory size grew, instead of storing a program as a physical plug board of wires
+价格下降, 容量上升. 与其把程序存在插线板
+
+it became possible to store a program entirely in a computer's memory
+存在内存变得可行
+
+where it could be easily changed by programmers and quickly accessed by the CPU
+这样程序易于修改、方便 CPU 快速读取
+
+these machines were called Stored-program Computers
+这类机器叫 "存储程序计算机"
+
+With enough computer memory you could store not only the program you wanted to run
+如果内存足够,不仅可以存要运行的程序
+
+but also any data your program would need
+还可以存程序需要的数据
+
+including new values it created along the way
+包括程序运行时产生的新数据
+
+Unifying the program and data into a single shared memory is called the Von Neumann Architecture
+程序和数据都存在一个地方,叫 "冯诺依曼结构"
+
+named after John Von Neumann
+命名自 约翰·冯·诺依曼
+
+a prominent mathematician and physicist who worked on the Manhattan project and several early electronic computers
+杰出的数学家和物理学家 \N 参与了曼哈顿计划和早期电子计算机项目
+
+and once said I am thinking about something much more important than Bombs
+他曾说:我在思考比炸弹重要得多的东西
+
+I'm thinking about computers
+计算机
+
+The hallmarks of a Von Neumann computer are a processing unit containing an arithmetic logic unit
+冯诺依曼计算机的标志是,一个处理器(有算术逻辑单元)+
+
+data registers and instruction register and instruction address register
+数据寄存器+指令寄存器+指令地址寄存器
+
+And finally a memory to store both data and instructions
++内存(负责存数据和指令)
+
+Hopefully this sounds familiar
+希望这听起来很耳熟
+
+Because we actually built a Von Neumann computer in episode 7
+因为第7集我们造了一个冯诺依曼计算机
+
+The very first Von Neumann Architecture Stored-program computer
+第一台冯诺依曼架构的"储存程序计算机"
+
+was constructed in 1948 by the University of Manchester, nicknamed Baby.
+由曼彻斯特大学于 1948 年建造完成,绰号"宝宝"
+
+and even the computer you are watching this video right now
+甚至你现在看视频的计算机,也在用一样的架构
+
+uses the same architecture
+甚至你现在看视频的计算机,也在用一样的架构
+
+Now electronic computer memory is great and all
+虽然有内存很棒
+
+but you still have to load the program and data into the computer before it can run
+但程序和数据 依然需要某种方式输入计算机
+
+and for this reason punch cards were used
+所以用穿孔纸卡
+
+Let's get to the Thought bubbles
+让我们进入 思维泡泡
+
+Well into the 1980s almost all computers have a punch card reader
+到1980年代,几乎所有的计算机都有穿孔纸卡读取器
+
+which could suck in a single punch card at a time
+可以吸入一张卡片,把卡片内容写进内存
+
+and write the contents of the card into the computer's memory
+可以吸入一张卡片,把卡片内容写进内存
+
+If you load it in a stack of punch cards,
+如果放了一叠卡片,读取器会一个个写进内存
+
+the reader would load them all into memory sequentially as a big block
+如果放了一叠卡片,读取器会一个个写进内存
+
+once the program and data were in memory, the computer would be told to execute it
+一旦程序和数据写入完毕,电脑会开始执行
+
+Of course even simple computer programs might have hundreds of instructions
+即便简单程序也有几百条指令,要用一叠纸卡来存
+
+which meant that programs were stored as stacks of punch cards
+即便简单程序也有几百条指令,要用一叠纸卡来存
+
+So if you ever have the misfortune of accidentally dropping your program on the floor
+如果不小心摔倒弄撒了
+
+it could take you hours days or even weeks to put the code back in the right order
+要花上几小时、几天、甚至几周来整理
+
+A common trick was to draw a diagonal line on the side of the card stack called striping,
+有个小技巧是 在卡片侧面画对角线
+
+so you'd have at least some clue how to get it back into the right order
+如果弄散了,整理起来会方便很多
+
+The largest program ever punched into punch cards was the US Air Force's SAGE air defense system, completed in 1955.
+用纸卡的最大型程序 \N 是美国空军的 SAGE 防空系统,于 1955 年完成
+
+and its peak, the project is said to have employed 20% of the world's programmers
+据称顶峰时期 雇佣了世上 20% 程序员
+
+Its main control program was stored on a whopping 62,500 punch cards
+主控制程序用了 62500 张穿孔纸卡
+
+which is equivalent to roughly 5 megabytes of data
+等同于大约 5MB 的数据
+
+Pretty underwhelming by today's standards
+以如今的标准,不值一提
+
+And punch cards weren't only useful for getting data into computers
+穿孔纸卡不仅可以往计算机放数据
+
+but also getting data out of them
+还可以取出数据
+
+At the end of a program results could be written out of computer memory and onto punch cards by, well, punching cards
+程序运行到最后,结果可以输到纸卡上,方式嘛,当然是打孔
+
+then this data could be analyzed by humans or loaded into a second program for additional computation
+然后人可以分析结果,或者再次放进计算机,做进一步计算
+
+Thanks, thought-bubble
+谢了 思维泡泡
+
+A close cousin to punch cards was punched paper tape
+穿孔纸卡 的亲戚是纸带
+
+Which is basically the same idea, but continuous instead of being on individual cards
+基本是一回事,只不过更连续,不是一张张卡.
+
+And of course we haven't talked about Hard Drives, CD-ROMs, DVDs, USB-Thumb drives and other similar goodies
+当然我们还没提硬盘, 只读光盘, DVD, U盘等等
+
+We'll get to those more advanced types of data storage in a future episode
+以后我们会讲这些更先进的存储方法
+
+Finally in addition to plug boards and punch paper
+最后,除了插线板和穿孔纸卡
+
+there was another common way to program and control computers in pre-1980
+在 1980 年代前,还有一种常见编程方式
+
+Panel programming
+面板编程
+
+Rather than having to physically plug in cables to activate certain functions
+与其插一堆线到插线板
+
+this could also be done with huge panels full of switches and buttons
+可以用一大堆开关和按钮,做到一样的效果
+
+And there were indicator lights to display the status of various functions and values in memory
+面板上有指示灯,代表各种函数的状态和内存中的值
+
+Computers of the 50s and 60s often featured huge control consoles that look like this
+50和60年代的计算机,一般都有这样巨大的控制台
+
+Although it was rare to input a whole program using just switches,it was possible
+很少有人只用开关来输入一整个程序,但技术上是可行的
+
+And early home computers made for the hobbyist market use switches extensively
+早期针对计算机爱好者的家用计算机,大量使用了开关
+
+because most home users couldn't afford expensive peripherals like punch card readers
+因为大多数家庭用户负担不起昂贵的外围设备 \N 比如穿孔纸卡读取器
+
+The first commercially successful home computer was the Altair 8800
+第一款取得商业成功的家用计算机是 Altair 8800
+
+which sold in two versions: Pre-assembled and the Kit
+有两种版本可以买: \N 1. 预先装好的整机 \N 2. 需要组装的组件
+
+the Kit which was popular with amateur computing enthusiasts,
+计算机爱好者 喜欢买组件版
+
+sold for the then unprecedented low price are around $400 in 1975
+售价极低,在 1975 年卖 400 美元左右
+
+Or about $2,000 in 2017
+相当于 2017 年的 2000 美元
+
+To program the 8800, you'd literally toggle the switches on the front panel
+为了给 8800 编程,你要拨动面板上的开关
+
+to enter the binary op-codes for the instruction you wanted
+输入二进制操作码
+
+Then you press the deposit button to write that value into memory
+然后按 "存储键" 把值存入内存
+
+Then in the next location in memory you toggle the switches again
+然后会到下一个内存位置 \N 你可以再次拨开关,写下一个指令
+
+for your next instruction deposit it and so on
+重复这样做
+
+When you finally entered your whole program into memory
+把整个程序都写入内存之后
+
+you would toggle the switches moves back to memory address 0
+可以推动开关,回到内存地址0
+
+press the run button and watch the little lights blink
+然后按运行按钮,灯会闪烁
+
+That was home computing in 1975, Wow.
+这就是 1975 年的家用计算机, 哇.
+
+Whether it was plug board, switches or punched paper
+不管是插线板、开关或穿孔纸卡
+
+Programming these early computers was the realm of experts
+早期编程都是专家活
+
+either professionals who did this for living or technology enthusiasts
+不管是全职还是技术控,都要非常了解底层硬件
+
+you needed intimate knowledge of the underlying hardware,
+不管是全职还是技术控,都要非常了解底层硬件
+
+so things like processor op-codes and register wits, to write programs
+比如 操作码, 寄存器等, 才能写程序
+
+This meant programming was hard and tedious and even professional engineers
+所以编程很难,很烦
+
+and scientists struggled to take full advantage of what computing could offer
+哪怕工程师和科学家都无法 完全发挥计算机的能力
+
+What was needed was a simpler way to tell computers what to do,
+我们需要一种更简单方式 告诉计算机要做什么
+
+a simpler way to write programs
+一种更简单的编程方式
+
+And that brings us to programming languages, which we'll talk about next episode
+这带领我们到下一个话题 - 编程语言, 我们下集会讲
+
+See you next week
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/11. 编程语言发展史-The First Programming Languages.ass.txt b/(字幕)全40集中英字幕文本/11. 编程语言发展史-The First Programming Languages.ass.txt
new file mode 100644
index 0000000..cee813f
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/11. 编程语言发展史-The First Programming Languages.ass.txt
@@ -0,0 +1,662 @@
+This episode is brought to you by CuriosityStream.
+本集由 CuriosityStream 赞助播出
+
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+So far, for most of this series, we've focused on hardware
+之前我们把重点放在硬件 - 组成计算机的物理组件
+
+-- the physical components of computing --
+之前我们把重点放在硬件 - 组成计算机的物理组件
+
+things like: electricity and circuits, registers and RAM, ALUs and CPUs.
+比如电,电路,寄存器,RAM,ALU,CPU
+
+But programming at the hardware level is cumbersome and inflexible,
+但在硬件层面编程非常麻烦
+
+so programmers wanted a more versatile way to program computers
+所以程序员想要一种更通用的方法编程
+
+- what you might call a "softer" medium.
+- 一种"更软的"媒介
+
+That's right, we're going to talk about Software!
+没错,我们要讲软件!
+
+In episode 8, we walked through a simple program for the CPU we designed.
+第 8 集我们一步步讲了一个简单程序
+
+The very first instruction to be executed, the one at memory address 0, was 0010 1110.
+第一条指令在内存地址 0:0010 1110
+
+As we discussed, the first four bits of an instruction is the operation code,
+之前说过,前 4 位是操作码
+
+or OPCODE for short.
+简称 OPCODE
+
+On our hypothetical CPU, 0010 indicated a LOAD_A instruction
+对于这个假设 CPU,0010 代表 LOAD_A 指令
+
+-- which moves a value from memory into Register A.
+- 把值从内存复制到寄存器 A
+
+The second set of four bits defines the memory location,
+后 4 位是内存地址,1110 是十进制的 14
+
+in this case, 1110, which is 14 in decimal.
+后 4 位是内存地址,1110 是十进制的 14
+
+So what these eight numbers really mean is "LOAD Address 14 into Register A".
+所以这 8 位表达的意思是 \N "读内存地址 14,放入寄存器 A"
+
+We're just using two different languages.
+只是用了两种不同语言
+
+You can think of it like English and Morse Code.
+可以想成是英语和摩尔斯码的区别
+
+"Hello" and ".... . .-.. .-.. ---" mean the same thing -- hello! --
+"你好" 和 ".... . .-.. .-.. ---" 是一个意思:你好
+
+they're just encoded differently.
+只是编码方式不同
+
+English and Morse Code also have different levels of complexity.
+英语和摩尔斯码的复杂度也不同
+
+English has 26 different letters in its alphabet and way more possible sounds.
+英文有 26 个字母以及各种发音
+
+Morse only has dots and dashes.
+摩尔斯码只有"点"和"线"
+
+But, they can convey the same information, and computer languages are similar.
+但它们可以传达相同的信息,计算机语言也类似.
+
+As we've seen, computer hardware can only handle raw, binary instructions.
+计算机能处理二进制,二进制是处理器的"母语"
+
+This is the "language" computer processors natively speak.
+计算机能处理二进制,二进制是处理器的"母语"
+
+In fact, it's the only language they're able to speak.
+事实上,它们*只能*理解二进制
+
+It's called Machine Language or Machine Code.
+这叫"机器语言"或"机器码"
+
+In the early days of computing, people had to write entire programs in machine code.
+在计算机早期阶段,必须用机器码写程序
+
+More specifically, they'd first write a high-level version of a program on paper, in English,
+具体来讲,会先在纸上用英语写一个"高层次版"
+
+For example "retrieve the next sale from memory,
+举例:"从内存取下一个销售额,
+
+then add this to the running total for the day, week and year,
+然后加到天、周、年的总和
+
+then calculate any tax to be added"
+然后算税"
+
+...and so on.
+等等...
+
+An informal, high-level description of a program like this is called Pseudo-Code.
+这种对程序的高层次描述,叫 "伪代码"
+
+Then, when the program was all figured out on paper,
+在纸上写好后
+
+they'd painstakingly expand and translate it into binary machine code by hand,
+用"操作码表"把伪代码转成二进制机器码
+
+using things like opcode tables.
+用"操作码表"把伪代码转成二进制机器码
+
+After the translation was complete, the program could be fed into the computer and run.
+翻译完成后,程序可以喂入计算机并运行
+
+As you might imagine, people quickly got fed up with this process.
+你可能猜到了,很快人们就厌烦了
+
+So, by the late 1940s and into the 50s,
+所以在 1940~1950 年代
+
+programmers had developed slightly higher-level languages that were more human-readable.
+程序员开发出一种新语言, 更可读 更高层次
+
+Opcodes were given simple names, called mnemonics,
+每个操作码分配一个简单名字,叫"助记符"
+
+which were followed by operands, to form instructions.
+"助记符"后面紧跟数据,形成完整指令
+
+So instead of having to write instructions as a bunch of 1's and 0's,
+与其用 1 和 0 写代码,程序员可以写"LOAD_A 14"
+
+programmers could write something like "LOAD_A 14".
+与其用 1 和 0 写代码,程序员可以写"LOAD_A 14"
+
+We used this mnemonic in Episode 8 because it's so much easier to understand!
+我们在第 8 集用过这个助记符,因为容易理解得多!
+
+Of course, a CPU has no idea what "LOAD_A 14" is.
+当然,CPU 不知道 LOAD_A 14 是什么
+
+It doesn't understand text-based language, only binary.
+它不能理解文字,只能理解二进制
+
+And so programmers came up with a clever trick.
+所以程序员想了一个技巧,写二进制程序来帮忙
+
+They created reusable helper programs, in binary,
+所以程序员想了一个技巧,写二进制程序来帮忙
+
+that read in text-based instructions,
+它可以读懂文字指令,自动转成二进制指令
+
+and assemble them into the corresponding binary instructions automatically.
+它可以读懂文字指令,自动转成二进制指令
+
+This program is called
+这种程序叫
+
+-- you guessed it --
+你可能猜到了
+
+an Assembler.
+汇编器
+
+It reads in a program written in an Assembly Language
+汇编器读取用"汇编语言"写的程序,然后转成"机器码"
+
+and converts it to native machine code.
+汇编器读取用"汇编语言"写的程序,然后转成"机器码"
+
+"LOAD_A 14" is one example of an assembly instruction.
+"LOAD_A 14" 是一个汇编指令的例子
+
+Over time, Assemblers gained new features that made programming even easier.
+随着时间推移,汇编器有越来越多功能,让编程更容易
+
+One nifty feature is automatically figuring out JUMP addresses.
+其中一个功能是自动分析 JUMP 地址
+
+This was an example program I used in episode 8:
+这里有一个第8集用过的例子:
+
+Notice how our JUMP NEGATIVE instruction jumps to address 5,
+注意, JUMP NEGATIVE 指令跳到地址 5
+
+and our regular JUMP goes to address 2.
+JUMP 指令跳到地址 2
+
+The problem is, if we add more code to the beginning of this program,
+问题是,如果在程序开头多加一些代码
+
+all of the addresses would change.
+所有地址都会变
+
+That's a huge pain if you ever want to update your program!
+更新程序会很痛苦!
+
+And so an assembler does away with raw jump addresses,
+所以汇编器不用固定跳转地址
+
+and lets you insert little labels that can be jumped to.
+而是让你插入可跳转的标签
+
+When this program is passed into the assembler,
+当程序被传入汇编器,汇编器会自己搞定跳转地址
+
+it does the work of figuring out all of the jump addresses.
+当程序被传入汇编器,汇编器会自己搞定跳转地址
+
+Now the programmer can focus more on programming
+程序员可以专心编程,不用管底层细节
+
+and less on the underlying mechanics under the hood
+程序员可以专心编程,不用管底层细节
+
+enabling more sophisticated things to be built by hiding unnecessary complexity.
+隐藏不必要细节来做更复杂的工作
+
+As we've done many times in this series,
+我们又提升了一层抽象
+
+we're once again moving up another level of abstraction.
+我们又提升了一层抽象
+
+However, even with nifty assembler features like auto-linking JUMPs to labels,
+然而,即使汇编器有这些厉害功能,比如自动跳转
+
+Assembly Languages are still a thin veneer over machine code.
+汇编只是修饰了一下机器码
+
+In general, each assembly language instruction converts directly
+一般来说,一条汇编指令对应一条机器指令
+
+to a corresponding machine instruction - a one-to-one mapping -
+一般来说,一条汇编指令对应一条机器指令
+
+so it's inherently tied to the underlying hardware.
+所以汇编码和底层硬件的连接很紧密
+
+And the assembler still forces programmers to think about
+汇编器仍然强迫程序员思考 用什么寄存器和内存地址
+
+which registers and memory locations they will use.
+汇编器仍然强迫程序员思考 用什么寄存器和内存地址
+
+If you suddenly needed an extra value,
+如果你突然要一个额外的数,可能要改很多代码
+
+you might have to change a lot of code to fit it in.
+如果你突然要一个额外的数,可能要改很多代码
+
+Let's go to the Thought Bubble.
+让我们进入思考泡泡
+
+This problem did not escape Dr. Grace Hopper.
+葛丽丝·霍普博士 也遇到了这个问题
+
+As a US naval officer, she was one of the first programmers on the Harvard Mark 1 computer,
+作为美国海军军官,她是哈佛1号计算机的首批程序员之一
+
+which we talked about in Episode 2.
+这台机器我们在第 2 集提过
+
+This was a colossal, electro-mechanical beast
+这台巨大机电野兽在 1944 年战时建造完成,帮助盟军作战
+
+completed in 1944 as part of the allied war effort.
+这台巨大机电野兽在 1944 年战时建造完成,帮助盟军作战
+
+Programs were stored and fed into the computer on punched paper tape.
+程序写在打孔纸带上,放进计算机执行
+
+By the way, as you can see,
+顺便一说,如果程序里有漏洞
+
+they "patched" some bugs in this program
+顺便一说,如果程序里有漏洞
+
+by literally putting patches of paper over the holes on the punch tape.
+真的就 直接用胶带来补"漏洞"
+
+The Mark 1's instruction set was so primitive,
+Mark 1 的指令集非常原始,甚至没有 JUMP 指令
+
+there weren't even JUMP instructions.
+Mark 1 的指令集非常原始,甚至没有 JUMP 指令
+
+To create code that repeated the same operation multiple times,
+如果代码要跑不止一次
+
+you'd tape the two ends of the punched tape together, creating a physical loop.
+得把带子的两端连起来 做成循环
+
+In other words, programming the Mark 1 was kind of a nightmare!
+换句话说,给 Mark 1 编程简直是噩梦!
+
+After the war, Hopper continued to work at the forefront of computing.
+战后,霍普继续在计算机前沿工作
+
+To unleash the potential of computers,
+为了释放电脑的潜力
+
+she designed a high-level programming language called "Arithmetic Language Version 0",
+她设计了一个高级编程语言,叫"算术语言版本 0"
+
+or A-0 for short.
+简称"A-0"
+
+Assembly languages have direct, one-to-one mapping to machine instructions.
+汇编与机器指令是一一对应的
+
+But, a single line of a high-level programming language
+但一行高级编程语言 可能会转成几十条二进制指令
+
+might result in dozens of instructions being executed by the CPU.
+但一行高级编程语言 可能会转成几十条二进制指令
+
+To perform this complex translation, Hopper built the first compiler in 1952.
+为了做到这种复杂转换 \N Hopper 在 1952 年创造了第一个编译器
+
+This is a specialized program
+编译器专门把高级语言 转成低级语言
+
+that transforms "source" code written in a programming language into a low-level language,
+编译器专门把高级语言 转成低级语言
+
+like assembly or the binary "machine code" that the CPU can directly process.
+比如汇编或机器码(CPU 可以直接执行机器码)
+
+Thanks, Thought Bubble.
+谢了 思想泡泡
+
+So, despite the promise of easier programming,
+尽管"使编程更简单"很诱人
+
+many people were skeptical of Hopper's idea.
+但很多人对霍普的点子持怀疑态度
+
+She once said, "I had a running compiler and nobody would touch it.
+她曾说"我有能用的编译器,但没人愿意用
+
+they carefully told me, computers could only do arithmetic;
+他们告诉我计算机只能做算术,不能运行程序"
+
+they could not do programs."
+他们告诉我计算机只能做算术,不能运行程序"
+
+But the idea was a good one,
+但这个点子是好的
+
+and soon many efforts were underway to craft new programming languages
+不久,很多人尝试创造新编程语言
+
+-- today there are hundreds!
+- 如今有上百种语言!
+
+Sadly, there are no surviving examples of A-0 code,
+可惜的是,没有任何 A-0 的代码遗留下来
+
+so we'll use Python, a modern programming language, as an example.
+所以我们用 Python 举例(一门现代编程语言)
+
+Let's say we want to add two numbers and save that value.
+假设我们想相加两个数字,保存结果
+
+Remember, in assembly code,
+记住,如果用汇编代码
+
+we had to fetch values from memory, deal with registers, and other low-level details.
+我们得从内存取值,和寄存器打交道,以及其他底层细节
+
+But this same program can be written in python like so:
+但同样的程序可以用 Python 这样写:
+
+Notice how there are no registers or memory locations to deal with
+不用管寄存器或内存位置
+
+-- the compiler takes care of that stuff, abstracting away a lot of low-level and unnecessary complexity.
+- 编译器会搞定这些细节,不用管底层细节
+
+The programmer just creates abstractions for needed memory locations, known as variables,
+程序员只需要创建 代表内存地址的抽象,叫"变量"
+
+and gives them names.
+给变量取名字
+
+So now we can just take our two numbers, store them in variables we give names to
+现在可以把两个数 存在变量里
+
+-- in this case, I picked a and b but those variables could be anything -
+这里取名 A 和 B, 实际编程时你可以随便取名
+
+and then add those together, saving the result in c, another variable I created.
+然后相加两个数,把结果存在变量 C
+
+It might be that the compiler assigns Register A under the hood to store the value in a,
+底层操作时,编译器可能把变量 A 存在寄存器 A
+
+but I don't need to know about it!
+但我不需要知道这些!
+
+Out of sight, out of mind!
+眼不见心不烦
+
+It was an important historical milestone,
+这是个重要历史里程碑
+
+but A-0 and its later variants weren't widely used.
+但 A-0 和之后的版本没有广泛使用
+
+FORTRAN, derived from "Formula Translation",
+FORTRAN,名字来自 "公式翻译"
+
+was released by IBM a few years later, in 1957,
+这门语言数年后由 IBM 在 1957 年发布
+
+and came to dominate early computer programming.
+主宰了早期计算机编程
+
+John Backus, the FORTRAN project director,
+FORTRAN 项目总监 John Backus 说过
+
+said: "Much of my work has come from being lazy.
+"我做的大部分工作都是因为懒
+
+I didn't like writing programs,
+我不喜欢写程序
+
+and so ... I started work on a programming system to make it easier to write programs."
+所以我写这门语言,让编程更容易"
+
+You know, typical lazy person.
+你懂的,典型的"懒人"
+
+They're always creating their own programming systems.
+(白眼)创造自己的编程语言
+
+Anyway, on average, programs written in FORTRAN
+平均来说,FORTRAN 写的程序
+
+were 20 times shorter than equivalent handwritten assembly code.
+比等同的手写汇编代码短 20 倍
+
+Then the FORTRAN Compiler would translate and expand that into native machine code.
+然后 FORTRAN 编译器会把代码转成机器码
+
+The community was skeptical that the performance would be as good as hand written code,
+人们怀疑性能是否比得上手写代码
+
+but the fact that programmers could write more code more quickly,
+但因为能让程序员写程序更快,所以成了一个更经济的选择
+
+made it an easy choice economically:
+但因为能让程序员写程序更快,所以成了一个更经济的选择
+
+trading a small increase in computation time for a significant decrease in programmer time.
+运行速度慢一点点,编程速度大大加快
+
+Of course, IBM was in the business of selling computers,
+当时 IBM 在卖计算机
+
+and so initially, FORTRAN code could only be compiled and run on IBM computers.
+因此最初 FORTRAN 代码只能跑在 IBM 计算机上
+
+And most programing languages and compilers of the 1950s
+1950 年代大多数编程语言和编译器
+
+could only run on a single type of computer.
+只能运行在一种计算机上
+
+So, if you upgraded your computer,
+如果升级电脑
+
+you'd often have to re-write all the code too!
+可能要重写所有代码!
+
+In response, computer experts from industry,
+因此工业界,学术界,政府的计算机专家 \N 在 1959 年组建了一个联盟
+
+academia and government formed a consortium in 1959
+因此工业界,学术界,政府的计算机专家 \N 在 1959 年组建了一个联盟
+
+-- the Committee on Data Systems Languages, advised by our friend Grace Hopper --
+- 数据系统语言委员会,Grace Hopper 担任顾问
+
+to guide the development of a common programming language
+开发一种通用编程语言,可以在不同机器上通用
+
+that could be used across different machines.
+开发一种通用编程语言,可以在不同机器上通用
+
+The result was the high-level, easy to use,
+最后诞生了一门高级,易于使用,
+
+Common Business-Oriented Language, or COBOL for short.
+"普通面向商业语言",简称 COBOL
+
+To deal with different underlying hardware,
+为了兼容不同底层硬件
+
+each computing architecture needed its own COBOL compiler.
+每个计算架构需要一个 COBOL 编译器
+
+But critically, these compilers could all accept the same COBOL source code,
+最重要的是,这些编译器都可以接收相同 COBOL 代码
+
+no matter what computer it was run on.
+不管是什么电脑
+
+This notion is called write once, run anywhere.
+这叫"一次编写,到处运行"
+
+It's true of most programming languages today,
+如今大多数编程语言都是这样
+
+a benefit of moving away from assembly and machine code,
+不必接触 CPU 特有的汇编码和机器码
+
+which is still CPU specific.
+不必接触 CPU 特有的汇编码和机器码
+
+The biggest impact of all this was reducing computing's barrier to entry.
+减小了使用门槛
+
+Before high level programming languages existed,
+在高级编程语言出现之前
+
+it was a realm exclusive to computer experts and enthusiasts.
+编程只是计算机专家和爱好者才会做的事
+
+And it was often their full time profession.
+而且通常是主职
+
+But now, scientists, engineers, doctors, economists, teachers,
+但现在,科学家,工程师,医生,经济学家,教师
+
+and many others could incorporate computation into their work .
+等等,都可以把计算机用于工作
+
+Thanks to these languages,
+感谢这些语言
+
+computing went from a cumbersome and esoteric discipline
+计算机科学从深奥学科 变成了大众化工具
+
+to a general purpose and accessible tool.
+计算机科学从深奥学科 变成了大众化工具
+
+At the same time, abstraction in programming allowed those computer experts
+同时,编程的抽象也让计算机专家
+
+- now "professional programmers" -
+现在叫"专业程序员"
+
+to create increasingly sophisticated programs,
+制作更复杂的程序
+
+which would have taken millions, tens of millions, or even more lines of assembly code.
+如果用汇编写可能要上百万行
+
+Now, this history didn't end in 1959.
+当然,计算机的历史没有在 1959 年结束
+
+In fact, a golden era in programming language design jump started,
+编程语言设计的黄金时代才刚刚开始
+
+evolving in lockstep with dramatic advances in computer hardware.
+和硬件一起飞速发展
+
+In the 1960s, we had languages like ALGOL, LISP and BASIC.
+在 1960 年代,有 ALGOL, LISP 和 BASIC 等语言
+
+In the 70's: Pascal, C and Smalltalk were released.
+70年代有:Pascal,C 和 Smalltalk
+
+The 80s gave us C++, Objective-C, and Perl.
+80年代有:C++,Objective-C 和 Perl
+
+And the 90's: python, ruby, and Java.
+90年代有:Python,Ruby 和 Java
+
+And the new millennium has seen the rise of Swift, C#, and Go
+新千年 Swift, C#, Go 在崛起
+
+- not to be confused with Let it Go and Pokemon Go.
+不要把 Go 和\N 《冰雪奇缘》的 Let it Go 和游戏 Pokemon Go 弄混
+
+Anyway, some of these might sound familiar
+有些语言你可能听起来耳熟 - 很多现在还存在
+
+-- many are still around today.
+有些语言你可能听起来耳熟 - 很多现在还存在
+
+It's extremely likely that the web browser you're using right now
+你现在用的浏览器很可能是 C++ 或 Objective-C 写的
+
+was written in C++ or Objective-C.
+你现在用的浏览器很可能是 C++ 或 Objective-C 写的
+
+That list I just gave is the tip of the iceberg.
+我刚才说的编程语言名字 只是冰山一角
+
+And languages with fancy, new features are proposed all the time.
+新的编程语言在不断诞生
+
+Each new language attempts to leverage new and clever abstractions
+新语言想用更聪明的抽象
+
+to make some aspect of programming easier or more powerful,
+让某些方面更容易或更强大
+
+or take advantage of emerging technologies and platforms,
+或利用新技术和新平台带来的优势
+
+so that more people can do more amazing things, more quickly.
+让更多人能快速做出美妙的事情
+
+Many consider the holy grail of programming to be the use of "plain ol' English",
+许多人认为编程的"圣杯"是直接用英文
+
+where you can literally just speak what you want the computer to do,
+直接对计算机说话,然后它会理解并执行
+
+it figures it out, and executes it.
+直接对计算机说话,然后它会理解并执行
+
+This kind of intelligent system is science fiction for now.
+这种智能系统目前只存在于科幻小说
+
+And fans of 2001: A Space Odyssey may be okay with that.
+"2001:太空漫游" 的粉丝可能没什么意见
+
+Now that you know all about programming languages,
+现在你理解了编程语言,
+
+we're going to deep dive for the next couple of episodes,
+接下来几集 我们会深入了解
+
+and we'll continue to build your understanding
+接下来几集 我们会深入了解
+
+of how programming languages, and the software they create,
+编程语言和用语言写的软件
+
+are used to do cool and unbelievable things.
+是怎么做到那些酷事
+
+See you next week.
+下周见
+
+(给 Curiosity Stream 打广告)
+
diff --git a/(字幕)全40集中英字幕文本/12. 编程原理-语句和函数-Programming Basics - Statements & Functions.ass.txt b/(字幕)全40集中英字幕文本/12. 编程原理-语句和函数-Programming Basics - Statements & Functions.ass.txt
new file mode 100644
index 0000000..91a5d9e
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/12. 编程原理-语句和函数-Programming Basics - Statements & Functions.ass.txt
@@ -0,0 +1,636 @@
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode we discussed how writing programs in native machine code,
+上集讲到用机器码写程序,
+
+and having to contend with so many low level details, was a huge impediment to writing complex programs.
+还要处理那么多底层细节 对写大型程序是个巨大障碍
+
+To abstract away many of these low-level details, Programming Languages were developed that
+为了脱离底层细节,开发了编程语言
+
+let programmers concentrate on solving a problem with computation, and less on nitty gritty hardware details.
+让程序员专心解决问题,不用管硬件细节
+
+So today, we’re going to continue that discussion, and introduce some fundamental building blocks
+今天我们讨论 大多数编程语言都有的基本元素
+
+that almost all programming languages provide.
+今天我们讨论 大多数编程语言都有的基本元素
+
+Just like spoken languages, programming languages have statements.
+就像口语一样,编程语言有"语句"
+
+These are individual complete thoughts, like "I want tea" or "it is raining".
+语句表达单个完整思想,比如"我想要茶"或者"在下雨"
+
+By using different words, we can change the meaning;
+用不同词汇可以代表不同含义 \N 比如"我想要茶"变成"我想要独角兽"
+
+for example, "I want tea" to "I want unicorns".
+用不同词汇可以代表不同含义 \N 比如"我想要茶"变成"我想要独角兽"
+
+But we can’t change "I want tea" to "I want raining" - that doesn’t make grammatical sense.
+但没法把"我想要茶"改成"我想要雨"- 语法毫无意义
+
+The set of rules that govern the structure and composition of statements in a language
+规定句子结构的一系列规则 叫语法
+
+is called syntax.
+规定句子结构的一系列规则 叫语法
+
+The English language has syntax, and so do all programming languages.
+英语有语法,所有编程语言也都有语法
+
+"a = 5" is a programming language statement.
+a=5 是一个编程语言语句
+
+In this case, the statement says a variable named A has the number 5 stored in it.
+意思是创建一个叫 a 的变量,把数字 5 放里面.
+
+This is called an assignment statement because we're assigning a value to a variable.
+这叫"赋值语句",把一个值赋给一个变量
+
+To express more complex things, we need a series of statements,
+为了表达更复杂的含义,需要更多语句
+
+like "A is 5, B is 10, C equals A plus B"
+比如 \Na=5 \N b=10 \Nc=a+b
+
+This program tells the computer to set variable ‘A’ equal to 5, variable ‘B’ to 10,
+意思是,变量 a 设为5,变量 b 设为10
+
+and finally to add ‘A’ and ‘B’ together, and put that result, which is 15, into -- you guessed it -- variable C.
+把 a 和 b 加起来,把结果 15 放进变量 c
+
+Note that we can call variables whatever we want.
+注意,变量名可以随意取
+
+Instead of A, B and C, it could be apples, pears, and fruits.
+除了 a b c,也可以叫苹果、梨、水果
+
+The computer doesn’t care, as long as variables are uniquely named.
+计算机不在乎你取什么名,只要不重名就行
+
+But it’s probably best practice to name them things that make sense
+当然取名最好还是有点意义,方便别人读懂
+
+in case someone else is trying to understand your code.
+当然取名最好还是有点意义,方便别人读懂
+
+A program, which is a list of instructions, is a bit like a recipe:
+程序由一个个指令组成,有点像菜谱:
+
+boil water, add noodles, wait 10 minutes, drain and enjoy.
+烧水、加面,等10分钟,捞出来就可以吃了
+
+In the same way, the program starts at the first statement
+程序也是这样,从第一条语句开始
+
+and runs down one at a time until it hits the end.
+一句一句运行到结尾
+
+So far, we’ve added two numbers together.
+刚才我们只是把两个数字加在一起
+
+Boring.
+无聊
+
+Let’s make a video game instead!
+我们来做一款游戏吧
+
+Of course, it’s way too early to think about coding an entire game,
+当然,现在这个学习阶段 \N来编写一整个游戏还太早了
+
+so instead, we’ll use our example to write little snippets of code
+所以我们只写一小段一小段的代码
+
+that cover some programming fundamentals.
+来讲解一些基础知识
+
+Imagine we’re building an old-school arcade game where Grace Hopper has to capture bugs
+假设我们在写一款老派街机游戏:Grace Hopper 拍虫子
+
+before they get into the Harvard Mark 1 and crash the computer!
+阻止虫子飞进计算机造成故障
+
+On every level, the number of bugs increases.
+关卡越高,虫子越多
+
+Grace has to catch them before they wear out any relays in the machine.
+Grace 要在虫子损坏继电器之前 抓住虫子
+
+Fortunately, she has a few extra relays for repairs.
+好消息是 她有几个备用继电器
+
+To get started, we’ll need to keep track of a bunch of values that are important for gameplay
+开始编写时,我们需要一些值 来保存游戏数据
+
+like what level the player is on, the score, the number of bugs remaining,
+比如当前关卡数、分数、剩余虫子数、
+
+as well as the number of spare relays in Grace’s inventory.
+Grace 还剩几个备用继电器
+
+So, we must "initialize" our variables, that is, set their initial value:
+所以我们要"初始化"变量 \N "初始化"的意思是设置最开始的值.
+
+"level equals 1, score equals 0, bugs equals 5, spare relays equals 4, and player name equals "Andre".
+关卡=1 分数=0 虫子数=5 \N 备用继电器=4 玩家名=Andre
+
+To create an interactive game, we need to control the flow of the program
+为了做成交互式游戏,程序的执行顺序要更灵活
+
+beyond just running from top to bottom.
+不只是从上到下执行
+
+To do this, we use Control Flow Statements.
+因此用 "控制流语句"
+
+There are several types, but If Statements are the most common.
+控制流语句有好几种,最常见的是 if 语句
+
+You can think of them as "If X is true, then do Y".
+可以想成是 "如果 X 为真,那么执行 Y"
+
+An English language example is: "If I am tired, then get tea"
+用英语举例就是 "如果累了, 就去喝茶"
+
+So if "I am tired" is a true statement, then I will go get tea
+如果 "累了" 为真,就去喝茶
+
+If "I am tired" is false, then I will not go get tea.
+如果 "累了" 为假,就不喝茶
+
+An IF statement is like a fork in the road.
+if 语句就像岔路口
+
+Which path you take is conditional on whether the expression is true or false
+走哪条路 取决于 "表达式" 的真假,
+
+so these expressions are called Conditional Statements.
+因此这些表达式又叫 "条件语句"
+
+In most programming languages, an if statement looks something like
+在大多数编程语言中,if 语句看起来像这样:
+
+"If, expression, then, some code, then end the if statement".
+if [条件], then [一些代码],结束 if 语句.
+
+For example, if "level" is 1, then we set the score to zero, because the player is just starting.
+比如,if [第一关],then [分数设为0] \N 因为玩家才刚开始游戏
+
+We also set the number of bugs to 1, to keep it easy for now.
+同时把虫子数设为 1,让游戏简单些
+
+Notice the lines of code that are conditional on the if-statement are nested between the
+注意, 依赖于 if 条件的代码,要放在 IF 和 END IF 之间
+
+IF and END IF.
+注意, 依赖于 if 条件的代码,要放在 IF 和 END IF 之间
+
+Of course, we can change the conditional expression to whatever we want to test, like
+当然,条件表达式 可以改成别的,比如:
+
+"is score greater than 10" or "is bugs less than 1".
+"分数 >10" 或者 "虫子数 <1"
+
+And If-Statements can be combined with an ELSE statement, which acts as a catch-all if the expression is false.
+if 还可以和 else 结合使用 \N 条件为假会执行 else 里的代码
+
+If the level is not 1, the code inside the ELSE block will be executed instead, and the
+如果不是第1关,else 里的指令就会被执行
+
+number of bugs that Grace has to battle is set to 3 times the level number.
+Grace 要抓的虫子数,是当前关卡数 * 3
+
+So on level 2, it would be six bugs, and on level 3 there’s 9, and so on.
+所以第 2 关有 6 个虫子,第 3 关有 9 个虫子,以此类推
+
+Score isn’t modified in the ELSE block, so Grace gets to keep any points earned.
+else 中没有改分数,所以 Grace 的分数不会变
+
+Here are some examples of if-then-else statements from some popular programming languages
+这里列了一些热门编程语言 if-then-else 的具体语法
+
+-- you can see the syntax varies a little, but the underlying structure is roughly the same.
+具体语法略有不同,但主体结构一样
+
+If-statements are executed once, a conditional path is chosen, and the program moves on.
+if 语句 根据条件执行一次
+
+To repeat some statements many times, we need to create a conditional loop.
+如果希望根据条件执行多次,需要"条件循环"
+
+One way is a while statement, also called a while loop.
+比如 while 语句,也叫 "while 循环"
+
+As you might have guessed, this loops a piece of code "while" a condition is true.
+当 while 条件为真,代码会重复执行
+
+Regardless of the programming language, they look something like this:
+不管是哪种编程语言,结构都是这样
+
+In our game, let’s say at certain points, a friendly colleague restocks Grace with relays!
+假设到达一定分数会冒出一个同事,给 Grace 补充继电器
+
+Hooray!
+棒极了!
+
+To animate him replenishing our stock back up to a maximum of 4, we can use a while loop.
+把继电器补满到最大数 4 个 \N 我们可以用 while 语句来做
+
+Let’s walk through this code.
+来过一遍代码
+
+First we’ll assume that Grace only has 1 tube left when her colleague enters.
+假设同事入场时, Grace 只剩一个继电器
+
+When we enter the while loop, the first thing the computer does is test its conditional…
+当执行 while 循环,第一件事是检查条件
+
+is relays less than 4?
+继电器数量<4?
+
+Well, relays is currently 1, so yes.
+继电器数量现在是1,所以是真
+
+Now we enter the loop!
+进入循环!
+
+Then, we hit the line of code: "relays equals relays plus 1".
+碰到这一行:继电器数量=继电器数量+1
+
+This is a bit confusing because the variable is using itself in an assignment statement,
+看起来有点怪,变量的赋值用到了自己
+
+so let's unpack it.
+我们讲下这个
+
+You always start by figuring out the right side of the equals sign first,
+总是从等号右边开始,
+
+so what does "relays plus 1" come out to be?
+"继电器数量+1" 是多少?
+
+Well, relays is currently the value 1, so 1 plus 1 equals 2.
+当前值是1,所以 1+1=2
+
+Then, this result gets saved back into the variable relays, writing over the old value,
+结果存到"继电器数量",覆盖旧的值
+
+so now relays stores the value 2.
+所以现在继电器数量是 2
+
+We’ve hit the end of the while loop, which jumps the program back up.
+现在到了结尾,跳回开始点
+
+Just as before, we test the conditional to see if we’re going to enter the loop.
+和之前一样,先判断条件,看要不要进入循环
+
+Is relays less than 4?
+继电器数量<4?
+
+Well, yes, relays now equals 2, so we enter the loop again!
+是,继电器数量是2,所以再次进入循环!
+
+2 plus 1 equals 3.
+2+1=3
+
+so 3 is saved into relays.
+3 存入"继电器数量"
+
+Loop again.
+回到开头
+
+Is 3 less than 4?
+3<4?
+
+Yes it is!
+是!
+
+Into the loop again.
+进入循环
+
+3 plus 1 equals 4.
+3+1=4
+
+So we save 4 into relays.
+4 存入"继电器数量"
+
+Loop again.
+回到开头
+
+Is 4 less than 4?....
+4<4?
+
+No!
+不!
+
+So the condition is now false, and thus we exit the loop and move on to any remaining code
+现在条件为假,退出循环,执行后面的代码
+
+That’s how a while loop works!
+while 循环就是这样运作的!
+
+There’s also the common For Loop.
+另一种常见的叫 "for 循环"
+
+Instead of being a condition-controlled loop that can repeat forever until the condition is false
+不判断条件,判断次数,会循环特定次数
+
+a FOR loop is count-controlled; it repeats a specific number of times.
+不判断条件,判断次数,会循环特定次数
+
+They look something like this:
+看起来像上图
+
+Now, let’s put in some real values.
+现在放些真正的值进去
+
+This example loops 10 times, because we’ve specified that variable ‘i’
+上图例子会循环10次,因为设了变量 i
+
+starts at the value 1 and goes up to 10.
+从 1 开始,一直到 10
+
+The unique thing about a FOR loop is that each time it hits NEXT, it adds one to ‘i’.
+for 的特点是,每次结束, i 会 +1
+
+When ‘i’ equals 10, the computer knows it’s been looped 10 times, and the loop exits
+当 i 等于10,就知道循环了10次,然后退出.
+
+We can set the number to whatever we want -- 10, 42, or a billion -- it’s up to us.
+我们可以用任何数字,10, 42, 10 亿
+
+Let’s say we want to give the player a bonus at the end of each level
+假设每关结束后 给玩家一些奖励分
+
+for the number of vacuum relays they have left over.
+奖励分多少取决于 继电器剩余数量
+
+As the game gets harder, it takes more skill to have unused relays,
+随着难度增加,剩下继电器会越来越难
+
+so we want the bonus to go up exponentially based on the level.
+因此奖励分会根据当前关卡数,指数级增长
+
+We need to write a piece of code that calculates exponents -
+我们要写一小段代码来算指数
+
+that is, multiplying a number by itself a specific number of times.
+指数是一个数乘自己,乘特定次数
+
+A loop is perfect for this!
+用循环来实现简直完美!
+
+First lets initialize a new variable called "bonus" and set it to 1.
+首先,创建一个叫"奖励分"的新变量,设为 1 (看上图)
+
+Then, we create a FOR loop starting at 1, and looping up to the level number.
+然后 for 循环,从 1 到 [当前关卡数]
+
+Inside that loop, we multiply bonus times the number of relays,
+[奖励分] x [继电器剩余数],结果存入 [奖励分]
+
+and save that new value back into bonus.
+[奖励分] x [继电器剩余数],结果存入 [奖励分]
+
+For example, let’s say relays equals 2, and level equals 3.
+比如继电器数是2,关卡数是3
+
+So the FOR loop will loop three times, which means bonus is going to get multiplied by
+for 会循环3次,奖励分会乘
+
+relays... by relays... by relays.
+继电器数量 x 继电器数量 x 继电器数量
+
+Or in this case, times 2, times 2, times 2, which is a bonus of 8!
+也就是1×2×2×2,奖励分是8,2的3次方
+
+That’s 2 to the 3rd power!
+也就是1×2×2×2,奖励分是8,2的3次方
+
+This exponent code is useful, and we might want to use it in other parts of our code.
+这个指数代码很实用,其他地方可能会用到
+
+It’d be annoying to copy and paste this everywhere, and have to update the variable names each time.
+如果每次想用就复制粘贴,会很麻烦,每次都要改变量名
+
+Also, if we found a bug, we’d have to hunt around and update every place we used it.
+如果代码发现问题,要补漏洞时 \N 要把每一个复制黏贴过的地方都找出来改
+
+It also makes code more confusing to look at.
+而且会让代码更难懂
+
+Less is more!
+少即是多!
+
+What we want is a way to package up our exponent code so we can use it, get the result, and
+我们想要某种方法,把代码"打包" \N 可以直接使用,得出结果,
+
+not have to see all the internal complexity.
+不用管内部复杂度.
+
+We’re once again moving up a new level of abstraction!
+这又提升了一层抽象!
+
+To compartmentalize and hide complexity,
+为了隐藏复杂度
+
+programming languages can package pieces of code into named functions,
+可以把代码打包成 "函数"
+
+also called methods or subroutines in different programming languages.
+也叫 "方法" 或 "子程序"\N(有些编程语言这么叫)
+
+These functions can then be used by any other part of that program just by calling its name.
+其他地方想用这个函数,直接写函数名就可以了
+
+Let’s turn our exponent code into a function! First, we should name it.
+现在我们把指数代码变成函数. 第一步,取名.
+
+We can call it anything we want, like HappyUnicorn,
+叫什么都行,比如"快乐独角兽"
+
+but since our code calculates exponents, let’s call it exponent.
+但因为是算指数, 直接叫"指数"合适一些
+
+Also, instead of using specific variable names, like "relays" and "levels",
+还有,与其用特定变量名,比如 "继电器" 和 "关卡数"
+
+we specify generic variable names, like Base and Exp,
+用更通用的名字,比如 底数(Base) 和 指数(Exp)
+
+whose initial values are going to be "passed" into our function from some other part of the program.
+Base 和 Exp 的初始值需要外部传入
+
+The rest of our code is the same as before
+剩余代码和之前一样
+
+Now tucked into our function and with new variable names.
+现在完成了,有函数名和新变量名.
+
+Finally, we need to send the result of our exponent code back to the part of the program that requested it.
+最后, 我们还需要把结果 交给使用这个函数的代码
+
+For this, we use a RETURN statement, and specify that the value in ‘result’ be returned.
+所以用 RETURN 语句,指明返回什么.
+
+So our full function code looks like this:
+完整版代码是这样
+
+Now we can use this function anywhere in our program,
+现在可以随意用这个函数
+
+simply by calling its name and passing in two numbers.
+只需要写出名字 然后传入2个数字 就可以了
+
+For example, if we want to calculate 2 to the 44th power, we can just call "exponent 2 comma 44."
+如果要算 2 的 44 次方,写 exponent(2,44)
+
+and like 18 trillion comes back.
+结果是 18 万亿左右
+
+Behind the scenes, 2 and 44 get saved into variables Base and Exp inside the function,
+幕后原理是,2 和 44 存进 Base 和 Exp
+
+it does all its loops as necessary, and then the function returns with the result.
+跑循环,然后返回结果
+
+Let’s use our newly minted function to calculate a score bonus.
+我们来用这个新函数 算奖励分
+
+First, we initialize bonus to 0.
+首先,奖励分初始化为 0
+
+Then we check if the player has any remaining relays with an if-statement.
+然后用 if 语句,看剩不剩继电器(看上图的 > 0)
+
+If they do, we call our exponent function, passing in relays and level,
+如果还剩,用指数函数,传入 [继电器数] 和 [关卡数]
+
+which calculates relays to the power of level, and returns the result, which we save into bonus.
+它会算 [继电器数]的[关卡数]次方, 存入奖励分
+
+This bonus calculating code might be useful later, so let’s wrap it up as a function too!
+这段算奖励分的代码,之后可能还会用,也打包成一个函数
+
+Yes, a function that calls a function!
+没错,这个函数 (CalcBonus) \N 会调用另一个函数 (Exponent)
+
+And then, wait for it…. we can use this function in an even more complex function.
+还有!这个 CalcBonus 函数,可以用在其他更复杂的函数
+
+Let’s write one that gets called everytime the player finishes a level.
+我们来写一个函数, 每一关结束后都会调用
+
+We’ll call it "LevelFinished"
+叫 LevelFinished (关卡结束)
+
+- it needs to know the number of relays left, what level it was, and the current score;
+需要传入 [剩余继电器数] [关卡数] [当前分]
+
+those values have to get passed in.
+这些数据必须传入.
+
+Inside our function, we’ll calculate the bonus, using our CalcBonus function,
+里面用 CalcBonus 算奖励分,并加进总分
+
+and add that to the running score.
+里面用 CalcBonus 算奖励分,并加进总分
+
+Also, if the current score is higher than the game’s high score,
+还有,如果当前分 > 游戏最高分
+
+we save the new high score and the players name.
+把新高分和玩家名 存起来
+
+Now we’re getting pretty fancy.
+现在代码变得蛮"花哨"了
+
+Functions are calling functions are calling functions!
+函数调函数调函数
+
+When we call a single line of code, like this the complexity is hidden.
+我们写这样一行代码时,复杂度都隐藏起来了
+
+We don’t see all the internal loops and variables,
+不需要知道内部的循环和变量
+
+we just see the result come back as if by magic…. a total score of 53.
+只知道结果会像魔术一样返回,总分 53
+
+But it’s not magic, it’s the power of abstraction!
+但是这不是魔术,是抽象的力量
+
+If you understand this example, then you understand the power of functions,
+如果你理解了这个例子,就明白了函数的强大之处
+
+and the entire essence of modern programming.
+和现代编程的核心
+
+It’s not feasible to write, for example, a web browser as one gigantically long list of statements.
+比如浏览器这样的复杂程序,用一长串语句来写是不可能的
+
+It would be millions of lines long and impossible to comprehend!
+会有几百万行代码,没人能理解
+
+So instead, software consists of thousands of smaller functions,
+所以现代软件由上千个函数组成
+
+each responsible for different features.
+每个负责不同的事
+
+In modern programming, it’s uncommon to see functions longer than around 100 lines of code
+如今超过100行代码的函数很少见
+
+because by then, there’s probably something that
+如果多于 100 行,应该有东西可以拆出来做成一个函数
+
+should be pulled out and made into its own function.
+如果多于 100 行,应该有东西可以拆出来做成一个函数
+
+Modularizing programs into functions not only allows a single programmer to write an entire app
+模块化编程 不仅可以让单个程序员独立制作 App
+
+but also allows teams of people to work efficiently on even bigger programs.
+也让团队协作可以写更大型的程序
+
+Different programmers can work on different functions,
+不同程序员写不同函数
+
+and if everyone makes sure their code works correctly,
+只需要确保自己的代码工作正常
+
+then when everything is put together, the whole program should work too!
+把所有人的拼起来,整个程序也应该能正常运作!
+
+And in the real world, programmers aren’t wasting time writing things like exponents.
+现实中,程序员不会浪费时间写指数函数这种东西
+
+Modern programming languages come with huge bundles of pre-written functions, called Libraries.
+现代编程语言 有很多预先写好的函数集合,叫 "库"
+
+These are written by expert coders, made efficient and rigorously tested, and then given to everyone.
+由专业人员编写,不仅效率高,而且经过了仔细检查
+
+There are libraries for almost everything, including networking, graphics, and sound
+几乎做所有事情都有库,网络、图像、声音
+
+-- topics we’ll discuss in future episodes.
+我们之后会讲这些主题.
+
+But before we get to those, we need to talk about Algorithms.
+但在此之前,我们先讲算法
+
+Intrigued?
+好奇吗?
+
+You should be.
+你应该才是!
+
+I’ll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/13. 算法入门 - Intro to Algorithms.ass.txt b/(字幕)全40集中英字幕文本/13. 算法入门 - Intro to Algorithms.ass.txt
new file mode 100644
index 0000000..d24892c
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/13. 算法入门 - Intro to Algorithms.ass.txt
@@ -0,0 +1,678 @@
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the past two episodes, we got our first taste of programming in a high-level language,
+前两集,我们"初尝"了高级编程语言\N (比如 Python 和 Java)
+
+like Python or Java.
+前两集,我们"初尝"了高级编程语言\N (比如 Python 和 Java)
+
+We talked about different types of programming language statements
+我们讨论了几种语句 - 赋值语句,if 语句,循环语句
+
+- like assignments, ifs, and loops -
+我们讨论了几种语句 - 赋值语句,if 语句,循环语句
+
+as well as putting statements into functions that perform a computation,
+以及把代码打包成 "函数"
+
+like calculating an exponent.
+比如算指数
+
+Importantly, the function we wrote to calculate exponents is only one possible solution.
+重要的是,之前写的指数函数 \N 只是无数解决方案的一种
+
+There are other ways to write this function
+还有其它方案
+
+- using different statements in different orders -
+- 用不同顺序写不同语句 也能得到一样结果
+
+that achieve exactly the same numerical result.
+- 用不同顺序写不同语句 也能得到一样结果
+
+The difference between them is the algorithm,
+不同的是 "算法",意思是:解决问题的具体步骤
+
+that is the specific steps used to complete the computation.
+不同的是 "算法",意思是:解决问题的具体步骤
+
+Some algorithms are better than others even if they produce equal results.
+即使结果一致,有些算法会更好
+
+Generally, the fewer steps it takes to compute, the better it is,
+一般来说,所需步骤越少越好
+
+though sometimes we care about other factors, like how much memory it uses.
+不过有时我们也会关心其他因素,比如占多少内存
+
+The term algorithm comes from Persian polymath Muhammad ibn Musa al-Khwarizmi
+"算法" 一词来自 波斯博识者 阿尔·花拉子密
+
+who was one of the fathers of algebra more than a millennium ago.
+1000 多年前的代数之父之一
+
+The crafting of efficient algorithms
+如何想出高效算法 - 是早在计算机出现前就有的问题
+
+- a problem that existed long before modern computers -
+如何想出高效算法 - 是早在计算机出现前就有的问题
+
+led to a whole science surrounding computation,
+诞生了专门研究计算的领域,然后发展成一门现代学科
+
+which evolved into the modern discipline of...
+诞生了专门研究计算的领域,然后发展成一门现代学科
+
+you guessed it!
+你猜对了!
+
+Computer Science!
+计算机科学!
+
+One of the most storied algorithmic problems in all of computer science is sorting
+记载最多的算法之一是"排序"
+
+as in sorting names or sorting numbers.
+比如给名字、数字排序
+
+Computers sort all the time.
+排序到处都是
+
+Looking for the cheapest airfare,
+找最便宜的机票
+
+arranging your email by most recently sent,
+按最新时间排邮件
+
+or scrolling your contacts by last name
+按姓氏排联系人
+
+-- those all require sorting.
+-这些都要排序
+
+You might think
+你可能想"排序看起来不怎么难… 能有几种算法呢?"
+
+"sorting isn't so tough how many algorithms can there possibly be?"
+你可能想"排序看起来不怎么难… 能有几种算法呢?"
+
+The answer is: a lot.
+答案是超多
+
+Computer Scientists have spent decades inventing algorithms for sorting,
+计算机科学家花了数十年发明各种排序算法
+
+with cool names like Bubble Sort and Spaghetti Sort.
+还起了酷酷的名字,"冒泡排序""意面排序"
+
+Let's try sorting!
+我们来试试排序!
+
+Imagine we have a set of airfare prices to Indianapolis.
+试想有一堆机票价格,都飞往 印第安纳波利斯 (美国地名)
+
+We'll talk about how data like this is represented in memory next week,
+数据具体怎么在内存中表示 下周再说
+
+but for now, a series of items like this is called an array.
+上图的这样一组数据 叫"数组"(Array)
+
+Let's take a look at these numbers to help see how we might sort this programmatically.
+来看看怎么排序
+
+We'll start with a simple algorithm.
+先从一种简单算法开始
+
+First, let's scan down the array to find the smallest number.
+先找到最小数,从最上面的 307 开始
+
+Starting at the top with 307.
+先找到最小数,从最上面的 307 开始
+
+It's the only number we've seen, so it's also the smallest.
+因为现在只看了这一个,所以它是最小数
+
+The next is 239, that's smaller than 307,
+下一个是 239,比 307 小
+
+so it becomes our new smallest number.
+所以新的最小数变成 239
+
+Next is 214, our new smallest number.
+下一个是 214 ,新的最小数
+
+250 is not, neither is 384, 299, 223 or 312.
+250 不是,384, 299, 223, 312 都不是
+
+So we've finished scanning all numbers,
+现在扫完了所有数字
+
+and 214 is the smallest.
+214 是最小的
+
+To put this into ascending order,
+为了升序排列(从小到大排序)
+
+we swap 214 with the number in the top location.
+把 214 和最上面的数字,交换位置
+
+Great! We sorted one number!
+好棒! 刚排序了一个数字!
+
+Now we repeat the same procedure,
+现在重复同样的过程
+
+but instead of starting at the top, we can start one spot below.
+这次不从最上面开始,从第 2 个数开始
+
+First we see 239, which we save as our new smallest number.
+先看到 239,我们当作是 "最小数"
+
+Scanning the rest of the array, we find 223 is the next smallest,
+扫描剩下的部分,发现 223 最小
+
+so we swap this with the number in the second spot.
+所以把它和第 2 位交换
+
+Now we repeat again, starting from the third number down.
+重复这个过程,从第 3 位数字开始
+
+This time, we swap 239 with 307.
+让 239 和 307 互换位置
+
+This process continues until we get to the very last number,
+重复直到最后一个数字
+
+and voila, the array is sorted and you're ready to book that flight to Indianapolis!
+瞧,数字排好了,可以买机票了!
+
+The process we just walked through is one way
+刚刚这种方法,或者说算法,
+
+- or one algorithm - for sorting an array.
+刚刚这种方法,或者说算法,
+
+It's called Selection sort - and it's pretty basic.
+叫 选择排序 - 非常基础的一种算法
+
+Here's the pseudo-code.
+以下是"伪代码"
+
+This function can be used to sort 8, 80, or 80 million numbers
+这个函数可以排序8个, 80个或8千万个数字
+
+- and once you've written the function, you can use it over and over again.
+函数写好了就可以重复使用
+
+With this sort algorithm, we loop through each position in the array, from top to bottom,
+这里用循环 遍历数组
+
+and then for each of those positions,
+每个数组位置都跑一遍循环,找最小数然后互换位置
+
+we have to loop through the array to find the smallest number to swap.
+每个数组位置都跑一遍循环,找最小数然后互换位置
+
+You can see this in the code, where one FOR loop is nested inside of another FOR loop.
+可以在代码中看到这一点 \N (一个 for 循环套另一个 for 循环)
+
+This means, very roughly, that if we want to sort N items, we have to loop N times,
+这意味着,大致来说,如果要排 N 个东西,要循环 N 次,
+
+inside of which, we loop N times, for a grand total of roughly N times N loops, or N squared.
+每次循环中再循环 N 次,共 N*N, 或 N
+
+This relationship of input size to the number of steps the algorithm takes to run
+算法的 输入大小 和 运行步骤 之间的关系
+
+characterizes the complexity of the Selection Sort algorithm.
+叫算法的 复杂度
+
+It gives you an approximation of how fast, or slow, an algorithm is going to be.
+表示运行速度的量级
+
+Computer Scientists write this order of growth in something known as - no joke -
+计算机科学家们把算法复杂度叫 - 没开玩笑
+
+"big O notation".
+大 O 表示法
+
+N squared is not particularly efficient.
+算法复杂度 O(N ) 效率不高
+
+Our example array had n = 8 items, and 8 squared is 64.
+前面的例子有 8 个元素(n=8), 8 = 64
+
+If we increase the size of our array from 8 items to 80,
+如果 8 个变 80 个
+
+the running time is now 80 squared, which is 6,400.
+运行时间变成 80 = 6400
+
+So although our array only grew by 10 times - from 8 to 80 -
+虽然大小只增长了 10 倍(8 到 80)
+
+the running time increased by 100 times - from 64 to 6,400!
+但运行时间增加了 100 倍!(64 到 6400 )
+
+This effect magnifies as the array gets larger.
+随着数组增大,对效率的影响会越来越大
+
+That's a big problem for a company like Google,
+这对大公司来说是个问题,比如 谷歌
+
+which has to sort arrays with millions or billions of entries.
+要对几十亿条信息排序
+
+So, you might ask,
+作为未来的计算机科学家你可能会问:有没有更高效的排序算法?
+
+as a burgeoning computer scientist, is there a more efficient sorting algorithm?
+作为未来的计算机科学家你可能会问:有没有更高效的排序算法?
+
+Let's go back to our old, unsorted array
+回到未排序的数组
+
+and try a different algorithm, merge sort.
+试另一个算法 "归并排序"
+
+The first thing merge sort does is check if the size of the array is greater than 1.
+第一件事是检查数组大小是否 > 1
+
+If it is, it splits the array into two halves.
+如果是,就把数组分成两半
+
+Since our array is size 8, it gets split into two arrays of size 4.
+因为数组大小是 8,所以分成两个数组,大小是 4
+
+These are still bigger than size 1, so they get split again, into arrays of size 2,
+但依然大于 1,所以再分成大小是 2 的数组
+
+and finally they split into 8 arrays with 1 item in each.
+最后变成 8 个数组,每个大小为 1
+
+Now we are ready to merge, which is how "merge sort" gets its name.
+现在可以"归并"了,"归并排序"因此得名
+
+Starting with the first two arrays, we read the first - and only - value in them,
+从前两个数组开始,读第一个(也是唯一一个)值
+
+in this case, 307 and 239.
+307 和 239
+
+239 is smaller, so we take that value first.
+239 更小,所以放前面
+
+The only number left is 307, so we put that value second.
+剩下的唯一数字是 307 ,所以放第二位
+
+We've successfully merged two arrays.
+成功合并了两个数组
+
+We now repeat this process for the remaining pairs, putting them each in sorted order.
+重复这个过程,按序排列
+
+Then the merge process repeats.
+然后再归并一次
+
+Again, we take the first two arrays, and we compare the first numbers in them.
+同样,取前两个数组,比较第一个数
+
+This time its 239 and 214.
+239 和 214
+
+214 is lowest, so we take that number first.
+214 更小,放前面
+
+Now we look again at the first two numbers in both arrays: 239 and 250.
+再看两个数组里的第一个数:239 和 250
+
+239 is lower, so we take that number next.
+239 更小,所以放下一位
+
+Now we look at the next two numbers: 307 and 250.
+看剩下两个数:307 和 250
+
+250 is lower, so we take that.
+250 更小,所以放下一位
+
+Finally, we're left with just 307, so that gets added last.
+最后剩下 307 ,所以放最后
+
+In every case, we start with two arrays,
+每次都以 2 个数组开始
+
+each individually sorted, and merge them into a larger sorted array.
+然后合并成更大的有序数组
+
+We repeat the exact same merging process for the two remaining arrays of size two.
+我们把刚隐藏起来的,下面的数组也这样做
+
+Now we have two sorted arrays of size 4.
+现在有两个大小是 4 的有序数组
+
+Just as before, we merge,
+就像之前,比较两个数组的第一个数,取最小数
+
+comparing the first two numbers in each array, and taking the lowest.
+就像之前,比较两个数组的第一个数,取最小数
+
+We repeat this until all the numbers are merged,
+重复这个过程,直到完成
+
+and then our array is fully sorted again!
+就排好了!
+
+The bad news is: no matter how many times we sort these,
+但坏消息是:无论排多少次
+
+you're still going to have to pay $214 to get to Indianapolis.
+你还是得付 214 美元到 印第安纳波利斯
+
+Anyway, the "Big O" computational complexity of merge sort is N times the Log of N.
+总之,"归并排序"的算法复杂度是 O(n * log n)
+
+The N comes from the number of times we need to compare and merge items,
+n 是需要 比较+合并 的次数
+
+which is directly proportional to the number of items in the array.
+和数组大小成正比
+
+The Log N comes from the number of merge steps.
+log N 是合并步骤的次数
+
+In our example, we broke our array of 8 items into 4,
+例子中把大小是 8 的数组,分成四个数组
+
+then 2, and finally 1.
+然后分成 2 个,最后分成 1 个
+
+That's 3 splits.
+分了 3 次
+
+Splitting in half repeatedly like this has a logarithmic relationship with the number of items
+重复切成两半,和数量成对数关系
+
+- trust me!
+相信我!
+
+Log base 2 of 8 equals 3 splits.
+Log 8=3
+
+If we double the size of our array to 16 - that's twice as many items to sort -
+如果数组大小变成 16 - 之前的两倍
+
+it only increases the number of split steps by 1
+也只要多分割 1 次
+
+since log base 2 of 16 equals 4.
+因为 Log 16=4
+
+Even if we increase the size of the array more than a thousand times,
+即使扩大一千倍
+
+from 8 items to 8000 items, the number of split steps stays pretty low.
+从8到8000,分割次数也不会增大多少
+
+Log base 2 of 8000 is roughly 13.
+log 8000≈13
+
+That's more, but not much more than 3 -- about four times larger --
+13 比 3 只是4倍多一点
+
+and yet we're sorting a lot more numbers.
+然而排序的元素多得多
+
+For this reason, merge sort is much more efficient than selection sort.
+因此"归并排序"比"选择排序"更有效率
+
+And now I can put my ceramic cat collection in name order MUCH faster!
+这下我收藏的陶瓷猫 可以更快排序了!
+
+There are literally dozens of sorting algorithms we could review,
+有好几十种排序算法,但没时间讲
+
+but instead, I want to move on to my other favorite category of classic algorithmic problems:
+所以我们来谈一个经典算法问题:
+
+graph search!
+图搜索
+
+A graph is a network of nodes connected by lines.
+"图" 是用线连起来的一堆 "节点"
+
+You can think of it like a map, with cities and roads connecting them.
+可以想成地图,每个节点是一个城市,线是公路
+
+Routes between these cities take different amounts of time.
+一个城市到另一个城市,花的时间不同
+
+We can label each line with what is called a cost or weight.
+可以用 成本(cost) 或 权重(weight) 来代称
+
+In this case, it's weeks of travel.
+代表要几个星期
+
+Now let's say we want to find the fastest route
+假设想找"高庭"到"凛冬城"的最快路线
+
+for an army at Highgarden to reach the castle at Winterfell.
+假设想找"高庭"到"凛冬城"的最快路线
+
+The simplest approach would just be to try every single path exhaustively
+最简单的方法是尝试每一条路
+
+and calculate the total cost of each.
+计算总成本
+
+That's a brute force approach.
+这是蛮力方法
+
+We could have used a brute force approach in sorting,
+假设用蛮力方法 来排序数组
+
+by systematically trying every permutation of the array to check if it's sorted.
+尝试每一种组合,看是否排好序
+
+This would have an N factorial complexity
+这样的时间复杂度是 O(n!)
+
+- that is the number of nodes, times one less, times one less than that, and so on until 1.
+n 是节点数,n! 是 n 乘 n-1 乘 n-2... 一直到 1
+
+Which is way worse than even N squared.
+比 O(n ) 还糟糕
+
+But, we can be way more clever!
+我们可以更聪明些!
+
+The classic algorithmic solution to this graph problem was invented by
+图搜索问题的经典算法 发明者是
+
+one of the greatest minds in computer science practice and theory, Edsger Dijkstra
+理论计算机科学的伟人 Edsger Dijkstra
+
+so it's appropriately named Dijkstra's algorithm.
+所以叫 "Dijkstra 算法"
+
+We start in Highgarden with a cost of 0, which we mark inside the node.
+从"高庭"开始,此时成本为0,把0标在节点里
+
+For now, we mark all other cities with question marks
+其他城市标成问号,因为不知道成本多少
+
+- we don't know the cost of getting to them yet.
+其他城市标成问号,因为不知道成本多少
+
+Dijkstra's algorithm always starts with the node with lowest cost.
+Dijkstra 算法总是从成本最低的节点开始
+
+In this case, it only knows about one node, Highgarden, so it starts there.
+目前只知道一个节点 "高庭", 所以从这里开始
+
+It follows all paths from that node to all connecting nodes that are one step away,
+跑到所有相邻节点,记录成本
+
+and records the cost to get to each of them.
+跑到所有相邻节点,记录成本
+
+That completes one round of the algorithm.
+完成了一轮算法
+
+We haven't encountered Winterfell yet,
+但还没到"凛冬城"
+
+so we loop and run Dijkstra's algorithm again.
+所以再跑一次 Dijkstra 算法
+
+With Highgarden already checked,
+"高庭" 已经知道了
+
+the next lowest cost node is King's Landing.
+下一个成本最低的节点,是 "君临城"
+
+Just as before, we follow every unvisited line to any connecting cities.
+就像之前,记录所有相邻节点的成本
+
+The line to The Trident has a cost of 5.
+到"三叉戟河"的成本是 5
+
+However, we want to keep a running cost from Highgarden,
+然而我们想记录的是,从"高庭"到这里的成本
+
+so the total cost of getting to The Trident is 8 plus 5, which is 13 weeks.
+所以"三叉戟河"的总成本是 8+5=13周
+
+Now we follow the offroad path to Riverrun,
+现在走另一条路到"奔流城"
+
+which has a high cost of 25, for a total of 33.
+成本高达 25 ,总成本 33
+
+But we can see inside of Riverrun that we've already found a path with a lower cost of just 10.
+但 "奔流城" 中最低成本是 10
+
+So we disregard our new path, and stick with the previous, better path.
+所以无视新数字,保留之前的成本 10
+
+We've now explored every line from King's Landing and didn't find Winterfell, so we move on.
+现在看了"君临城"的每一条路,还没到"凛冬城" 所以继续.
+
+The next lowest cost node is Riverrun, at 10 weeks.
+下一个成本最低的节点,是"奔流城",要 10 周
+
+First we check the path to The Trident, which has a total cost of 10 plus 2, or 12.
+先看 "三叉戟河" 成本: 10+2=12
+
+That's slightly better than the previous path we found, which had a cost of 13,
+比之前的 13 好一点
+
+so we update the path and cost to The Trident.
+所以更新 "三叉戟河" 为 12
+
+There is also a line from Riverrun to Pyke with a cost of 3.
+"奔流城"到"派克城"成本是 3
+
+10 plus 3 is 13, which beats the previous cost of 14,
+10+3=13,之前是14
+
+and so we update Pyke's path and cost as well.
+所以更新 "派克城" 为 13
+
+That's all paths from Riverrun checked. so you guessed it, Dijkstra's algorithm loops again.
+"奔流城"出发的所有路径都走遍了, \N 你猜对了,再跑一次 Dijkstra 算法
+
+The node with the next lowest cost is The Trident
+下一个成本最低的节点,是"三叉戟河"
+
+and the only line from The Trident that we haven't checked is a path to Winterfell!
+从"三叉戟河"出发,唯一没看过的路,通往"凛冬城"!
+
+It has a cost of 10,
+成本是 10
+
+plus we need to add in the cost of 12 it takes to get to The Trident,
+加"三叉戟河"的成本 12
+
+for a grand total cost of 22.
+总成本 22
+
+We check our last path, from Pyke to Winterfell, which sums to 31.
+再看最后一条路,"派克城"到"凛冬城",成本 31
+
+Now we know the lowest total cost, and also the fastest route for the army to get there,
+现在知道了最低成本路线,让军队最快到达,
+
+which avoids King's Landing!
+还绕过了"君临城"!
+
+Dijkstra's original algorithm, conceived in 1956,
+Dijkstra 算法的原始版本,构思于 1956 年
+
+had a complexity of the number of nodes in the graph squared.
+算法复杂度是 O(n )
+
+And squared, as we already discussed, is never great,
+前面说过这个效率不够好
+
+because it means the algorithm can't scale to big problems
+意味着输入不能很大
+
+- like the entire road map of the United States.
+比如美国的完整路线图
+
+Fortunately, Dijkstra's algorithm was improved a few years later
+幸运的是,Dijkstra 算法几年后得到改进
+
+to take the number of nodes in the graph,
+变成 O(n log n + l)
+
+times the log of the number of nodes, PLUS the number of lines.
+n 是节点数,l 是多少条线
+
+Although this looks more complicated,
+虽然看起来更复杂
+
+it's actually quite a bit faster.
+但实际更快一些
+
+Plugging in our example graph, with 6 cities and 9 lines, proves it.
+用之前的例子,可以证明更快 \N (6 个节点 9 条线)
+
+Our algorithm drops from 36 loops to around 14.
+从 36 减少到 14 左右
+
+As with sorting,
+就像排序,图搜索算法也有很多,有不同优缺点
+
+there are innumerable graph search algorithms, with different pros and cons.
+就像排序,图搜索算法也有很多,有不同优缺点
+
+Every time you use a service like Google Maps to find directions,
+每次用谷歌地图时
+
+an algorithm much like Dijkstra's is running on servers to figure out the best route for you.
+类似 Dijkstra 的算法就在服务器上运行,找最佳路线
+
+Algorithms are everywhere
+算法无处不在
+
+and the modern world would not be possible without them.
+现代世界离不开它们
+
+We touched only the very tip of the algorithmic iceberg in this episode,
+这集只触及了算法的冰山一角
+
+but a central part of being a computer scientist
+但成为计算机科学家的核心
+
+is leveraging existing algorithms and writing new ones when needed,
+是根据情况合理决定 用现有算法 还是自己写新算法
+
+and I hope this little taste has intrigued you to SEARCH further.
+希望这集的小例子能让你体会到这点
+
+I'll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/14. 数据结构-Data Structures.ass.txt b/(字幕)全40集中英字幕文本/14. 数据结构-Data Structures.ass.txt
new file mode 100644
index 0000000..6077edf
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/14. 数据结构-Data Structures.ass.txt
@@ -0,0 +1,546 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode, we discussed a few example classic algorithms,
+上集讲了一些经典算法
+
+like sorting a list of numbers and finding the shortest path in a graph.
+比如给数组排序,找图的最短路径
+
+What we didn't talk much about,
+而上集没讲的是
+
+is how the data the algorithms ran on was stored in computer memory.
+算法处理的数据 存在内存里的格式是什么
+
+You don't want your data to be like John Green's college dorm room,
+你肯定不想数据像 John Green 的大学宿舍一样乱 \N 到处都是食物,衣服和纸
+
+with food, clothing and papers strewn everywhere.
+你肯定不想数据像 John Green 的大学宿舍一样乱 \N 到处都是食物,衣服和纸
+
+Instead, we want our data to be structured,
+我们希望数据是结构化的,方便读取
+
+so that it's organized, allowing things to be easily retrieved and read.
+我们希望数据是结构化的,方便读取
+
+For this, computer scientists use Data Structures!
+因此计算机科学家发明了 "数据结构"!
+
+We already introduced one basic data structure last episode,
+上集已经介绍了一种基本数据结构:
+
+Arrays, also called lists or Vectors in some languages.
+数组(Array)\N 也叫列表(list)或向量(Vector)(在其它编程语言里)
+
+These are a series of values stored in memory.
+数组的值一个个连续存在内存里
+
+So instead of just a single value being saved into a variable, like 'j equals 5',
+所以不像之前,一个变量里只存一个值(比如 j = 5)
+
+we can define a whole series of numbers, and save that into an array variable.
+我们可以把多个值存在数组变量里
+
+To be able to find a particular value in this array, we have to specify an index.
+为了拿出数组中某个值,我们要指定一个下标(index)
+
+Almost all programing languages start arrays at index 0,
+大多数编程语言里,数组下标都从 0 开始
+
+and use a square bracket syntax to denote array access.
+用方括号 [ ] 代表访问数组
+
+So, for example, if we want to add the values in the first and third spots of our array 'j',
+如果想相加数组 J 的第一个和第三个元素
+
+and save that into a variable 'a', we would write a line of code like this.
+把结果存在变量 a,可以写上图这样一行代码
+
+How an array is stored in memory is pretty straightforward.
+数组存在内存里的方式 十分易懂
+
+For simplicity, let's say that the compiler chose to store ours at memory location 1,000.
+为了简单,假设编译器从内存地址 1000 开始存数组
+
+The array contains 7 numbers, and these are stored one after another in memory, as seen here.
+数组有7个数字,像上图一样按顺序存.
+
+So when we write "j index of 0", the computer goes to memory location 1,000,
+写 j[0],会去内存地址 1000
+
+with an offset of 0, and we get the value 5.
+加 0 个偏移,得到地址 1000,拿值:5
+
+If we wanted to retrieve "j index of 5", our program goes to memory location 1000,
+如果写 j[5],会去内存地址 1000
+
+plus an offset of 5, which in this case, holds a value of 4.
+加 5 个偏移,得到地址 1005,拿值: 4
+
+It's easy to confuse the fifth number in the array with the number at index 5.
+很容易混淆 "数组中第 5 个数" 和 "数组下标为 5 的数"
+
+They are not the same.
+它们不是一回事
+
+Remember, the number at index 5 is the 6th number in the array
+记住,下标 5 其实是数组中第 6 个数
+
+because the first number is at index 0.
+因为下标是从 0 开始算的
+
+Arrays are extremely versatile data structures, used all the time,
+数组的用途广泛
+
+and so there are many functions that can handle them to do useful things.
+所以几乎所有编程语言 都自带了很多函数来处理数组
+
+For example, pretty much every programming language comes with a built-in sort function,
+举例,数组排序函数很常见
+
+where you just pass in your array, and it comes back sorted.
+只需要传入数组,就会返回排序后的数组
+
+So there's no need to write that algorithm from scratch.
+不需要写排序算法
+
+Very closely related are Strings, which are just arrays of characters,
+数组的亲戚是 字符串 (string)
+
+like letters, numbers, punctuation and other written symbols.
+其实就是字母,数字,标点符号等 组成的数组
+
+We talked about how computers store characters way back in Episode 4.
+第 4 集讨论过计算机怎么存储字符
+
+Most often, to save a string into memory, you just put it in quotes, like so.
+写代码时 用引号括起来就行了 \N j = "STAN ROCKS"
+
+Although it doesn't look like an array, it is.
+虽然长的不像数组,但的确是数组
+
+Behind the scenes, the memory looks like this.
+幕后看起来像这样
+
+Note that the string ends with a zero in memory.
+注意,字符串在内存里以 0 结尾
+
+It's not the character zero, but the binary value 0.
+不是"字符0",是"二进制值0" \N 这叫字符"null",表示字符串结尾
+
+This is called the null character, and denotes the end of the string in memory.
+不是"字符0",是"二进制值0" \N 这叫字符"null",表示字符串结尾
+
+This is important because if I call a function like "print quote",
+这个字符非常重要,如果调用 print 函数
+
+which writes the string to the screen,
+print 在屏幕上输出字符串
+
+it prints out each character in turn starting at the first memory location,
+会从开始位置,逐个显示到屏幕
+
+but it needs to know when to stop!
+但得知道什么时候停下来!
+
+Otherwise, it would print out every single thing in memory as text.
+否则会把内存里所有东西 都显示出来
+
+The zero tells string functions when to stop.
+0 告诉函数何时停下
+
+Because computers work with text so often,
+因为计算机经常处理字符串,所以有很多函数专门处理字符串
+
+there are many functions that specifically handle strings.
+因为计算机经常处理字符串,所以有很多函数专门处理字符串
+
+For example, many programming languages have a string concatenation function, or "strcat",
+比如连接字符串的 strcat
+
+which takes in two strings, and copies the second one to the end of the first.
+strcat 接收两个字符串,把第二个放到第一个结尾.
+
+We can use arrays for making one dimensional lists,
+我们可以用数组做一维列表
+
+but sometimes you want to manipulate data that is two dimensional,
+但有时想操作二维数据
+
+like a grid of numbers in a spreadsheet, or the pixels on your computer screen.
+比如电子表格,或屏幕上的像素
+
+For this, we need a Matrix.
+那么需要 矩阵(Matrix)
+
+You can think of a Matrix as an array of arrays!
+可以把矩阵看成 数组的数组!
+
+So a 3 by 3 matrix is really an array of size 3, with each index storing an array of size 3.
+一个 3x3 矩阵就是一个长度为3的数组 \N 数组里每个元素都是一个长度为3的数组
+
+We can initialize a matrix like so.
+可以这样初始化.
+
+In memory, this is packed together in order like this.
+内存里是这样排列的
+
+To access a value, you need to specify two indexes, like "J index of 2, then index of 1" -
+为了拿一个值,需要两个下标,比如 j[2][1]
+
+this tells the computer you're looking for the item in subarray 2 at position 1.
+告诉计算机在找数组 2 里,位置是 1 的元素
+
+And this would give us the value 12.
+得到数字 12
+
+The cool thing about matrices is we're not limited to 3 by 3
+矩阵酷的地方是,不止能做 3x3 的矩阵
+
+-- we can make them any size we want
+任何维度都行
+
+-- and we can also make them any number of dimensions we want.
+任何维度都行
+
+For example, we can create a five dimensional matrix and access it like this.
+可以做一个5维矩阵,然后这样访问 \N a = j[2][0][18][18][3]
+
+That's right, you now know how to access a five dimensional matrix
+现在你知道了 怎么读一个 5 维矩阵
+
+-- tell your friends!
+快去告诉你的朋友!
+
+So far, we've been storing individual numbers or letters into our arrays or matrices.
+目前我们只存过单个数字/字符,存进数组或矩阵
+
+But often it's useful to store a block of related variables together.
+但有时, 把几个有关系的变量存在一起, 会很有用
+
+Like, you might want to store a bank account number along with its balance.
+比如银行账户号和余额
+
+Groups of variables like these can be bundled together into a Struct.
+多个变量打包在一起叫 结构体 (Struct)
+
+Now we can create variables that aren't just single numbers,
+现在多个不同类型数据,可以放在一起
+
+but are compound data structures, able to store several pieces of data at once.
+现在多个不同类型数据,可以放在一起
+
+We can even make arrays of structs that we define,
+甚至可以做一个数组,里面放很多结构体
+
+which are automatically bundled together in memory.
+这些数据在内存里 会自动打包在一起
+
+If we access, for example, J index of 0, we get back the whole struct stored there,
+如果写 j[0],能拿到 j[0] 里的结构体
+
+and we can pull the specific account number and balance data we want.
+然后拿银行账户和余额
+
+This array of structs, like any other array,
+存结构体的数组,和其它数组一样
+
+gets created at a fixed size that can't be enlarged to add more items.
+创建时就有固定大小,不能动态增加大小
+
+Also, arrays must be stored in order in memory,
+还有,数组在内存中 按顺序存储
+
+making it hard to add a new item to the middle.
+在中间插入一个值很困难
+
+But, the struct data structure can be used for
+但结构体可以创造更复杂的数据结构,消除这些限制
+
+building more complicated data structures that avoid these restrictions.
+但结构体可以创造更复杂的数据结构,消除这些限制
+
+Let's take a look at this struct that's called a "node".
+我们来看一个结构体,叫 节点(node)
+
+It stores a variable, like a number, and also a pointer.
+它存一个变量 \N 一个指针(pointer)
+
+A pointer is a special variable that points, hence the name, to a location in memory.
+"指针" 是一种特殊变量,指向一个内存地址,因此得名.
+
+Using this struct, we can create a linked list,
+用 节点 可以做 链表(linked list)
+
+which is a flexible data structure that can store many nodes.
+链表是一种灵活数据结构,能存很多个 节点 (node)
+
+It does this by having each node point to the next node in the list.
+灵活性是通过每个节点 指向 下一个节点实现的
+
+Let's imagine we have three node structs saved in memory, at locations 1000, 1002 and 1008.
+假设有三个节点,在内存地址 1000,1002, 1008
+
+They might be spaced apart because they were created at different times,
+隔开的原因 可能是创建时间不同
+
+and other data can sit between them.
+它们之间有其他数据
+
+So, you see that the first node contains the value 7, and the location 1008 in its "next" pointer.
+可以看到第一个节点,值是 7,指向地址 1008
+
+This means that the next node in the linked list is located at memory location 1008.
+代表下一个节点,位于内存地址 1008
+
+Looking down the linked list, to the next node,
+现在来到下一个节点
+
+we see it stores the value 112 and points to another node at location 1002.
+值是 112,指向地址 1002
+
+If we follow that, we find a node that contains the value 14
+如果跟着它,会看到一个值为 14 的节点
+
+and points back to the first node at location 1000.
+这个节点 指回地址 1000,也就是第一个节点
+
+So this linked list happened to be circular,
+这叫 循环链表
+
+but it could also have been terminated by using a next pointer value of 0
+但链表也可以是非循环的,最后一个指针是 0
+
+-- the null value -- which would indicate we've reached the end of the list.
+"null",代表链表尽头
+
+When programmers use linked lists,
+当程序员用链表时
+
+they rarely look at the memory values stored in the next pointers.
+很少看指针具体指向哪里
+
+Instead, they can use an abstraction of a linked list, that looks like this,
+而是用链表的抽象模型,就像上图
+
+which is much easier to conceptualize.
+更容易看懂
+
+Unlike an array, whose size has to be pre-defined,
+数组大小需要预先定好
+
+linked lists can be dynamically extended or shortened.
+链表大小可以动态增减
+
+For example, we can allocate a new node in memory,
+可以创建一个新节点,通过改变指针值,把新节点插入链表
+
+and insert it into this list, just by changing the next pointers.
+可以创建一个新节点,通过改变指针值,把新节点插入链表
+
+Linked Lists can also easily be re-ordered, trimmed, split, reversed, and so on.
+链表也很容易重新排序,两端缩减,分割,倒序等
+
+Which is pretty nifty!
+超方便!
+
+And pretty useful for algorithms like sorting, which we talked about last week.
+链表也适合上集的排序算法
+
+Owing to this flexibility, many more-complex data structures are built on top of linked lists
+因为灵活,很多复杂数据结构 都用链表
+
+The most famous and universal are queues and stacks.
+最出名的是 队列(queue)和 栈(stack)
+
+A queue - like the line at your post office - goes in order of arrival.
+"队列" 就像邮局排队,谁先来就排前面
+
+The person who has been waiting the longest, gets served first.
+"队列" 就像邮局排队,谁先来就排前面
+
+No matter how frustrating it is that all you want to do is buy stamps
+虽然你可能只想买邮票,而前面的人要寄 23 个包裹
+
+and the person in front of you seems to be mailing 23 packages.
+虽然你可能只想买邮票,而前面的人要寄 23 个包裹
+
+But, regardless, this behavior is called First-In First-Out, or FIFO.
+这叫 先进先出(FIFO)
+
+That's the first part.
+我指队列,不是指那 23 个包裹
+
+Not the 23 packages thing.
+我指队列,不是指那 23 个包裹
+
+Imagine we have a pointer, named "post office queue", that points to the first node in our linked list.
+想象有个指针叫"邮局队列",指向链表第一个节点
+
+Once we're done serving Hank, we can read Hank's next pointer,
+第一个节点是 Hank,服务完 Hank 之后 \N 读取 Hank 的指针
+
+and update our "post office queue" pointer to the next person in the line.
+把"邮局队列"指向下一个人
+
+We've successfully dequeued Hank -- he's gone, done, finished.
+这样就把 Hank "出队"(dequeue)了
+
+If we want to enqueue someone, that is, add them to the line,
+如果我们想把某人"入队"(enqueue) \N 意思是加到队列里
+
+we have to traverse down the linked list until we hit the end,
+要遍历整个链表到结尾
+
+and then change that next pointer to point to the new person.
+然后把结尾的指针,指向新人(Nick)
+
+With just a small change, we can use linked lists as stacks, which are LIFO…
+只要稍作修改,就能用链表做 栈,\N 栈是后进先出(LIFO)
+
+Last-In First-Out.
+只要稍作修改,就能用链表做 栈,\N 栈是后进先出(LIFO)
+
+You can think of this like a stack of pancakes...
+可以把"栈"想成一堆松饼
+
+as you make them, you add them to the top of stack.
+做好一个新松饼,就堆在之前上面
+
+And when you want to eat one, you take them from the top of the stack.
+吃的时候,是从最上面开始
+
+Delicious!
+美味!
+
+Instead of enqueueing and dequeuing,
+栈就不叫"入队""出队"了
+
+data is pushed onto the stack and popped from the stacks.
+叫"入栈"(push) "出栈"(pop)
+
+Yep, those are the official terms!
+对,这些是正确术语!
+
+If we update our node struct to contain not just one, but two pointers,
+如果节点改一下,改成 2 个指针
+
+we can build trees,
+就能做 树(tree)
+
+another data structure that's used in many algorithms.
+很多算法用了 "树" 这种数据结构
+
+Again, programmers rarely look at the values of these pointers,
+同样,程序员很少看指针的具体值
+
+and instead conceptualize trees like this: The top most node is called the root.
+而是把"树"抽象成这样:最高的节点叫"根节点"(root)
+
+And any nodes that hang from other nodes are called children nodes.
+"根节点"下的所有节点 都叫"子节点"(children)
+
+As you might expect, nodes above children are called parent nodes.
+任何子节点的直属上层节点,叫"母节点"(parent node)
+
+Does this example imply that Thomas Jefferson is the parent of Aaron Burr?
+这个例子能说明 托马斯·杰斐逊 是 阿龙·伯尔 的父亲吗?
+
+I'll leave that to your fanfiction to decide.
+我让你们的同人文来决定
+
+And finally, any nodes that have no children
+没有任何"子节点"的节点
+
+-- where the tree ends -- are called Leaf Nodes.
+也就是"树"结束的地方,叫"叶节点"(leaf)
+
+In our example, nodes can have up to two children,
+在这里的例子中,节点最多只可以有 2 个子节点
+
+and for that reason, this particular data structure is called a binary tree.
+因此叫 二叉树(binary tree)
+
+But you could just as easily have trees with three, four or any number of children
+但你可以随便改,弄成 3个,4个,或更多
+
+by modifying the data structure accordingly.
+但你可以随便改,弄成 3个,4个,或更多
+
+You can even have tree nodes that use linked lists to store all the nodes they point to.
+甚至节点 可以用链表存所有子节点
+
+An important property of trees - both in real life and in data structures - is that
+"树"的一个重要性质是(不管现实中还是数据结构中)
+
+there's a one-way path from roots to leaves.
+"根"到"叶"是 单向 的
+
+It'd be weird if roots connected to leaves, that connected to roots.
+如果根连到叶,叶连到根 就很奇怪
+
+For data that links arbitrarily, that include things like loops,
+如果数据随意连接,包括循环
+
+we can use a graph data structure instead.
+可以用"图"表示
+
+Remember our graph from last episode of cities connected by roads?
+还记得上集用路连接城市的"图"吗?
+
+This can be stored as nodes with many pointers, very much like a tree,
+这种结构 可以用有多个指针的节点表示
+
+but there is no notion of roots and leaves, and children and parents…
+因此没有 根 叶 子节点 父节点 这些概念
+
+Anything can point to anything!
+可以随意指向!
+
+So that's a whirlwind overview
+以上概述了计算机科学中,最主要的一些数据结构
+
+of pretty much all of the fundamental data structures used in computer science.
+以上概述了计算机科学中,最主要的一些数据结构
+
+On top of these basic building blocks,
+这些基本结构之上,程序员做了各种新变体,有不同性质.
+
+programmers have built all sorts of clever variants, with slightly different properties
+这些基本结构之上,程序员做了各种新变体,有不同性质.
+
+-- data structures like red-black trees and heaps, which we don't have time to cover.
+比如"红黑树"和"堆",我们没时间讲
+
+These different data structures have properties that are useful for particular computations.
+不同数据结构适用于不同场景
+
+The right choice of data structure can make your job a lot easier,
+选择正确数据结构会让工作更简单
+
+so it pays off to think about how you want to structure your data before you jump in.
+所以花时间考虑用什么数据结构是值得的
+
+Fortunately, most programming languages come with
+幸运的是,大多数编程语言自带了预先做好的数据结构
+
+libraries packed full of ready-made data structures.
+幸运的是,大多数编程语言自带了预先做好的数据结构
+
+For example, C++ has its Standard Template Library, and Java has the Java Class Library.
+比如,C++有"标准模板库",Java有"Java 类库"
+
+These mean programmers don't have to waste time implementing things from scratch,
+程序员不用浪费时间从零写
+
+and can instead wield the power of data structures to do more interesting things,
+时间可以花在更有趣的事情
+
+once again allowing us to operate at a new level of abstraction!
+又提升了一层抽象!
+
+I'll see you next week.
+下周见!
+
diff --git a/(字幕)全40集中英字幕文本/15. 阿兰·图灵-Alan Turing.ass.txt b/(字幕)全40集中英字幕文本/15. 阿兰·图灵-Alan Turing.ass.txt
new file mode 100644
index 0000000..133b6e7
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/15. 阿兰·图灵-Alan Turing.ass.txt
@@ -0,0 +1,780 @@
+Hi, I'm Carrie Anne and welcome to Crash Course computer science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the past a few episodes,
+前几集我们聊了基础,比如函数,算法和数据结构
+
+we've been building up our understanding of computer science fundamentals,
+前几集我们聊了基础,比如函数,算法和数据结构
+
+such as functions, algorithms and data structures.
+前几集我们聊了基础,比如函数,算法和数据结构
+
+Today, we're going to take a step back and look at the person
+今天,我们来看一位对计算机理论 贡献巨大的人
+
+who formulated many of the theoretical concepts that underline modern computation.
+今天,我们来看一位对计算机理论 贡献巨大的人
+
+The father of computer science
+计算机科学之父
+
+and not quite Benedict Cumberbatch lookalike, Alan Turing.
+长得不怎么像 本尼 的 阿兰·图灵
+
+Alan Mathison Turing was born in London in 1912
+阿兰·马蒂森·图灵 于 1921 年出生在伦敦,\N 从小就表现出惊人数学和科学能力
+
+and showed an incredible aptitude for maths and science throughout his early education.
+阿兰·马蒂森·图灵 于 1921 年出生在伦敦,\N 从小就表现出惊人数学和科学能力
+
+His first brush of what we now call computer science came in 1935
+他对计算机科学的建树始于 1935 年
+
+while he was a master student at King's College in Cambridge.
+当时他是剑桥国王学院的硕士生
+
+He set out to solve a problem posed by German Mathematician David Hilbert
+他开始解决德国数学家 大卫·希尔伯特 提出的问题
+
+known as the Entscheidungsproblem
+叫 Entscheidungsproblem (德语)
+
+or decision problem,
+即"可判定性问题":
+
+which asked the following:
+即"可判定性问题":
+
+is there an algorithm that takes, as input, a statement written in formal logic,
+是否存在一种算法,输入正式逻辑语句 \N 输出准确的"是"或"否"答案?
+
+and produces a "yes" or "no" answer that's always accurate?
+是否存在一种算法,输入正式逻辑语句 \N 输出准确的"是"或"否"答案?
+
+If such an algorithm existed,
+如果这样的算法存在, \N 可以回答比如 "是否有一个数大于所有数"
+
+we could use it to answer questions like, "Is there a number bigger than all numbers?"
+如果这样的算法存在, \N 可以回答比如 "是否有一个数大于所有数"
+
+No, there's not. We know the answer to that one,
+不, 没有. 我们知道答案
+
+but there are many other questions in mathematics that we'd like to know the answer too.
+但有很多其他数学问题,我们想知道答案
+
+So if this algorithm existed, we'd want to know it.
+所以如果这种算法存在, 我们想知道
+
+The American mathematician Alonzo Church first presented a solution to this problem in 1935.
+美国数学家 阿隆佐·丘奇 \N 于 1935年 首先提出解决方法
+
+He developed a system of mathematical expressions called Lambda Calculus
+开发了一个叫"Lambda 算子"的数学表达系统
+
+and demonstrated that no such universal algorithm could exist.
+证明了这样的算法不存在
+
+Although Lambda Calculus was capable of representing any computation,
+虽然"Lambda 算子"能表示任何计算
+
+the mathematical technique was difficult to apply and understand.
+但它使用的数学技巧 难以理解和使用
+
+At pretty much the same time on the other side of the Atlantic,
+同时在大西洋另一边
+
+Alan Turing came up with his own approach to solve the decision problem.
+阿兰·图灵 想出了自己的办法来解决"可判定性问题"
+
+He proposed a hypothetical computing machine, which we now call a Turing Machine.
+提出了一种假想的计算机,现在叫"图灵机"
+
+Turing Machines provided a simple, yet powerful
+图灵机提供了简单又强大的数学计算模型
+
+mathematical model of computation.
+图灵机提供了简单又强大的数学计算模型
+
+Although using totally different mathematics,
+虽然用的数学不一样
+
+they were functionally equivalent to lambda calculus in terms of their computational power.
+但图灵机的计算能力和 Lambda 算子一样
+
+However their relative simplicity made them much more popular
+同时因为图灵机更简单,所以在新兴的计算机领域更受欢迎
+
+in the burgeoning field of computer science.
+同时因为图灵机更简单,所以在新兴的计算机领域更受欢迎
+
+In fact, they're simple enough that I'm going to explain it right now.
+因为它如此简单,我现在就给你解释
+
+A Turing Machine is a theoretical computing device
+图灵机是一台理论计算设备
+
+There's also a state variable in which we can hold a piece of information
+还有一个状态变量,保存当前状态
+
+about the current state of the machine.
+还有一个状态变量,保存当前状态
+
+And a set of rules that describes what the machine does.
+还有一组规则,描述机器做什么
+
+Given a state and the current symbol the head is reading,
+规则是根据 当前状态+读写头看到的符号,决定机器做什么
+
+the rule can be to write a symbol on the tape,
+结果可能是在纸带写入一个符号
+
+change the state of the machine, move the read/write head to the left or right by one spot
+或改变状态,或把读写头移动一格
+
+or any combination of these actions.
+或执行这些动作的组合
+
+To make this concrete, let's work through a simple example:
+为了更好理解,讲个简单例子:
+
+a Turing Machine that reads a string of ones ending in a zero
+让图灵机读一个以零结尾的字符串
+
+and computes whether there is an even number of ones.
+并计算 1 的出现次数 是不是偶数
+
+If that's true,
+如果是, 在纸带上写一个 1
+
+the machine will write a one to the tape
+如果是, 在纸带上写一个 1
+
+and if it's false, it'll write a zero.
+如果不是,在纸带上写一个 0
+
+First we need to define our Turing machine rules.
+首先要定义"图灵机"的规则
+
+If the state is even and the current symbol of the tape is one,
+如果当前状态是"偶数", 当前符号是1
+
+then we update the machine state to odd and move the head to the right.
+那么把状态更新为"奇数",把读写头向右移动
+
+On the other hand if the state is even and the current symbol is zero,
+如果当前状态为偶数,当前符号是 0
+
+which means we've reached the end of the string of ones,
+意味着到了字符串结尾
+
+then we write one to the tape and change the state to halt,
+那么在纸带上写一个 1,并且把状态改成 停机(halt)
+
+as in we're finished and the Turing machine has completed the computation.
+状态改为"停机" 是因为图灵机已完成计算
+
+We also need rules for when the Turing machine is in an odd state,
+但我们还需要 2 条规则,来处理状态为奇数的情况
+
+one rule for the symbol on the tape is a zero and another for when it is one.
+一条处理 奇数 + 纸带是 0 的情况 \N 一条处理 奇数 + 纸带是 1 的情况
+
+Lastly we need to define a Starting state, which we'll set to be even.
+最后,要决定机器的初始状态,这里定成"偶数"
+
+Now we've defined the rules in the starting state of our Turing machine,
+定义好了 起始状态+规则
+
+which is comparable to a computer program, we can run it on some example input.
+就像写好了程序,现在可以输入了
+
+Let's say we store 1 1 0 onto tape.
+假设把"1 1 0"放在纸带上,有两个 1,是偶数
+
+That's two ones, which means there is an even number of ones,
+假设把"1 1 0"放在纸带上,有两个 1,是偶数
+
+and if that's news to you,
+如果"偶数"对你是新知识 \N 也许我们该开一门【十分钟速成课:数学】
+
+We should probably get working on crash course Math.
+如果"偶数"对你是新知识 \N 也许我们该开一门【十分钟速成课:数学】
+
+Notice that our rules only ever move their head to the right
+注意,规则只让 读写头 向右移动
+
+so the rest of the tape is irrelevant.
+其他部分无关紧要,为了简单所以留空
+
+We'll leave it blank for simplicity.
+其他部分无关紧要,为了简单所以留空
+
+Our Turing machine is all ready to go so let's start it.
+"图灵机"准备好了,开始吧
+
+Our state is even and the first number we see is one.
+机器起始状态为"偶数",看到的第一个数是 1
+
+That matches our topmost rule and so we execute the effect,
+符合最上面那条规则,所以执行对应的步骤
+
+which is to update the state to odd and move the read/write head to the right by one spot.
+把状态更新到"奇数", 读写头向右移动一格
+
+Okay, now we see another one on the tape, But this time our state is odd
+然后又看到 1, 但机器状态是"奇数",所以执行第三条规则
+
+and so we execute our third rule
+然后又看到 1, 但机器状态是"奇数",所以执行第三条规则
+
+which sets the state back to even and moves the head to the right.
+使机器状态变回"偶数",读写头向右移动一格
+
+Now we see a 0 and our current state is even
+现在看到 0,并且机器状态是 偶数,所以执行第二条规则
+
+so we execute our second rule
+现在看到 0,并且机器状态是 偶数,所以执行第二条规则
+
+which is to write a 1 to the tape signifying that yes, it's true,
+在纸带上写 1,表示"真" 的确有偶数个 1
+
+there is an even number of ones,
+在纸带上写 1,表示"真" 的确有偶数个 1
+
+and finally the machine halts.
+然后机器停机
+
+That's how Turing machines work.
+这就是图灵机的原理,很简单对吧?
+
+Pretty simple, right?
+这就是图灵机的原理,很简单对吧?
+
+so you might be wondering why there's such a big deal.
+你可能想知道 有什么大不了的
+
+Well, Turing shows that this simple hypothetical machine
+图灵证明了这个简单假想机器
+
+can perform any computation if given enough time and memory.
+如果有足够时间和内存,可以执行任何计算
+
+It's a general-purpose computer.
+它是一台通用计算机
+
+Our program was a simple example.
+刚才的程序就是个简单例子
+
+But with enough rules, states and tape,
+只要有足够的规则,状态和纸带 可以创造任何东西
+
+you could build anything
+只要有足够的规则,状态和纸带 可以创造任何东西
+
+- a web browser, world of warcraft, whatever!
+浏览器, 魔兽世界 任何东西!
+
+Of course it would be ridiculously inefficient, but it is theoretically possible.
+当然 这样做效率很低,但理论上可行.
+
+And that's why, as a model of computing,
+所以图灵机是很强大的计算模型
+
+it's such a powerful idea.
+所以图灵机是很强大的计算模型
+
+In fact, in terms of what it can and cannot compute
+事实上,就可计算和不可计算而言
+
+there's no computer more powerful than a turing machine.
+没有计算机比图灵机更强大
+
+A computer that is as powerful is called Turing complete.
+和图灵机一样强大的,叫 "图灵完备"
+
+Every modern computing system, your laptop, your smartphone
+每个现代计算系统 比如笔记本电脑,智能手机
+
+and even the little computer inside your microwave and thermostat
+甚至微波炉和恒温器内部的小电脑
+
+are all Turing Complete.
+都是"图灵完备"的
+
+To answer Hilbert's decision problem,
+为了回答可判定性问题
+
+Turing applied these new Turing machines to an intriguing computational puzzle:
+他把图灵机用于一个有趣计算问题:
+
+the halting problem.
+"停机问题"
+
+Put simply this asks
+简单说就是
+
+"Is there an algorithm that can determine,
+"给定图灵机描述和输入纸带,是否有算法可以确定
+
+given a description of a turing machine and the input from its tape,
+"给定图灵机描述和输入纸带,是否有算法可以确定
+
+whether the Machine will run forever or halt?"
+机器会永远算下去还是到某一点会停机?
+
+For example we know our Turing machine will halt when given the input 1 1 0
+我们知道输入 1 1 0,图灵机会停机
+
+Because we literally walk through the example until it halted,
+因为刚做过这个例子,它最后停机了
+
+but what about a more complex problem?
+但如果是更复杂的问题呢?
+
+Is there a way to figure out if the program will halt without executing it?
+有没有办法在不执行的情况,弄清会不会停机?
+
+Some programs might take years to run
+一些程序可能要运行好几年
+
+so it would be useful to know before we run it
+所以在运行前知道 会不会出结果很有用
+
+and wait and wait and wait and then start getting worried and wonder
+否则就要一直等啊等,忧虑到底会不会出结果
+
+and then decades later when you're old and gray control-alt-delete.
+当几十年后变老了,再按强制结束
+
+So much sadness!
+好悲伤!
+
+Unfortunately, Turing came up with a proof that shows the halting problem was in fact unsolvable,
+图灵通过一个巧妙逻辑矛盾 \N 证明了停机问题是无法解决的
+
+through a clever logical contradiction.
+图灵通过一个巧妙逻辑矛盾 \N 证明了停机问题是无法解决的
+
+Let's follow his reasoning.
+我们来看看他的推理
+
+Imagine we have a hypothetical Turing machine that takes a description of a program
+想象有一个假想图灵机,\N 输入:问题的描述 + 纸带的数据
+
+and some input for his tape
+想象有一个假想图灵机,\N 输入:问题的描述 + 纸带的数据
+
+and always outputs either Yes, it halts, or no, it doesn't.
+输出 Yes 代表会"停机",输出 No 代表不会
+
+And I'm going to give this machine a fun name
+我要给这台机器一个有趣的名字叫 H, \N 来自"停机"的第一个字母
+
+H for Halts.
+我要给这台机器一个有趣的名字叫 H, \N 来自"停机"的第一个字母
+
+Don't worry about how it works.
+不用担心它具体怎么工作
+
+Let's just assume such a machine exists.
+假设这样的机器存在就好 毕竟重点是推论
+
+We're talking theory here.
+假设这样的机器存在就好 毕竟重点是推论
+
+Turing reasons if there existed a program whose halting behavior was not decidable by H,
+图灵推理说: 如果有个程序, H 无法判断是否会"停机"
+
+it would mean the halting problem is unsolvable.
+意味着"停机问题"无法解决
+
+To find one, Turing designed another Turing machine that built on top of H.
+为了找到这样的程序,图灵用 H 设计了另一个图灵机
+
+If H says the program halts,
+如果 H 说程序会"停机",那么新机器会永远运行(即不会停机)
+
+then we'll make our new machine loop forever.
+如果 H 说程序会"停机",那么新机器会永远运行(即不会停机)
+
+If the answer is no, it doesn't the halt.
+如果 H 的结果为 No,代表不会停机
+
+That will have the new machine output no and halt.
+那么让新机器输出 No,然后"停机"
+
+In essence, we're building a machine that does the opposite of what H says.
+实质上是一台和 H 输出相反的机器
+
+Halt if the program doesn't halt
+如果程序不停机,就停机
+
+and run forever if the program halts.
+如果程序停机,就永远运行下去
+
+So this argument will also need to add a splitter to the front of our new machine.
+我们还需要在机器前面加一个分离器
+
+So it accepts only one input and passes that as both the program and input into H.
+让机器只接收一个输入,\N 这个输入既是程序,也是输入
+
+Let's call this new Machine Bizzaro.
+我们把这台新机器叫 异魔
+
+So far this seems like a plausible machine right.
+目前为止,这个机器不难理解
+
+Now it's going to get pretty complicated.
+但接下来马上会变复杂,会有点难懂
+
+But bear with me for a second.
+但接下来马上会变复杂,会有点难懂
+
+Look what happens when you pass bizzaro a description of itself as the input.
+如果把 异魔 的描述,作为本身的输入会怎样
+
+This means We're asking h what bizzaro will do when asked to evaluate itself.
+意味着在问 H ,当异魔的输入是自己时会怎样
+
+But if H says Bizzaro halts,
+但如果 H 说异魔会停机
+
+then Bizzaro enters its infinite loop and thus doesn't halt.
+那么异魔会进入无限循环,因此不会停机
+
+And if H says the Bizzaro doesn't halt, then Bizzaro outputs no and halt.
+如果 H 说异魔不会停机,那么异魔会输出 No 然后停机
+
+So H can't possibly decide the halting problem correctly
+所以 H 不能正确判定 停机问题
+
+because there is no answer.
+因为没有答案
+
+It's a paradox.
+这是一个悖论
+
+And this paradox means that the halting problem cannot be solved with Turing machines.
+意味着"停机问题"不能用图灵机解决
+
+Remember Turing proves that Turing machines could implement any computation.
+还记得刚刚说: 图灵证明了图灵机可以实现任何计算
+
+So this solution to the halting problem proves
+"停机问题"证明了,不是所有问题都能用计算解决
+
+that not all problems can be solved by computation.
+"停机问题"证明了,不是所有问题都能用计算解决
+
+Wow, that's some heavy stuff.
+哇,好难理解
+
+I might have to watch that again myself.
+我都可能要再看一遍
+
+Long story short, Church and Turing showed there were limits to the ability of computers.
+长话短说,丘奇和图灵证明了计算机的能力有极限
+
+No matter how much time or memory you have,
+无论有多少时间或内存,有些问题是计算机无法解决的
+
+there are just some problems that cannot be solved ever.
+无论有多少时间或内存,有些问题是计算机无法解决的
+
+The concurrent efforts by Church and Turing to determine the limits of computation,
+丘奇和图灵证明了计算是有极限的,
+
+and in general, formalize computability, are now called the Church-Turing Thesis.
+起步了可计算性理论,现在叫"丘奇-图灵论题"
+
+At this point in 1936, Turing was only 24 years old
+当时是1936年,图灵只有24岁
+
+and really only just beginning his career.
+他的职业生涯才刚刚开始
+
+From 1936 through 1938,
+从1936年到1938年 \N 在丘奇指导下,他在普林斯顿拿到博士学位
+
+he completed a PhD at Princeton University under the guidance of Church
+从1936年到1938年 \N 在丘奇指导下,他在普林斯顿拿到博士学位
+
+then after graduating he returned to Cambridge.
+毕业后回到剑桥
+
+Shortly after in 1939, Britain became embroiled in World War II.
+1939年后不久,英国卷入第二次世界大战
+
+Turing's genius was quickly applied for the war effort.
+图灵的才能很快被投入战争
+
+In fact, a year before the war started,
+事实上,在战争开始前一年
+
+he was already working part-time at the UK's government Code and Cypher school,
+他已经在英国政府的 密码破译学校兼职
+
+which was the British code breaking group based out of Bletchley Park.
+位于"布莱切利园"的一个密码破译组织
+
+One of his main efforts was figuring out how to decrypt German communications.
+他的工作内容之一是破解德国的通信加密
+
+Especially those that use the Enigma Machine.
+特别是"英格玛机"加密的信息
+
+In short, these machines scrambled text
+简单说,英格玛机会加密明文
+
+like you type the letters H-E-L-L-O
+如果输入字母 H-E-L-L-O
+
+and the letters X-W-D-B-J would come out.
+机器输出 X-W-D-B-J
+
+This process is called Encryption.
+这个过程叫"加密"
+
+The scrambling wasn't random.
+文字不是随便打乱的
+
+The behavior was defined by a series of real world rotors on the top of the enigma machine.
+加密由"英格玛机"顶部的齿轮组合决定
+
+Each were 26 possible rotational positions.
+每个齿轮有26个可能位置
+
+There was also a plug board at the front of the machine that allow pairs of letters to be swapped.
+机器前面还有插板,可以将两个字母互换
+
+In total, there were billions of possible settings.
+总共有上十亿种可能
+
+If you had your only enigma machine and you knew the correct rotor and plug board settings,
+如果你有"英格玛机",并且知道正确的齿轮和插头设置
+
+you could type in X-W-D-B-J and "hello" would come out.
+输入X-W-D-B-J,机器会输出 hello
+
+In other words, you decrypted the message.
+解密了这条消息
+
+Of course, the German military wasn't sharing their enigma settings on Social Media.
+当然,德军不会把机器设置发到微博上
+
+So the allies had to break the code.
+盟军必须自己破译密码
+
+With billions of Rotor and plug board combinations,
+有数十亿种组合,根本没法手工尝试所有组合
+
+there was no way to check them all by hand.
+有数十亿种组合,根本没法手工尝试所有组合
+
+Fortunately for Turing, Enigma Machines and the people who operated them were not perfect.
+幸运的是,英格玛机和操作员不是完美的
+
+Like one key flaw was that a letter would never be encoded as itself,
+一个大缺陷是:字母加密后绝不会是自己
+
+as in an H was never encrypted as an H.
+H 加密后绝对不是 H
+
+Turing building on earlier work by Polish code breakers
+图灵接着之前波兰破译专家的成果继续工作
+
+designed a special-purpose electro-mechanical computer called the bombe
+设计了一个机电计算机,叫 Bombe
+
+that took advantages of this flaw.
+利用了这个缺陷,它对加密消息尝试多种组合
+
+It tried lots and lots of combinations of enigma settings for a given encrypted message.
+利用了这个缺陷,它对加密消息尝试多种组合
+
+If the bombe found a setting that led to a letter being encoded as itself
+如果发现字母解密后和原先一样
+
+which we know no enigma machines could do.
+我们知道英格玛机决不会这么做
+
+That combination was discarded then the machine moved on to try another combination.
+这个组合会被跳过,接着试另一个组合
+
+So bombe was used to greatly narrow the number of Possible enigma settings.
+Bombe 大幅减少了搜索量
+
+This allowed human code breakers to hone their efforts on the most probable solutions,
+让破译人员把精力花在更有可能的组合
+
+looking for things like common german words in fragments of decoded text.
+比如在解码文本中找常见的德语单词
+
+Periodically, the Germans would suspect someone was decoding their communications
+德国人时不时会怀疑有人在破解,然后升级英格玛机
+
+and upgrade the enigma machine,
+德国人时不时会怀疑有人在破解,然后升级英格玛机
+
+like they'd add another rotor creating many more combinations.
+比如加一个齿轮,创造更多可能组合
+
+They even built entirely new encryption machines.
+他们甚至还做了全新的加密机
+
+Throughout the war, Turing and his colleagues at Bletchley Park
+整个战争期间,图灵和同事在布莱切利园努力破解加密
+
+worked tirelessly to defeat these mechanisms.
+整个战争期间,图灵和同事在布莱切利园努力破解加密
+
+And overall, the intelligence gained from decrypted German communications
+解密得到的德国情报,为盟军赢得了很多优势
+
+gave the allies an edge in many theaters
+解密得到的德国情报,为盟军赢得了很多优势
+
+with some historians arguing is shortened the war by years.
+有些史学家认为他们把战争减短了好几年
+
+After the war, Turing return to academia
+战后,图灵回到学术界 \N 为许多早期计算机工作做出贡献
+
+and contributed to many early electronic computing efforts
+战后,图灵回到学术界 \N 为许多早期计算机工作做出贡献
+
+like the Manchester Mark 1, which was an early and influential stored-program computer.
+比如曼彻斯特 1 号,一个早期有影响力的存储程序计算机
+
+But his most famous post-war contribution was the Artificial Intelligence.
+但他最有名的战后贡献是"人工智能"
+
+A field's so new that it didn't get that name until 1956.
+这个领域很新,直到1956年才有名字
+
+It's a huge topic. So we'll get to it again in future episodes.
+这个话题很大,以后再谈(第34集)
+
+In 1950, Turing could envision a future where computers
+1950 年,图灵设想了未来的计算机
+
+were powerful enough to exhibit intelligence equivalent to
+拥有和人类一样的智力,或至少难以区分
+
+or at least indistinguishable from that of a human.
+拥有和人类一样的智力,或至少难以区分
+
+Turing postulated that a computer would deserve to be called intelligent
+图灵提出 \N 如果计算机能欺骗人类相信它是人类,才算是智能
+
+if it could deceive a human into believing that it was human.
+图灵提出 \N 如果计算机能欺骗人类相信它是人类,才算是智能
+
+This became the basis of a simple test, now called the Turing test.
+这成了智能测试的基础,如今叫"图灵测试"
+
+Imagine that you are having a conversation with two different people
+想像你在和两个人沟通 \N 不用嘴或面对面,而是来回发消息
+
+not by voice or in person, but by sending type notes back and forth,
+想像你在和两个人沟通 \N 不用嘴或面对面,而是来回发消息
+
+you can ask any questions you want and you get replies.
+可以问任何问题,然后会收到回答
+
+But one of those two people is actually a computer.
+但其中一个是计算机
+
+If you can't tell which one is human and which one is a computer,
+如果你分不出哪个是人类,哪个是计算机
+
+then the computer passes the test.
+那么计算机就通过了图灵测试
+
+There's a modern version of this test called
+这个测试的现代版叫
+
+a completely automated public turing test to tell computers and humans apart
+"公开全自动图灵测试,用于区分计算机和人类"
+
+or Captcha for short.
+简称"验证码"
+
+These are frequently used on the internet to prevent automated systems
+防止机器人发垃圾信息等
+
+from doing things like posting spam on websites.
+防止机器人发垃圾信息等
+
+I'll admit sometimes I can't read what those squiggly things say.
+我承认 有时我都认不出那些扭曲的东西是什么字
+
+Does that mean I'm a computer?
+这难道意味着我是计算机?
+
+Normally in this series, we don't delve into the personal lives of these historical figures.
+通常这个系列我们不会深入历史人物的个人生活
+
+But in Turing's case his name has been inextricably tied to tragedy
+但图灵与悲剧密不可分
+
+so his story is worth mentioning.
+所以他的故事值得一提
+
+Turing was gained a time when homosexuality was illegal in the United Kingdom and much of the world.
+图灵那个时代,同性恋是违法的,英国和大部分国家都是
+
+And an investigation into a 1952 Burglary at his home
+1952 年调查他家的入室盗窃案时,向当局暴露了他的性取向
+
+revealed his sexual orientation to the authorities,
+1952 年调查他家的入室盗窃案时,向当局暴露了他的性取向
+
+who charged him with gross indecency.
+被起诉 "行为严重不检点"
+
+Turing was convicted and given a choice between imprisonment,
+图灵被定罪,有2个选择: \N 1. 入狱 2. 接受激素来压制性欲
+
+or probation with hormonal treatments to suppress his sexuality.
+图灵被定罪,有2个选择: \N 1. 入狱 2. 接受激素来压制性欲
+
+He chose the latter in part to continue his academic work,
+他选了后者,部分原因是为了继续学术工作
+
+but it altered his mood and personality.
+但药物改变了他的情绪和性格
+
+Although the exact circumstances will never be known,
+虽然确切情况永远无法得知
+
+it's most widely accepted that Alan Turing took his own life by poison in 1954.
+图灵于1954年服毒自尽,年仅41岁
+
+He was only 41.
+图灵于1954年服毒自尽,年仅41岁
+
+Many things have been named in recognition of Turing's contributions to theoretical computer science
+由于图灵对计算机科学贡献巨大,许多东西以他命名
+
+But perhaps the most prestigious among them is the Turing award
+其中最出名的是"图灵奖"
+
+the highest distinction in the field of computer science.
+计算机领域的最高奖项
+
+Equivalent to a Nobel prize in Physics, chemistry or other sciences.
+相当于物理, 化学等其它领域的诺贝尔奖
+
+Despite a life cut short, Alan inspire the first generation of computer scientists
+虽然英年早逝,但图灵激励了第一代计算机科学家
+
+and lead key groundwork that enabled a digital era that we get to enjoy today.
+而且为如今便利的数字时代 做出了重要基石性工作
+
+I'll see you next week.
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/16. 软件工程-Software Engineering.ass.txt b/(字幕)全40集中英字幕文本/16. 软件工程-Software Engineering.ass.txt
new file mode 100644
index 0000000..9535822
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/16. 软件工程-Software Engineering.ass.txt
@@ -0,0 +1,678 @@
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+So we've talked a lot about sorting in this series
+之前花了很多时间讲排序
+
+and often code to sort a list of numbers might only be ten lines long,
+也写了些 10 行左右的排序代码
+
+which is easy enough for a single programmer to write.
+对1个程序员来说很容易写
+
+Plus, it's short enough that you don't need any special tools
+而且代码很短,不必用专门工具
+
+- you could do it in Notepad.
+- 记事本就够了
+
+Really!
+真的!
+
+But, a sorting algorithm isn't a program;
+但排序算法很少会是独立程序 \N 更可能是大项目的一小部分
+
+it's likely only a small part of a much larger program.
+但排序算法很少会是独立程序 \N 更可能是大项目的一小部分
+
+For example, Microsoft Office has roughly 40 millions lines of code.
+举个例子,微软的 Office 大约有 4000 万代码
+
+40 MILLION!
+4000 万!
+
+That's way too big for any one person to figure out and write!
+太多了,一个人不可能做到
+
+To build huge programs like this, programmers use a set of tools and practices.
+为了写大型程序,程序员用各种工具和方法
+
+Taken together, these form the discipline of Software Engineering
+所有这些形成了"软件工程"学科
+
+- a term coined by engineer Margaret Hamilton,
+- 这个词由工程师 Margaret Hamilton 创造
+
+who helped NASA prevent serious problems during the Apollo missions to the moon.
+她帮助 NASA 在阿波罗计划中避免了严重问题
+
+She once explained it this way:
+她曾说过:
+
+"It's kind of like a root canal: you waited till the end,
+"有点像牙根管治疗:你总是拖到最后才做 \N 但有些事可以预先做好
+
+[but] there are things you could have done beforehand.
+"有点像牙根管治疗:你总是拖到最后才做 \N 但有些事可以预先做好
+
+It's like preventative healthcare,
+有点像预防性体检, 只不过是预防软件出错"
+
+but it's preventative software."
+有点像预防性体检, 只不过是预防软件出错"
+
+As I mentioned in episode 12,
+第 12 集提过
+
+breaking big programs into smaller functions allows many people to work simultaneously.
+把大项目分解成小函数 可以让多人同时工作
+
+They don't have to worry about the whole thing,
+不用关心整个项目,关心自己的函数就好了
+
+just the function they're working on.
+不用关心整个项目,关心自己的函数就好了
+
+So, if you're tasked with writing a sort algorithm,
+如果你的任务是写排序算法
+
+you only need to make sure it sorts properly and efficiently.
+你只需要确保高效和正确就可以了
+
+However, even packing code up into functions isn't enough.
+然而把代码打包成函数 依然不够
+
+Microsoft Office probably contains hundreds of thousands of them.
+如果只是这样,微软 Office 会有几十万个函数
+
+That's better than dealing with 40 million lines of code,
+虽然比 4000 万行代码要好一些,但还是太多了
+
+but it's still way too many "things" for one person or team to manage.
+虽然比 4000 万行代码要好一些,但还是太多了
+
+The solution is to package functions into hierarchies,
+解决办法是:把函数打包成层级. \N 把相关代码都放在一起,打包成对象(objects)
+
+pulling related code together into "objects".
+解决办法是:把函数打包成层级. \N 把相关代码都放在一起,打包成对象(objects)
+
+For example, car's software might have several functions related to cruise control,
+例如,汽车软件中 可能有几个和定速巡航有关的函数
+
+like setting speed, nudging speed up or down, and stopping cruise control altogether.
+比如 设定速度,逐渐加速减速,停止定速巡航
+
+Since they're all related,
+因为这些函数都相关,可以包装成一个"定速巡航对象"
+
+we can wrap them up into a unified cruise control object.
+因为这些函数都相关,可以包装成一个"定速巡航对象"
+
+But, we don't have to stop there,
+但不止如此,我们还可以做更多
+
+cruise control is just one part of the engine's software.
+"定速巡航"只是引擎软件的一部分
+
+There might also be sets of functions that control spark plug ignition,
+可能还有 "火花塞点火" "燃油泵" 和 "散热器"
+
+fuel pumps, and the radiator.
+可能还有 "火花塞点火" "燃油泵" 和 "散热器"
+
+So we can create a "parent" Engine Object
+我们可以做一个"引擎对象" 来包括所有"子"对象
+
+that contains all of these "children" objects.
+我们可以做一个"引擎对象" 来包括所有"子"对象
+
+In addition to children *objects*,
+除了子对象,"引擎对象"可能有自己的函数
+
+the engine itself might have its *own* functions.
+除了子对象,"引擎对象"可能有自己的函数
+
+You want to be able to stop and start it, for example.
+比如 开关引擎
+
+It'll also have its own variables,
+它也会有自己的变量,比如汽车行驶了多少英里
+
+like how many miles the car has traveled.
+它也会有自己的变量,比如汽车行驶了多少英里
+
+In general, objects can contain other objects, functions and variables.
+总的来说,对象可以包其它对象,函数和变量
+
+And of course, the engine is just one part of a Car Object.
+当然,"引擎对象"只是"汽车对象"的一部分
+
+There's also the transmission, wheels, doors, windows, and so on.
+还有传动装置,车轮,门,窗等
+
+Now, as a programmer, if I want to set the cruise control,
+作为程序员,如果想设"定速巡航"
+
+I navigate down the object hierarchy,
+要一层层向下
+
+from the outermost objects to more and more deeply nested ones.
+从最外面的对象往里找
+
+Eventually, I reach the function I want to trigger:
+最后找到想执行的函数:
+
+"Car, then engine, then cruise control, then set cruise speed to 55".
+Car. Engine. CruiseControl. setCruiseSpeed(55)
+
+Programming languages often use something equivalent to the syntax shown here.
+编程语言经常用类似这样的语法
+
+The idea of packing up functional units into nested objects is called
+把函数打包成对象的思想叫 "面向对象编程"
+
+Object Oriented Programming.
+把函数打包成对象的思想叫 "面向对象编程"
+
+This is very similar to what we've done all series long:
+这种思想和之前类似
+
+hide complexity by encapsulating low-level details in higher-order components.
+通过封装组件,隐藏复杂度
+
+Before we packed up things like transistor circuits into higher-level boolean gates.
+之前把晶体管 打包成了逻辑门
+
+Now we're doing the same thing with software.
+现在软件也这样做
+
+Yet again, it's a way to move up a new level of abstraction!
+又提升了一层抽象!
+
+Breaking up a big program, like a car's software,
+把大型软件(如汽车软件)\N 拆成一个个更小单元,适合团队合作
+
+into functional units is perfect for teams.
+把大型软件(如汽车软件)\N 拆成一个个更小单元,适合团队合作
+
+One team might be responsible for the cruise control system,
+一个团队负责定速巡航系统
+
+and a single programmer on that team tackles a handful of functions.
+团队里的一位程序员负责其中一些函数
+
+This is similar to how big, physical things are built, like skyscrapers.
+类似建摩天大楼
+
+You'll have electricians running wires,
+有电工装电线
+
+plumbers fitting pipes,
+管道工配管
+
+welders welding,
+焊接工焊接
+
+painters painting,
+油漆工涂油漆
+
+and hundreds of other people teeming all over the hull.
+还有成百上千人做其他事情
+
+They work together on different parts simultaneously,
+在不同岗位同时工作,各尽其能
+
+leveraging their different skills.
+在不同岗位同时工作,各尽其能
+
+Until one day, you've got a whole working building!
+直到整栋楼完成
+
+But, returning to our cruise control example
+回到定速巡航的例子
+
+its code is going to have to make use of functions in other parts of the engine's software,
+定速巡航 要用到引擎的其它函数,来保持车速
+
+to, you know, keep the car at a constant speed.
+定速巡航 要用到引擎的其它函数,来保持车速
+
+That code isn't part of the cruise control team's responsibility.
+定速巡航 团队不负责这些代码,另一个团队负责
+
+It's another team's code.
+定速巡航 团队不负责这些代码,另一个团队负责
+
+Because the cruise control team didn't write that,
+因为是其他团队的代码,
+
+they're going to need good documentation about what each function in the code does,
+定速巡航 团队需要文档 帮助理解代码都做什么
+
+and a well-defined Application Programming Interface
+以及定义好的 "程序编程接口" -简称 API
+
+-- or API for short.
+以及定义好的 "程序编程接口" -简称 API
+
+You can think of an API as the way that
+API 帮助不同程序员合作 \N 不用知道具体细节,只要知道怎么使用就行了
+
+collaborating programmers interact across various parts of the code.
+API 帮助不同程序员合作 \N 不用知道具体细节,只要知道怎么使用就行了
+
+For example, in the IgnitionControl object,
+例如"点火控制"对象中,可能有"设置发动机转数"函数
+
+there might be functions to set the RPM of the engine,
+例如"点火控制"对象中,可能有"设置发动机转数"函数
+
+check the spark plug voltage,
+"检查火花塞电压"函数
+
+as well as fire the individual spark plugs.
+"点燃单个火花塞"函数
+
+Being able to set the motor's RPM is really useful,
+"设置发动机转速"非常有用
+
+the cruise control team is going to need to call that function.
+"定速巡航"团队要用到这个函数
+
+But, they don't know much about how the ignition system works.
+但他们对点火系统不怎么了解
+
+It's not a good idea to let them call functions that fire the individual spark plugs.
+让他们调用"点燃单个火花塞"函数,不是好主意
+
+Or the engine might explode!
+引擎可能会炸!
+
+Maybe.
+可能啦
+
+The API allows the right people access to the right functions and data.
+API 控制哪些函数和数据让外部访问 \N 哪些仅供内部
+
+Object Oriented Programming languages do this
+"面向对象"的编程语言 \N 可以指定函数是 public 或 private,来设置权限
+
+by letting you specify whether functions are public or private.
+"面向对象"的编程语言 \N 可以指定函数是 public 或 private,来设置权限
+
+If a function is marked as "private",
+如果函数标记成 private
+
+it means only functions inside that object can call it.
+意味着 只有同一个对象内的其他函数能调用它
+
+So, in this example, only other functions inside of IgnitionControl,
+在这个例子里,只有内部函数比如 setRPM
+
+like the setRPM function,
+在这个例子里,只有内部函数比如 setRPM
+
+can fire the sparkplugs.
+才能调用 fireSparkplug 函数
+
+On the other hand, because the setRPM function is marked as public,
+而 setRPM 函数是 public \N 所以其它对象可以调用它,比如 定速巡航
+
+other objects can call it, like cruise control.
+而 setRPM 函数是 public \N 所以其它对象可以调用它,比如 定速巡航
+
+This ability to hide complexity, and selectively reveal it,
+"面向对象编程"的核心是 \N 隐藏复杂度,选择性的公布功能
+
+is the essence of Object Oriented Programming,
+"面向对象"的核心是 \N 隐藏复杂度,选择性的公布功能
+
+and it's a powerful and popular way to tackle building large and complex programs.
+因为做大型项目很有效,所以广受欢迎
+
+Pretty much every piece of software on your computer, or game running on your console,
+计算机上几乎所有软件,游戏机里几乎所有游戏
+
+was built using an Object Oriented Programming Language,
+都是 "面向对象" 编程语言写的
+
+like C++, C# or Objective-C.
+比如 C++, C#, Objective-C 等
+
+Other popular "OO" languages you may have heard of are Python and Java.
+其他流行 OO 语言,你可能听过 Python 和 Java
+
+It's important to remember that code, before being compiled, is just text.
+有一点很重要:代码在编译前就只是文字而已
+
+As I mentioned earlier,
+前面提过,你可以用记事本或任何文字处理器
+
+you could write code in Notepad or any old word processor.
+前面提过,你可以用记事本或任何文字处理器
+
+Some people do.
+有人确实这样做
+
+But generally, today's software developers use special-purpose applications for writing programs,
+但一般来说,现代软件开发者 会用专门的工具来写代码
+
+ones that integrate many useful tools for writing, organizing, compiling and testing code.
+工具里集成了很多有用功能\N 帮助写代码,整理,编译和测代码
+
+Because they put everything you need in one place,
+因为集成了所有东西
+
+they're called Integrated Development Environments ,
+因此叫 集成开发环境,简称 IDE
+
+or IDEs for short.
+因此叫 集成开发环境,简称 IDE
+
+All IDEs provide a text editor for writing code,
+所有 IDE 都有写代码的界面
+
+often with useful features like automatic color-coding to improve readability.
+还带一些有用功能,比如代码高亮,来提高可读性
+
+Many even check for syntax errors as you type, like spell check for code.
+许多 IDE 提供实时检查,比如拼写
+
+Big programs contain lots of individual source files,
+大型项目有很多源代码文件
+
+so IDEs allow programmers to organize and efficiently navigate everything.
+IDE 帮助开发者整理和看代码
+
+Also built right into the IDE is the ability to compile and run code.
+很多 IDE 还可以直接编译和运行代码
+
+And if your program crashes,
+如果程序崩了,因为你还没写完呢
+
+because it's still a work in progress,
+如果程序崩了,因为你还没写完呢
+
+the IDE can take you back to the line of code where it happened,
+IDE 可以定位到出错代码
+
+and often provide additional information to help you track down and fix the bug,
+还会提供信息 帮你解决问题
+
+which is a process called debugging.
+这叫 调试(debug)
+
+This is important
+调试很重要
+
+because most programmers spend 70 to 80% of their time testing and debugging,
+大多数程序员会花 70%~80% 时间调试,而不是在写代码
+
+not writing new code.
+大多数程序员会花 70%~80% 时间调试,而不是在写代码
+
+Good tools, contained in IDEs,
+好工具能极大帮助程序员防止和解决错误
+
+can go a long way when it comes to helping programmers prevent and find errors.
+好工具能极大帮助程序员防止和解决错误
+
+Many computer programmers can be pretty loyal to their IDEs though
+很多开发者只用一款 IDE
+
+But let's be honest.
+但承认吧,VIM 才是最棒的编辑器
+
+VIM is where it's at.
+但承认吧,VIM 才是最棒的编辑器
+
+Providing you know how to quit.
+如果你知道怎么退出的话
+
+In addition to coding and debugging,
+除了写代码和调试
+
+another important part of a programmer's job is documenting their code.
+程序员工作的另一个重要部分是 给代码写文档
+
+This can be done in standalone files called "readme",
+文档一般放在一个叫 README 的文件里
+
+which tell other programmers to read that help file before diving in.
+告诉其他程序员,看代码前先看这个文件
+
+It can also happen right in the code itself with comment
+文档也可以直接写成"注释",放在源代码里
+
+These are specially-marked statements that the program knows
+注释是标记过的一段文字
+
+to ignore when the code is compiled.
+编译代码时 注释会被忽略
+
+They exist only to help programmers figure out what's what in the source code.
+注释存在的唯一作用 \N 就是帮助开发者理解代码
+
+Good documentation helps programmers when they revisit code they haven't seen for awhile,
+好文档能帮助开发者 \N 几个月后理解自己的代码,对其他人也很重要
+
+but it's also crucial for programmers who are totally new to it.
+好文档能帮助开发者 \N 几个月后理解自己的代码,对其他人也很重要
+
+I just want to take a second here and reiterate that it's THE WORST
+我想花一秒 再强调一下注释很重要
+
+when someone parachutes a load of uncommented and undocumented code into your lap,
+最糟糕的就是拿到一堆代码,没有任何注释和文档
+
+and you literally have to go line by line to understand what the code is doing.
+结果得逐行读代码,理解到底干嘛的
+
+Seriously.
+我是认真的
+
+Don't be that person.
+别做那种人
+
+Documentation also promotes code reuse.
+文档还可以提高复用性
+
+So, instead of having programmers constantly write the same things over and over,
+与其让程序员一遍遍写同样的东西
+
+they can track down someone else's code that does what they need.
+可以直接用别人写好的来解决问题
+
+Then, thanks to documentation,
+读文档看怎么用就行,不用读代码
+
+they can put it to work in their program, without ever having to read through the code.
+读文档看怎么用就行,不用读代码
+
+"Read the docs" as they say.
+"读文档啊"
+
+In addition to IDEs,
+除了 IDE,还有一个重要软件帮助团队协作
+
+another important piece of software that
+除了 IDE,还有一个重要软件帮助团队协作
+
+helps big teams work collaboratively on big coding projects is called
+除了 IDE,还有一个重要软件帮助团队协作
+
+Source Control,
+源代码管理
+
+also known as version control or revision control.
+也叫"版本控制"
+
+Most often, at a big software company like Apple or Microsoft,
+苹果或微软这样的大型软件公司
+
+code for projects is stored on centralized servers,
+会把代码放到一个中心服务器上
+
+called a code repository .
+叫"代码仓库"
+
+When a programmer wants to work on a piece of code,
+程序员想改一段代码时
+
+they can check it out,
+可以 check out
+
+sort of like checking out a book out from a library.
+有点像从图书馆借书
+
+Often, this can be done right in an IDE.
+一般这种操作,可以直接在 IDE 内完成
+
+Then, they can edit this code all they want on their personal computer,
+然后开发者在自己的电脑上编辑代码
+
+adding new features and testing if they work.
+加新功能,测试
+
+When the programmer is confident their changes are working and there are no loose ends,
+如果代码没问题了,所有测试通过了
+
+they can check the code back into the repository,
+可以把代码放回去
+
+known as committing code, for everyone else to use.
+这叫 提交 (commit)
+
+While a piece of code is checked out,
+当代码被 check out,而且可能被改过了
+
+and presumably getting updated or modified,
+当代码被 check out,而且可能被改过了
+
+other programmers leave it alone.
+其他开发者不会动这段代码
+
+This prevents weird conflicts and duplicated work.
+防止代码冲突和重复劳动
+
+In this way, hundreds of programmers can be simultaneously checking in and out pieces of code,
+这样多名程序员可以同时写代码,建立庞大的系统
+
+iteratively building up huge systems.
+这样多名程序员可以同时写代码,建立庞大的系统
+
+Critically, you don't want someone committing buggy code,
+重要的是,你不希望提交的代码里有问题 \N 因为其他人可能用到了这些代码
+
+because other people and teams may rely on it.
+重要的是,你不希望提交的代码里有问题 \N 因为其他人可能用到了这些代码
+
+Their code could crash, creating confusion and lost time.
+导致他们的代码崩溃,造成困惑而且浪费时间
+
+The master version of the code, stored on the server,
+代码的主版本 (master)
+
+should always compile without errors and run with minimal bugs.
+应该总是编译正常,尽可能少 bug
+
+But sometimes bugs creep in.
+但有时 bug 还是会出现
+
+Fortunately, source control software keeps track of all changes,
+幸运的是,源代码管理可以跟踪所有变化
+
+and if a bug is found,
+如果发现 bug
+
+the whole code, or just a piece,
+全部或部分代码,可以"回滚"到之前的稳定版
+
+can be rolled back to an earlier, stable version.
+全部或部分代码,可以"回滚"到之前的稳定版
+
+It also keeps track of who made each change,
+"源代码管理" 也记录了谁改了什么代码
+
+so coworkers can send nasty,
+所以同事可以给你发 讨厌的
+
+I mean, helpful
+我是说"有帮助的" 邮件给写代码的人
+
+and encouraging emails to the offending person.
+我是说"有帮助的" 邮件给写代码的人
+
+Debugging goes hand in hand with writing code,
+写代码和测代码密不可分
+
+and it's most often done by an individual or small team.
+测试一般由个人或小团队完成
+
+The big picture version of debugging is Quality Assurance testing, or QA.
+测试可以统称 "质量保证测试",简称 QA
+
+This is where a team rigorously tests out a piece of software,
+严格测试软件的方方面面
+
+attempting to create unforeseen conditions that might trip it up.
+模拟各种可能情况,看软件会不会出错
+
+Basically, they elicit bugs.
+基本上就是找 bug
+
+Getting all the wrinkles out is a huge effort,
+解决大大小小的错误需要很多工作
+
+but vital in making sure the software works
+但对确保软件质量至关重要
+
+as intended for as many users in as many situations as imaginable before it ships.
+让软件在各种情况下按预期运行
+
+You've probably heard of beta software.
+你可能听过 "beta 版" 软件
+
+This is a version of software that's mostly complete,
+意思是软件接近完成
+
+but not 100% fully tested.
+但不是 100% 完全测试过
+
+Companies will sometimes release beta versions to the public to help them identify issues,
+公司有时会向公众发布 beta 版,以帮助发现问题
+
+it's essentially like getting a free QA team.
+用户就像免费的 QA 团队
+
+What you don't hear about as much
+你听过比较少的是 \N beta 版之前的版本:alpha 版本
+
+is the version that comes before the beta: the alpha version.
+你听过比较少的是 \N beta 版之前的版本:alpha 版本
+
+This is usually so rough and buggy, it's only tested internally.
+alpha 版一般很粗糙,错误很多,\N 经常只在公司内部测试
+
+So, that's the tip of the iceberg in terms of the tools, tricks and techniques
+以上只是软件工程师用的工具和技巧的冰山一角
+
+that allow software engineers to construct the huge pieces of software that we know and love today,
+它们帮助软件工程师制作令人喜爱的软件
+
+like YouTube, Grand Theft Auto 5, and Powerpoint.
+如 YouTube,GTA5 和 PPT 等等
+
+As you might expect,
+如你所料
+
+all those millions of lines of code needs some serious processing power to run at useful speeds,
+这些代码要强大的处理能力 才能高速速度运行
+
+so next episode we'll be talking about how computers got so incredibly fast.
+所以下集讨论,计算机怎么发展到如今这么快
+
+See you then.
+到时见
+
diff --git a/(字幕)全40集中英字幕文本/17. 集成电路&摩尔定律-Integrated Circuits & Moore’s Law.ass.txt b/(字幕)全40集中英字幕文本/17. 集成电路&摩尔定律-Integrated Circuits & Moore’s Law.ass.txt
new file mode 100644
index 0000000..f3d9725
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/17. 集成电路&摩尔定律-Integrated Circuits & Moore’s Law.ass.txt
@@ -0,0 +1,639 @@
+This episode is brought to you by Curiosity Stream.
+本集由 Curiosity Stream 赞助播出
+
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N欢迎收看计算机科学速成课!
+
+Over the past six episodes, we delved into software,
+过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程
+
+from early programming efforts to modern software engineering practices.
+过去 6 集我们聊了软件 \N 从早期编程方式到现代软件工程
+
+Within about 50 years, software grew in complexity from machine code punched by hand onto paper tape
+在大概50年里 软件从纸带打孔 \N 变成面向对象编程语言 在集成开发环境中写程序
+
+to object oriented programming languages, compiled in integrated development environments.
+在大概50年里 软件从纸带打孔 \N 变成面向对象编程语言 在集成开发环境中写程序
+
+But this growth in sophistication would not have been possible without improvements in hardware.
+但如果没有硬件的大幅度进步 \N 软件是不可能做到这些的
+
+To appreciate computing hardware’s explosive growth in power and sophistication,
+为了体会硬件性能的爆炸性增长 \N 我们要回到电子计算机的诞生年代
+
+we need to go back to the birth of electronic computing.
+为了体会硬件性能的爆炸性增长 \N 我们要回到电子计算机的诞生年代
+
+From roughly the 1940’s through the mid-1960s, every computer was built from individual parts,
+大约 1940年代~1960年代中期这段时间里 \N 计算机都由独立部件组成
+
+called discrete components, which were all wired together.
+叫"分立元件" \N 然后不同组件再用线连在一起
+
+For example, the ENIAC, consisted of more than 17,000 vacuum tubes, 70,000 resistors,
+举例, ENIAC 有1万7千多个真空管, 7万个电阻
+
+10,000 capacitors, and 7,000 diodes, all of which required 5 million hand-soldered connections.
+1万个电容器, 7千个二极管, 5百万个手工焊点
+
+Adding more components to increase performance meant more connections, more wires
+如果想提升性能,就要加更多部件 \N 这导致更多电线,更复杂
+
+and just more complexity, what was dubbed the Tyranny of Numbers.
+这个问题叫 "数字暴政''
+
+By the mid 1950s, transistors were becoming commercially available
+1950 年代中期,晶体管开始商业化(市场上买得到) \N 开始用在计算机里
+
+and being incorporated into computers.
+1950 年代中期,晶体管开始商业化(市场上买得到) \N 开始用在计算机里
+
+These were much smaller, faster and more reliable than vacuum tubes
+晶体管比电子管 更小更快更可靠
+
+but each transistor was still one discrete component.
+但晶体管依然是分立元件
+
+In 1959, IBM upgraded their vacuum-tube-based "709" computers to transistors by replacing
+1959年,IBM 把 709 计算机从原本的电子管 \N 全部换成晶体管
+
+by replacing all the discrete vacuum tubes with discrete transistors.
+1959年,IBM 把 709 计算机从原本的电子管 \N 全部换成晶体管
+
+The new machine, the IBM 7090, was six times faster and half the cost.
+诞生的新机器 IBM 7090 \N 速度快 6 倍,价格只有一半
+
+These transistorized computers marked the second generation of electronic computing.
+晶体管标志着"计算 2.0 时代"的到来
+
+However, although faster and smaller,
+虽然更快更小 \N 但晶体管的出现 还是没有解决"数字暴政"的问题
+
+discrete transistors didn’t solve the Tyranny of Numbers.
+虽然更快更小 \N 但晶体管的出现 还是没有解决"数字暴政"的问题
+
+It was getting unwieldy to design,
+有几十万个独立元件的计算机不但难设计 \N 而且难生产
+
+let alone physically manufacture computers with hundreds of thousands of individual components.
+有几十万个独立元件的计算机不但难设计 \N 而且难生产
+
+By the the 1960s, this was reaching a breaking point.
+1960 年代,这个问题的严重性达到顶点 \N 电脑内部常常一大堆电线缠绕在一起
+
+The insides of computers were often just huge tangles of wires.
+1960 年代,这个问题的严重性达到顶点 \N 电脑内部常常一大堆电线缠绕在一起
+
+Just look at what the inside of a PDP-8 from 1965 looked like!
+看看这个 1965 年 PDP-8 计算机的内部
+
+The answer was to bump up a new level of abstraction, and package up underlying complexity!
+解决办法是引入一层新抽象,封装复杂性
+
+The breakthrough came in 1958, when Jack Kilby, working at Texas Instruments,
+突破性进展在 1958 年 \N 当时 Jack Killby 在德州仪器工作
+
+demonstrated such an electronic part, "wherein all the components of the electronic circuit are completely integrated.
+演示了一个电子部件:\N "电路的所有组件都集成在一起"
+
+Put simply: instead of building computer parts out of many discrete components
+简单说就是:\N 与其把多个独立部件用电线连起来,拼装出计算机
+
+and wiring them all together,
+简单说就是:\N 与其把多个独立部件用电线连起来,拼装出计算机
+
+you put many components together, inside of a new, single component.
+我们把多个组件包在一起,变成一个新的独立组件
+
+These are called Integrated Circuits, or ICs.
+这就是 集成电路(IC)
+
+A few months later in 1959, Fairchild Semiconductor, lead by Robert Noyce, made ICs practical.
+几个月后,在1959年 Robert Noyce 的仙童半导体 \N 让集成电路变为现实
+
+Kilby built his ICs out of germanium, a rare and unstable material.
+Kilby 用锗来做集成电路,锗很稀少而且不稳定
+
+But, Fairchild used the abundant silicon, which makes up about a quarter of the earth's crust!
+仙童半导体公司用硅 \N 硅的蕴藏量丰富,占地壳四分之一
+
+It’s also more stable, therefore more reliable.
+也更稳定可靠
+
+For this reason, Noyce is widely regarded as the father of modern ICs,
+所以 Noyce 被公认为现代集成电路之父
+
+ushering in the electronics era... and also Silicon Valley, where Fairchild was based
+开创了电子时代,创造了硅谷(仙童公司所在地)
+
+and where many other semiconductor companies would soon pop up.
+之后有很多半导体企业都出现在硅谷
+
+In the early days, an IC might only contain a simple circuit with just a few transistors,
+起初,一个 IC 只有几个晶体管 \N 例如这块早期样品,由西屋公司制造
+
+like this early Westinghouse example.
+起初,一个 IC 只有几个晶体管 \N 例如这块早期样品,由西屋公司制造
+
+But even this allowed simple circuits, like the logic gates from Episode 3,
+即使只有几个晶体管 \N 也可以把简单电路,第 3 集的逻辑门,能封装成单独组件
+
+to be packaged up into a single component.
+即使只有几个晶体管 \N 也可以把简单电路,第 3 集的逻辑门,能封装成单独组件
+
+ICs are sort of like lego for computer engineers
+IC 就像电脑工程师的乐高积木 \N 可以组合出无数种设计
+
+"building blocks" that can be arranged into an infinite array of possible designs.
+IC 就像电脑工程师的乐高积木 \N 可以组合出无数种设计
+
+However, they still have to be wired together at some point
+但最终还是需要连起来, \N 创造更大更复杂的电路,比如整个计算机
+
+to create even bigger and more complex circuits, like a whole computer.
+但最终还是需要连起来, \N 创造更大更复杂的电路,比如整个计算机
+
+For this, engineers had another innovation: printed circuit boards, or PCB
+所以工程师们再度创新:印刷电路板,简称 PCB
+
+Instead of soldering and bundling up bazillions of wires, PCBs, which could be mass manufactured,
+PCB 可以大规模生产,无需焊接或用一大堆线. \N 它通过蚀刻金属线的方式,把零件连接到一起
+
+have all the metal wires etched right into them to connect components together.
+PCB 可以大规模生产,无需焊接或用一大堆线. \N 它通过蚀刻金属线的方式,把零件连接到一起
+
+By using PCBs and ICs together, one could achieve exactly the same functional circuit
+把 PCB 和 IC 结合使用 \N 可以大幅减少独立组件和电线,但做到相同的功能
+
+as that made from discrete components,
+把 PCB 和 IC 结合使用 \N 可以大幅减少独立组件和电线,但做到相同的功能
+
+but with far fewer individual components and tangled wires.
+把 PCB 和 IC 结合使用 \N 可以大幅减少独立组件和电线,但做到相同的功能
+
+Plus, it’s smaller, cheaper and more reliable.
+而且更小,更便宜,更可靠. 三赢!
+
+Triple win!
+而且更小,更便宜,更可靠. 三赢!
+
+Many early ICs were manufactured using teeny tiny discrete components
+许多早期 IC 都是把很小的分立元件 \N 封装成一个独立单元,例如这块 1964 年的IBM样品
+
+packaged up as a single unit, like this IBM example from 1964.
+许多早期 IC 都是把很小的分立元件 \N 封装成一个独立单元,例如这块 1964 年的IBM样品
+
+However, even when using really really itty-bitty components,
+不过,即使组件很小 \N 塞5个以上的晶体管还是很困难
+
+it was hard to get much more than around five transistors onto a single IC.
+不过,即使组件很小 \N 塞5个以上的晶体管还是很困难
+
+To achieve more complex designs, a radically different fabrication process was needed that
+为了实现更复杂的设计,需要全新的制作工艺 \N "光刻"登场!
+
+changed everything: Photolithography!
+为了实现更复杂的设计,需要全新的制作工艺 \N "光刻"登场!
+
+In short, it’s a way to use light to transfer complex patterns to a material, like a semiconductor
+简单说就是 \N用光把复杂图案印到材料上,比如半导体
+
+It only has a few basic operations, but these can be used to create incredibly complex circuits.
+它只有几个基础操作,但可以制作出复杂电路
+
+Let’s walk through a simple, although extensive example, to make one of these!
+下面用一个简单例子,来做一片这个!
+
+We start with a slice of silicon, which, like a thin cookie, is called a wafer.
+我们从一片硅开始,叫"晶圆" \N 长得像薄饼干一样
+
+Delicious!
+美味!
+
+Silicon, as we discussed briefly in episode 2, is special because it’s a semiconductor,
+我们在第 2 集讨论过 \N 硅很特别,它是半导体
+
+that is, a material that can sometimes conduct electricity and other times does not.
+它有时导电,有时不导电 \N 我们可以控制导电时机
+
+We can control where and when this happens,
+它有时导电,有时不导电 \N 我们可以控制导电时机
+
+making Silicon the perfect raw material for making transistors.
+所以硅是做晶体管的绝佳材料
+
+We can also use a wafer as a base to lay down complex metal circuits, so everything is integrated,
+我们可以用晶圆做基础 \N 把复杂金属电路放上面,集成所有东西
+
+perfect for... integrated circuits!
+非常适合做.. 集成电路!
+
+The next step is to add a thin oxide layer on top of the silicon,
+下一步是在硅片顶部 \N 加一层薄薄的氧化层, 作为保护层
+
+which acts as a protective coating.
+下一步是在硅片顶部 \N 加一层薄薄的氧化层, 作为保护层
+
+Then, we apply a special chemical called a photoresist.
+然后加一层特殊化学品, 叫 "光刻胶" \N 光刻胶被光照射后 会变得可溶
+
+When exposed to light, the chemical changes, and becomes soluble,
+然后加一层特殊化学品, 叫 "光刻胶" \N 光刻胶被光照射后 会变得可溶
+
+so it can be washed away with a different special chemical.
+可以用一种特殊化学药剂洗掉
+
+Photoresists aren’t very useful by themselves,
+单单光刻胶本身,并不是很有用 \N 但和"光掩膜"配合使用会很强大
+
+but are super powerful when used in conjunction with a photomask.
+单单光刻胶本身,并不是很有用 \N 但和"光掩膜"配合使用会很强大
+
+This is just like a piece of photographic film, but instead of a photo of
+光掩膜就像胶片一样,只不过不是 \N 吃墨西哥卷饼的可爱仓鼠,而是要转移到晶圆上的图案
+
+a hamster eating a tiny burrito, it contains a pattern to be transferred onto the wafer.
+光掩膜就像胶片一样,只不过不是 \N 吃墨西哥卷饼的可爱仓鼠,而是要转移到晶圆上的图案
+
+We do this by putting a photomask over the wafer, and turning on a powerful light.
+把光掩膜盖到晶圆上,用强光照射 \N 挡住光的地方,光刻胶不会变化
+
+Where the mask blocks the light, the photoresist is unchanged.
+把光掩膜盖到晶圆上,用强光照射 \N 挡住光的地方,光刻胶不会变化
+
+But where the light does hit the photoresist it changes chemically ,
+光照到的地方,光刻胶会发生化学变化 \N 洗掉它之后,暴露出氧化层
+
+which lets us wash away only the photoresist that was exposed to light, selectively revealing areas of our oxide layer.
+光照到的地方,光刻胶会发生化学变化 \N 洗掉它之后,暴露出氧化层
+
+Now, by using another special chemical, often an acid, we can remove any exposed oxide,
+用另一种化学物质 - 通常是一种酸 \N 可以洗掉"氧化层"露出的部分, 蚀刻到硅层
+
+and etch a little hole the entire way down to the raw silicon.
+用另一种化学物质 - 通常是一种酸 \N 可以洗掉"氧化层"露出的部分, 蚀刻到硅层
+
+Note that the oxide layer under the photoresist is protected.
+注意,氧化层被光刻胶保护住了.
+
+To clean up, we use yet another special chemical that washes away any remaining photoresist.
+为了清理光刻胶,我们用另一种化学药品洗掉它
+
+Yep, there are a lot of special chemicals in photolithography,
+是的,光刻法用很多化学品,每种都有特定用途
+
+each with a very specific function!
+是的,光刻法用很多化学品,每种都有特定用途
+
+So now we can see the silicon again,
+现在硅又露出来了 \N 我们想修改硅露出来的区域 让它导电性更好
+
+we want to modify only the exposed areas to better conduct electricity.
+现在硅又露出来了 \N 我们想修改硅露出来的区域 让它导电性更好
+
+To do that, we need to change it chemically through a process called: doping.
+所以用一种化学过程来改变它,叫"掺杂"
+
+I’m not even going to make a joke. Let’s move on.
+不是开玩笑!我们继续
+
+Most often this is done with a high temperature gas, something like Phosphorus,
+"掺杂" 通常用高温气体来做,比如磷 \N 渗透进暴露出的硅,改变电学性质
+
+which penetrates into the exposed area of silicon.
+"掺杂" 通常用高温气体来做,比如磷 \N 渗透进暴露出的硅,改变电学性质
+
+This alters its electrical properties.
+"掺杂" 通常用高温气体来做,比如磷 \N 渗透进暴露出的硅,改变电学性质
+
+We’re not going to wade into the physics and chemistry of semiconductors,
+半导体的具体物理和化学性质我们不会深究,
+
+but if you’re interested, there’s a link in the description to an excellent video
+如果你感兴趣,描述里有个视频链接 \N 视频制作者是 Derek Muller 他的频道叫 Veritasium
+
+by our friend Derek Muller from Veritasium.
+如果你感兴趣,描述里有个视频链接 \N 视频制作者是 Derek Muller 他的频道叫 Veritasium
+
+But, we still need a few more rounds of photolithography to build a transistor.
+但我们还需要几轮光刻法 来做晶体管
+
+The process essentially starts again, first by building up a fresh oxide layer ...
+过程基本一样,先盖氧化层,再盖光刻胶
+
+which we coat in photoresist.
+过程基本一样,先盖氧化层,再盖光刻胶
+
+Now, we use a photomask with a new and different pattern,
+然后用新的光掩膜,这次图案不同 \N 在掺杂区域上方开一个缺口
+
+allowing us to open a small window above the doped area.
+然后用新的光掩膜,这次图案不同 \N 在掺杂区域上方开一个缺口
+
+Once again, we wash away remaining photoresist.
+洗掉光刻胶
+
+Now we dope, and avoid telling a hilarious joke, again, but with a different gas that
+然后用另一种气体掺杂 \N 把一部分硅转成另一种形式
+
+converts part of the silicon into yet a different form.
+然后用另一种气体掺杂 \N 把一部分硅转成另一种形式
+
+Timing is super important in photolithography in order to control things like doping diffusionand etch depth.
+为了控制深度,时机很重要 \N 我们不想超过之前的区域
+
+In this case, we only want to dope a little region nested inside the other.
+为了控制深度,时机很重要 \N 我们不想超过之前的区域
+
+Now we have all the pieces we need to create our transistor!
+现在 所有需要的组件都有了
+
+The final step is to make channels in the oxide layer
+最后一步,在氧化层上做通道 \N 这样可以用细小金属导线,连接不同晶体管
+
+so that we can run little metal wires to different parts of our transistor.
+最后一步,在氧化层上做通道 \N 这样可以用细小金属导线,连接不同晶体管
+
+Once more, we apply a photoresist, and use a new photomask to etch little channels.
+再次用光刻胶和光掩膜 蚀刻出小通道
+
+Now, we use a new process, called metalization,
+现在用新的处理方法 叫"金属化" \N 放一层薄薄的金属,比如铝或铜
+
+that allows us to deposit a thin layer of metal, like aluminium or copper.
+现在用新的处理方法 叫"金属化" \N 放一层薄薄的金属,比如铝或铜
+
+But we don’t want to cover everything in metal.
+但我们不想用金属盖住所有东西 \N 我们想蚀刻出具体的电路
+
+We want to etch a very specific circuit design.
+但我们不想用金属盖住所有东西 \N 我们想蚀刻出具体的电路
+
+So, very similar to before, we apply a photoresist, use a photomask, dissolve the exposed resist,
+所以又是类似的步骤 \N 用光刻胶+光掩膜,然后溶掉暴露的光刻胶,暴露的金属
+
+and use a chemical to remove any exposed metal.
+所以又是类似的步骤 \N 用光刻胶+光掩膜,然后溶掉暴露的光刻胶,暴露的金属
+
+Whew!
+咻~
+
+Our transistor is finally complete!
+晶体管终于做好了! \N 它有三根线,连接着硅的三个不同区域
+
+It has three little wires that connect to three different parts of the silicon
+晶体管终于做好了! \N 它有三根线,连接着硅的三个不同区域
+
+each doped a particular way to create, in this example, what’s called a bipolar junction transistor.
+每个区域的掺杂方式不同,这叫双极型晶体管
+
+Here’s the actual patent from 1962, an invention that changed our world forever!
+这个 1962 年的真实专利,永远改变了世界
+
+Using similar steps, photolithography can create other useful electronic elements, like
+用类似步骤,光刻可以制作其他电子元件 \N 比如电阻和电容,都在一片硅上
+
+resistors and capacitors, all on a single piece of silicon
+用类似步骤,光刻可以制作其他电子元件 \N 比如电阻和电容,都在一片硅上
+
+plus all the wires needed to hook them up into circuits
+而且互相连接的电路也做好了
+
+Goodbye discrete components!
+再见了,分立元件!
+
+In our example, we made one transistor, but in the real world,
+之前的例子 只做了一个晶体管,但现实中 \N 光刻法一次会做上百万个细节
+
+photomasks lay down millions of little details all at once.
+之前的例子 只做了一个晶体管,但现实中 \N 光刻法一次会做上百万个细节
+
+Here is what an IC might look like from above, with wires crisscrossing above and below each other,
+芯片放大是这样的,导线上下交错,连接各个元件
+
+interconnecting all the individual elements together into complex circuits.
+芯片放大是这样的,导线上下交错,连接各个元件
+
+Although we could create a photomask for an entire wafer,
+尽管可以把光掩膜投影到一整片晶圆上 \N 但光可以投射成任意大小
+
+we can take advantage of the fact that light can be focused and projected to any size we want.
+尽管可以把光掩膜投影到一整片晶圆上 \N 但光可以投射成任意大小
+
+In the same way that a film can be projected to fill an entire movie screen,
+就像投影仪可以投满荧幕一样
+
+we can focus a photomask onto a very small patch of silicon, creating incredibly fine details.
+我们可以把光掩膜 \N 聚焦到极小的区域,制作出非常精细的细节
+
+A single silicon wafer is generally used to create dozens of ICs.
+一片晶圆可以做很多 IC \N 整块都做完后,可以切割然后包进微型芯片
+
+Then, once you’ve got a whole wafer full, you cut them up and package them into microchips,
+一片晶圆可以做很多 IC \N 整块都做完后,可以切割然后包进微型芯片
+
+those little black rectangles you see in electronics all the time.
+微型芯片就是在电子设备中那些小长方体
+
+Just remember: at the heart of each of those chips is one of these small pieces of silicon.
+记住,芯片的核心都是一小片 IC
+
+As photolithography techniques improved, the size of transistors shrunk, allowing for greater densities.
+随着光刻技术发展,晶体管变小 密度变高
+
+At the start of the 1960s, an IC rarely contained more than 5 transistors,
+1960 年代初,IC 很少超过 5 个晶体管,因为塞不下
+
+they just couldn’t possibly fit.
+1960 年代初,IC 很少超过 5 个晶体管,因为塞不下
+
+But, by the mid 1960s, we were starting to see ICs with over 100 transistors on the market.
+但 1960 年代中期 \N 市场上开始出现超过 100 个晶体管的 IC
+
+In 1965, Gordon Moore could see the trend: that approximately every two years,
+1965年,戈登·摩尔看到了趋势:每两年左右,
+
+thanks to advances in materials and manufacturing, you could fit twice the number of transistors
+得益于材料和制造技术的发展 \N 同样大小的空间,能塞进两倍数量的晶体管!
+
+into the same amount of space.
+得益于材料和制造技术的发展 \N 同样大小的空间,能塞进两倍数量的晶体管!
+
+This is called Moore’s Law.
+这叫 摩尔定律
+
+The term is a bit of a misnomer though.
+然而这个名字不太对 \N 因为它不是定律,只是一种趋势
+
+It’s not really a law at all, more of a trend.
+然而这个名字不太对 \N 因为它不是定律,只是一种趋势
+
+But it’s a good one.
+但它是对的
+
+IC prices also fell dramatically, from an average of $50 in 1962 to around $2 in 1968.
+芯片的价格也急剧下降 \N 1962年平均50美元,下降到1968年2美元左右
+
+Today, you can buy ICs for cents.
+如今 几美分就能买到 IC
+
+Smaller transistors and higher densities had other benefits too.
+晶体管更小密度更高 还有其他好处
+
+The smaller the transistor, the less charge you have to move around, allowing it to switch
+晶体管越小,要移动的电荷量就越少 \N 能更快切换状态 耗电更少
+
+states faster and consume less power.
+晶体管越小,要移动的电荷量就越少 \N 能更快切换状态 耗电更少
+
+Plus, more compact circuits meant less delay in signals resulting in faster clock speeds.
+电路更紧凑 还意味着信号延迟更低 \N 导致时钟速度更快
+
+In 1968, Robert Noyce and Gordon Moore teamed up and founded a new company,
+1968年,罗伯特·诺伊斯 和 戈登·摩尔 \N 联手成立了一家新公司
+
+combining the words Integrated and Electronics...
+结合 Intergrated(集成) 和 Electronics(电子) 两个词
+
+Intel. the largest chip maker today.
+取名 Intel, 如今最大的芯片制造商
+
+The Intel 4004 CPU, from Episodes 7 and 8, was a major milestone.
+Intel 4004 CPU, 在第 7, 8 集介绍过 \N 是个重要里程碑
+
+Released in 1971, it was the first processor that shipped as an IC, what’s called a microprocessor,
+发布于1971年 \N 是第一个用 IC 做的处理器,也叫微型处理器
+
+because it was so beautifully small!
+因为真的非常小!
+
+It contained 2,300 transistors.
+它有2300个晶体管
+
+People marveled at the level of integration, an entire CPU in one chip,
+人们惊叹于它的整合水平 \N 整个 CPU 在一个芯片里
+
+which just two decades earlier would have filled an entire room using discrete components.
+而仅仅 20 年前,用分立元件会占满整个屋子
+
+This era of integrated circuits, especially microprocessors, ushered in the third generation of computing.
+集成电路的出现 \N 尤其是用来做微处理器,开启了计算 3.0
+
+And the Intel 4004 was just the start.
+而 Intel 4004 只是个开始,CPU 晶体管数量爆发增长
+
+CPU transistor count exploded!
+而 Intel 4004 只是个开始,CPU 晶体管数量爆发增长
+
+By 1980, CPUs contained 30 thousand transistors.
+1980年,3 万晶体管 \N 1990年,100 万晶体管
+
+By 1990, CPUs breached the 1 million transistor count.
+1980年,3 万晶体管 \N 1990年,100 万晶体管
+
+By 2000, 30 million transistors,
+2000年,3000 万个晶体管
+
+and by 2010, ONE. BILLION. TRANSISTORS. IN ONE. IC. OMG!
+2010年,10亿个晶体管!\N 在一个芯片里!我的天啊!
+
+To achieve this density, the finest resolution possible with photolithography has improved
+为了达到这种密度,光刻的分辨率 \N 从大约一万纳米,大概是人类头发直径的 1/10
+
+from roughly 10 thousand nanometers, that’s about 1/10th the thickness of a human hair,
+为了达到这种密度,光刻的分辨率 \N 从大约一万纳米,大概是人类头发直径的 1/10
+
+to around 14 nanometers today.
+发展到如今的 14 纳米 \N 比血红细胞小 400 倍!
+
+That’s over 400 times smaller than a red blood cell!
+发展到如今的 14 纳米 \N 比血红细胞小 400 倍!
+
+And of course, CPU’s weren’t the only components to benefit.
+当然,CPU 不是唯一受益的元件
+
+Most electronics advanced essentially exponentially:
+大多数电子器件都在指数式发展:\N 内存,显卡,固态硬盘,摄像头感光元件,等等
+
+RAM, graphics cards, solid state hard drives, camera sensors, you name it.
+大多数电子器件都在指数式发展:\N 内存,显卡,固态硬盘,摄像头感光元件,等等
+
+Today’s processors, like the A10 CPU inside Of an iPhone 7, contains a mind melting 3.3 BILLION
+如今的处理器,比如 iPhone 7 的 A10 CPU \N 有33亿个晶体管
+
+transistors in an IC roughly 1cm by 1cm.
+面积仅有 1cm x 1cm,比一张邮票还小
+
+That’s smaller than a postage stamp!
+面积仅有 1cm x 1cm,比一张邮票还小
+
+And modern engineers aren’t laying out these designs by hand, one transistor at a time
+现代工程师设计电路时,当然不是手工一个个设计晶体管 \N 这不是人力能做到的
+
+- it’s not humanly possible.
+现代工程师设计电路时,当然不是手工一个个设计晶体管 \N 这不是人力能做到的
+
+Starting in the 1970’s, very-large-scale integration, or VLSI software, has been used
+1970年代开始,超大规模集成(VLSI)软件 \N 用来自动生成芯片设计
+
+to automatically generate chip designs instead.
+1970年代开始,超大规模集成(VLSI)软件 \N 用来自动生成芯片设计
+
+Using techniques like logic synthesis, where whole, high-level components can be laid down,like a memory cache
+用比如 "逻辑综合" 这种技术 \N 可以放一整个高级组件,比如内存缓存
+
+the software generates the circuit in the most efficient way possible.
+软件会自动生成电路,做到尽可能高效
+
+Many consider this to be the start of fourth generation computers.
+许多人认为这是计算 4.0 的开始
+
+Unfortunately, experts have been predicting the end of Moore’s Law for decades
+坏消息是,专家们几十年来 \N 一直在预言摩尔定律的终结
+
+and we might finally be getting close to it.
+现在可能终于接近了
+
+There are two significant issues holding us back from further miniaturization.
+进一步做小,会面临 2 个大问题
+
+First, we’re bumping into limits on how fine we can make features on a photomask and
+1. 用光掩膜把图案弄到晶圆上 \N 因为光的波长,精度已达极限
+
+it’s resultant wafer due to the wavelengths of light used in photolithography.
+1. 用光掩膜把图案弄到晶圆上 \N 因为光的波长,精度已达极限
+
+In response, scientists have been developing light sources with smaller and smaller wavelengths
+所以科学家在研制波长更短的光源,投射更小的形状
+
+that can project smaller and smaller features.
+所以科学家在研制波长更短的光源,投射更小的形状
+
+The second issue is that when transistors get really really small, where electrodes
+2. 当晶体管非常小,电极之间可能只距离几个原子 \N 电子会跳过间隙,这叫:量子隧道贯穿
+
+might be separated by only a few dozen atoms, electrons can jump the gap, a phenomenon called
+2. 当晶体管非常小,电极之间可能只距离几个原子 \N 电子会跳过间隙,这叫:量子隧穿效应
+
+quantum tunneling.
+2. 当晶体管非常小,电极之间可能只距离几个原子 \N 电子会跳过间隙,这叫:量子隧穿效应
+
+If transistors leak current, they don’t make very good switches.
+如果晶体管漏电,就不是好开关
+
+Nonetheless, scientists and engineers are hard at work figuring out ways around these problems.
+科学家和工程师在努力找解决方法
+
+Transistors as small as 1 nanometer have been demonstrated in research labs.
+实验室中已造出小至1纳米的晶体管
+
+Whether this will ever be commercially feasible remains MASKED in mystery.
+能不能商业量产依然未知,未来也许能解决
+
+But maybe we’ll be able to RESOLVE it in the future.
+能不能商业量产依然未知,未来也许能解决
+
+I’m DIEING to know. See you next week.
+我非常期待!下周见!
+
diff --git a/(字幕)全40集中英字幕文本/18. 操作系统-Operating Systems.ass.txt b/(字幕)全40集中英字幕文本/18. 操作系统-Operating Systems.ass.txt
new file mode 100644
index 0000000..e69abe0
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/18. 操作系统-Operating Systems.ass.txt
@@ -0,0 +1,741 @@
+This episode is supported by Hover.
+本集由 Hover 赞助播出
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Computers in the 1940s and early 50s ran one program at a time.
+1940,1950 年代的电脑,每次只能运行一个程序
+
+A programmer would write one at their desk, for example, on punch cards.
+程序员在打孔纸卡上写程序
+
+Then, they'd carry it to a room containing a room-sized computer,
+然后拿到一个计算机房间, 交给操作员
+
+and hand it to a dedicated computer operator.
+然后拿到一个计算机房间, 交给操作员
+
+That person would then feed the program into the computer when it was next available.
+等计算机空下来了,操作员会把程序放入
+
+The computer would run it, spit out some output, and halt.
+然后运行,输出结果,停机
+
+This very manual process worked OK back when computers were slow,
+以前计算机慢,这种手动做法可以接受
+
+and running a program often took hours, days or even weeks.
+运行一个程序通常要几小时,几天甚至几周
+
+But, as we discussed last episode,
+但上集说过,计算机越来越快,越来越快
+
+computers became faster... and faster... and faster
+但上集说过,计算机越来越快,越来越快
+
+exponentially so!
+指数级增长!
+
+Pretty soon, having humans run around and inserting programs into readers
+很快,放程序的时间 比程序运行时间还长
+
+was taking longer than running the actual programs themselves.
+很快,放程序的时间 比程序运行时间还长
+
+We needed a way for computers to operate themselves,
+我们需要一种方式 让计算机自动运作
+
+and so, operating systems were born.
+于是"操作系统"诞生了
+
+Operating systems , or OS for short, are just programs.
+操作系统,简称 OS,其实也是程序
+
+But, special privileges on the hardware let them run and manage other programs.
+但它有操作硬件的特殊权限 \N 可以运行和管理其它程序
+
+They're typically the first one to start when a computer is turned on,
+操作系统一般是开机第一个启动的程序
+
+and all subsequent programs are launched by the OS.
+其他所有程序 都由操作系统启动
+
+They got their start in the 1950s,
+操作系统开始于 1950 年代 \N 那时计算机开始变得更强大更流行
+
+as computers became more widespread and more powerful.
+操作系统开始于 1950 年代 \N 那时计算机开始变得更强大更流行
+
+The very first OS augmented the mundane, manual task of loading programs by hand.
+第一个操作系统 加强了程序加载方式
+
+Instead of being given one program at a time,
+之前只能一次给一个程序,现在可以一次多个
+
+computers could be given batches.
+之前只能一次给一个程序,现在可以一次多个
+
+When the computer was done with one,
+当计算机运行完一个程序,会自动运行下一个程序
+
+it would automatically and near-instantly start the next.
+当计算机运行完一个程序,会自动运行下一个程序
+
+There was no downtime while someone scurried around an office to find the next program to run.
+这样就不会浪费时间,找下一个程序的纸卡
+
+This was called batch processing .
+这叫 批处理
+
+While computers got faster, they also got cheaper.
+电脑变得更快更便宜,开始在出现在世界各地
+
+So, they were popping up all over the world,
+电脑变得更快更便宜,开始在出现在世界各地
+
+especially in universities and government offices.
+特别是大学和政府办公室
+
+Soon, people started sharing software.
+很快,人们开始分享软件,但有一个问题
+
+But there was a problem
+很快,人们开始分享软件,但有一个问题
+
+In the era of one-off computers, like the Harvard Mark 1 or ENIAC,
+在哈佛1号和 ENIAC 那个时代,计算都是一次性的
+
+programmers only had to write code for that one single machine.
+程序员只需要给那"一台"机器写代码
+
+The processor, punch card readers, and printers were known and unchanging.
+处理器,读卡器,打印机都是已知的
+
+But as computers became more widespread,
+但随着电脑越来越普遍,计算机配置并不总是相同的
+
+their configurations were not always identical,
+但随着电脑越来越普遍,计算机配置并不总是相同的
+
+like computers might have the same CPU, but not the same printer.
+比如计算机可能有相同 CPU,但不同的打印机
+
+This was a huge pain for programmers.
+这对程序员很痛苦
+
+Not only did they have to worry about writing their program,
+不仅要担心写程序,还要担心程序怎么和不同型号打印机交互
+
+but also how to interface with each and every model of printer,
+不仅要担心写程序,还要担心程序怎么和不同型号打印机交互
+
+and all devices connected to a computer, what are called peripherals.
+以及计算机连着的其他设备,这些统称"外部设备"
+
+Interfacing with early peripherals was very low level,
+和早期的外部设备交互,是非常底层的
+
+requiring programmers to know intimate hardware details about each device.
+程序员要了解设备的硬件细节
+
+On top of that, programmers rarely had access to every model of a peripheral to test their code on.
+加重问题的是,程序员很少能拿到所有型号的设备来测代码
+
+So, they had to write code as best they could, often just by reading manuals,
+所以一般是阅读手册来写代码,祈祷能正常运行
+
+and hope it worked when shared.
+所以一般是阅读手册来写代码,祈祷能正常运行
+
+Things weren't exactly plug-and-play
+现在是"即插即用",以前是"祈祷能用"
+
+back then more plug-and-pray.
+现在是"即插即用",以前是"祈祷能用"
+
+This was clearly terrible,
+这很糟糕,所以为了程序员写软件更容易
+
+so to make it easier for programmers,
+这很糟糕,所以为了程序员写软件更容易
+
+Operating Systems stepped in as intermediaries between software programs and hardware peripherals.
+操作系统充当软件和硬件之间的媒介
+
+More specifically, they provided a software abstraction, through APIs,
+更具体地说,操作系统提供 API 来抽象硬件,叫"设备驱动程序"
+
+called device drivers .
+更具体地说,操作系统提供 API 来抽象硬件,叫"设备驱动程序"
+
+These allow programmers to talk to common input and output hardware,
+程序员可以用标准化机制 和输入输出硬件(I/O)交互
+
+or I/O for short, using standardized mechanisms.
+程序员可以用标准化机制 和输入输出硬件(I/O)交互
+
+For example, programmers could call a function like "print highscore",
+比如,程序员只需调用 print(highscore)
+
+and the OS would do the heavy lifting to get it onto paper.
+操作系统会处理 输到纸上的具体细节
+
+By the end of the 1950s, computers had gotten so fast,
+到 1950 年代尾声,电脑已经非常快了
+
+they were often idle waiting for slow mechanical things, like printers and punch card readers.
+处理器经常闲着,等待慢的机械设备(比如打印机和读卡器)
+
+While programs were blocked on I/O,
+程序阻塞在 I/O 上
+
+the expensive processor was just chillin'... not like a villain
+而昂贵的处理器则在度假,就是放松啥也不做
+
+you know, just relaxing.
+而昂贵的处理器则在度假,就是放松啥也不做
+
+In the late 50's, the University of Manchester, in the UK,
+50年代后期,英国曼彻斯特大学 \N 开始研发世界上第一台超级计算机,Atlas
+
+started work on a supercomputer called Atlas, one of the first in the world.
+50年代后期,英国曼彻斯特大学 \N 开始研发世界上第一台超级计算机,Atlas
+
+They knew it was going to be wicked fast,
+他们知道机器会超级快,所以需要一种方式来最大限度的利用它
+
+so they needed a way to make maximal use of the expensive machine.
+他们知道机器会超级快,所以需要一种方式来最大限度的利用它
+
+Their solution was a program called the Atlas Supervisor, finished in 1962.
+他们的解决方案是一个程序叫 Atlas Supervisor \N 于1962年完成
+
+This operating system not only loaded programs automatically, like earlier batch systems,
+这个操作系统 \N不仅像更早期的批处理系统那样,能自动加载程序
+
+but could also run several at the same time on its single CPU.
+还能在单个 CPU 上同时运行几个程序
+
+It did this through clever scheduling.
+它通过调度来做到这一点
+
+Let's say we have a game program running on Atlas,
+假设 Atlas 上有一个游戏在运行
+
+and we call the function "print(highscore)"
+并且我们调用一个函数 print(highscore)
+
+which instructs Atlas to print the value of a variable named "highscore"
+它让 Atlas 打印一个叫 highscore 的变量值
+
+onto paper to show our friends that we're the ultimate champion of virtual tiddlywinks.
+让朋友知道 我是最高分冠军
+
+That function call is going to take a while, the equivalent of thousands of clock cycles,
+print 函数运行需要一点时间,大概上千个时钟周期
+
+because mechanical printers are slow in comparison to electronic CPUs.
+但因为打印机比 CPU 慢,与其等着它完成操作
+
+So instead of waiting for the I/O to finish,
+但因为打印机比 CPU 慢,与其等着它完成操作
+
+Atlas instead puts our program to sleep,
+Atlas 会把程序休眠,运行另一个程序
+
+then selects and runs another program that's waiting and ready to run.
+Atlas 会把程序休眠,运行另一个程序
+
+Eventually, the printer will report back to Atlas that it finished printing the value of "highscore".
+最终, 打印机会告诉 Atlas, 打印已完成
+
+Atlas then marks our program as ready to go,
+Atlas 会把程序标记成可继续运行
+
+and at some point, it will be scheduled to run again on the CPU,
+之后在某时刻会安排给 CPU 运行
+
+and continue onto the next line of code following the print statement.
+并继续 print 语句之后的下一行代码
+
+In this way, Atlas could have one program running calculations on the CPU,
+这样, Atlas 可以在 CPU 上运行一个程序
+
+while another was printing out data,
+同时另一个程序在打印数据
+
+and yet another reading in data from a punch tape.
+同时另一个程序读数据
+
+Atlas' engineers doubled down on this idea,
+Atlas 的工程师做的还要多,配了4台纸带读取器,4台纸带打孔机
+
+and outfitted their computer with 4 paper tape readers, 4 paper tape punches,
+Atlas 的工程师做的还要多,配了4台纸带读取器,4台纸带打孔机
+
+and up to 8 magnetic tape drives.
+多达8个磁带驱动器
+
+This allowed many programs to be in progress all at once,
+使多个程序可以同时运行,在单个 CPU 上共享时间
+
+sharing time on a single CPU.
+使多个程序可以同时运行,在单个 CPU 上共享时间
+
+This ability, enabled by the Operating System, is called
+操作系统的这种能力叫"多任务处理"
+
+multitasking.
+操作系统的这种能力叫"多任务处理"
+
+There's one big catch to having many programs running simultaneously on a single computer, though.
+同时运行多个程序有个问题
+
+Each one is going to need some memory,
+每个程序都会占一些内存 \N 当切换到另一个程序时,我们不能丢失数据
+
+and we can't lose that program's data when we switch to another program.
+每个程序都会占一些内存 \N 当切换到另一个程序时,我们不能丢失数据
+
+The solution is to allocate each program its own block of memory.
+解决办法是 给每个程序分配专属内存块
+
+So, for example, let's say a computer has 10,000 memory locations in total.
+举个例子,假设计算机一共有 10000 个内存位置
+
+Program A might get allocated memory addresses 0 through 999,
+程序 A 分配到内存地址 0 到 999
+
+and Program B might get 1000 through 1999, and so on.
+而程序 B 分配到内存地址 1000 到 1999,以此类推
+
+If a program asks for more memory,
+如果一个程序请求更多内存,操作系统会决定是否同意
+
+the operating system decides if it can grant that request,
+如果一个程序请求更多内存,操作系统会决定是否同意
+
+and if so, what memory block to allocate next.
+如果同意,分配哪些内存块
+
+This flexibility is great, but introduces a quirk.
+这种灵活性很好,但带来一个奇怪的后果
+
+It means that Program A could end up being allocated non-sequential blocks of memory,
+程序 A 可能会分配到非连续的内存块
+
+in say addresses 0 through 999, and 2000 through 2999.
+比如内存地址 0 到 999,以及 2000 到 2999
+
+And this is just a simple example
+这只是个简单例子
+
+- a real program might be allocated dozens of blocks scattered all over memory.
+真正的程序可能会分配到内存中数十个地方
+
+As you might imagine,
+你可能想到了,这对程序员来说很难跟踪
+
+this would get really confusing for programmers to keep track of.
+你可能想到了,这对程序员来说很难跟踪
+
+Maybe there's a long list of sales data in memory that
+也许内存里有一长串销售额,每天下班后要算销售总额
+
+a program has to total up at the end of the day,
+也许内存里有一长串销售额,每天下班后要算销售总额
+
+but this list is stored across a bunch of different blocks of memory.
+但列表 存在一堆不连续的内存块里
+
+To hide this complexity, Operating Systems virtualize memory locations.
+为了隐藏这种复杂性,操作系统会把内存地址进行 "虚拟化"
+
+With Virtual Memory, programs can assume their memory always starts at address 0,
+这叫 "虚拟内存",程序可以假定内存总是从地址0开始
+
+keeping things simple and consistent.
+简单又一致
+
+However, the actual, physical location in computer memory
+而实际物理位置 被操作系统隐藏和抽象了
+
+is hidden and abstracted by the operating system.
+而实际物理位置 被操作系统隐藏和抽象了
+
+Just a new level of abstraction.
+一层新的抽象
+
+Let's take our example Program B,
+用程序 B 来举例 \N 它被分配了内存地址 1000 到 1999
+
+which has been allocated a block of memory from address 1000 to 1999.
+用程序 B 来举例 \N 它被分配了内存地址 1000 到 1999
+
+As far as Program B can tell, this appears to be a block from 0 to 999.
+对程序 B 而言,它看到的地址是 0 到 999
+
+The OS and CPU handle the virtual-to-physical memory remapping automatically.
+操作系统会自动处理 \N 虚拟内存和物理内存之间的映射
+
+So, if Program B requests memory location 42,
+如果程序 B 要地址 42,实际上是物理地址 1042
+
+it really ends up reading address 1042.
+如果程序 B 要地址 42,实际上是物理地址 1042
+
+This virtualization of memory addresses is even more useful for Program A,
+这种内存地址的虚拟化 对程序 A 甚至更有用
+
+which in our example, has been allocated two blocks of memory
+在例子中,A 被分配了两块隔开的内存
+
+that are separated from one another.
+在例子中,A 被分配了两块隔开的内存
+
+This too is invisible to Program A.
+程序 A 不知道这点.
+
+As far as it can tell, it's been allocated a continuous block of 2000 addresses.
+以 A 的视角,它有 2000 个连续地址
+
+When Program A reads memory address 999,
+当程序 A 读内存地址 999 时 \N 会刚好映射到物理内存地址 999
+
+that does coincidentally map to physical memory address 999.
+当程序 A 读内存地址 999 时 \N 会刚好映射到物理内存地址 999
+
+But if Program A reads the very next value in memory, at address 1000,
+但如果程序 A 读下一个地址 1000
+
+that gets mapped behind the scenes to physical memory address 2000.
+会映射到物理地址 2000
+
+This mechanism allows programs to have flexible memory sizes,
+这种机制使程序的内存大小可以灵活增减 \N 叫"动态内存分配"
+
+called dynamic memory allocation,
+这种机制使程序的内存大小可以灵活增减 \N 叫"动态内存分配"
+
+that appear to be continuous to them.
+对程序来说,内存看起来是连续的.
+
+It simplifies everything and offers tremendous flexibility to the Operating System
+它简化了一切,为操作系统同时运行多个程序 \N 提供了极大的灵活性
+
+in running multiple programs simultaneously.
+它简化了一切,为操作系统同时运行多个程序 \N 提供了极大的灵活性
+
+Another upside of allocating each program its own memory,
+给程序分配专用的内存范围,\N 另一个好处是 这样隔离起来会更好
+
+is that they're better isolated from one another.
+给程序分配专用的内存范围,\N 另一个好处是 这样隔离起来会更好
+
+So, if a buggy program goes awry, and starts writing gobbledygook,
+如果一个程序出错,开始写乱七八糟的数据
+
+it can only trash its own memory, not that of other programs.
+它只能捣乱自己的内存,不会影响到其它程序.
+
+This feature is called Memory Protection.
+这叫 "内存保护"
+
+This is also really useful in protecting against malicious software, like viruses.
+防止恶意软件(如病毒)也很有用
+
+For example, we generally don't want other programs to have the ability
+例如,我们不希望其他程序有能力 \N 读或改邮件程序的内存
+
+to read or modify the memory of, let say, our email,
+例如,我们不希望其他程序有能力 \N 读或改邮件程序的内存
+
+with that kind of access,
+如果有这种权限 \N 恶意软件可能以你的名义发邮件,甚至窃取个人信息
+
+malware could send emails on your behalf and maybe steal personal information.
+如果有这种权限 \N 恶意软件可能以你的名义发邮件,甚至窃取个人信息
+
+Not good!
+一点都不好!
+
+Atlas had both virtual and protected memory.
+Atlas 既有"虚拟内存"也有"内存保护"
+
+It was the first computer and OS to support these features!
+是第一台支持这些功能的计算机和操作系统!
+
+By the 1970s, computers were sufficiently fast and cheap.
+到 1970 年代,计算机足够快且便宜
+
+Institutions like a university could buy a computer and let students use it.
+大学会买电脑让学生用
+
+It was not only fast enough to run several programs at once,
+计算机不仅能同时运行多个程序,还能让多用户能同时访问
+
+but also give several users simultaneous, interactive access.
+计算机不仅能同时运行多个程序,还能让多用户能同时访问
+
+This was done through a terminal,
+多个用户用"终端"来访问计算机
+
+which is a keyboard and screen that connects to a big computer,
+"终端"只是键盘+屏幕,连到主计算机 \N 终端本身没有处理能力
+
+but doesn't contain any processing power itself.
+"终端"只是键盘+屏幕,连到主计算机 \N 终端本身没有处理能力
+
+A refrigerator-sized computer might have 50 terminals connected to it,
+冰箱大小的计算机可能有50个终端,能让50个用户使用
+
+allowing up to 50 users.
+冰箱大小的计算机可能有50个终端,能让50个用户使用
+
+Now operating systems had to handle not just multiple programs,
+这时操作系统不但要处理多个程序,还要处理多个用户
+
+but also multiple users.
+这时操作系统不但要处理多个程序,还要处理多个用户
+
+So that no one person could gobble up all of a computer's resources,
+为了确保其中一个人 不会占满计算机资源
+
+operating systems were developed that offered time-sharing.
+开发了 分时操作系统
+
+With time-sharing each individual user was only allowed to utilize
+意思是 每个用户只能用一小部分处理器,内存等
+
+a small fraction of the computer's processor, memory, and so on.
+意思是 每个用户只能用一小部分处理器,内存等
+
+Because computers are so fast,
+因为电脑很快 \N 即使拿到 1/50 的资源也足以完成许多任务
+
+even getting just 1/50th of its resources was enough for individuals to complete many tasks.
+因为电脑很快 \N 即使拿到 1/50 的资源也足以完成许多任务
+
+The most influential of early time-sharing Operating Systems was
+早期分时操作系统中,最有影响力的是 \N Multics(多任务信息与计算系统)
+
+Multics, or Multiplexed Information and Computing Service,
+早期分时操作系统中,最有影响力的是 \N Multics(多任务信息与计算系统)
+
+released in 1969.
+于 1969 年发布
+
+Multics was the first major operating system designed to be secure from the outset.
+Multics 是第一个,从设计时就考虑到安全的操作系统
+
+Developers didn't want mischievous users accessing data they shouldn't,
+开发人员不希望恶意用户 访问不该访问的数据
+
+like students attempting to access the final exam on their professor's account.
+比如学生假装成教授,访问期末考试的文件
+
+Features like this meant Multics was really complicated for its time,
+这导致 Multics 的复杂度超过当时的平均水准
+
+using around 1 Megabit of memory, which was a lot back then!
+操作系统会占大约 1 Mb 内存,这在当时很多!
+
+That might be half of a computer's memory, just to run the OS!
+可能是内存的一半,只拿来运行操作系统!
+
+Dennis Ritchie, one of the researchers working on Multics, once said:
+Multics 的研究人员之一 Dennis Ritchie 曾说过
+
+"One of the obvious things that went wrong with Multics as a commercial success
+"阻碍 Multics 获得商业成功的一个明显问题是
+
+was just that it was sort of over-engineered in a sense.
+从某种方面来说,它被过度设计了,功能太多了"
+
+There was just too much in it."
+从某种方面来说,它被过度设计了,功能太多了"
+
+This lead Dennis, and another Multics researcher,
+所以 Dennis 和另一个 Multics 研究员 \N Ken Thompson 联手打造新的操作系统
+
+Ken Thompson, to strike out on their own and build a new, lean operating system
+所以 Dennis 和另一个 Multics 研究员 \N Ken Thompson 联手打造新的操作系统
+
+called Unix.
+叫 Unix
+
+They wanted to separate the OS into two parts:
+他们想把操作系统分成两部分:
+
+First was the core functionality of the OS,
+首先是操作系统的核心功能
+
+things like memory management, multitasking,and dealing with I/O,
+如内存管理,多任务和输入/输出处理 \N 这叫"内核"
+
+which is called the kernel .
+如内存管理,多任务和输入/输出处理 \N 这叫"内核"
+
+The second part was a wide array of useful tools that came bundled with,
+第二部分是一堆有用的工具
+
+but not part of the kernel, things like programs and libraries.
+但它们不是内核的一部分(比如程序和运行库)
+
+Building a compact, lean kernel meant intentionally leaving some functionality out.
+紧凑的内核 意味着功能没有那么全面
+
+Tom Van Vleck, another Multics developer, recalled:
+Multics 的另一个开发者 Tom Van Vleck 回忆说:
+
+"I remarked to Dennis that easily half the code I was writing in Multics was error recovery code."
+"我对 Dennis 说,我在 Multics 写的一半代码都是错误恢复代码"
+
+He said, "We left all that stuff out of Unix.
+他说:"Unix 不会有这些东西
+
+If there's an error, we have this routine called panic,
+如果有错误发生,我们就让内核"恐慌"(panic)
+
+and when it is called, the machine crashes,
+当调用它时,机器会崩溃
+
+and you holler down the hall, 'Hey, reboot it.'""
+你得在走廊里大喊,"嘿,重启电脑"
+
+You might have heard of kernel panics.
+你可能听过 "内核恐慌"(kernel panic)
+
+This is where the term came from.
+这就是这个词的来源
+
+It's literally when the kernel crashes, has no recourse to recover,
+内核如果崩溃,没有办法恢复
+
+and so calls a function called "panic".
+所以调用一个叫"恐慌"(panic)的函数
+
+Originally, all it did was print the word "panic" and then enter an infinite loop.
+起初只是打印"恐慌"一词,然后无限循环
+
+This simplicity meant that Unix could be run on cheaper and more diverse hardware,
+这种简单性意味着 \N Unix 可以在更便宜更多的硬件上运行
+
+making it popular inside Bell Labs, where Dennis and Ken worked.
+使 Unix 在 Dennis 和 Ken 工作的 \N 贝尔实验室大受欢迎
+
+As more developers started using Unix to build and run their own programs,
+越来越多开发人员用 Unix 写程序和运行程序
+
+the number of contributed tools grew.
+工具数量日益增长
+
+Soon after its release in 1971,
+1971 年发布后不久
+
+it gained compilers for different programming languages and even a word processor,
+就有人写了不同编程语言的编译器 \N 甚至文字处理器
+
+quickly making it one of the most popular OSes of the 1970s and 80s.
+使得 Unix 迅速成为 \N 1970~80年代最流行的操作系统之一
+
+At the same time, by the early 1980s,
+到 1980 年代早期
+
+the cost of a basic computer had fallen to the point where individual people could afford one,
+计算机的价格 降到普通人买得起 \N 这些叫"个人电脑"或"家庭电脑"
+
+called a personal or home computer.
+计算机的价格 降到普通人买得起 \N 这些叫"个人电脑"或"家庭电脑"
+
+These were much simpler than the big mainframes
+这些电脑比大型主机简单得多 \N 主机一般在大学,公司和政府
+
+found at universities, corporations, and governments.
+这些电脑比大型主机简单得多 \N 主机一般在大学,公司和政府
+
+So, their operating systems had to be equally simple.
+因此操作系统也得简单
+
+For example, Microsoft's Disk Operating System, or MS-DOS, was just 160 kilobytes,
+举例,微软的磁盘操作系统(MS-DOS)只有 160 kB \N 一张磁盘就可以容纳
+
+allowing it to fit, as the name suggests, onto a single disk.
+举例,微软的磁盘操作系统(MS-DOS)只有 160 kB \N 一张磁盘就可以容纳
+
+First released in 1981, it became the most popular OS for early home computers,
+于 1981 年发布,成为早期家用电脑最受欢迎的操作系统
+
+even though it lacked multitasking and protected memory.
+虽然缺少"多任务"和"保护内存"这样功能
+
+This meant that programs could,
+意味着程序经常使系统崩溃
+
+and would, regularly crash the system.
+意味着程序经常使系统崩溃
+
+While annoying, it was an acceptable tradeoff,
+虽然很讨厌但还可以接受,因为用户可以重启
+
+as users could just turn their own computers off and on again!
+虽然很讨厌但还可以接受,因为用户可以重启
+
+Even early versions of Windows,
+哪怕是微软 1985 年发布的早期 Windows \N 虽然在 90 年代很流行
+
+first released by Microsoft in 1985 and which dominated the OS scene throughout the 1990s,
+哪怕是微软 1985 年发布的早期 Windows \N 虽然在 90 年代很流行
+
+lacked strong memory protection.
+但却缺乏"内存保护"
+
+When programs misbehaved,
+当程序行为不当时,就会"蓝屏"
+
+you could get the blue screen of death,
+当程序行为不当时,就会"蓝屏"
+
+a sign that a program had crashed so badly that it took down the whole operating system.
+代表程序崩溃的非常严重,把系统也带崩溃了
+
+Luckily, newer versions of Windows have better protections and usually don't crash that often.
+幸运的是,新版Windows有更好的保护,不会经常崩溃
+
+Today, computers run modern operating systems,
+如今的计算机 有现代操作系统
+
+like Mac OS X, Windows 10, Linux, iOS and Android.
+比如 Mac OS X,Windows 10 \NLinux,iOS和Android
+
+Even though the computers we own are most often used by just a single person,
+虽然大部分设备只有一个人使用
+
+you!
+你!
+
+their OS all have multitasking and virtual and protected memory.
+操作系统依然有"多任务, "虚拟内存", "内存保护"
+
+So, they can run many programs at once:
+因此可以同时运行多个程序:
+
+you can watch YouTube in your web browser,
+一边在浏览器看 YouTube,一边在 Photoshop 修图
+
+edit a photo in Photoshop,
+一边在浏览器看 YouTube,一边在 Photoshop 修图
+
+play music in Spotify and sync Dropbox all at the same time.
+用 Spotify 放音乐,同步 Dropbox
+
+This wouldn't be possible without those decades of research and development on Operating Systems,
+如果没有操作系统这几十年的发展,这些都不可能,
+
+and of course the proper memory to store those programs.
+当然,我们也需要地方放程序
+
+Which we'll get to next week.
+下周会讨论
+
diff --git a/(字幕)全40集中英字幕文本/19. 内存&储存介质-Memory & Storage.mp4.ass.txt b/(字幕)全40集中英字幕文本/19. 内存&储存介质-Memory & Storage.mp4.ass.txt
new file mode 100644
index 0000000..d3c284e
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/19. 内存&储存介质-Memory & Storage.mp4.ass.txt
@@ -0,0 +1,726 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+We've talked about computer memory several times in this series,
+系列中 我们多次谈到内存(Memory)
+
+and we even designed some in Episode 6.
+甚至在第 6 集设计了一个简单内存
+
+In general, computer memory is non-permanent.
+一般来说,电脑内存是 "非永久性"
+
+If your xbox accidently gets unplugged and turns off,
+如果 Xbox 电源线不小心拔掉了,内存里所有数据都会丢失
+
+any data saved in memory is lost.
+如果 Xbox 电源线不小心拔掉了,内存里所有数据都会丢失
+
+For this reason, it's called volatile memory.
+所以内存叫"易失性"存储器
+
+What we haven't talked so much about this series is storage,
+我们还没谈过的话题 是存储器(Storage)
+
+which is a tad different.
+存储器(Storage)和内存(Memory)有点不同
+
+Any data written to storage, like your hard drive,
+任何写入"存储器"的数据,比如你的硬盘 \N 数据会一直存着,直到被覆盖或删除,断电也不会丢失
+
+will stay there until it's over-written or deleted, even if the power goes out.
+任何写入"存储器"的数据,比如你的硬盘 \N 数据会一直存着,直到被覆盖或删除,断电也不会丢失
+
+It's non-volatile.
+存储器是"非易失性"的
+
+It used to be that volatile memory was fast and non-volatile storage was slow,
+以前是"易失性"的速度快,"非易失性"的速度慢
+
+but as computing technologies have improved, this distinction is becoming less true,
+但随着技术发展,两者的差异越来越小
+
+and the terms have started to blend together.
+但随着技术发展,两者的差异越来越小
+
+Nowadays, we take for granted technologies like this little USB stick,
+如今我们认为稀松平常的技术,比如这个 U 盘
+
+which offers gigabytes of memory, reliable over long periods of time, all at low cost,
+能低成本+可靠+长时间 存储上 GB 的数据
+
+but this wasn't always true.
+但以前可不是这样的
+
+The earliest computer storage was paper punch cards,
+最早的存储介质是 打孔纸卡 \N 以及纸卡的亲戚 打孔纸带
+
+and its close cousin, punched paper tape.
+最早的存储介质是 打孔纸卡 \N 以及纸卡的亲戚 打孔纸带
+
+By the 1940s, punch cards had largely standardized into a grid of 80 columns and 12 rows,
+到1940年代,纸卡标准是 80列x12行
+
+allowing for a maximum of 960 bits of data to be stored on a single card.
+一张卡能存 960 位数据 (80x12=960)
+
+The largest program ever punched onto cards, that we know of,
+据我们所知的 最大纸卡程序
+
+was the US Military's Semi-Automatic Ground Environment, or SAGE,
+是美国军方的"半自动地面防空系统" 简称 SAGE
+
+an Air Defense System that became operational in 1958.
+一个在 1958 年投入使用的防空系统
+
+The main program was stored on 62,500 punchcards,
+主程序存储在 62,500 个纸卡上
+
+roughly equivalent to 5 megabytes of data,
+大小 5MB 左右, 相当如今手机拍张照
+
+that's the size of an average smartphone photo today.
+大小 5MB 左右, 相当如今手机拍张照
+
+Punch cards were a useful and popular form of storage for decades,
+纸卡用了十几年,因为不用电而且便宜耐用
+
+they didn't need power, plus paper was cheap and reasonably durable.
+纸卡用了十几年,因为不用电而且便宜耐用
+
+However, punchcards were slow and write-once,
+然而坏处是读取慢,只能写入一次
+
+you can't easily un-punch a hole.
+打的孔无法轻易补上
+
+So they were a less useful form of memory,
+对于存临时值,纸卡不好用
+
+where a value might only be needed for a fraction of a second during a program's execution,
+对于存临时值,纸卡不好用
+
+and then discarded.
+对于存临时值,纸卡不好用
+
+A faster, larger and more flexible form of computer memory was needed.
+我们需要更快更大更灵活的存储方式
+
+An early and practical approach was developed by J. Presper Eckert,
+J. Presper Eckert 在 1944 年建造 ENIAC 时发明了一种方法
+
+as he was finishing work on ENIAC in 1944.
+J. Presper Eckert 在 1944 年建造 ENIAC 时发明了一种方法
+
+His invention was called Delay Line Memory, and it worked like this.
+叫"延迟线存储器"(Delay Line Memory)原理如下
+
+You take a tube and fill it with a liquid, like mercury.
+拿一个管子装满液体,如水银
+
+Then, you put a speaker at one end and microphone at the other.
+管子一端放扬声器,另一端放麦克风
+
+When you pulse the speaker, it creates a pressure wave.
+扬声器发出脉冲时 会产生压力波
+
+This takes time to propagate to the other end of the tube,
+压力波需要时间 传播到另一端的麦克风
+
+where it hits the microphone,
+压力波需要时间 传播到另一端的麦克风
+
+converting it back into an electrical signal.
+麦克风将压力波 转换回电信号.
+
+And we can use this propagation delay to store data!
+我们可以用压力波的传播延迟 来存储数据!
+
+Imagine that the presence of a pressure wave is a 1
+假设有压力波代表 1,没有代表 0
+
+and the absence of a pressure wave is a 0.
+假设有压力波代表 1,没有代表 0
+
+Our speaker can output a binary sequence like 1010 0111.
+扬声器可以输出 1010 0111
+
+The corresponding waves will travel down the tube, in order,
+压力波沿管子传播,过了一会儿,撞上麦克风,
+
+and a little while later, hit the microphone,
+压力波沿管子传播,过了一会儿,撞上麦克风,
+
+which converts the signal back into 1's and 0's.
+将信号转换回 1 和 0
+
+If we create a circuit that connects the microphone to the speaker,
+如果加一个电路,连接麦克风和扬声器
+
+plus a little amplifier to compensate for any loss,
+再加一个放大器(Amplifier)来弥补信号衰弱
+
+we can create a loop that stores data.
+就能做一个存储数据的循环
+
+The signal traveling along the wire is near instantaneous,
+信号沿电线传播几乎是瞬时的,
+
+so there's only ever one bit of data showing at any moment in time.
+所以任何时间点只显示 1 bit 数据
+
+But in the tube, you can store many bits!
+但管子中可以存储多个位(bit)
+
+After working on ENIAC, Eckert and his colleague John Mauchly,
+忙完 ENIAC 后,Eckert 和同事 John Mauchly
+
+set out to build a bigger and better computer called EDVAC, incorporating Delay Line Memory.
+着手做一个更大更好的计算机叫 EDVAC,使用了延迟线存储器
+
+In total, the computer had 128 Delay Lines,
+总共有 128 条延迟线,每条能存 352 位(bits)
+
+each capable of storing 352 bits.
+总共有 128 条延迟线,每条能存 352 位(bits)
+
+That's a grand total of 45 thousands bits of memory,
+总共能存 45,000 位(bit)
+
+not too shabby for 1949!
+对 1949 年来说还不错!
+
+This allowed EDVAC to be one of the very earliest Stored-Program Computers,
+这使得 EDVAC 成为最早的 "存储程序计算机" 之一
+
+which we talked about in Episode 10.
+我们在第 10 集讨论过
+
+However, a big drawback with delay line memory
+但"延迟线存储器"的一大缺点是
+
+is that you could only read one bit of data from a tube at any given instant.
+每一个时刻只能读一位 (bit) 数据
+
+If you wanted to access a specific bit, like bit 112,
+如果想访问一个特定的 bit,比如第 112 位(bit) \N 你得等待它从循环中出现
+
+you'd have to wait for it to come around in the loop,
+如果想访问一个特定的 bit,比如第 112 位(bit) \N 你得等待它从循环中出现
+
+what's called sequential or cyclic-access memory,
+所以又叫 "顺序存储器"或"循环存储器"
+
+whereas we really want random access memory,
+而我们想要的是 "随机存取存储器" \N 可以随时访问任何位置
+
+where we can access any bit at any time.
+而我们想要的是 "随机存取存储器" \N 可以随时访问任何位置
+
+It also proved challenging to increase the density of the memory,
+增加内存密度也是一个挑战
+
+packing waves closer together meant they were more easily mixed up.
+把压力波变得更紧密 意味着更容易混在一起
+
+In response, new forms of delay line memory were invented,
+所以出现了其他类型的 "延迟线存储器"
+
+such as magnetostrictive delay lines .
+如 "磁致伸缩延迟存储器"
+
+These delay lines use a metal wire that could be twisted,
+用金属线的振动来代表数据
+
+creating little torsional waves that represented data.
+用金属线的振动来代表数据
+
+By forming the wire into a coil, you could store around 1000 bits in a 1 foot by 1 foot square.
+通过把线卷成线圈,1英尺×1英尺的面积能存储大概 1000位(bit)
+
+However, delay line memory was largely obsolete by the mid 1950s,
+然而,延迟线存储器在 1950 年代中期就基本过时了
+
+surpassed in performance, reliability and cost by a new kid on the block:
+因为出现了新技术,性能,可靠性和成本都更好
+
+magnetic core memory which was constructed out of little magnetic donuts,
+"磁芯存储器",用了像甜甜圈的小型磁圈
+
+called cores.
+"磁芯存储器",用了像甜甜圈的小型磁圈
+
+If you loop a wire around this core.
+如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向
+
+and run an electrical current through the wire,
+如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向
+
+we can magnetize the core in a certain direction.
+如果给磁芯绕上电线,并施加电流,可以将磁化在一个方向
+
+If we turn the current off, the core will stay magnetized.
+如果关掉电流,磁芯保持磁化
+
+If we pass current through the wire in the opposite direction,
+如果沿相反方向施加电流
+
+the magnetization direction, called polarity,
+磁化的方向(极性)会翻转
+
+flips the other way.
+磁化的方向(极性)会翻转
+
+In this way, we can store 1's and 0's!
+这样就可以存 1 和 0!
+
+1 bit of memory isn't very useful, so these little donuts were arranged into grids.
+如果只存 1 位不够有用,所以把小甜甜圈排列成网格
+
+There were wires for selecting the right row and column, and a wire that ran through every core,
+有电线负责选行和列 \N 也有电线贯穿每个磁芯, 用于读写一位(bit)
+
+which could be used to read or write a bit.
+有电线负责选行和列 \N 也有电线贯穿每个磁芯, 用于读写一位(bit)
+
+Here is an actual piece of core memory!
+我手上有一块磁芯存储器
+
+In each of these little yellow squares, there are 32 rows and 32 columns of tiny cores,
+每个黄色方格 有32行x32列的磁芯 \N 每个磁芯存 1 位数据
+
+each one holding 1 bit of data.
+每个黄色方格 有32行x32列的磁芯 \N 每个磁芯存 1 位数据
+
+So, each of these yellow squares could hold 1024 bits.
+所以能存 1024 位(bit) (32x32=1024)
+
+In total, there are 9 of these,
+总共 9 个黄色方格
+
+so this memory board could hold a maximum of 9216 bits,
+所以这块板子最多能存 9216 位(bit) (1024x9=9216)
+
+which is around 9 kilobytes.
+换算过来大约是 9 千字节 \N (9216 bit ~= 9 kb)
+
+The first big use of core memory was MIT's Whirlwind 1 computer, in 1953,
+磁芯内存的第一次大规模运用\N 是 1953 年麻省理工学院的 Whirlwind 1 计算机
+
+which used a 32 by 32 core arrangement.
+磁芯排列是 32×32
+
+And, instead of just a single plane of cores, like this,
+用了 16 块板子,能存储大约 16000 位(bit)
+
+it was 16 boards deep, providing roughly 16 thousand bits of storage.
+用了 16 块板子,能存储大约 16000 位(bit)
+
+Importantly, unlike delay line memory,
+更重要的是,不像"延迟线存储器" \N 磁芯存储器能随时访问任何一位(bit)
+
+any bit could be accessed at any time.
+更重要的是,不像"延迟线存储器" \N 磁芯存储器能随时访问任何一位(bit)
+
+This was a killer feature,
+这在当时非常了不起
+
+and magnetic core memory became the predominant Random Access Memory technology
+"磁芯存储器" 从 1950 年代中期开始成为主流 \N 流行了 20 多年
+
+for two decades, beginning in the mid 1950
+"磁芯存储器" 从 1950 年代中期开始成为主流 \N 流行了 20 多年
+
+even though it was typically woven by hand!
+而且一般还是手工编织的!
+
+Although starting at roughly 1 dollar per bit,
+刚开始时 存储成本大约 1 美元 1 位(bit) \N 到1970年代,下降到 1 美分左右
+
+the cost fell to around 1 cent per bit by the 1970s.
+刚开始时 存储成本大约 1 美元 1 位(bit) \N 到1970年代,下降到 1 美分左右
+
+Unfortunately, even 1 cent per bit isn't cheap enough for storage.
+不幸的是,即使每位 1 美分也不够便宜
+
+As previously mentioned,
+之前提过,现代手机随便拍张照片都有 5 MB
+
+an average smartphone photo is around 5 megabytes in size,
+之前提过,现代手机随便拍张照片都有 5 MB
+
+that's roughly 40 million bits.
+5MB 约等于 4000 万 bit
+
+Would you pay 4 hundred thousand dollars to store a photo on core memory?
+你愿意花 40 万美元在"磁芯存储器"上存照片吗?
+
+If you have that kind of money to drop,
+如果你有这么多钱
+
+did you know that Crash Course is on Patreon?
+你知道 Crash Course 在 Patreon 有赞助页吗?
+
+Right? Wink wink.
+对吧?你懂的
+
+Anyway, there was tremendous research into storage technologies happening at this time.
+总之,当时对存储技术进行了大量的研究
+
+By 1951, Eckert and Mauchly had started their own company,
+到 1951 年,Eckert 和 Mauchly 创立了自己的公司
+
+and designed a new computer called UNIVAC,
+设计了一台叫 UNIVAC 的新电脑
+
+one of the earliest commercially sold computers.
+最早进行商业销售的电脑之一
+
+It debuted with a new form of computer storage:
+它推出了一种新存储:磁带
+
+magnetic tape.
+它推出了一种新存储:磁带
+
+This was a long, thin and flexible strip of magnetic material, stored in reels.
+磁带是纤薄柔软的一长条磁性带子 卷在轴上
+
+The tape could be moved forwards or backwards inside of a machine called a tape drive.
+磁带可以在"磁带驱动器"内前后移动
+
+Inside is a write head,
+里面有一个"写头"绕了电线,电流通过产生磁场
+
+which passes current through a wound wire to generate a magnetic field,
+里面有一个"写头"绕了电线,电流通过产生磁场
+
+causing a small section of the tape to become magnetized.
+导致磁带的一小部分被磁化
+
+The direction of the current sets the polarity, again, perfect for storing 1's and 0's.
+电流方向决定了极性,代表 1 和 0
+
+There was also a separate read head could detect the polarity non-destructively.
+还有一个"读头",可以非破坏性地检测极性
+
+The UNIVAC used half-inch-wide tape with 8 parallel data tracks,
+UNIVAC 用了半英寸宽,8条并行的磁带
+
+each able to store 128 bits of data per inch.
+磁带每英寸可存 128 位数据
+
+With each reel containing 1200 feet of tape,
+每卷有 1200 英尺长
+
+it meant you could store roughly 15 million bits
+意味着一共可以存 1500 万位左右
+
+- that's almost 2 megabytes!
+- 接近2兆字节!(2 MB)
+
+Although tape drives were expensive,
+虽然磁带驱动器很贵,但磁带又便宜又小
+
+the magnetic tape itself was cheap and compact,
+虽然磁带驱动器很贵,但磁带又便宜又小
+
+and for this reason, they're still used today for archiving data.
+因此磁带至今仍用于存档
+
+The main drawback is access speed.
+磁带的主要缺点是访问速度
+
+Tape is inherently sequential,
+磁带是连续的,必须倒带或快进到达特定位置
+
+you have to rewind or fast-forward to get to data you want.
+磁带是连续的,必须倒带或快进到达特定位置
+
+This might mean traversing hundreds of feet of tape to retrieve a single byte,
+可能要几百英尺才能得到某个字节(byte),这很慢
+
+which is slow.
+可能要几百英尺才能得到某个字节(byte),这很慢
+
+A related popular technology in the 1950s and 60s was Magnetic Drum Memory.
+1950,60年代,有个类似技术是 "磁鼓存储器"
+
+This was a metal cylinder - called a drum - coated in a magnetic material for recording data
+有金属圆筒,盖满了磁性材料以记录数据
+
+The drum was rotated continuously,
+滚筒会持续旋转,周围有数十个读写头
+
+and positioned along its length were dozens of read and write heads.
+滚筒会持续旋转,周围有数十个读写头
+
+These would wait for the right spot to rotate underneath them to read or write a bit of data.
+等滚筒转到正确的位置\N 读写头会读或写 1 位(bit) 数据
+
+To keep this delay as short as possible,
+为了尽可能缩短延迟, 鼓轮每分钟上千转!
+
+drums were rotated thousand of revolutions per minute!
+为了尽可能缩短延迟, 鼓轮每分钟上千转!
+
+By 1953, when the technology started to take off,
+到 1953 年,磁鼓技术飞速发展 \N 可以买到存 80,000 位的"磁鼓存储器"
+
+you could buy units able to record 80,000 bits of data
+到 1953 年,磁鼓技术飞速发展 \N 可以买到存 80,000 位的"磁鼓存储器"
+
+- that's 10 kilobytes,
+- 也就是 10 KB
+
+but the manufacture of drums ceased in the 1970s.
+但到 1970 年代 "磁鼓存储器" 不再生产
+
+However, Magnetic Drums did directly lead to the development of Hard Disk Drives,
+然而,磁鼓导致了硬盘的发展 \N 硬盘和磁鼓很相似
+
+which are very similar, but use a different geometric configuration.
+然而,磁鼓导致了硬盘的发展 \N 硬盘和磁鼓很相似
+
+Instead of large cylinder, hard disks use,
+不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
+
+well disks that are hard.
+不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
+
+Hence the name!
+不过硬盘用的是盘,不像磁鼓用圆柱体,因此得名
+
+The storage principle is the same,
+原理是一样的,磁盘表面有磁性
+
+the surface of a disk is magnetic,
+原理是一样的,磁盘表面有磁性
+
+allowing write and read heads to store and retrieve 1's and 0's.
+写入头和读取头 可以处理上面的 1 和 0
+
+The great thing about disks is that they are thin,
+硬盘的好处是薄,可以叠在一起
+
+so you can stack many of them together,
+硬盘的好处是薄,可以叠在一起
+
+providing a lot of surface area for data storage.
+提供更多表面积来存数据
+
+That's exactly what IBM did for the world's first computer with a disk drive:
+IBM 对世上第一台磁盘计算机就是这样做的
+
+the RAMAC 305.
+RAMAC 305
+
+Sweet name BTW.
+顺便一说名字不错
+
+It contained fifty, 24-inch diameter disks,
+它有 50 张 24 英寸直径的磁盘,总共能存 5 MB 左右
+
+offering a total storage capacity of roughly 5 megabytes.
+它有 50 张 24 英寸直径的磁盘,总共能存 5 MB 左右
+
+Yess!! We've finally gotten to a technology that can store a single smartphone photo!
+太棒啦! 终于能存一张现代手机的照片了!这年是 1956 年
+
+The year was 1956.
+太棒啦! 终于能存一张现代手机的照片了!这年是 1956 年
+
+To access any bit of data,
+要访问某个特定 bit
+
+a read/write head would travel up or down the stack to the right disk,
+一个读/写磁头会向上或向下移动,找到正确的磁盘
+
+and then slide in between them.
+然后磁头会滑进去
+
+Like drum memory, the disks are spinning,
+就像磁鼓存储器一样,磁盘也会高速旋转
+
+so the head has to wait for the right section to come around.
+所以读写头要等到正确的部分转过来
+
+The RAMAC 305 could access any block of data, on average, in around 6/10ths of a second,
+RAMAC 305 访问任意数据,平均只要六分之一秒左右
+
+what's called the seek time.
+也叫寻道时间
+
+While great for storage, this was not nearly fast enough for memory,
+虽然六分之一秒对存储器来说算不错 \N 但对内存来说还不够快
+
+so the RAMAC 305 also had drum memory and magnetic core memory.
+所以 RAMAC 305 还有"磁鼓存储器"和"磁芯存储器"
+
+This is an example of a memory hierarchy,
+这是"内存层次结构"的一个例子
+
+where you have a little bit of fast memory, which is expensive,
+一小部分高速+昂贵的内存
+
+slightly more medium-speed memory, which is less expensive,
+一部分稍慢+相对便宜些的内存
+
+and then a lot of slowish memory, which is cheap.
+还有更慢+更便宜的内存
+
+This mixed approach strikes a balance between cost and speed.
+这种混合 在成本和速度间取得平衡
+
+Hard disk drives rapidly improved and became commonplace by the 1970s.
+1970 年代,硬盘大幅度改进并变得普遍
+
+A hard disk like this can easily hold 1 terabyte of data today
+如今的硬盘可以轻易容纳 1TB 的数据
+
+- that's a trillion bytes - or roughly 200,000 five megabyte photos!
+能存 20 万张 5MB 的照片!
+
+And these types of drives can be bought online for as little as 40 US dollars.
+网上最低 40 美元就可以买到
+
+That's 0.0000000005 cents per bit.
+每 bit 成本 0.0000000005 美分
+
+A huge improvement over core memory's 1 cent per bit!
+比磁芯内存 1 美分 1 bit 好多了!
+
+Also, modern drives have an average seek time of under 1/100th of a second.
+另外,现代硬盘的平均寻道时间低于 1/100 秒
+
+I should also briefly mention a close cousin of hard disks, the floppy disk,
+我简单地提一下硬盘的亲戚,软盘
+
+which is basically the same thing, but uses a magnetic medium that's, floppy.
+除了磁盘是软的,其他基本一样
+
+You might recognise it as the save icon on some of your applications,
+你可能见过某些程序的保存图标是一个软盘
+
+but it was once a real physical object!
+软盘曾经是真实存在的东西!
+
+It was most commonly used for portable storage,
+软盘是为了便携,在 1970~1990 非常流行
+
+and became near ubiquitous from the mid 1970s up to the mid 90s.
+软盘是为了便携,在 1970~1990 非常流行
+
+And today it makes a pretty good coaster.
+如今当杯垫挺不错的
+
+Higher density floppy disks, like Zip Disks,
+密度更高的软盘,如 Zip Disks,在90年代中期流行起来
+
+became popular in the mid 1990s,
+密度更高的软盘,如 Zip Disks,在90年代中期流行起来
+
+but fell out of favor within a decade.
+但十年内就消失了
+
+Optical storage came onto the scene in 1972, in the form of a 12-inch "laser disc."
+光学存储器于 1972 年出现,12 英寸的"激光盘"
+
+However, you are probably more familiar with its later, smaller, are more popular cousin,
+你可能对后来的产品更熟:光盘(简称 CD)
+
+the Compact Disk, or CD,
+你可能对后来的产品更熟:光盘(简称 CD)
+
+as well as the DVD which took off in the 90s.
+以及 90 年代流行的 DVD
+
+Functionally, these technologies are pretty similar to hard disks and floppy disks,
+功能和硬盘软盘一样,都是存数据.
+
+but instead of storing data magnetically,
+但用的不是磁性
+
+optical disks have little physical divots in their surface that cause light to be reflected differently,
+光盘表面有很多小坑,造成光的不同反射
+
+which is captured by an optical sensor, and decoded into 1's and 0's.
+光学传感器会捕获到,并解码为 1 和 0
+
+However, today, things are moving to solid state technologies, with no moving parts,
+如今,存储技术在朝固态前进,没有机械活动部件
+
+like this hard drive and also this USB stick.
+比如这个硬盘,以及 U 盘
+
+Inside are Integrated Circuits,
+里面是集成电路,我们在第 15 集讨论过
+
+which we talked about in Episode 15.
+里面是集成电路,我们在第 15 集讨论过
+
+The first RAM integrated circuits became available in 1972 at 1 cent per bit,
+第一个 RAM 集成电路出现于 1972 年 \N 成本每比特 1 美分
+
+quickly making magnetic core memory obsolete.
+使"磁芯存储器"迅速过时
+
+Today, costs have fallen so far,
+如今成本下降了更多 \N 机械硬盘 被 固态硬盘 逐渐替代,简称 SSD
+
+that hard disk drives are being replaced with non-volatile,
+如今成本下降了更多 \N 机械硬盘 被 固态硬盘 逐渐替代,简称 SSD
+
+Solid State Drives, or SSDs, as the cool kids say.
+如今成本下降了更多 \N 机械硬盘 被 固态硬盘 逐渐替代,简称 SSD
+
+Because they contain no moving parts,
+由于 SSD 没有移动部件
+
+they don't really have to seek anywhere,
+磁头不用等磁盘转
+
+so SSD access times are typically under 1/1000th of a second.
+所以 SSD 访问时间低于 1/1000 秒
+
+That's fast!
+这很快!
+
+But it's still many times slower than your computer's RAM.
+但还是比 RAM 慢很多倍
+
+For this reason, computers today still use memory hierarchies.
+所以现代计算机 仍然用存储层次结构
+
+So, we've come along way since the 1940s.
+我们从 1940 年代到现在进步巨大
+
+Much like transistor count and Moore's law,
+就像在第 14 集讨论过的 晶体管数量和摩尔定律
+
+which we talked about in Episode 14,
+就像在第 14 集讨论过的 晶体管数量和摩尔定律
+
+memory and storage technologies have followed a similar exponential trend.
+内存和存储技术也有类似的趋势
+
+From early core memory costing millions of dollars per megabyte, we're steadily fallen,
+从早期每 MB 成本上百万美元,下滑到
+
+to mere cents by 2000, and only fractions of a cent today.
+2000 年只要几分钱,如今远远低于 1 分钱
+
+Plus, there's WAY less punch cards to keep track of.
+完全没有打孔纸卡
+
+Seriously, can you imagine if there was a slight breeze in that room containing the SAGE program?
+你能想象 SEGA 的纸卡房间风一吹会怎样吗?
+
+62,500 punch cards.
+62,500 张卡
+
+I don't even want to think about it.
+我想都不敢想
+
+I'll see you next week.
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/2. 电子计算机-Electronic Computing.ass.txt b/(字幕)全40集中英字幕文本/2. 电子计算机-Electronic Computing.ass.txt
new file mode 100644
index 0000000..ee7ae0a
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/2. 电子计算机-Electronic Computing.ass.txt
@@ -0,0 +1,516 @@
+Our last episode brought us to the start of the 20th century,
+上集讲到 20 世纪初
+
+where early, special purpose computing devices, like tabulating machines,
+当时的早期计算设备都针对特定用途 比如 制表机
+
+were a huge boon to governments and business
+大大推进了政府和企业
+
+- aiding, and sometimes replacing, rote manual tasks.
+它们帮助, 甚至代替了人工
+
+But the scale of human systems continued to increase at an unprecedented rate.
+然而人类社会的规模 在以前所未有的速度增长
+
+The first half of the 20th century saw the world's population almost double.
+20世纪上半叶,世界人口几乎翻倍
+
+World War 1 mobilized 70 million people, and World War 2 involved more than 100 million.
+一战动员7千万人,二战1亿多人
+
+Global trade and transit networks became interconnected like never before,
+全球贸易和运输更加紧密
+
+and the sophistication of our engineering and scientific endeavors reached new heights
+工程和科学的复杂度也达到新高
+
+- we even started to seriously consider visiting other planets.
+- 我们甚至开始考虑登陆其他行星
+
+And it was this explosion of complexity, bureaucracy, and ultimately data,
+复杂度的增高导致数据量暴增
+
+that drove an increasing need for automation and computation.
+人们需要更多自动化 更强的计算能力
+
+Soon those cabinet-sized electro-mechanical computers grew into room-sized behemoths
+很快,柜子大小的计算机变成房间大小
+
+that were expensive to maintain and prone to errors.
+维护费用高 而且容易出错
+
+And it was these machines that would set the stage for future innovation.
+而正是这些机器 为未来的创新打下基础
+
+One of the largest electro-mechanical computers built was the Harvard Mark I,
+最大的机电计算机之一是 哈佛马克一号
+
+completed in 1944 by IBM for the Allies during World War 2.
+IBM 在 1944 完成建造,给二战同盟国建造的.
+
+It contained 765,000 components, three million connections, and five hundred miles of wire.
+它有76万5千个组件,300万个连接点和500英里长的导线
+
+To keep its internal mechanics synchronized,
+为了保持内部机械装置同步
+
+it used a 50-foot shaft running right through the machine driven by a five horsepower motor.
+它有一个50英尺的传动轴,由一个 5 马力的电机驱动
+
+One of the earliest uses for this technology was running simulations for the Manhattan Project.
+这台机器最早的用途之一 是给"曼哈顿计划"跑模拟
+
+The brains of these huge electro-mechanical beasts were relays:
+这台机器的大脑是"继电器"
+
+electrically-controlled mechanical switches.
+继电器是:用电控制的机械开关
+
+In a relay, there is a control wire that determines whether a circuit is opened or closed.
+继电器里,有根"控制线路",控制电路是开还是关
+
+The control wire connects to a coil of wire inside the relay.
+"控制线路" 连着一个线圈
+
+When current flows through the coil, an electromagnetic field is created,
+当电流流过线圈,线圈产生电磁场
+
+which in turn, attracts a metal arm inside the relay, snapping it shut and completing the circuit.
+吸引金属臂,从而闭合电路
+
+You can think of a relay like a water faucet.
+你可以把继电器 想成水龙头
+
+The control wire is like the faucet handle.
+把控制线路 想成水龙头把
+
+Open the faucet, and water flows through the pipe.
+打开水龙头,水会流出来
+
+Close the faucet, and the flow of water stops.
+关闭水龙头,水就没有了
+
+Relays are doing the same thing, just with electrons instead of water.
+继电器是一样的,只不过控制的是电子 而不是水
+
+The controlled circuit can then connect to other circuits, or to something like a motor,
+这个控制电路可以连到其他电路,比如马达
+
+which might increment a count on a gear,
+马达让计数齿轮 +1
+
+like in Hollerith's tabulating machine we talked about last episode.
+就像上集中 Hollerith 的制表机一样
+
+Unfortunately, the mechanical arm inside of a relay *has mass*,
+不幸的是,继电器内的机械臂 *有质量*
+
+and therefore can't move instantly between opened and closed states.
+因此无法快速开关
+
+A good relay in the 1940's might be able to flick back and forth fifty times in a second.
+1940 年代一个好的继电器 1 秒能翻转 50 次
+
+That might seem pretty fast, but it's not fast enough to be useful at solving large, complex problems.
+看起来好像很快,但还不够快,不足以解决复杂的大问题
+
+The Harvard Mark I could do 3 additions or subtractions per second;
+哈佛马克一号,1 秒能做 3 次加法或减法运算
+
+multiplications took 6 seconds, and divisions took 15.
+一次乘法要花 6 秒,除法要花 15 秒
+
+And more complex operations, like a trigonometric function, could take over a minute.
+更复杂的操作 比如三角函数,可能要一分钟以上
+
+In addition to slow switching speed, another limitation was wear and tear.
+除了速度慢,另一个限制是齿轮磨损
+
+Anything mechanical that moves will wear over time.
+任何会动的机械都会随时间磨损
+
+Some things break entirely, and other things start getting sticky, slow, and just plain unreliable.
+有些部件会完全损坏,有些则是变黏,变慢,变得不可靠
+
+And as the number of relays increases, the probability of a failure increases too.
+并且随着继电器数量增加,故障概率也会增加
+
+The Harvard Mark I had roughly 3500 relays.
+哈佛马克一号 有大约 3500 个继电器
+
+Even if you assume a relay has an operational life of 10 years,
+哪怕假设继电器的使用寿命是 10 年
+
+this would mean you'd have to replace, on average, one faulty relay every day!
+也意味着平均每天得换一个故障继电器!
+
+That's a big problem when you are in the middle of running some important, multi-day calculation.
+这个问题很严重,因为有些重要运算要运行好几天
+
+And that's not all engineers had to contend with.
+而且还有更多其他问题要考虑
+
+These huge, dark, and warm machines also attracted insects.
+这些巨大,黑色,温暖的机器也会吸引昆虫
+
+In September 1947, operators on the Harvard Mark II pulled a dead moth from a malfunctioning relay.
+1947年9月,哈佛马克2型的操作员从故障继电器中,拔出一只死虫
+
+Grace Hopper who we'll talk more about in a later episode noted,
+Grace Hopper(这位我们以后还会提到)曾说
+
+"From then on, when anything went wrong with a computer,
+"从那时起,每当电脑出了问题,
+
+we said it had bugs in it."
+我们就说它出了 bug(虫子)"
+
+And that's where we get the term computer bug.
+这就是术语 "bug" 的来源
+
+It was clear that a faster, more reliable alternative to electro-mechanical relays was needed
+显然,如果想进一步提高计算能力
+
+if computing was going to advance further,
+我们需要更快更可靠的东西,来替代继电器
+
+and fortunately that alternative already existed!
+幸运的是,替代品已经存在了!
+
+In 1904, English physicist John Ambrose Fleming
+在 1904 年,英国物理学家 "约翰·安布罗斯·弗莱明"
+
+developed a new electrical component called a thermionic valve,
+开发了一种新的电子组件,叫"热电子管"
+
+which housed two electrodes inside an airtight glass bulb
+把两个电极装在一个气密的玻璃灯泡里
+
+- this was the first vacuum tube.
+-这是世上第一个真空管
+
+One of the electrodes could be heated, which would cause it to emit electrons
+其中一个电极可以加热,从而发射电子
+
+– a process called thermionic emission.
+-这叫 "热电子发射"
+
+The other electrode could then attract these electrons to create the flow of our electric faucet,
+另一个电极会吸引电子,形成"电龙头"的电流
+
+but only if it was positively charged
+但只有带正电才行
+
+- if it had a negative or neutral charge, the electrons would no longer be attracted across the vacuum
+- 如果带负电荷或中性电荷,电子就没办法被吸引,越过真空区域
+
+so no current would flow.
+因此没有电流
+
+An electronic component that permits the one-way flow of current is called a diode,
+电流只能单向流动的电子部件叫 "二极管"
+
+but what was really needed was a switch to help turn this flow on and off.
+但我们需要的是,一个能开关电流的东西
+
+Luckily, shortly after, in 1906, American inventor Lee de Forest
+幸运的是,不久之后在 1906 年,美国发明家 "李·德富雷斯特"
+
+added a third "control" electrode that sits between the two electrodes in Fleming's design.
+他在"弗莱明"设计的两个电极之间,加入了第三个 "控制" 电极
+
+By applying a positive charge to the control electrode, it would permit the flow of electrons as before.
+向"控制"电极施加正电荷,它会允许电子流动
+
+But if the control electrode was given a negative charge,
+但如果施加负电荷
+
+it would prevent the flow of electrons.
+它会阻止电子流动
+
+So by manipulating the control wire, one could open or close the circuit.
+因此通过控制线路,可以断开或闭合电路
+
+It's pretty much the same thing as a relay
+和继电器的功能一样
+
+- but importantly, vacuum tubes have no moving parts.
+- 但重要的是,真空管内没有会动的组件
+
+This meant there was less wear,
+这意味着更少的磨损
+
+and more importantly, they could switch thousands of times per second.
+更重要的是,每秒可以开闭数千次
+
+These triode vacuum tubes would become the basis of radio, long distance telephone,
+因此这些"三极真空管"成为了无线电,长途电话
+
+and many other electronic devices for nearly a half century.
+以及其他电子设备的基础,持续了接近半个世纪
+
+I should note here that vacuum tubes weren't perfect
+我应该提到,真空管不是完美的
+
+- they're kind of fragile, and can burn out like light bulbs,
+-它们有点脆弱,并且像灯泡一样会烧坏
+
+they were a big improvement over mechanical relays.
+但比起机械继电器是一次巨大进步
+
+Also, initially vacuum tubes were expensive
+起初,真空管非常昂贵
+
+– a radio set often used just one,
+收音机一般只用一个
+
+but a computer might require hundreds or thousands of electrical switches.
+但计算机可能要上百甚至上千个电气开关
+
+But by the 1940s,
+但到了 1940 年代
+
+their cost and reliability had improved to the point where they became feasible for use in computers….
+它的成本和可靠性得到改进,可以用在计算机里
+
+at least by people with deep pockets, like governments.
+至少有钱人负担得起,比如政府
+
+This marked the shift from electro-mechanical computing to electronic computing.
+这标志着计算机 从机电转向电子
+
+Let's go to the Thought Bubble.
+我们来进入思想泡泡
+
+The first large-scale use of vacuum tubes for computing was the Colossus MK 1,
+第一个大规模使用真空管的计算机是 "巨人1号"
+
+designed by engineer Tommy Flowers and completed in December of 1943.
+由工程师 Tommy Flowers 设计,完工于1943年12月
+
+The Colossus was installed at Bletchley Park, in the UK,
+巨人1号 在英国的"布莱切利园", 用于破解纳粹通信
+
+and helped to decrypt Nazi communications.
+巨人1号 在英国的"布莱切利园", 用于破解纳粹通信
+
+This may sound familiar because two years prior Alan Turing,
+听起来可能有点熟,因为 2 年前 阿兰·图灵
+
+often called the father of computer science,
+他经常被称为"计算机科学之父"
+
+had created an electromechanical device, also at Bletchley Park, called the Bombe.
+图灵也在"布莱切利园"做了台机电装置,叫 "Bombe"
+
+It was an electromechanical machine designed to break Nazi Enigma codes,
+这台机器的设计目的是 破解纳粹"英格码"通讯加密设备
+
+but the Bombe wasn't technically a computer,
+但 Bombe 严格来说不算计算机
+
+and we'll get to Alan Turing's contributions later.
+我们之后会讨论"阿兰·图灵"的贡献
+
+Anyway, the first version of Colossus contained 1,600 vacuum tubes,
+总之,巨人1号有 1600 个真空管
+
+and in total, ten Colossi were built to help with code-breaking.
+总共造了 10 台巨人计算机,来帮助破解密码
+
+Colossus is regarded as the first programmable, electronic computer.
+巨人 被认为是第一个可编程的电子计算机
+
+Programming was done by plugging hundreds of wires into plugboards,
+编程的方法是把几百根电线插入插板
+
+sort of like old school telephone switchboards,
+有点像老电话交换机
+
+in order to set up the computer to perform the right operations.
+这是为了让计算机执行正确操作
+
+So while "programmable", it still had to be configured to perform a specific computation.
+虽然"可编程" ,但还是要配置它
+
+Enter the The Electronic Numerical Integrator and Calculator - or ENIAC -
+电子数值积分计算机 "ENIAC"
+
+completed a few years later in 1946 at the University of Pennsylvania.
+几年后在 1946 年,在"宾夕法尼亚大学"完成建造
+
+Designed by John Mauchly and J. Presper Eckert,
+设计者是 John Mauchly 和 J. Presper Eckert
+
+this was the world's first truly general purpose, programmable, electronic computer.
+这是世上第一个真正的通用,可编程,电子计算机
+
+ENIAC could perform 5000 ten-digit additions or subtractions per second,
+ENIAC 每秒可执行 5000 次十位数加减法
+
+many, many times faster than any machine that came before it.
+比前辈快了很多倍
+
+It was operational for ten years,
+它运作了十年
+
+and is estimated to have done more arithmetic than the entire human race up to that point.
+据估计,它完成的运算,比全人类加起来还多
+
+But with that many vacuum tubes failures were common,
+因为真空管很多,所以故障很常见
+
+and ENIAC was generally only operational for about half a day at a time before breaking down.
+ENIAC 运行半天左右就会出一次故障
+
+Thanks Thought Bubble.
+谢了 思想泡泡
+
+By the 1950's, even vacuum-tube-based computing was reaching its limits.
+到 1950 年代,真空管计算机都达到了极限
+
+The US Air Force's AN/FSQ-7 computer, which was completed in 1955,
+美国空军的 AN/FSQ-7 计算机于 1955 年完成
+
+was part of the "SAGE" air defense computer system,
+是 "SAGE" 防空计算机系统的一部分
+
+which we'll talk more about in a later episode.
+之后的视频还会提到.
+
+To reduce cost and size, as well as improve reliability and speed,
+为了降低成本和大小,同时提高可靠性和速度
+
+a radical new electronic switch would be needed.
+我们需要一种新的电子开关
+
+In 1947, Bell Laboratory scientists John Bardeen, Walter Brattain, and William Shockley
+1947 年,贝尔实验室科学家 \N John Bardeen,Walter Brattain,William Shockley
+
+invented the transistor,
+发明了晶体管
+
+and with it, a whole new era of computing was born!
+一个全新的计算机时代诞生了!
+
+The physics behind transistors is pretty complex, relying on quantum mechanics,
+晶体管的物理学相当复杂,牵扯到量子力学
+
+so we're going to stick to the basics.
+所以我们只讲基础
+
+A transistor is just like a relay or vacuum tube
+晶体管 就像之前提过的"继电器"或"真空管"
+
+- it's a switch that can be opened or closed by applying electrical power via a control wire.
+-它是一个开关,可以用控制线路来控制开或关
+
+Typically, transistors have two electrodes separated by a material that sometimes can conduct electricity,
+晶体管有两个电极,\N 电极之间有一种材料隔开它们,这种材料有时候导电
+
+and other times resist it
+有时候不导电
+
+- a semiconductor.
+- 这叫"半导体"
+
+In this case, the control wire attaches to a "gate" electrode.
+控制线连到一个 "门" 电极
+
+By changing the electrical charge of the gate,
+通过改变 "门" 的电荷
+
+the conductivity of the semiconducting material can be manipulated,
+我们可以控制半导体材料的导电性
+
+allowing current to flow or be stopped
+来允许或不允许 电流流动
+
+- like the water faucet analogy we discussed earlier.
+- 就像之前的水龙头比喻
+
+Even the very first transistor at Bell Labs showed tremendous promise
+贝尔实验室的第一个晶体管就展示了巨大的潜力
+
+- it could switch between on and off states 10,000 times per second.
+每秒可以开关 10,000 次
+
+Further, unlike vacuum tubes made of glass and with carefully suspended, fragile components,
+而且,比起玻璃制成,小心易碎的真空管
+
+transistors were solid material known as a solid state component.
+晶体管是固态的
+
+Almost immediately, transistors could be made smaller than the smallest possible relays or vacuum tubes.
+晶体管可以远远小于继电器或真空管
+
+This led to dramatically smaller and cheaper computers, like the IBM 608, released in 1957
+导致更小更便宜的计算机,比如1957年发布的IBM 608
+
+– the first fully transistor-powered, commercially-available computer.
+- 第一个完全用晶体管,而且消费者也可以买到的计算机
+
+It contained 3000 transistors and could perform 4,500 additions,
+它有 3000 个晶体管,每秒执行 4500 次加法
+
+or roughly 80 multiplications or divisions, every second.
+每秒能执行 80 次左右的乘除法
+
+IBM soon transitioned all of its computing products to transistors,
+IBM 很快把所有产品都转向了晶体管
+
+bringing transistor-based computers into offices, and eventually, homes.
+把晶体管计算机带入办公室,最终引入家庭
+
+Today, computers use transistors that are smaller than 50 nanometers in size
+如今,计算机里的晶体管小于 50 纳米
+
+- for reference, a sheet of paper is roughly 100,000 nanometers thick.
+- 而一张纸的厚度大概是 10 万纳米
+
+And they're not only incredibly small, they're super fast
+晶体管不仅小,还超级快
+
+- they can switch states millions of times per second, and can run for decades.
+- 每秒可以切换上百万次,并且能工作几十年
+
+A lot of this transistor and semiconductor development happened
+很多晶体管和半导体的开发在"圣克拉拉谷"
+
+in the Santa Clara Valley, between San Francisco and San Jose, California.
+这个地方在加州,位于"旧金山"和"圣荷西"之间
+
+As the most common material used to create semiconductors is silicon,
+而生产半导体最常见的材料是 "硅"
+
+this region soon became known as Silicon Valley.
+所以这个地区被称为 "硅谷"
+
+Even William Shockley moved there, founding Shockley Semiconductor,
+甚至 William Shockley 都搬了过去,创立了"肖克利半导体"
+
+whose employees later founded Fairchild Semiconductors,
+里面的员工后来成立了"仙童半导体"
+
+whose employees later founded Intel - the world's largest computer chip maker today.
+这里面的员工后来创立了英特尔 - 当今世界上最大的计算机芯片制造商
+
+Ok, so we've gone from relays to vacuum tubes to transistors.
+好了,我们从"继电器"到"真空管"到"晶体管"
+
+We can turn electricity on and off really, really, really fast.
+我们可以让电路开闭得非常非常快
+
+But how do we get from transistors to actually computing something,
+但我们是如何用晶体管做计算的?
+
+especially if we don't have motors and gears?
+我们没有马达和齿轮啊?
+
+That's what we're going to cover over the next few episodes.
+我们接下来几集会讲
+
+Thanks for watching. See you next week.
+感谢观看 下周见
+
diff --git a/(字幕)全40集中英字幕文本/20. 文件系统-Files & File Systems.ass.txt b/(字幕)全40集中英字幕文本/20. 文件系统-Files & File Systems.ass.txt
new file mode 100644
index 0000000..1dc6aa9
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/20. 文件系统-Files & File Systems.ass.txt
@@ -0,0 +1,609 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode we talked about data storage, how technologies like magnetic tape and hard
+上集我们讲了数据存储,磁带和硬盘这样的技术
+
+disks can store trillions of bits of data,
+可以在断电状态长时间存上万亿个位
+
+for long durations, even without power.
+可以在断电状态长时间存上万亿个位
+
+Which is perfect for recording "big blobs" of related data,
+非常合适存一整块有关系的数据,或者说"文件"
+
+what are more commonly called computer files.
+非常合适存一整块有关系的数据,或者说"文件"
+
+You've no doubt encountered many types,
+你肯定见过很多种文件 \N 比如文本文件,音乐文件,照片和视频
+
+like text files, music files, photos and videos.
+你肯定见过很多种文件 \N 比如文本文件,音乐文件,照片和视频
+
+Today, we're going to talk about how files work,
+今天,我们要讨论文件到底是什么 \N 以及计算机怎么管理文件
+
+and how computers keep them all organized with File Systems.
+今天,我们要讨论文件到底是什么 \N 以及计算机怎么管理文件
+
+It's perfectly legal for a file to contain arbitrary, unformatted data,
+随意排列文件数据完全没问题,但按格式排会更好
+
+but it's most useful and practical if the data inside the file is organized somehow.
+随意排列文件数据完全没问题,但按格式排会更好
+
+This is called a file format.
+这叫 "文件格式"
+
+You can invent your own, and programmers do that from time to time,
+你可以发明自己的文件格式,程序员偶尔会这样做
+
+but it's usually best and easiest to use an existing standard, like JPEG and MP3.
+但最好用现成标准,比如 JPEG 和 MP3
+
+Let's look at some simple file formats.
+来看一些简单文件格式,最简单的是文本文件
+
+The most straightforward are text files,
+来看一些简单文件格式,最简单的是文本文件
+
+also know as TXT file, which contain...surprise! text.
+也叫 TXT 文件, 里面包含的是... 文字 (惊喜吧)
+
+Like all computer files, this is just a huge list of numbers, stored as binary.
+就像所有其它文件,文本文件只是一长串二进制数
+
+If we look at the raw values of a text file in storage, it would look something like this:
+原始值看起来会像这样:
+
+We can view this as decimal numbers instead of binary,
+可以转成十进制看,但帮助不大
+
+but that still doesn't help us read the text.
+可以转成十进制看,但帮助不大
+
+The key to interpreting this data is knowing that TXT files use ASCII,
+解码数据的关键是 ASCII 编码
+
+a character encoding standard we discussed way back in Episode 4.
+一种字符编码标准,第 4 集讨论过.
+
+So, in ASCII, our first value, 72, maps to the capital letter H.
+第一个值 72 \N 在 ASCII 中是大写字母 H
+
+And in this way, we decode the whole file.
+以此类推 解码其他数字
+
+Let's look at a more complicated example: a WAVE File, also called a WAV,
+来看一个更复杂的例子:波形(Wave)文件,也叫 WAV \N 它存音频数据
+
+which stores audio.
+来看一个更复杂的例子:波形(Wave)文件,也叫 WAV \N 它存音频数据
+
+Before we can correctly read the data, we need to know some information,
+在正确读取数据前,需要知道一些信息
+
+like the bit rate and whether it's a single track or stereo.
+比如码率(bit rate),以及是单声道还是立体声
+
+Data about data, is called meta data.
+关于数据的数据,叫"元数据"(meta data)
+
+This metadata is stored at the front of the file, ahead of any actual data,
+元数据存在文件开头,在实际数据前面 \N 因此也叫 文件头(Header)
+
+in what's known as a Header.
+元数据存在文件开头,在实际数据前面 \N 因此也叫 文件头(Header)
+
+Here's what the first 44 bytes of a WAV file looks like.
+WAV 文件的前 44 个字节长这样
+
+Some parts are always the same, like where it spells out W-A-V-E.
+有的部分总是一样的,比如写着 WAVE 的部分
+
+Other parts contain numbers that change depending on the data contained within.
+其他部分的内容,会根据数据变化
+
+The audio data comes right behind the metadata, and it's stored as a long list of numbers.
+音频数据紧跟在元数据后面,是一长串数字
+
+These values represent the amplitude of sound captured many times per second, and if you
+数字代表每秒捕获多次的声音幅度
+
+want a primer on sound, check out our video all about it in Crash Course Physics.
+如果想学声音的基础知识 \N 可以看物理速成课第18集
+
+Link in the dobblydoo.
+如果想学声音的基础知识 \N 可以看物理速成课第18集
+
+As an example, let's look at a waveform of me saying: "hello!" Hello!
+举个例子,看一下"你好"的波形
+
+Now that we've captured some sound, let's zoom into a little snippet.
+现在捕获到了一些声音,我们放大看一下
+
+A digital microphone, like the one in your computer or smartphone,
+电脑和手机麦克风,每秒可以对声音进行上千次采样
+
+samples the sound pressure thousands of times.
+电脑和手机麦克风,每秒可以对声音进行上千次采样
+
+Each sample can be represented as a number.
+每次采样可以用一个数字表示
+
+Larger numbers mean higher sound pressure, what's called amplitude.
+声压越高数字越大,也叫"振幅"
+
+And these numbers are exactly what gets stored in a WAVE file!
+WAVE 文件里存的就是这些数据!
+
+Thousands of amplitudes for every single second of audio!
+每秒上千次的振幅!
+
+When it's time to play this file, an audio program needs to actuate the computer's speakers
+播放声音文件时,扬声器会产生相同的波形
+
+such that the original waveform is emitted.
+播放声音文件时,扬声器会产生相同的波形
+
+"Hello!"
+"你好!"
+
+So, now that you're getting the hang of file formats, let's talk about bitmaps or
+现在来谈谈 位图(Bitmap),后缀 .bmp, 它存图片
+
+BMP, which store pictures.
+现在来谈谈 位图(Bitmap),后缀 .bmp, 它存图片
+
+On a computer, Pictures are made up of little tiny square elements called pixels.
+计算机上,图片由很多个叫"像素"的方块组成
+
+Each pixel is a combination of three colors: red, green and blue.
+每个像素由三种颜色组成:红,绿,蓝
+
+These are called additive primary colors, and they can be mixed together to create any
+叫"加色三原色",混在一起可以创造其它颜色
+
+other color on our electronic displays.
+叫"加色三原色",混在一起可以创造其它颜色
+
+Now, just like WAV files, BMPs start with metadata,
+就像 WAV 文件一样,BMP 文件开头也是元数据 \N 有图片宽度,图片高度,颜色深度
+
+including key values like image width, image height, and color depth.
+就像 WAV 文件一样,BMP 文件开头也是元数据 \N 有图片宽度,图片高度,颜色深度
+
+As an example, let's say the metadata specified an image 4 pixels wide, by 4 pixels tall,
+举例,假设元数据说图是 4像素宽 x 4像素高
+
+with a 24-bit color depth - that's 8-bits for red, 8-bits for green, and 8-bits for blue.
+颜色深度 24 位\N 8 位红色,8 位绿色,8 位蓝色
+
+As a reminder, 8 bits is the same as one byte.
+提醒一下,8位 (bit) 和 1字节(byte)是一回事
+
+The smallest number a byte can store is 0, and the largest is 255.
+一个字节能表示的最小数是 0,最大 255
+
+Our image data is going to look something like this:
+图像数据看起来会类似这样:\N 来看看第一个像素的颜色
+
+Let's look at the color of our first pixel.
+图像数据看起来会类似这样:\N 来看看第一个像素的颜色
+
+It has 255 for its red value, 255 for green and 255 for blue.
+红色是255,绿色是255,蓝色也是255
+
+This equates to full intensity red, full intensity green and full intensity blue.
+这等同于全强度红色,全强度绿色和全强度蓝色
+
+These colors blend together on your computer monitor to become white.
+混合在一起变成白色
+
+So our first pixel is white!
+所以第一个像素是白色!
+
+The next pixel has a Red-Green-Blue, or RGB value of 255, 255, 0.
+下一个像素的红绿蓝值,或 RGB 值 \N 255,255,0 是黄色!
+
+That's the color yellow!
+下一个像素的红绿蓝值,或 RGB 值 \N 255,255,0 是黄色!
+
+The pixel after that has a RGB value of 0,0,0 - that's zero intensity everything, which is black.
+下一个像素是 0,0,0 ,黑色
+
+And the next one is yellow.
+下一个是黄色
+
+Because the metadata specified this was a 4 by 4 image, we know that we've reached
+因为元数据说图片是 4x4 \N 我们知道现在到了第一行结尾
+
+the end of our first row of pixels.
+因为元数据说图片是 4x4 \N 我们知道现在到了第一行结尾
+
+So, we need to drop down a row.
+所以换一行
+
+The next RGB value is 255,255,0 yellow again.
+下一个 RGB 值是 255,255,0,又是黄色
+
+Okay, let's go ahead and read all the pixels in our 4x4 image tada!
+好,我们读完剩下的像素
+
+A very low resolution pac-man!
+一个低分辨率的吃豆人
+
+Obviously this is a simple example of a small image,
+刚才显然只是一个简单例子,但这张图片也可以用 BMP 存
+
+but we could just as easily store this image in a BMP.
+刚才显然只是一个简单例子,但这张图片也可以用 BMP 存
+
+I want to emphasize again that it doesn't matter if it's a text file, WAV,
+我想再次强调,不管是文本文件,WAV,BMP
+
+BMP, or fancier formats we don't have time to discuss,
+或是我们没时间讨论的其他格式
+
+Under the hood, they're all the same: long lists of numbers, stored as binary, on a storage device.
+文件在底层全是一样的: 一长串二进制
+
+File formats are the key to reading and understanding the data inside.
+为了知道文件是什么,文件格式至关重要
+
+Now that you understand files a little better, let's move on to
+现在你对文件更了解了 \N 我们接下来讨论计算机怎么存文件
+
+how computers go about storing them.
+现在你对文件更了解了 \N 我们接下来讨论计算机怎么存文件
+
+Even though the underlying storage medium might be
+虽然硬件可能是磁带,磁鼓,磁盘或集成电路
+
+a strip of tape, a drum, a disk, or integrated circuits...
+虽然硬件可能是磁带,磁鼓,磁盘或集成电路
+
+hardware and software abstractions let us think of storage as a
+通过软硬件抽象后,可以看成一排能存数据的桶
+
+long line of little buckets that store values.
+通过软硬件抽象后,可以看成一排能存数据的桶
+
+In the early days, when computers only performed one computation
+在很早期时,计算机只做一件事,比如算火炮射程表 \N 整个储存器就像一整个文件
+
+like calculating artillery range tables. the entire storage operated like one big file.
+在很早期时,计算机只做一件事,比如算火炮射程表 \N 整个储存器就像一整个文件
+
+Data started at the beginning of storage, and then filled it up in order as output was
+数据从头存到尾,直到占满
+
+produced, up to the storage capacity.
+数据从头存到尾,直到占满
+
+However, as computational power and storage capacity improved, it became possible, and
+但随着计算能力和存储容量的提高 \N 存多个文件变得非常有用
+
+useful, to store more than one file at a time.
+但随着计算能力和存储容量的提高 \N 存多个文件变得非常有用
+
+The simplest option is to store files back-to-back.
+最简单的方法 是把文件连续存储
+
+This can work... but how does the computer know where files begin and end?
+这样能用, \N 但怎么知道文件开头和结尾在哪里?
+
+Storage devices have no notion of files C they're just a mechanism for storing lots of bits.
+储存器没有文件的概念,只是存储大量位
+
+So, for this to work, we need to have a special file that records where other ones are located.
+所以为了存多个文件 \N 需要一个特殊文件,记录其他文件的位置
+
+This goes by many names, but a good general term is Directory File.
+这个特殊文件有很多名字,这里泛称 "目录文件"
+
+Most often, it's kept right at the front of storage, so we always know where to access it.
+这个文件经常存在最开头,方便找
+
+Location zero!
+位置 0!
+
+Inside the Directory File are the names of all the other files in storage.
+目录文件里,存所有其他文件的名字
+
+In our example, they each have a name, followed by a period
+格式是文件名 + 一个句号 + 扩展名,比如 BMP 或 WAV
+
+and end with what's called a File Extension, like "BMP" or "WAV".
+格式是文件名 + 一个句号 + 扩展名,比如 BMP 或 WAV
+
+Those further assist programs in identifying file types.
+扩展名帮助得知文件类型
+
+The Directory File also stores metadata about these files, like when they were created and
+目录文件还存文件的元数据,比如创建时间
+
+last modified, who the owner is, and if it can be read, written or both.
+最后修改时间,文件所有者是谁\N是否能读/写 或读写都行
+
+But most importantly, the directory file contains where these files
+最重要的是,目录文件有文件起始位置和长度
+
+begin in storage, and how long they are.
+最重要的是,目录文件有文件起始位置和长度
+
+If we want to add a file, remove a file, change a filename, or similar,
+如果要添加文件,删除文件,更改文件名等
+
+we have to update the information in the Directory File.
+必须更新目录文件
+
+It's like the Table of Contents in a book, if you make a chapter shorter, or move it
+就像书的目录,如果缩短或移动了一个章节 \N 要更新目录,不然页码对不上
+
+somewhere else, you have to update the table of contents, otherwise the page numbers won't match!
+就像书的目录,如果缩短或移动了一个章节 \N 要更新目录,不然页码对不上
+
+The Directory File, and the maintenance of it, is an example of a very basic File System,
+目录文件,以及对目录文件的管理 \N 是一个非常简单的文件系统例子
+
+the part of an Operating System that manages and keep track of stored files.
+文件系统专门负责管理文件
+
+This particular example is a called a Flat File System, because they're all stored at one level.
+刚刚的例子叫"平面文件系统" \N因为文件都在同一个层次
+
+It's flat!
+平的!
+
+Of course, packing files together, back-to-back, is a bit of a problem,
+当然,把文件前后排在一起 有个问题
+
+because if we want to add some data to let's say "todo.txt",
+如果给 todo.txt 加一点数据 \N 会覆盖掉后面 carrie.bmp 的一部分
+
+there's no room to do it without overwriting part of "carrie.bmp".
+如果给 todo.txt 加一点数据 \N 会覆盖掉后面 carrie.bmp 的一部分
+
+So modern File Systems do two things.
+所以现代文件系统会做两件事
+
+First, they store files in blocks.
+1. 把空间划分成一块块 \N 导致有一些 "预留空间" 可以方便改动
+
+This leaves a little extra space for changes, called slack space.
+1. 把空间划分成一块块 \N 导致有一些 "预留空间" 可以方便改动
+
+It also means that all file data is aligned to a common size, which simplifies management.
+同时也方便管理
+
+In a scheme like this, our Directory File needs to keep track of
+用这样的方案,目录文件要记录文件在哪些块里
+
+what block each one is stored in.
+用这样的方案,目录文件要记录文件在哪些块里
+
+The second thing File Systems do, is allow files to be broken up into chunks
+2. 拆分文件,存在多个块里
+
+and stored across many blocks.
+2. 拆分文件,存在多个块里
+
+So let's say we open "todo.txt", and we add a few more items then the file becomes
+假设打开 todo.txt 加了些内容\N 文件太大存不进一块里
+
+too big to be saved in its one block.
+假设打开 todo.txt 加了些内容\N 文件太大存不进一块里
+
+We don't want to overwrite the neighboring one, so instead, the File System allocates
+我们不想覆盖掉隔壁的块,所以文件系统会分配 \N 一个没使用的块,容纳额外的数据
+
+an unused block, which can accommodate extra data.
+我们不想覆盖掉隔壁的块,所以文件系统会分配 \N 一个没使用的块,容纳额外的数据
+
+With a File System scheme like this, the Directory File needs to store
+目录文件会记录不止一个块,而是多个块
+
+not just one block per file, but rather a list of blocks per file.
+目录文件会记录不止一个块,而是多个块
+
+In this way, we can have files of variable sizes that can be easily
+只要分配块,文件可以轻松增大缩小
+
+expanded and shrunk, simply by allocating and deallocating blocks.
+只要分配块,文件可以轻松增大缩小
+
+If you watched our episode on Operating Systems, this should sound a lot like Virtual Memory.
+如果你看了第18集 操作系统 \N 这听起来很像"虚拟内存"
+
+Conceptually it's very similar!
+概念上讲的确很像!
+
+Now let's say we want to delete "carrie.bmp".
+假设想删掉 carrie.bmp \N 只需要在目录文件删掉那条记录
+
+To do that, we can simply remove the entry from the Directory File.
+假设想删掉 carrie.bmp \N 只需要在目录文件删掉那条记录
+
+This, in turn, causes one block to become free.
+让一块空间变成了可用
+
+Note that we didn't actually erase the file's data in storage, we just deleted the record of it.
+注意这里没有擦除数据,只是把记录删了
+
+At some point, that block will be overwritten with new data, but until then, it just sits there.
+之后某个时候,那些块会被新数据覆盖 \N 但在此之前,数据还在原处
+
+This is one way that computer forensic teams can "recover" data from computers even
+所以计算机取证团队可以"恢复"数据
+
+though people think it has been deleted. Crafty!
+虽然别人以为数据已经"删了", 狡猾!
+
+Ok, let's say we add even more items to our todo list, which causes the File System
+假设往 todo.txt 加了更多数据 \N 所以操作系统分配了一个新块,用了刚刚 carrie.bmp 的块
+
+to allocate yet another block to the file, in this case,
+假设往 todo.txt 加了更多数据 \N 所以操作系统分配了一个新块,用了刚刚 carrie.bmp 的块
+
+recycling the block freed from carrie.bmp.
+假设往 todo.txt 加了更多数据 \N 所以操作系统分配了一个新块,用了刚刚 carrie.bmp 的块
+
+Now our "todo.txt" is stored across 3 blocks, spaced apart, and also out of order.
+现在 todo.txt 在 3 个块里,隔开了,顺序也是乱的
+
+Files getting broken up across storage like this is called fragmentation.
+这叫碎片
+
+It's the inevitable byproduct of files being created, deleted and modified.
+碎片是增/删/改文件导致的,不可避免
+
+For many storage technologies, this is bad news.
+对很多存储技术来说,碎片是坏事
+
+On magnetic tape, reading todo.txt into memory would require
+如果 todo.txt 存在磁带上,读取文件要
+
+seeking to block 1, then fast forwarding to block 5, and then rewinding to block 3
+先读块1, 然后快进到块5,然后往回转到块2
+
+that's a lot of back and forth!
+来回转个半天
+
+In real world File Systems, large files might be stored across hundreds of blocks,
+现实世界中,大文件可能存在数百个块里
+
+and you don't want to have to wait five minutes for your files to open.
+你可不想等五分钟才打开文件
+
+The answer is defragmentation!
+答案是碎片整理!
+
+That might sound like technobabble, but the process is really simple,
+这个词听起来好像很复杂,但实际过程很简单
+
+and once upon a time it was really fun to watch!
+以前看计算机做碎片整理 真的很有趣!
+
+The computer copies around data so that files have blocks located together
+计算机会把数据来回移动,排列成正确的顺序
+
+in storage and in the right order.
+计算机会把数据来回移动,排列成正确的顺序
+
+After we've defragged, we can read our todo file,
+整理后 todo.txt 在 1 2 3,方便读取.
+
+now located in blocks 1 through 3, in a single, quick read pass.
+整理后 todo.txt 在 1 2 3,方便读取.
+
+So far, we've only been talking about Flat File Systems,
+目前只说了平面文件系统,文件都在同一个目录里.
+
+where they're all stored in one directory.
+目前只说了平面文件系统,文件都在同一个目录里.
+
+This worked ok when computers only had a little bit of storage,
+如果存储空间不多,这可能就够用了 \N 因为只有十几个文件
+
+and you might only have a dozen or so files.
+如果存储空间不多,这可能就够用了 \N 因为只有十几个文件
+
+But as storage capacity exploded, like we discussed last episode,
+但上集说过,容量爆炸式增长,文件数量也飞速增长
+
+so did the number of files on computers.
+但上集说过,容量爆炸式增长,文件数量也飞速增长
+
+Very quickly, it became impractical to store all files together at one level.
+很快,所有文件都存在同一层变得不切实际
+
+Just like documents in the real world, it's handy to store related files together in folders.
+就像现实世界\N 相关文件放在同一个文件夹会方便很多
+
+Then we can put connected folders into folders, and so on.
+然后文件夹套文件夹.
+
+This is a Hierarchical File System, and its what your computer uses.
+这叫"分层文件系统",你的计算机现在就在用这个.
+
+There are a variety of ways to implement this, but let's stick with the File System example
+实现方法有很多种,我们用之前的例子来讲重点好了
+
+we've been using to convey the main idea.
+实现方法有很多种,我们用之前的例子来讲重点好了
+
+The biggest change is that our Directory File needs to be able to point not just to files,
+最大的变化是 目录文件不仅要指向文件, 还要指向目录
+
+but also other directories.
+最大的变化是 目录文件不仅要指向文件, 还要指向目录
+
+To keep track of what's a file and what's a directory, we need some extra metadata.
+我们需要额外元数据 来区分开文件和目录,
+
+This Directory File is the top-most one, known as the Root Directory.
+这个目录文件在最顶层,因此叫根目录
+
+All other files and folders lie beneath this directory along various file paths.
+所有其他文件和文件夹,都在根目录下
+
+We can see inside of our "Root" Directory File that we have 3 files
+图中可以看到根目录文件有3个文件 \N 2个子文件夹:"音乐"和"照片"
+
+and 2 subdirectories: music and photos.
+图中可以看到根目录文件有3个文件 \N 2个子文件夹:"音乐"和"照片"
+
+If we want to see what's stored in our music directory, we have to go to that block and
+如果想知道"音乐"文件夹里有什么 \N 必须去那边读取目录文件(格式和根目录文件一样)
+
+read the Directory File located there; the format is the same as our root directory.
+如果想知道"音乐"文件夹里有什么 \N 必须去那边读取目录文件(格式和根目录文件一样)
+
+There's a lot of great songs in there!
+有很多好歌啊!
+
+In addition to being able to create hierarchies of unlimited depth,
+除了能做无限深度的文件夹 \N 这个方法也让我们可以轻松移动文件
+
+this method also allows us to easily move around files.
+除了能做无限深度的文件夹 \N 这个方法也让我们可以轻松移动文件
+
+So, if we wanted to move "theme.wav" from our root directory to the music directory,
+如果想把 theme.wav 从根目录移到音乐目录
+
+we don't have to re-arrange any blocks of data.
+不用移动任何数据块
+
+We can simply modify the two Directory Files, removing an entry from one and adding it to another.
+只需要改两个目录文件 \N 一个文件里删一条记录,另一个文件里加一条记录
+
+Importantly, the theme.wav file stays in block 5.
+theme.wav 依然在块5
+
+So that's a quick overview of the key principles of File Systems.
+文件系统的几个重要概念 现在介绍完了.
+
+They provide yet another way to move up a new level of abstraction.
+它提供了一层新抽象!
+
+File systems allow us to hide the raw bits stored on magnetic tape, spinning disks and
+文件系统使我们不必关心 \N 文件在磁带或磁盘的具体位置
+
+the like, and they let us think of data as neatly organized and easily accessible files.
+整理和访问文件更加方便
+
+We even started talking about users, not programmers, manipulating data,
+我们像普通用户一样直观操纵数据,比如打开和整理文件
+
+like opening files and organizing them,
+我们像普通用户一样直观操纵数据,比如打开和整理文件
+
+foreshadowing where the series will be going in a few episodes.
+接下来几集也会从用户角度看问题
+
+I'll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/21. 压缩-Compression.ass.txt b/(字幕)全40集中英字幕文本/21. 压缩-Compression.ass.txt
new file mode 100644
index 0000000..68b31f6
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/21. 压缩-Compression.ass.txt
@@ -0,0 +1,594 @@
+This episode is brought to you by Curiosity Stream.
+本集由 Curiosity Stream 赞助播出
+
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode we talked about Files, bundles of data, stored on a computer, that
+上集我们讨论了文件格式,如何编码文字,声音,图片
+
+are formatted and arranged to encode information, like text, sound or images.
+上集我们讨论了文件格式,如何编码文字,声音,图片
+
+We even discussed some basic file formats, like text, wave, and bitmap.
+还举了具体例子 .txt .wav .bmp
+
+While these formats are perfectly fine and still used today,
+这些格式虽然管用,而且现在还在用 \N 但它们的简单性意味着效率不高
+
+their simplicity also means they're not very efficient.
+这些格式虽然管用,而且现在还在用 \N 但它们的简单性意味着效率不高
+
+Ideally, we want files to be as small as possible, so we can store lots of them without filling
+我们希望文件能小一点,这样能存大量文件,传输也会快一些
+
+up our hard drives, and also transmit them more quickly.
+我们希望文件能小一点,这样能存大量文件,传输也会快一些
+
+Nothing is more frustrating than waiting for an email attachment to download. Ugh!
+等邮件附件下载烦死人了
+
+The answer is compression, which literally squeezes data into a smaller size.
+解决方法是 压缩,把数据占用的空间压得更小
+
+To do this, we have to encode data using fewer bits than the original representation.
+用更少的位(bit)来表示数据
+
+That might sound like magic, but it's actually computer science!
+听起来像魔法,但其实是计算机科学!
+
+Lets return to our old friend from last episode, Mr. Pac-man!
+我们继续用上集的 吃豆人例子,图像是 4像素x4像素
+
+This image is 4 pixels by 4 pixels.
+我们继续用上集的 吃豆人例子,图像是 4像素x4像素
+
+As we discussed, image data is typically stored as a list of pixel values.
+之前说过,图像一般存成一长串像素值
+
+To know where rows end, image files have metadata, which defines properties like dimensions.
+为了知道一行在哪里结束 \N 图像要有元数据,写明尺寸等属性
+
+But, to keep it simple today, we're not going to worry about it.
+但为了简单起见,今天忽略这些细节
+
+If you mix full intensity red, green and blue - that's 255 for all
+如果红绿蓝都是 255 会得到白色
+
+three values - you get the color white.
+如果红绿蓝都是 255 会得到白色
+
+If you mix full intensity red and green, but no blue (it's 0), you get yellow.
+如果混合 255红色和255绿色,会得到黄色
+
+We have 16 pixels in our image, and each of those needs 3 bytes of color data.
+这个图像有16个像素(4x4), 每个像素3个字节
+
+That means this image's data will consume 48 bytes of storage.
+总共占48个字节(16x3=48)
+
+But, we can compress the data and pack it into a smaller number of bytes than 48!
+但我们可以压缩到少于 48 个字节
+
+One way to compress data is to reduce repeated or redundant information.
+一种方法是 减少重复信息
+
+The most straightforward way to do this is called Run-Length Encoding.
+最简单的方法叫 游程编码(Run-Length Encoding)
+
+This takes advantage of the fact that there are often runs of identical values in files.
+适合经常出现相同值的文件
+
+For example, in our pac-man image, there are 7 yellow pixels in a row.
+比如吃豆人 有7个连续黄色像素
+
+Instead of encoding redundant data: yellow pixel, yellow pixel, yellow pixel, and so
+与其全存下来:黄色,黄色,黄色...
+
+on, we can just say "there's 7 yellow pixels in a row" by inserting
+可以插入一个额外字节,代表有7个连续黄色像素
+
+an extra byte that specifies the length of the run, like so:
+可以插入一个额外字节,代表有7个连续黄色像素
+
+And then we can eliminate the redundant data behind it.
+然后删掉后面的重复数据.
+
+To ensure that computers don't get confused with which bytes are run lengths and which
+为了让计算机能分辨哪些字节是"长度" 哪些字节是"颜色" \N 格式要一致
+
+bytes represent color, we have to be consistent in how we apply this scheme.
+为了让计算机能分辨哪些字节是"长度" 哪些字节是"颜色" \N 格式要一致
+
+So, we need to preface all pixels with their run-length.
+所以我们要给所有像素前面标上长度
+
+In some cases, this actually adds data, but on the whole, we've dramatically reduced
+有时候数据反而会变多,但就这个例子而言
+
+the number of bytes we need to encode this image.
+我们大大减少了字节数,之前是48 现在是24
+
+We're now at 24 bytes, down from 48.
+我们大大减少了字节数,之前是48 现在是24
+
+That's 50% smaller!
+小了50%!省了很多空间!
+
+A huge saving!
+小了50%!省了很多空间!
+
+Also note that we haven't lost any data.
+还有,我们没有损失任何数据 \N 我们可以轻易恢复到原来的数据
+
+We can easily expand this back to the original form without any degradation.
+还有,我们没有损失任何数据 \N 我们可以轻易恢复到原来的数据
+
+A compression technique that has this characteristic is called
+这叫"无损压缩",没有丢失任何数据
+
+lossless compression, because we don't lose anything.
+这叫"无损压缩",没有丢失任何数据
+
+The decompressed data is identical to the original before compression, bit for bit.
+解压缩后,数据和压缩前完全一样
+
+Let's take a look at another type of lossless compression, where
+我们来看另一种无损压缩,它用更紧凑的方式表示数据块
+
+blocks of data are replaced by more compact representations.
+我们来看另一种无损压缩,它用更紧凑的方式表示数据块
+
+This is sort of like " don't forget to be awesome " being replaced by DFTBA.
+有点像 "别忘了变厉害" 简写成 DFTBA
+
+To do this, we need a dictionary that stores the mapping from codes to data.
+为此,我们需要一个字典,存储"代码"和"数据"间的对应关系
+
+Lets see how this works for our example.
+我们看个例子
+
+We can view our image as not just a string of individual pixels,
+我们可以把图像看成一块块,而不是一个个像素
+
+but as little blocks of data.
+我们可以把图像看成一块块,而不是一个个像素
+
+For simplicity, we're going to use pixel pairs, which are 6 bytes long,
+为了简单,我们把2个像素当成1块(占6个字节)
+
+but blocks can be any size.
+但你也可以定成其他大小
+
+In our example, there are only four pairings: White-yellow, black-yellow,
+我们只有四对: 白黄 黑黄 黄黄 白白
+
+yellow-yellow and white-white.
+我们只有四对: 白黄 黑黄 黄黄 白白
+
+Those are the data blocks in our dictionary we want to generate compact codes for.
+我们会为这四对 生成紧凑代码(compact codes)
+
+What's interesting, is that these blocks occur at different frequencies.
+有趣的是,这些块的出现频率不同
+
+One method for generating efficient codes is building a Huffman Tree, invented by David
+1950年代 大卫·霍夫曼 发明了一种高效编码方式叫 \N "霍夫曼树"(Huffman Tree) 当时他是麻省理工学院的学生
+
+Huffman while he was a student at MIT in the 1950s.
+1950年代 大卫·霍夫曼 发明了一种高效编码方式叫 \N "霍夫曼树"(Huffman Tree) 当时他是麻省理工学院的学生
+
+His algorithm goes like this.
+算法是这样的
+
+First, you layout all the possible blocks and their frequencies.
+首先,列出所有块和出现频率,每轮选两个最低的频率
+
+At every round, you select the two with the lowest frequencies.
+首先,列出所有块和出现频率,每轮选两个最低的频率
+
+Here, that's Black-Yellow and White-White, each with a frequency of 1.
+这里 黑黄 和 白白 的频率最低,它们都是 1
+
+You combine these into a little tree. which have a combined frequency of 2,
+可以把它们组成一个树,总频率 2
+
+so we record that.
+可以把它们组成一个树,总频率 2
+
+And now one step of the algorithm done.
+现在完成了一轮算法
+
+Now we repeat the process.
+现在我们重复这样做
+
+This time we have three things to choose from.
+这次有3个可选
+
+Just like before, we select the two with the lowest frequency, put them into a little tree,
+就像上次一样,选频率最低的两个,放在一起,并记录总频率
+
+and record the new total frequency of all the sub items.
+就像上次一样,选频率最低的两个,放在一起,并记录总频率
+
+Ok, we're almost done.
+好,我们快完成了
+
+This time it's easy to select the two items with the lowest frequency
+这次很简单,因为只有2个选择
+
+because there are only two things left to pick.
+这次很简单,因为只有2个选择
+
+We combine these into a tree, and now we're done!
+把它们组合成一棵树就完成了!
+
+Our tree looks like this, and it has a very cool property: it's arranged by frequency,
+现在看起来像这样,它有一个很酷的属性:按频率排列
+
+with less common items lower down.
+频率低的在下面
+
+So, now we have a tree, but you may be wondering how this gets us to a dictionary.
+现在有了一棵树,你可能在想 "怎么把树变成字典?"
+
+Well, we use our frequency-sorted tree to generate the codes we need
+我们可以把每个分支用 0 和 1 标注,就像这样
+
+by labeling each branch with a 0 or a 1, like so.
+我们可以把每个分支用 0 和 1 标注,就像这样
+
+With this, we can write out our code dictionary.
+现在可以生成字典
+
+Yellow-yellow is encoded as just a single 0. White-yellow is encoded as 10
+黄黄 编码成 0 \N 白黄 编码成 10 \N 黑黄 编码成 110 \N 白白 编码成 111
+
+Black-Yellow is 1 1 0. and finally white-white is 1 1 1.
+黄黄 编码成 0 \N 白黄 编码成 10 \N 黑黄 编码成 110 \N 白白 编码成 111
+
+The really cool thing about these codewords is that there's no way to
+酷的地方是 它们绝对不会冲突
+
+have conflicting codes, because each path down the tree is unique.
+因为树的每条路径是唯一的
+
+This means our codes are prefix-free, that is no code starts with another complete code.
+意味着代码是"无前缀"的,没有代码是以另一个代码开头的
+
+Now, let's return to our image data and compress it!
+现在我们来压缩!
+
+-- NOT BYTES -- BITS!! That's less than 2 bytes of data!
+注意是位(bit)! 不是字节(byte)! \N 14位(bit) 还不到2个字节(byte)!
+
+But, don't break out the champagne quite yet!
+但,先别急着开香槟!
+
+This data is meaningless unless we also save our code dictionary.
+字典也要保存下来,否则 14 bit 毫无意义
+
+So, we'll need to append it to the front of the image data, like this.
+所以我们把字典 加到 14 bit 前面,就像这样
+
+Now, including the dictionary, our image data is 30 bytes long.
+现在加上字典,图像是 30 个字节(bytes) \N 比 48 字节好很多
+
+That's still a significant improvement over 48 bytes.
+现在加上字典,图像是 30 个字节(bytes) \N 比 48 字节好很多
+
+The two approaches we discussed,
+"消除冗余"和"用更紧凑的表示方法",这两种方法通常会组合使用
+
+removing redundancies and using more compact representations, are often combined,
+"消除冗余"和"用更紧凑的表示方法",这两种方法通常会组合使用
+
+and underlie almost all lossless compressed file formats,
+几乎所有无损压缩格式都用了它们 \N 比如 GIF, PNG, PDF, ZIP
+
+like GIF, PNG, PDF and ZIP files.
+几乎所有无损压缩格式都用了它们 \N 比如 GIF, PNG, PDF, ZIP
+
+Both run-length encoding and dictionary coders are lossless compression techniques.
+游程编码 和 字典编码 都是无损压缩
+
+No information is lost; when you decompress, you get the original file.
+压缩时不会丢失信息,解压后,数据和之前完全一样
+
+That's really important for many types of files.
+无损对很多文件很重要
+
+Like, it'd be very odd if I zipped up a word document to send to you,
+比如我给你发了个压缩的 word 文档\N 你解压之后发现内容变了,这就很糟糕了
+
+and when you decompressed it on your computer, the text was different.
+比如我给你发了个压缩的 word 文档\N 你解压之后发现内容变了,这就很糟糕了
+
+But, there are other types of files where we can get away with little changes, perhaps
+但其他一些文件,丢掉一些数据没什么关系
+
+by removing unnecessary or less important information, especially information
+丢掉那些人类看不出区别的数据
+
+that human perception is not good at detecting.
+丢掉那些人类看不出区别的数据
+
+And this trick underlies most lossy compression techniques.
+大多数有损压缩技术,都用到了这点
+
+These tend to be pretty complicated, so we're going to attack this at a conceptual level.
+实际细节比较复杂,所以我们讲概念就好
+
+Let's take sound as an example.
+以声音为例,你的听力不是完美的
+
+Your hearing is not perfect.
+以声音为例,你的听力不是完美的
+
+We can hear some frequencies of sound better than others.
+有些频率我们很擅长,其他一些我们根本听不见,比如超声波
+
+And there are some we can't hear at all, like ultrasound.
+有些频率我们很擅长,其他一些我们根本听不见,比如超声波
+
+Unless you're a bat.
+除非你是蝙蝠
+
+Basically, if we make a recording of music, and there's data in the ultrasonic frequency range,
+举个例子,如果录音乐,超声波数据都可以扔掉 \N 因为人类听不到超声波
+
+we can discard it, because we know that humans can't hear it.
+举个例子,如果录音乐,超声波数据都可以扔掉 \N 因为人类听不到超声波
+
+On the other hand, humans are very sensitive to frequencies in the vocal range, like people
+另一方面,人类对人声很敏感,所以应该尽可能保持原样
+
+singing, so it's best to preserve quality there as much as possible.
+另一方面,人类对人声很敏感,所以应该尽可能保持原样
+
+Deep bass is somewhere in between.
+低音介于两者之间,人类听得到,但不怎么敏感
+
+Humans can hear it, but we're less attuned to it.
+低音介于两者之间,人类听得到,但不怎么敏感
+
+We mostly sense it.
+一般是感觉到震动
+
+Lossy audio compressors takes advantage of this, and encode different
+有损音频压缩利用这一点,用不同精度编码不同频段
+
+frequency bands at different precisions.
+有损音频压缩利用这一点,用不同精度编码不同频段
+
+Even if the result is rougher, it's likely that users won't perceive the difference.
+听不出什么区别,不会明显影响体验
+
+Or at least it doesn't dramatically affect the experience.
+听不出什么区别,不会明显影响体验
+
+And here comes the hate mail from the audiophiles!
+音乐发烧友估计要吐槽了!
+
+You encounter this type of audio compression all the time.
+日常生活中你会经常碰到这类音频压缩
+
+It's one of the reasons you sound different on a cellphone versus in person.
+所以你在电话里的声音 和现实中不一样
+
+The audio data is being compressed, allowing more people to take calls at once.
+压缩音频是为了让更多人能同时打电话
+
+As the signal quality or bandwidth get worse, compression algorithms remove more data,
+如果网速变慢了,压缩算法会删更多数据
+
+further reducing precision, which is why Skype calls sometimes sound like robots talking.
+进一步降低声音质量,所以 Skype 通话有时听起来像机器人
+
+Compared to an uncompressed audio format, like a WAV or FLAC (there we go, got the audiophiles back)
+和没压缩的音频格式相比,比如 WAV 或 FLAC \N ( 这下音乐发烧友满意了)
+
+compressed audio files, like MP3s, are often 10 times smaller.
+压缩音频文件如 MP3,能小10倍甚至更多.
+
+That's a huge saving!
+省了超多空间!
+
+And it's why I've got a killer music collection on my retro iPod.
+所以我的旧 iPod 上有一堆超棒的歌
+
+Don't judge.
+别批判我
+
+This idea of discarding or reducing precision in a manner that aligns with human perception
+这种删掉人类无法感知的数据的方法,叫"感知编码"
+
+is called perceptual coding,
+这种删掉人类无法感知的数据的方法,叫"感知编码"
+
+and it relies on models of human perception,
+它依赖于人类的感知模型,模型来自"心理物理学"领域
+
+which come from a field of study called Psychophysics.
+它依赖于人类的感知模型,模型来自"心理物理学"领域
+
+This same idea is the basis of lossy compressed image formats, most famously JPEGs.
+这是各种"有损压缩图像格式"的基础,最著名的是 JPEG
+
+Like hearing, the human visual system is imperfect.
+就像听力一样,人的视觉系统也不是完美的.
+
+We're really good at detecting sharp contrasts, like the edges of objects,
+我们善于看到尖锐对比,比如物体的边缘
+
+but our perceptual system isn't so hot with subtle color variations.
+但我们看不出颜色的细微变化
+
+JPEG takes advantage of this by breaking images up into blocks of 8x8 pixels,
+JPEG 利用了这一点,把图像分解成 8x8 像素块
+
+then throwing away a lot of the high-frequency spatial data.
+然后删掉大量高频率空间数据
+
+For example, take this photo of our directors dog - Noodle.
+举个例子,这是导演的狗,面面
+
+So cute!
+超可爱!
+
+Let's look at a patch of 8x8 pixels.
+我们来看其中一个 8x8 像素
+
+Pretty much every pixel is different from its neighbor,
+几乎每个像素都和相邻像素不同,用无损技术很难压缩 \N 因为太多不同点了
+
+making it hard to compress with loss-less techniques because there's just a lot going on.
+几乎每个像素都和相邻像素不同,用无损技术很难压缩 \N 因为太多不同点了
+
+Lots of little details.
+很多小细节
+
+But human perception doesn't register all those details.
+但人眼看不出这些细节
+
+So, we can discard a lot of that detail, and replace it with a simplified patch like this.
+因此可以删掉很多,用这样一个简单的块来代替
+
+This maintains the visual essence, but might only use 10% of the data.
+这看起来一样,但可能只占10%的原始数据
+
+We can do this for all the patches in the image and get this result.
+我们可以对所有 8x8 块做一样的操作
+
+You can still see it's a dog, but the image is rougher.
+图片依然可以认出是一只狗,只是更粗糙一些
+
+So, that's an extreme example, going from a slightly compressed JPEG to a highly compressed one,
+以上例子比较极端,进行了高度压缩,只有原始大小的八分之一
+
+one-eighth the original file size.
+以上例子比较极端,进行了高度压缩,只有原始大小的八分之一
+
+Often, you can get away with a quality somewhere in between, and perceptually,
+通常你可以取得平衡,图片看起来差不多,但文件小不少
+
+it's basically the same as the original.
+通常你可以取得平衡,图片看起来差不多,但文件小不少
+
+Can you tell the difference between the two?
+你看得出两张图的区别吗?
+
+Probably not, but I should mention that video compression plays a role in that too,
+估计看不出,但我想提一下,视频压缩也造成了影响
+
+since I'm literally being compressed in a video right now.
+毕竟你现在在看视频啊
+
+Videos are really just long sequences of images, so a lot of what I said
+视频只是一长串连续图片 \N 所以图片的很多方面也适用于视频
+
+about them applies here too.
+视频只是一长串连续图片 \N 所以图片的很多方面也适用于视频
+
+But videos can do some extra clever stuff, because between frames,
+但视频可以做一些小技巧 \N 因为帧和帧之间很多像素一样
+
+a lot of pixels are going to be the same.
+但视频可以做一些小技巧 \N 因为帧和帧之间很多像素一样
+
+Like this whole background behind me!
+比如我后面的背景!
+
+This is called temporal redundancy.
+这叫 时间冗余
+
+We don't need to re-transmit those pixels every frame of the video.
+视频里不用每一帧都存这些像素 \N 可以只存变了的部分
+
+We can just copy patches of data forward.
+视频里不用每一帧都存这些像素 \N 可以只存变了的部分
+
+When there are small pixel differences, like the readout on this frequency generator behind me,
+当帧和帧之间有小小的差异时,比如后面这个频率发生器
+
+most video formats send data that encodes just the difference between patches,
+很多视频编码格式,只存变化的部分
+
+which is more efficient than re-transmitting all the pixels afresh, again taking advantage
+这比存所有像素更有效率 \N 利用了帧和帧之间的相似性
+
+of inter-frame similarity.
+这比存所有像素更有效率 \N 利用了帧和帧之间的相似性
+
+The fanciest video compression formats go one step further.
+更高级的视频压缩格式 会更进一步
+
+They find patches that are similar between frames, and not only copy them forward, with
+找出帧和帧之间相似的补丁 \N 然后用简单效果实现,比如移动和旋转
+
+or without differences, but also can apply simple effects to them, like a shift or rotation.
+找出帧和帧之间相似的补丁 \N 然后用简单效果实现,比如移动和旋转
+
+They can also lighten or darken a patch between frames.
+变亮和变暗
+
+So, if I move my hand side to side like this the video compressor will identify the similarity,
+如果我这样摆手,视频压缩器会识别到相似性
+
+capture my hand in one or more patches, then just move these patches around between frames.
+用一个或多个补丁代表我的手,然后帧之间直接移动这些补丁
+
+You're actually seeing my hand from the past kinda freaky, but it uses a lot less data.
+所以你看到的是我过去的手(不是实时的)\N 有点可怕 但数据量少得多
+
+MPEG-4 videos, a common standard, are often 20 to 200 times
+MPEG-4 是常见标准,可以比原文件小20倍到200倍
+
+smaller than the original, uncompressed file.
+MPEG-4 是常见标准,可以比原文件小20倍到200倍
+
+However, encoding frames as translations and rotations of patches from previous frames
+但用补丁的移动和旋转 来更新画面
+
+can go horribly wrong when you compress too heavily, and there isn't
+当压缩太严重时会出错 \N 没有足够空间更新补丁内的像素
+
+enough space to update pixel data inside of the patches.
+当压缩太严重时会出错 \N 没有足够空间更新补丁内的像素
+
+The video player will forge ahead, applying the right motions,
+即使补丁是错的,视频播放器也会照样播放
+
+even if the patch data is wrong.
+即使补丁是错的,视频播放器也会照样播放
+
+And this leads to some hilarious and trippy effects, which I'm sure you've seen.
+导致一些怪异又搞笑的结果,你肯定见过这些.
+
+Overall, it's extremely useful to have compression techniques for all the types of data I discussed today.
+总的来说,压缩对大部分文件类型都有用
+
+(I guess our imperfect vision and hearing are "useful," too.)
+从这个角度来讲,人类不完美的视觉和听觉 也算有用
+
+And it's important to know about compression because it allows users to
+学习压缩非常重要 \N 因为可以高效存储图片,音乐,视频
+
+store pictures, music, and videos in efficient ways.
+学习压缩非常重要 \N 因为可以高效存储图片,音乐,视频
+
+Without it, streaming your favorite Carpool Karaoke videos on YouTube would be nearly impossible,
+如果没有压缩 \N 在 YouTube 看"明星拼车唱歌"几乎不可能
+
+due to bandwidth and the economics of transmitting that volume of data for free.
+因为你的带宽可能不够(会很卡) \N 而且供应商不愿意免费传输那么多数据
+
+And now when your Skype calls sound like they're being taken over by demons,
+现在你知道为什么打 Skype 电话 \N 有时像在和恶魔通话
+
+you'll know what's really going on.
+现在你知道为什么打 Skype 电话 \N 有时像在和恶魔通话
+
+I'll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/22. 命令行界面-Keyboards & Command Line Interfaces.ass.txt b/(字幕)全40集中英字幕文本/22. 命令行界面-Keyboards & Command Line Interfaces.ass.txt
new file mode 100644
index 0000000..23f12cc
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/22. 命令行界面-Keyboards & Command Line Interfaces.ass.txt
@@ -0,0 +1,609 @@
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+We've talked a lot about inputs and outputs in this series,
+我们之前讨论过 输入输出 \N 但都是计算机组件互相输入输出
+
+but they've mostly been between different parts of a computer
+我们之前讨论过 输入输出 \N 但都是计算机组件互相输入输出
+
+like outputting data from RAM or inputting instructions to a CPU.
+比如 RAM 输出数据,或输指令进 CPU
+
+We haven't discussed much about inputs coming from humans.
+我们还没讲 来自人类的输入
+
+We also haven't learned how people get information out of a computer,
+也没讲怎么从电脑中拿出信息,除了用打孔纸卡
+
+other than by printing or punching it onto paper.
+也没讲怎么从电脑中拿出信息,除了用打孔纸卡
+
+Of course, there's a wide variety of input and output devices that
+当然,有很多种 "输入输出设备" \N 让我们和计算机交互
+
+allow us users to communicate with computers.
+当然,有很多种 "输入输出设备" \N 让我们和计算机交互
+
+They provide an interface between human and computer.
+它们在人类和机器间提供了界面
+
+And today, there's a whole field of study called Human-Computer Interaction.
+如今有整个学科专门研究这个,叫 "人机交互"
+
+These interfaces are so fundamental to the user experience
+界面对用户体验非常重要 \N 所以是我们接下来几集的重点
+
+that they're the focus of the next few episodes.
+界面对用户体验非常重要 \N 所以是我们接下来几集的重点
+
+As we discussed at the very beginning of the series,
+在系列开头的几集,我们提过
+
+the earliest mechanical and electro-mechanical computing devices
+早期机械计算设备 \N 用齿轮,旋钮和开关等机械结构来输入输出
+
+used physical controls for inputs and outputs, like gears, knobs and switches,
+早期机械计算设备 \N 用齿轮,旋钮和开关等机械结构来输入输出
+
+and this was pretty much the extent of the human interface.
+这些就是交互界面
+
+Even the first electronic computers, like Colossus and ENIAC,
+甚至早期电子计算机 比如 Colossus 和 ENIAC
+
+were configured using huge panels of mechanical controls and patch wires.
+也是用一大堆机械面板和线 来操作
+
+It could take weeks to enter in a single program, let alone run it,
+输入一个程序可能要几星期,还没提运行时间.
+
+and to get data out after running a program, results were most often printed to paper.
+运行完毕后想拿出数据,一般是打印到纸上
+
+Paper printers were so useful
+打印机超有用
+
+that even Babbage designed one for his Difference Engine,
+甚至 查尔斯·巴贝奇 都给差分机专门设计了一个
+
+and that was in the 1820s!
+那可是 1820 年代!
+
+However, by the 1950s, mechanical inputs were rendered obsolete
+然而,到 1950 年代,机械输入完全消失
+
+by programs and data stored entirely on mediums like punch cards and magnetic tape.
+因为出现了打孔纸卡和磁带
+
+Paper printouts were still used for the final output,
+但输出仍然是打印到纸上
+
+and huge banks of indicator lights were developed
+还有大量指示灯,在运行中提供实时反馈
+
+to provide real time feedback while the program was in progress.
+还有大量指示灯,在运行中提供实时反馈
+
+It's important to recognize that computer input of this era was
+那个时代的特点是 尽可能迁就机器 \N 对人类好不好用是其次
+
+designed to be as simple and robust as possible for computers.
+那个时代的特点是 尽可能迁就机器 \N 对人类好不好用是其次
+
+Ease and understanding for users was a secondary concern.
+那个时代的特点是 尽可能迁就机器 \N 对人类好不好用是其次
+
+Punch tape is a great example
+打孔纸带就是个好例子
+
+this was explicitly designed to be easy for computers to read.
+就是为了方便计算机读取
+
+The continuous nature of tape made it easy to handle mechanically,
+纸带是连续的,方便机器处理
+
+and the holes could be reliably detected with a mechanical or optical system,
+纸孔可以方便地 用机械或光学手段识别
+
+which encoded instructions and data.
+纸孔可以编码程序和数据
+
+But of course, humans don't think in terms of little punched holes on strips of paper.
+当然, 人类不是以纸孔方式思考的.
+
+So, the burden was on programmers.
+所以负担放到了程序员身上
+
+They had to spend the extra time and effort to convert their ideas and programs
+他们要花额外时间和精力 \N 转成计算机能理解的格式
+
+into a language and a format that was easy for computers of the era to understand
+他们要花额外时间和精力 \N 转成计算机能理解的格式
+
+often with the help of additional staff and auxiliary devices.
+一般需要额外人员和设备帮忙
+
+It's also important to note that early computers, basically pre-1950,
+要注意的是,基本上 1950 年前的早期计算机 \N "输入"的概念很原始
+
+had an extremely simple notion of human input.
+要注意的是,基本上 1950 年前的早期计算机 \N "输入"的概念很原始
+
+Yes, humans input programs and data into computers,
+是的,的确是人类负责输入程序和数据 \N 但计算机不会交互式回应
+
+but these machines generally didn't respond interactively to humans.
+是的,的确是人类负责输入程序和数据 \N 但计算机不会交互式回应
+
+Once a program was started, it typically ran until it was finished.
+程序开始运行后会一直运行 直到结束
+
+That's because these machines were way too expensive to be
+因为机器太贵了 \N 不能等人类慢慢敲命令和给数据
+
+waiting around for humans to type a command or enter data.
+因为机器太贵了 \N 不能等人类慢慢敲命令和给数据
+
+Any input needed for a computation was fed in at the same time as the program.
+要同时放入程序和数据
+
+This started to change in the late 1950s.
+这在 1950 年代晚期开始发生变化
+
+On one hand, smaller-scale computers started to become cheap enough
+一方面,小型计算机变得足够便宜
+
+that it was feasible to have a human-in-the loop;
+让人类来回和计算机交互 变得可以接受
+
+that is, a back and forth between human and computer.
+交互式就是人和计算机之间来回沟通
+
+And on the other hand,
+而另一方面
+
+big fancy computers became fast and sophisticated enough to support many programs and users at once,
+大型计算机变得更快,能同时支持多个程序和多个用户
+
+what were called multitasking and time-sharing systems .
+这叫"多任务"和"分时系统"
+
+But these computers needed a way to get input from users.
+但交互式操作时 \N 计算机需要某种方法来获得用户输入
+
+For this, computers borrowed the ubiquitous data entry mechanism of the era: keyboards.
+所以借用了当时已经存在的数据录入机制:键盘
+
+At this point, typing machines had already been in use for a few centuries,
+当时,打字机已经存在几个世纪了
+
+but it was Christopher Latham Sholes, who invented the modern typewriter in 1868.
+但现代打字机是 \N克里斯托弗·莱瑟姆·肖尔斯 在 1868 年发明的
+
+It took until 1874 to refine the design and manufacture it,
+虽然到 1874 年才完成设计和制造
+
+but it went on to be a commercial success.
+但之后取得了商业成功
+
+Sholes' typewriter adopted an unusual keyboard layout that you know well QWERTY
+肖尔斯 的打字机用了不寻常的布局,QWERTY
+
+named for the top-left row of letter keys.
+名字来自键盘左上角按键
+
+There has been a lot of speculation as to why this design was used.
+为什么这么设计 有很多猜测
+
+The most prevalent theory is that it put common letter pairings in English far apart
+最流行的理论是 这样设计是为了 \N 把常见字母放得远一些,避免按键卡住
+
+to reduce the likelihood of typebars jamming when entered in sequence.
+最流行的理论是 这样设计是为了 \N 把常见字母放得远一些,避免按键卡住
+
+It's a convenient explanation, but it's also probably false,
+这个解释虽然省事,但可能是错的,或至少不够全面
+
+or at least not the full story.
+这个解释虽然省事,但可能是错的,或至少不够全面
+
+In fact, QWERTY puts many common letter pairs together,
+事实上,QWERTY 把很多常见字母放在了一起 \N 比如 TH 和 ER
+
+like "TH" and "ER".
+事实上,QWERTY 把很多常见字母放在了一起 \N 比如 TH 和 ER
+
+And we know that Sholes and his team went through many iterations
+我们知道 肖尔斯和他的团队设计了很多版 \N 才进化到这个布局
+
+before arriving at this iconic arrangement.
+我们知道 肖尔斯和他的团队设计了很多版 \N 才进化到这个布局
+
+Regardless of the reason, the commercial success of Sholes' typewriter meant
+总之,肖尔斯 的打字机取得了成功 \N 所以其它公司很快开始抄他的设计
+
+the competitor companies that soon followed duplicated his design.
+总之,肖尔斯 的打字机取得了成功 \N 所以其它公司很快开始抄他的设计
+
+Many alternative keyboard layouts have been proposed over the last century,
+过去一个世纪有不少新的键盘布局被发明,宣称各种好处
+
+claiming various benefits.
+过去一个世纪有不少新的键盘布局被发明,宣称各种好处
+
+But, once people had invested the time to learn QWERTY,
+但人们已经熟悉了 QWERTY 布局 \N 根本不想学新布局
+
+they just didn't want to learn something new.
+但人们已经熟悉了 QWERTY 布局 \N 根本不想学新布局
+
+This is what economists would call a switching barrier or switching cost.
+这是经济学家所说的 转换成本
+
+And it's for this very basic human reason
+所以现在都快1个半世纪了 \N 我们还在用 QWERTY 键盘布局
+
+that we still use QWERTY keyboards almost a century and a half later!
+所以现在都快1个半世纪了 \N 我们还在用 QWERTY 键盘布局
+
+I should mention that QWERTY isn't universal.
+我应该提一下,QWERTY 不是通用的
+
+There are many international variants,
+有很多变体,比如法国 AZERTY 布局
+
+like the French AZERTY layout,
+有很多变体,比如法国 AZERTY 布局
+
+or the QWERTZ layout common in central Europe.
+以及中欧常见的 QWERTZ 布局
+
+Interestingly, Sholes didn't envision that typing would ever be faster than handwriting,
+有趣的是,肖尔斯 根本没想到打字会比手写快
+
+which is around 20 words per minute.
+手写速度大约是每分钟 20 个
+
+Typewriters were introduced chiefly for legibility and standardization of documents, not speed.
+打字机主要为了易读性和标准化,而不是速度
+
+However, as they became standard equipment in offices, the desire for speedy typing grew,
+然而随着打字机成为办公室标配 \N 对快速打字的渴望越来越大
+
+and there were two big advances that unlocked typing's true potential.
+有两个重大进步 解放了打字的潜力
+
+Around 1880, Elizabeth Longley, a teacher at the Cincinnati Shorthand and Type-Writer Institute,
+1880年左右,辛辛那提速记学院 \N 一名叫 伊丽莎白·朗利 的老师
+
+started to promote ten-finger typing.
+开始推广 十指打字
+
+This required much less finger movement than hunt-and-peck,
+比一个手指打字要移动的距离短得多,所以速度更快
+
+so it offered enhanced typing speeds.
+比一个手指打字要移动的距离短得多,所以速度更快
+
+Then, a few years later, Frank Edward McGurrin, a federal court clerk in Salt Lake City,
+几年后,弗兰克·爱德华·麦克格林 \N 盐湖城的一位联邦法庭书记
+
+taught himself to touch-type; as in, he didn't need to look at the keys while typing.
+学会了盲打,打字时不用看键盘
+
+In 1888, McGurrin won a highly publicized typing-speed contest,
+1888年,麦格高林 赢了备受关注的打字速度比赛
+
+after which ten-finger, touch-typing began to catch on.
+之后"十指盲打"开始流行
+
+Professional typists were soon able to achieve speeds upwards of 100 words per minute,
+专业打字员 每分钟 100 字以上
+
+much faster than handwriting!
+比手写快多了!而且清晰又整洁!
+
+And nice and neat too!
+比手写快多了!而且清晰又整洁!
+
+So, humans are pretty good with typewriters,
+虽然人类擅长用打字机
+
+but we can't just plunk down a typewriter in front of a computer and have it type
+但我们没法把打字机塞到计算机面前,让它打字
+
+they have no fingers!
+计算机又没有手指
+
+Instead, early computers adapted a special type of typewriter that was used for telegraphs,
+所以早期计算机用了一种特殊打字机,是专门用来发电报的,
+
+called a teletype machine.
+叫 电传打字机
+
+These were electromechanically-augmented typewriters
+这些打字机是强化过的,可以用电报线发送和接收文本
+
+that can send and receive text over telegraph lines.
+这些打字机是强化过的,可以用电报线发送和接收文本
+
+Pressing a letter on one teletype keyboard would cause a signal to be sent,
+按一个字母,信号会通过电报线,发到另一端
+
+over telegraph wires, to a teletype machine on the other end,
+按一个字母,信号会通过电报线,发到另一端
+
+which would then electromechanically type that letter.
+另一端的电传打字机会打出来
+
+This allowed two humans to type to one another over long distances.
+使得两人可以长距离沟通
+
+basically a steampunk version of a chat room.
+基本是个蒸汽朋克版聊天室
+
+Since these teletype machines already had an electronic interface,
+因为电传打字机有电子接口,稍作修改就能用于计算机
+
+they were easily adapted for computer use,
+因为电传打字机有电子接口,稍作修改就能用于计算机
+
+and teletype computer interfaces were common in the 1960s and 70s.
+电传交互界面在 1960~1970 很常见
+
+Interaction was pretty straightforward.
+用起来很简单
+
+Users would type a command, hit enter, and then the computer would type back.
+输入一个命令,按回车,然后计算机会输回来
+
+This text "conversation" between a user and a computer went back and forth.
+用户和计算机来回"对话"
+
+These were called command line interfaces,
+这叫"命令行界面"
+
+and they remained the most prevalent form of human-computer interaction
+它是最主要的人机交互方式,一直到 1980 年代
+
+up until around the 1980s.
+它是最主要的人机交互方式,一直到 1980 年代
+
+Command Line interaction on a teletype machine looks something like this.
+用电传打字机的命令行交互 类似这样:
+
+A user can type any number of possible commands.
+用户可以输入各种命令
+
+Let's check out a few,
+我们来看几个命令,先看当前目录有什么文件
+
+beginning with seeing all of the files in the current directory we're in.
+我们来看几个命令,先看当前目录有什么文件
+
+For this, we would type the command, "ls", which is short for list,
+输入命令 ls,名字来自 list 的缩写
+
+and the computer replies with a list of the files in our current directory.
+然后计算机会列出 当前目录里的所有文件
+
+If we want to see what's in our "secretStarTrekDiscoveryCast.txt.txt file",
+如果想看 secretStarTrekDiscoveryCast.txt 有什么
+
+we use yet another command to display the contents.
+要用另一个命令 显示文件内容
+
+In unix, we can call "cat" - short for concatenate.
+unix 用 cat 命令显示文件内容 \N cat 是连接(concatenate)的缩写
+
+We need to specify which file to display, so we include that after the command, called an argument.
+然后指定文件名,指定的方法是写在 cat 命令后面 \N 传给命令的值叫 参数
+
+If you're connected to a network with other users,
+如果同一个网络里有其他人
+
+you can use a primitive version of a Find My Friends app
+你可以用 finger 命令找朋友 \N 就像是个很原始的"找朋友" App
+
+to get more info on them with the command "finger".
+你可以用 finger 命令找朋友 \N 就像是个很原始的"找朋友" App
+
+Electromechanical teletype machines
+电传打字机 直到1970年代左右都是主流交互方式
+
+were the primary computing interface for most users up until around the 1970s.
+电传打字机 直到1970年代左右都是主流交互方式
+
+Although computer screens first emerged in the 1950s,
+尽管屏幕最早出现在 1950 年代 \N 但对日常使用太贵 而且分辨率低
+
+and were used for graphics they were too expensive and low resolution for everyday use.
+尽管屏幕最早出现在 1950 年代 \N 但对日常使用太贵 而且分辨率低
+
+However, mass production of televisions for the consumer market, and general improvements
+然而因为针对普通消费者的电视机开始量产 \N 同时处理器与内存也在发展
+
+in processors and memory, meant that by 1970, it was economically viable
+到1970年代,屏幕代替电传打字机 变得可行
+
+to replace electromechanical teletype machines with screen-based equivalents.
+到1970年代,屏幕代替电传打字机 变得可行
+
+But rather than build a whole new standard to interface computers with these screens,
+但与其为屏幕 专门做全新的标准
+
+engineers simply recycled the existing text-only, teletype protocol.
+工程师直接用现有的 电传打字机协议
+
+These machines used a screen, which simulated endless paper.
+屏幕就像无限长度的纸 \N 除了输入和输出字,没有其它东西
+
+It was text in and text out, nothing more.
+屏幕就像无限长度的纸 \N 除了输入和输出字,没有其它东西
+
+The protocol was identical, so computers couldn't even tell if it was paper or a screen.
+协议是一样的,所以计算机分不出是纸还是屏幕
+
+These virtual teletype or glass teletype machines became known as terminals .
+这些"虚拟电传打字机"或"玻璃电传打字机"\N 叫 终端
+
+By 1971, it was estimated, in the United States,
+到1971年,美国大约有 7 万台电传打字机 \N 以及 7 万个终端
+
+there was something on the order of 70,000 electro-mechanical teletype machines
+到1971年,美国大约有 7 万台电传打字机 \N 以及 7 万个终端
+
+and 70,000 screen-based terminals in use.
+到1971年,美国大约有 7 万台电传打字机 \N 以及 7 万个终端
+
+Screens were so much better, faster and more flexible, though.
+屏幕又好又快又灵活
+
+Like, you could delete a mistake and it would disappear.
+如果删一个错别字 会立刻消失
+
+So, by the end of the 1970s, screens were standard.
+所以到 1970 年代末 屏幕成了标配
+
+You might think that command line interfaces are way too primitive to do anything interesting.
+你也许会想,命令行界面太原始了 \N 做不了什么有意思的事
+
+But even when the only interaction was through text, programmers found a way to make it fun.
+即便只有文字 \N 程序员也找到了一些方法,让它变得有趣一些
+
+Early interactive, text-based computer games include famous titles like Zork,
+早期的著名交互式文字游戏 Zork
+
+created in 1977.
+出现于 1977 年
+
+Players of these sorts of early games were expected to engage their limitless imaginations
+早期游戏玩家需要丰富的想象力
+
+as they visualized the fictional world around them, like what terrifying monster confronted them
+想像自己身在虚构世界,比如"四周漆黑一片
+
+when it was pitch black and you were likely to be eaten by a grue.
+附近可能有怪物会吃掉你"
+
+Let's go back to our command line, now on a fancy screen-based terminal, and play!
+我们用命令行玩玩看
+
+Just like before, we can see what's in our current directory with the "ls" command.
+就像之前,我们可以用 ls 命令,看当前目录有什么
+
+Then, let's go into our games directory by using the "cd" command, for " change directory ".
+然后用 cd 命令,进入游戏文件夹 \N cd 的意思是 "改变文件夹"
+
+Now, we can use our "ls" command again to see what games are installed on our computer.
+再用 ls 看有哪些游戏
+
+Sweet, we have Adventure!
+超棒!我们有"冒险旅程"!(adventure)
+
+All we have to do to run this program is type its name.
+想运行这个程序,只需要输入它的名字
+
+Until this application halts, or we quit it, it takes over the command line.
+在程序自行停止或我们主动退出前 \N 它会接管命令行
+
+What you're seeing here is actual interaction from "Colossal Cave Adventure",
+你现在看到的,是"巨大洞穴冒险"这款游戏的真实输出
+
+first developed by Will Crowther in 1976.
+由 Will Crowther 在 1976 年开发
+
+In the game, players can type in one- or two-word commands to move around,
+游戏中,玩家可以输入1个词或2个词的命令 \N 来移动人物,和其他东西交互,捡物品等
+
+interact with objects, pickup items and so on.
+游戏中,玩家可以输入1个词或2个词的命令 \N 来移动人物,和其他东西交互,捡物品等
+
+The program acts as the narrator, describing locations, possible actions,
+然后游戏会像旁白一样,输出你的当前位置, \N 告诉你能做什么动作,以及你的动作造成的结果
+
+and the results of those actions.
+然后游戏会像旁白一样,输出你的当前位置, \N 告诉你能做什么动作,以及你的动作造成的结果
+
+Certain ones resulted in death!
+有些动作会导致死亡!
+
+The original version only had 66 locations to explore,
+原始版本只有 66 个地方可供探索
+
+but it's widely considered to be the first example of interactive fiction.
+但它被广泛认为是最早的互动式小说
+
+These text adventure games later became multiplayer, called MUDs or Multi-User Dungeons.
+游戏后来从纯文字进化成多人游戏 \N 简称 MUD,或多人地牢游戏
+
+And they're the great-forbearers of the awesome graphical MMORPG's
+是如今 MMORPG 的前辈 \N (大型多人在线角色扮演游戏)
+
+(massive, multiplayer online role playing games) we enjoy today.
+是如今 MMORPG 的前辈 \N (大型多人在线角色扮演游戏)
+
+And if you want to know more about the history of these and other games
+如果你想了解游戏史,我们有游戏速成课 \N 主持人 Andre Meadows
+
+we've got a whole series on it hosted by Andre Meadows!
+如果你想了解游戏史,我们有游戏速成课 \N 主持人 Andre Meadows
+
+Command line interfaces, while simple, are very powerful.
+命令行界面虽然简单 但十分强大
+
+Computer programming is still very much a written task, and as such,
+编程大部分依然是打字活 \N 所以用命令行比较自然
+
+command lines are a natural interface.
+编程大部分依然是打字活 \N 所以用命令行比较自然
+
+For this reason, even today, most programmers use
+因此,即使是现在 \N 大多数程序员工作中依然用命令行界面
+
+command line interfaces as part of their work.
+因此,即使是现在 \N 大多数程序员工作中依然用命令行界面
+
+And they're also the most common way to access computers that are far away,
+而且用命令行访问远程计算机 是最常见的方式 \N 比如服务器在另一个国家
+
+like a server in a different country.
+而且用命令行访问远程计算机 是最常见的方式 \N 比如服务器在另一个国家
+
+If you're running Windows, macOS or Linux,
+如果你用 Windows, macOS, Linux
+
+your computer has a command line interface one you may have never used.
+你的计算机有命令行界面,但你可能从来没用过
+
+Check it out by typing "cmd" in your Windows search bar,
+你可以在 Windows 搜索栏中输入 cmd
+
+or search for Terminal on Mac.
+或在 Mac 上搜 Terminal
+
+Then install a copy of Zork and play on!
+然后你可以装 Zork 玩!
+
+So, you can see how these early advancements still have an impact on computing today.
+现在你知道了 \N 早期计算机的发展是如何影响到现在的.
+
+Just imagine if your phone didn't have a good ol' fashioned QWERTY keyboard.
+想想要是手机没有 QWERTY 键盘 \N 在 Instagram 给图片配标题可就麻烦了
+
+It could take forever to type your Instagram captions.
+想想要是手机没有 QWERTY 键盘 \N 在 Instagram 给图片配标题可就麻烦了
+
+But, there's still something missing from our discussion.
+但我们还有一个重要话题没讲
+
+All the sweet sweet graphics!
+美妙的图形界面!
+
+That's our topic for next week.
+这是下周的主题
+
+See you soon.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/23. 屏幕&2D 图形显示-Screens&2D Graphics.ass.txt b/(字幕)全40集中英字幕文本/23. 屏幕&2D 图形显示-Screens&2D Graphics.ass.txt
new file mode 100644
index 0000000..993e829
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/23. 屏幕&2D 图形显示-Screens&2D Graphics.ass.txt
@@ -0,0 +1,591 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+This 1960 PDP-1 is a great example of early computing with graphics.
+这台 1960 年的 PDP-1 \N 是一个早期图形计算机的好例子
+
+You can see a cabinet-sized computer on the left,
+你可以看到 左边是柜子大小的电脑
+
+an electromechanical teletype machine in the middle,
+中间是电传打字机
+
+and a round screen on the right.
+右边是一个圆形的屏幕
+
+Note how they're separated.
+注意它们是分开的
+
+That's because text-based tasks and graphical tasks were often distinct back then.
+因为当时文本任务和图形任务是分开的.
+
+In fact, these early computer screens had a very hard time rendering crisp text, whereas
+事实上,早期的屏幕无法显示清晰的文字
+
+typed paper offered much higher contrast and resolution.
+而打印到纸上 有更高的对比度和分辨率
+
+The most typical use for early computer screens was to keep track of a program's operation,
+早期屏幕的典型用途 是跟踪程序的运行情况
+
+like values in registers.
+比如寄存器的值
+
+It didn't make sense to have a teletype machine print this on paper
+如果用打印机 \N 一遍又一遍打印出来没有意义
+
+over and over and over again -- that'd waste a lot of paper, and it was slow.
+不仅费纸而且慢
+
+On the other hand, screens were dynamic and quick to update -- perfect for temporary values.
+另一方面,屏幕更新很快,对临时值简直完美
+
+Computer screens were rarely considered for program output, though.
+但屏幕很少用于输出计算结果,结果一般都打印到纸上
+
+Instead, any results from a computation were typically written to paper
+但屏幕很少用于输出计算结果,结果一般都打印到纸上
+
+or some other more permanent medium.
+或其它更永久的东西上
+
+But, screens were so darn useful
+但屏幕超有用 \N 到1960年代,人们开始用屏幕做很多酷炫的事情
+
+that by the early 1960s, people started to use them for awesome things.
+但屏幕超有用 \N 到1960年代,人们开始用屏幕做很多酷炫的事情
+
+A lot of different display technologies have been created over the decades,
+几十年间出现了很多显示技术
+
+but the most influential, and also the earliest, were Cathode Ray Tubes, or CRT
+但最早最有影响力的是 阴极射线管(CRT)
+
+These work by shooting electrons out of an emitter at a phosphor-coated screen.
+原理是把电子发射到 有磷光体涂层的屏幕上
+
+When electrons hit the coating, it glows for a fraction of a second.
+当电子撞击涂层时 会发光几分之一秒
+
+Because electrons are charged particles,
+由于电子是带电粒子,路径可以用磁场控制
+
+their paths can be manipulated with electromagnetic fields.
+由于电子是带电粒子,路径可以用磁场控制
+
+Plates or coils are used inside to steer electrons to a desired position,
+屏幕内用板子或线圈 把电子引导到想要的位置
+
+both left-right and up-down.
+上下左右都行
+
+With this control, there are two ways you can draw graphics.
+既然可以这样控制,有 2 种方法绘制图形 \N 1. 引导电子束描绘出形状
+
+The first option is to direct the electron beam to trace out shapes.
+既然可以这样控制,有 2 种方法绘制图形 \N 1. 引导电子束描绘出形状
+
+This is called Vector Scanning.
+这叫"矢量扫描"
+
+Because the glow persists for a little bit, if you repeat the path quickly enough,
+因为发光只持续一小会儿 \N 如果重复得足够快 可以得到清晰的图像
+
+you create a solid image.
+因为发光只持续一小会儿 \N 如果重复得足够快 可以得到清晰的图像
+
+The other option is to repeatedly follow a fixed path, scanning line by line,
+2. 按固定路径,一行行来 \N 从上向下,从左到右,不断重复
+
+from top left to bottom right, and looping over and over again.
+2. 按固定路径,一行行来 \N 从上向下,从左到右,不断重复
+
+You only turn on the electron beam at certain points to create graphics.
+只在特定的点打开电子束,以此绘制图形
+
+This is called Raster Scanning.
+这叫 "光栅扫描"
+
+With this approach, you can display shapes... and even text... all made of little line segments.
+用这种方法,可以用很多小线段绘制形状 甚至文字
+
+Eventually, as display technologies improved,
+最后,因为显示技术的发展
+
+it was possible to render crisp dots onto the screen, aka pixels.
+我们终于可以在屏幕上显示清晰的点,叫"像素"
+
+The Liquid Crystal Displays, or LCDs,
+液晶显示器,简称 LCD
+
+that we use today are quite a different technology.
+和以前的技术相当不同
+
+But, they use raster scanning too,
+但 LCD 也用光栅扫描 \N 每秒更新多次 像素里红绿蓝的颜色
+
+updating the brightness of little tiny red, green and blue pixels many times a second.
+但 LCD 也用光栅扫描 \N 每秒更新多次 像素里红绿蓝的颜色
+
+Interestingly, most early computers didn't use pixels
+有趣的是,很多早期计算机不用像素
+
+-- not because they couldn't physically,
+- 不是技术做不到, 而是因为像素占太多内存
+
+but because it consumed way too much memory for computers of the time.
+- 不是技术做不到, 而是因为像素占太多内存
+
+A 200 by 200 pixel image contains 40,000 pixels.
+200像素×200像素的图像,有 40,000 个像素
+
+Even if you use just one bit of data for each pixel,
+哪怕每个像素只用一个 bit 表示 \N 代表黑色或白色,连灰度都没有!
+
+that's black OR white -- not grayscale!
+哪怕每个像素只用一个 bit 表示 \N 代表黑色或白色,连灰度都没有!
+
+-- the image would consume 40,000 bits of memory.
+- 会占 40,000 bit 内存 \N 比 PDP-1 全部内存的一半还多
+
+That would have gobbled up more than half of a PDP-1's entire RAM.
+- 会占 40,000 bit 内存 \N 比 PDP-1 全部内存的一半还多
+
+So, computer scientists and engineers had to come up with clever tricks to render graphics
+所以计算机科学家和工程师,得想一些技巧来渲染图形 \N 等内存发展到足够用
+
+until memory sizes caught up to our pixelicious ambitions.
+所以计算机科学家和工程师,得想一些技巧来渲染图形 \N 等内存发展到足够用
+
+Instead of storing tens of thousands of pixels,
+所以早期计算机不存大量像素值 \N 而是存符号,80x25个符号最典型
+
+early computers stored a much smaller grid of letters, most typically 80 by 25 characters.
+所以早期计算机不存大量像素值 \N 而是存符号,80x25个符号最典型
+
+That's 2000 characters in total.
+总共 2000 个字符
+
+And if each is encoded in 8 bits, using something like ASCII,
+如果每个字符用 8 位表示,比如用 ASCII
+
+it would consume 16,000 bits of memory for an entire screen full of text,
+总共才 16000 位,这种大小更合理
+
+which is way more reasonable.
+总共才 16000 位,这种大小更合理
+
+To pull this off, computers needed an extra piece of hardware that
+为此,计算机需要额外硬件
+
+could read characters out of RAM, and convert them into raster graphics to be drawn onto the screen.
+来从内存读取字符,转换成光栅图形 \N 这样才能显示到屏幕上
+
+This was called a character generator, and they were basically the first graphics cards.
+这个硬件叫 "字符生成器",基本算是第一代显卡
+
+Inside, they had a little piece of Read Only Memory, a ROM,
+它内部有一小块只读存储器,简称 ROM
+
+that stored graphics for each character, called a dot matrix pattern.
+存着每个字符的图形,叫"点阵图案"
+
+If the graphics card saw the 8-bit code for the letter "K",
+如果图形卡看到一个 8 位二进制,发现是字母 K
+
+then it would raster scan the 2D pattern for the letter K onto the screen, in the appropriate position.
+那么会把字母 K 的点阵图案 \N光栅扫描显示到屏幕的适当位置
+
+To do this, the character generator had special access to a portion of a computer's memory
+为了显示,"字符生成器" 会访问内存中一块特殊区域 \N 这块区域专为图形保留,叫 屏幕缓冲区
+
+reserved for graphics, a region called the screen buffer.
+为了显示,"字符生成器" 会访问内存中一块特殊区域 \N 这块区域专为图形保留,叫 屏幕缓冲区
+
+Computer programs wishing to render text to the screen
+程序想显示文字时,修改这块区域里的值就行
+
+simply manipulated the values stored in this region,
+程序想显示文字时,修改这块区域里的值就行
+
+just as they could with any other data in RAM.
+程序想显示文字时,修改这块区域里的值就行
+
+This scheme required much less memory,
+这个方案用的内存少得多 \N 但也意味着 只能画字符到屏幕上
+
+but it also meant the only thing you could draw was text.
+这个方案用的内存少得多 \N 但也意味着 只能画字符到屏幕上
+
+Even still, people got pretty inventive with ASCII art!
+即使有这样限制 \N 人们用 ASCII 艺术发挥了很多创意!
+
+People also tried to make rudimentary, pseudo-graphical interfaces out of this basic set of characters
+也有人用字符模仿图形界面
+
+using things like underscores and plus signs to create boxes, lines and other primitive shapes.
+用下划线和加号来画盒子,线,和其他简单形状
+
+But, the character set was really too small to do anything terribly sophisticated.
+但字符集实在太小,做不了什么复杂的事
+
+So, various extensions to ASCII were made that added new semigraphical characters,
+因此对 ASCII 进行了各种扩展,加新字符
+
+like IBM's CP437 character set, seen here, which was used in DOS.
+比如上图的 IBM CP437 字符集,用于 DOS.
+
+On some systems, the text color and background color could be defined with a few extra bits.
+某些系统上 \N 可以用额外的 bit 定义字体颜色和背景颜色
+
+That allowed glorious interfaces like this DOS example,
+做出这样的 DOS 界面 \N 这界面只用了刚刚提到的字符集
+
+which is built entirely out the character set you just saw.
+做出这样的 DOS 界面 \N 这界面只用了刚刚提到的字符集
+
+Character generators were a clever way to save memory.
+字符生成器 是一种省内存的技巧 \N 但没办法绘制任意形状
+
+But, they didn't provide any way to draw arbitrary shapes.
+字符生成器 是一种省内存的技巧 \N 但没办法绘制任意形状
+
+And that's important if you want to draw content like electrical circuits, architectural
+绘制任意形状很重要 \N 因为电路设计,建筑平面图,地图,好多东西都不是文字!
+
+plans, maps, and... well pretty much everything that isn't text!
+绘制任意形状很重要 \N 因为电路设计,建筑平面图,地图,好多东西都不是文字!
+
+To do this, without resorting to memory-gobbling pixels,
+为了绘制任意形状,同时不吃掉所有内存
+
+computer scientists used the vector mode available on CRTs.
+计算机科学家用 CRT 上的"矢量模式"
+
+The idea is pretty straightforward: all content to be drawn on screen is defined by a series of lines.
+概念非常简单:所有东西都由线组成
+
+There's no text.
+没有文字这回事
+
+If you need to draw text, you have to draw it out of lines.
+如果要显示文字,就用线条画出来
+
+Don't read between the lines here. There is only lines!
+只有线条,没有别的
+
+Got it? Alright, no more word play.
+明白了吗?好,我们举个实例吧
+
+I'm drawing the line here.
+明白了吗?好,我们举个实例吧
+
+Let's pretend this video is a cartesian plane, 200 units wide and 100 tall, with the
+假设这个视频是一个 笛卡尔平面 \N 200个单位宽,100个单位高
+
+origin that's the zero-zero point in the upper left corner.
+原点 (0,0) 在左上角
+
+We can draw a shape with the following vector commands,
+我们可以画形状,用如下矢量命令
+
+which we've borrowed from the Vectrex, an early vector display system.
+这些命令来自 Vectrex,一个早期矢量显示系统
+
+First, we reset, which clears the screen,
+首先,reset ,这个命令会清空屏幕
+
+moves the drawing point of the electron gun to zero-zero,
+把电子枪的绘图点移动到坐标 (0,0)
+
+and sets the brightness of lines to zero.
+并把线的亮度设为 0
+
+Then we move the drawing point down to 50 50,
+MOVE_TO 50 50 \N 把绘图点移动到坐标 (50,50)
+
+and set the line intensity to 100%.
+INTENSITY 100 \N 把强度设为 100
+
+With the intensity up, now we move to 100, 50, then 60, 75 and then back to 50,50.
+现在亮度提高了\N 移动到 (100,50) 然后 (60,75) 然后 (50,50)
+
+The last thing to do is set our line intensity back to 0%.
+最后把强度设回 0
+
+Cool! We've got a triangle!
+酷,我们画了一个三角形!
+
+This sequence of commands would consume on the order of 160 bits, which is way more efficient
+这些命令占 160 bit \N 比存一个庞大的像素矩阵更好
+
+than keeping a huge matrix of pixel values!
+这些命令占 160 bit \N 比存一个庞大的像素矩阵更好
+
+Just like how characters were stored in memory and turned into graphics by a character generator,
+就像之前的"字符生成器" \N把内存里的字符转成图形一样
+
+these vector instructions were also stored in memory, and rendered to a screen using
+这些矢量指令也存在内存中 \N 通过矢量图形卡画到屏幕上
+
+a vector graphics card.
+这些矢量指令也存在内存中 \N 通过矢量图形卡画到屏幕上
+
+Hundreds of commands could be packed together, sequentially, in the screen buffer,
+数百个命令可以按序存在屏幕缓冲区
+
+and used to build up complex graphics. All made of lines!
+画出复杂图形,全是线段组成的!
+
+Because all these vectors are stored in memory, computer programs can update the values freely,
+由于这些矢量都在内存中 \N 程序可以更新这些值
+
+allowing for graphics that change over time -- Animation!
+让图形随时间变化 - 动画!
+
+One of the very earliest video games, Spacewar!,
+最早的电子游戏之一, Spacewar!
+
+was built on a PDP-1 in 1962 using vector graphics.
+是 1962 年在 PDP-1 上用矢量图形制作的.
+
+It's credited with inspiring many later games, like Asteroids,
+它启发了许多后来的游戏,比如 爆破彗星(Asteroids)
+
+and even the first commercial arcade video game: Computer Space.
+甚至第一个商业街机游戏:太空大战
+
+1962 was also a huge milestone because of Sketchpad,
+1962 年是一个大里程碑 \N Sketchpad 诞生
+
+an interactive graphical interface
+一个交互式图形界面,用途是计算机辅助设计 (CAD)
+
+that offered Computer-Aided Design -- called CAD Software today.
+一个交互式图形界面,用途是计算机辅助设计 (CAD)
+
+It's widely considered the earliest example of a complete graphical application.
+它被广泛认为是第一个完整的图形程序
+
+And its inventor, Ivan Sutherland, later won the Turing Award for this breakthrough.
+发明人 伊万·萨瑟兰 后来因此获得图灵奖
+
+To interact with graphics,
+为了与图形界面交互 \N Sketchpad 用了当时发明不久的输入设备 光笔
+
+Sketchpad used a recently invented input device called a light pen,
+为了与图形界面交互 \N Sketchpad 用了当时发明不久的输入设备 光笔
+
+which was a stylus tethered to a computer with a wire.
+就是一个有线连着电脑的触控笔
+
+By using a light sensor in the tip, the pen detected the refresh of the computer monitor.
+笔尖用光线传感器,可以检测到显示器刷新
+
+Using the timing of the refresh,
+通过判断刷新时间,电脑可以知道笔的位置
+
+the computer could actually figure out the pen's position on the screen!
+通过判断刷新时间,电脑可以知道笔的位置
+
+With this light pen, and various buttons on a gigantic computer,
+有了光笔和各种按钮 \N 用户可以画线和其他简单形状
+
+users could draw lines and other simple shapes.
+有了光笔和各种按钮 \N 用户可以画线和其他简单形状
+
+Sketchpad could do things like make lines perfectly parallel, the same length, straighten
+Sketchpad 可以让线条完美平行,长度相同 \N 完美垂直90度,甚至动态缩放
+
+corners into perfect 90 degree intersections, and even scale shapes up and down dynamically.
+Sketchpad 可以让线条完美平行,长度相同 \N 完美垂直90度,甚至动态缩放
+
+These things that were laborious on paper, a computer now did with a press of a button!
+这些在纸上很费力,在计算机上非常简单!
+
+Users were also able to save complex designs they created,
+用户还可以保存设计结果,方便以后再次使用 \N 甚至和其他人分享
+
+and then paste them into later designs, and even share with other people.
+用户还可以保存设计结果,方便以后再次使用 \N 甚至和其他人分享
+
+You could have whole libraries of shapes, like electronic components and pieces of furniture
+你可以有一整个库 \N 里面有电子元件和家具之类的
+
+that you could just plop in and manipulate in your creations.
+可以直接拖进来用
+
+This might all sound pretty routine from today's perspective.
+从如今的角度来看 好像很普通
+
+But in 1962, when computers were still cabinet-sized behemoths chugging through punch cards,
+但在1962年 \N 计算机还是吃纸带的大怪兽,有柜子般大小
+
+Sketchpad and light pens were equal parts eye opening and brain melting.
+Sketchpad 和光笔让人大开眼界
+
+They represented a key turning point in how computers could be used.
+它们代表了人机交互方式的关键转折点
+
+They were no longer just number crunching math machines that hummed along behind closed doors.
+电脑不再是关在门后 负责算数的机器了
+
+Now, they were potential assistants, interactively augmenting human tasks.
+可以当助手 帮人类做事
+
+The earliest computers and displays with true pixel graphics emerged in the late 1960s.
+最早用真正像素的计算机和显示器\N 出现于 1960 年代末
+
+Bits in memory directly "mapped" to pixels on the screen,
+内存中的位(Bit) 对应屏幕上的像素
+
+what are called bitmapped displays.
+这叫 位图显示
+
+With full pixel control, totally arbitrary graphics were possible.
+现在我们可以绘制任意图形了
+
+You can think of a screen's graphics as a huge matrix of pixel values .
+你可以把图形想成一个巨大像素值矩阵
+
+As before,
+就像之前
+
+computers reserve a special region of memory for pixel data, called the frame buffer.
+计算机把像素数据存在内存中一个特殊区域 \N 叫"帧缓冲区"
+
+In the early days, the computer's RAM was used,
+早期时,这些数据存在内存里\N 后来存在高速视频内存里,简称 VRAM
+
+but later systems used special high speed Video RAM, or VRAM,
+早期时,这些数据存在内存里\N 后来存在高速视频内存里,简称 VRAM
+
+which was located on the graphics card itself for high speed access.
+VRAM 在显卡上,这样访问更快 \N 如今就是这样做的.
+
+This is how it's done today.
+VRAM 在显卡上,这样访问更快 \N 如今就是这样做的.
+
+On an 8-bit grayscale screen, we can set values from 0 intensity, which is black,
+在 8 位灰度屏幕上,我们可用的颜色范围是 0 强度(黑色)
+
+to 255 intensity, which is white.
+到 255 强度(白色)
+
+Well actually, it might be green... or orange, as many early displays couldn't do white.
+其实更像绿色或橙色 \N 因为许多早期显示器不能显示白色
+
+Let's pretend this video is a really low resolution bitmapped screen,
+我们假设 这个视频在低分辨率的位图屏幕上
+
+with a resolution of 60 by 35 pixels.
+分辨率 60x35像素
+
+If we wanted to set the pixel at 10 10 to be white,
+如果我们想把 (10,10) 的像素设为白色 \N 可以用这样的代码
+
+we could do it with a piece of code like this.
+如果我们想把 (10,10) 的像素设为白色 \N 可以用这样的代码
+
+If we wanted to draw a line, let's say from 30, 0 to 30, 35, we can use a loop, like so.
+如果想画一条线 假设从(30,0)到(30,35) \N 可以用这样一个循环
+
+.And this changes a whole line of pixels to white.
+把整列像素变成白色
+
+If we want to draw something more complicated, let's say a rectangle,
+如果想画更复杂的图形,比如矩形,那么需要四个值
+
+we need to know four values.
+如果想画更复杂的图形,比如矩形,那么需要四个值
+
+The X and Y coordinate of its starting corner, and its width and height.
+1. 起始点X坐标 \N2. 起始点Y坐标 \N 3. 宽度 \N 4. 高度
+
+So far, we've drawn everything in white, so let's specify this rectangle to be grey.
+目前只试了白色,这次画矩形试下灰色
+
+Grey is halfway between 0 and 255, so that's a color value of 127.
+灰色介于0到255中间 \N 所以我们用 127 (255/2=127.5)
+
+Then, with two loops C one nested in the other,
+然后用两个循环,一个套另一个
+
+so that the inner loop runs once for every iteration of the outer loop,
+这样外部每跑一次,内部会循环多次 \N 可以画一个矩形
+
+we can draw a rectangle.
+这样外部每跑一次,内部会循环多次 \N 可以画一个矩形
+
+When the computer executes our code as part of its draw routine, it colors in all the
+计算机绘图时会用指定的颜色 127
+
+pixels we specified.
+计算机绘图时会用指定的颜色 127
+
+Let's wrap this up into a "draw rectangle function", like this:
+我们来包装成 "画矩形函数",就像这样:
+
+Now, to draw a second rectangle on the other side of the screen, maybe in black this time,
+假设要在屏幕的另一边 画第二个矩形 \N 这次可能是黑色矩形
+
+we can just call our rectangle drawing function. Voila!!
+可以直接调用 "画矩形函数", 超棒!
+
+Just like the other graphics schemes we've discussed,
+就像之前说的其他方案
+
+programs can manipulate pixel data in the frame buffer, creating interactive graphics.
+程序可以操纵"帧缓冲区"中的像素数据,实现交互式图形
+
+Pong time!
+乒乓球时间!
+
+Of course, programmers aren't wasting time writing drawing functions from scratch.
+当然,程序员不会浪费时间从零写绘图函数 \N 而是用预先写好的函数来做,画直线,曲线,图形,文字等
+
+They use graphics libraries with ready-to-go functions
+当然,程序员不会浪费时间从零写绘图函数 \N 而是用预先写好的函数来做,画直线,曲线,图形,文字等
+
+for drawing lines, curves, shapes, text, and other cool stuff.
+当然,程序员不会浪费时间从零写绘图函数 \N 而是用预先写好的函数来做,画直线,曲线,图形,文字等
+
+Just a new level of abstraction!
+一层新抽象!
+
+The flexibility of bitmapped graphics opened up a whole new world of possibilities for
+位图的灵活性,为交互式开启了全新可能 \N 但它的高昂成本持续了十几年
+
+interactive computing, but it remained expensive for decades.
+位图的灵活性,为交互式开启了全新可能 \N 但它的高昂成本持续了十几年
+
+As I mentioned last episode, by as late as 1971,
+上集提到,1971 年 \N 整个美国也只有大约 7 万个电传打字机和 7 万个终端
+
+it was estimated there were around 70,000 electro-mechanical teletype machines
+上集提到,1971 年 \N 整个美国也只有大约 7 万个电传打字机和 7 万个终端
+
+and 70,000 terminals in use, in the United States.
+上集提到,1971 年 \N 整个美国也只有大约 7 万个电传打字机和 7 万个终端
+
+Amazingly, there were only around 1,000 computers in the US that had interactive graphical screens.
+令人惊讶的是 \N 只有大约 1000 台电脑有交互式图形屏幕
+
+That's not a lot!
+这可不多!
+
+But the stage was set helped along by pioneering efforts like Sketchpad and Space Wars
+Sketchpad 和 太空大战 这样的先驱 \N 推动了图形界面发展
+
+for computer displays to become ubiquitous,
+帮助普及了计算机显示器 \N 由此,图形界面的曙光初现
+
+and with them, the dawn of graphical user interfaces,
+帮助普及了计算机显示器 \N 由此,图形界面的曙光初现
+
+which we'll cover in a few episodes!
+接下来讲图形界面
+
+I'll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/24. 冷战和消费主义-The Cold War and Consumerism.ass.txt b/(字幕)全40集中英字幕文本/24. 冷战和消费主义-The Cold War and Consumerism.ass.txt
new file mode 100644
index 0000000..d37f8c6
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/24. 冷战和消费主义-The Cold War and Consumerism.ass.txt
@@ -0,0 +1,630 @@
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Early in this series we covered computing history
+之前介绍了计算机历史 \N 从人类文明的曙光开始 (第1集)
+
+From roughly the dawn of civilization,
+之前介绍了计算机历史 \N 从人类文明的曙光开始 (第1集)
+
+up to the birth of electronic general purpose computers in the mid 1940s.
+一直到 1940 年代中期 电子计算机诞生
+
+A lot of the material we've discussed over the past 23 episodes
+过去 23 集里讲的很多东西
+
+like programming languages and compilers
+比如编程语言和编译器,算法和集成电路
+
+Algorithms and integrated circuits
+比如编程语言和编译器,算法和集成电路
+
+Floppy disks and operating systems, telly types and screens
+软盘和操作系统,电报机和屏幕
+
+all emerged over roughly a 30-year period,
+全都是1940~1970年代,大概这30年间里出现的
+
+From the mid 1940s up to the mid 1970s
+全都是1940~1970年代,大概这30年间里出现的
+
+This is the era of computing before companies like Apple and Microsoft existed
+那时苹果和微软还不存在,也没有推特,谷歌或者 Uber.
+
+and long before anyone Tweeted, Googled or Uber-d.
+那时苹果和微软还不存在,也没有推特,谷歌或者 Uber.
+
+It was a formative period setting the stage for personal computers,
+还没到个人电脑时代
+
+worldwide web, self-driving cars, virtual reality, and many other topics
+而万维网,无人驾驶汽车,虚拟现实等主题,\N 这个系列的后半部分会讲
+
+we'll get to in the second half of this series.
+而万维网,无人驾驶汽车,虚拟现实等主题,\N 这个系列的后半部分会讲
+
+Today we're going to step back from circuits and algorithms
+今天, 我们不管电路和算法 \N 来聊聊这个影响力巨大的时代
+
+and review this influential period.
+今天, 我们不管电路和算法 \N 来聊聊这个影响力巨大的时代
+
+We'll pay special attention to the historical backdrop of the cold war,
+我们会把重点放在 \N 冷战,太空竞赛,全球化,消费主义的兴起.
+
+The space race and the rise of globalization and consumerism.
+我们会把重点放在 \N 冷战,太空竞赛,全球化,消费主义的兴起.
+
+Pretty much immediately after World War II concluded in 1945,
+1945年二战结束后不久
+
+there was tension between the world's two new superpowers
+两个超级大国的关系越发紧张,美国和苏联开始了冷战
+
+the United States and the USSR
+两个超级大国的关系越发紧张,美国和苏联开始了冷战
+
+The Cold War had begun and with it,
+因此政府往科学和工程学 投入大量资金
+
+massive government spending on science and engineering.
+因此政府往科学和工程学 投入大量资金
+
+Computing which had already demonstrated its value
+计算机在战时已经证明了自身的价值 \N 比如曼哈顿计划 和 破解纳粹通讯加密
+
+in wartime efforts like the Manhattan Project
+计算机在战时已经证明了自身的价值 \N 比如曼哈顿计划 和 破解纳粹通讯加密
+
+and code breaking Nazi communications,
+计算机在战时已经证明了自身的价值 \N 比如曼哈顿计划 和 破解纳粹通讯加密
+
+was lavished with government funding.
+所以政府大量投入资源 \N 各种雄心勃勃的项目得以进行
+
+They enabled huge ambitious computing projects to be undertaken,
+所以政府大量投入资源 \N 各种雄心勃勃的项目得以进行
+
+like ENIAC, EDVAC, Atlas and Whirlwind all mentioned in previous episodes.
+比如之前提过的 ENIAC, EDVAC, Atlas, Whirlwind
+
+This spurred rapid advances that simply weren't possible in the commercial sector alone,
+这种高速发展,如果仅靠商业运作是根本无法做到的
+
+where projects were generally expected to recoup development costs through sales.
+要依靠销售收回开发成本.
+
+This began to change in the early 1950s,
+1950年代,事情开始发生变化,
+
+especially with Eckert and Buckley's Univac 1,
+特别是 Univac 1,它是第一台取得商业成功的电脑
+
+the first commercially successful computer.
+特别是 Univac 1,它是第一台取得商业成功的电脑
+
+Unlike ENIAC or Atlas , this wasn't just one single computer. It was a model of computers.
+不像 ENIAC 或 Atlas \N Univanc 1 不是一台机器,而是一个型号
+
+in total more than 40 were built.
+一共造了40多台
+
+Most of these Univacs went to government offices or large companies.
+大部分 Univac 去了政府或大公司
+
+Which was part of the growing military industrial complex in the United States,
+成为美国日益增长的军事工业综合体的一部分
+
+with pockets deep enough to afford the cutting edge.
+因为政府有钱承担这些尖端科技.
+
+Famously, a Univac 1 built for the U.S atomic energy commission
+一个著名的例子是,\N 一台给 美国原子能委员会 生产的 Univac 1
+
+was used by CBS to predict the results of the 1952 U.S. presidential election.
+被 CBS 用来预测 1952 年美国总统大选的结果
+
+With just 1% of the vote the computer correctly predicted
+仅用1%的选票,Univac 1 正确预测了结果. \N 艾森豪威尔 获得压倒性胜利,而专家预测 史蒂文森 会赢
+
+Eisenhower landslide, while pundits favored Stevenson.
+仅用1%的选票,Univac 1 正确预测了结果. \N 艾森豪威尔 获得压倒性胜利,而专家预测 史蒂文森 会赢
+
+It was a media event that helped propel computing to the forefront of the public's imagination
+这次事件把计算机推到了公众面前
+
+Computing was unlike machines of the past,
+计算机和以前的机器不一样
+
+which generally augmented human physical abilities.
+以前的机器 增强人类的物理能力
+
+Trucks allowed us to carry more, automatic looms whoa faster,
+比如卡车能带更多东西,自动织布机更快
+
+Machine tools were more precise and so on
+机床更精确 等等. 这些东西代表了工业革命.
+
+for a bunch of contraptions that typify the industrial revolution.
+机床更精确 等等. 这些东西代表了工业革命.
+
+But computers on the other hand could augment human intellect.
+而计算机增强的是人类智力
+
+This potential wasn't lost on Vannevar Bush,
+范内瓦·布什 看到了这种潜力 \N 他在1945年发表了一篇文章
+
+who in 1945 published an article on a
+范内瓦·布什 看到了这种潜力 \N 他在1945年发表了一篇文章
+
+hypothetical computing device he envisioned called the Memex.
+描述了一种假想计算设备叫 Memex
+
+This was a device in which an individual stores all his books,
+可以用这个设备 \N 存自己所有的书, 其他资料 以及和别人沟通
+
+records and communications and which is mechanized,
+而且数据是按照格式存储, \N 所以可以快速查询,有很大灵活性.
+
+so it may be consulted with exceeding speed and flexibility
+而且数据是按照格式存储, \N 所以可以快速查询,有很大灵活性.
+
+It is an enlarged intimate supplement to his memory.
+可以辅助我们的记忆
+
+He also predicted that wholly new forms of encyclopedia will appear,
+他还预测会出现 新的百科全书形式
+
+ready-made, with a mesh of associative trails running through them.
+信息之间相互链接
+
+Sound familiar?
+听起来是不是很熟悉?(维基百科)
+
+Memex directly inspired several subsequent game-changing systems,
+Memex 启发了 之后几个重要里程碑
+
+like Ivan Sutherland Sketchpad, which we discussed last episode,
+比如上集 伊万·萨瑟兰 的 Sketchpad(画板)
+
+and Dough Engelbart's online system, which we will cover soon.
+以及后面很快会讲到 \N Dough Engelbart 的 oN-LINE 系统(第26集)
+
+Vannevar Bush was the head of the U.S. office of Scientific Research and Development,
+范内瓦·布什 \N 做过"美国科学研究与开发办公室"的头头
+
+which was responsible for funding and coordinating scientific research during World War 2.
+这个部门负责在二战期间 \N 资助和安排科学研究
+
+With the Cold War brewing, Bush lobbied for a creation of a peace time equivalent,
+冷战时 范内瓦·布什 到处游说,\N 想建立一个职责类似,但是在和平时期运作的部门
+
+the National Science Foundation, formed in 1950.
+因此 国家科学基金会 于1950年成立
+
+To this day the NSF provides federal funding to support scientific research in the United States.
+至今,国家科学基金会 \N 依然负责给科学研究 提供政府资金
+
+And it is a major reason the U.S. has continued to be a leader in the technology sector.
+美国的科技领先全球,主要原因之一就是这个机构.
+
+It was also in the 1950s that consumers started to buy transistor powered gadgets,
+1950年代,消费者开始买晶体管设备
+
+notable among them was the transistor radio,
+其中值得注意的是 收音机
+
+which was small, durable and battery-powered.
+它又小又耐用,用电池就够了,而且便携
+
+And it was portable,
+它又小又耐用,用电池就够了,而且便携
+
+unlike the vacuum tube based radio sets from the 1940s and before.
+不像 1940 年代之前的收音机,用的是真空管.
+
+It was a runaway success, the Furby or iPhone of its day.
+收音机非常成功,卖的像"菲比精灵"和 iPhone 一样畅销.
+
+The Japanese government looking for industrial opportunities,
+日本政府也在寻求工业机会,想振兴战后经济,
+
+to bolster their post-war economy, soon got in on the action.
+日本政府也在寻求工业机会,想振兴战后经济,
+
+Licensing the rights to Transistors from Bell Labs in 1952.
+他们很快动手从贝尔实验室 取得晶体管的授权
+
+Helping launch the Japanese semiconductor and electronics industry.
+帮助振兴日本的半导体和电子行业
+
+In 1955, the first Sony product was released:
+1955年,索尼的第一款产品面世
+
+The TR-55 Transistor Radio. Concentrating on quality and price,
+TR-55 晶体管收音机. 他们把重心放在质量和价格.
+
+Japanese companies captured half of the U.S. Market for portable radios in just five years.
+因此日本公司在短短5年内,就占有了美国便携式收音机市场的一半.
+
+This planted the first seeds of a major industrial rivalry in the decades to come.
+这为日本成为美国的强大工业对手,埋下伏笔
+
+In 1953, there were only around 100 computers on the entire planet
+1953年,整个地球大概有100台计算机
+
+and at this point, the USSR was only a few years behind the West in computing technology,
+苏联这时的计算机科技 只比西方落后几年
+
+completing their first programmable electronic computer in 1950.
+苏联在1950年 \N完成了第一个可编程电子计算机
+
+But the Soviets were way ahead in the burgeoning space race.
+但苏联在太空竞赛远远领先
+
+Let's go to the thought-bubble.
+我们进入思想泡泡
+
+The Soviets launched the world's first satellite into orbit, Sputnik one,
+苏联在1957年 \N 把第一个卫星送上轨道,史波尼克1号
+
+in 1957, and a few years later in 1961.
+不久,在1961年
+
+Soviet Cosmonaut, Yuri Gagarin became the first human in space.
+苏联宇航员 尤里·加加林 第一个进入太空
+
+This didn't sit well with the American public
+美国民众对此不满
+
+and prompted President Kennedy, a month after Gagarin's mission,
+使得肯尼迪总统 \N 在加加林太空任务一个月后
+
+to encourage the nation to land a man on the moon within the decade. And it was expensive!
+提出要登陆月球. 登月很贵的!
+
+NASA's budget grew almost tenfold,
+NASA 的预算增长了几乎十倍,
+
+peaking in 1966 at roughly 4.5 percent of the U.S. Federal budget
+在 1966 年达到顶峰,占了政府预算的4.5%
+
+Today, It's around half a percent
+如今, NASA 的预算只占 0.5%
+
+NASA used this funding to tackle a huge array of enormous challenges
+NASA 用这笔钱资助各种科学研究
+
+this culminated in the Apollo program
+阿波罗计划花的钱最多,雇了40万人左右
+
+Which is peak employed roughly 400,000 people
+阿波罗计划花的钱最多,雇了40万人左右
+
+further supported by over 20,000 universities and companies
+而且有2万多家大学和公司参与.
+
+one of these huge challenges was navigating in space
+其中一个挑战是 怎样在太空中导航
+
+NASA needed a computer to process complex trajectories
+NASA 需要电脑计算复杂的轨道来引导太空船
+
+and issue guidance commands to the spacecraft
+NASA 需要电脑计算复杂的轨道来引导太空船
+
+For this, they built the Apollo guidance computer,
+因此,他们造了 "阿波罗导航计算机"
+
+There were three significant requirements
+有3个重要要求
+
+First, the computer had to be fast, no surprise there.
+1. 计算机要快, 这在意料之中.
+
+Second, it had to be small & lightweight
+2. 计算机要又小又轻.
+
+there's not a lot of room in a spacecraft
+太空船里的空间不多
+
+and every ounce is precious when you're flying a quarter million miles to the moon
+而且要飞去月球,能轻一点是一点
+
+And finally it had to be really really ridiculously reliable
+3. 要超级可靠
+
+This is super important in a spacecraft
+这对太空船非常重要,因为太空中有很多震动,辐射,极端温度变化
+
+Where there's lots of vibration radiation and temperature change
+这对太空船非常重要,因为太空中有很多震动,辐射,极端温度变化
+
+And there's no running to Best Buy, if something breaks.
+如果东西坏掉了,可没办法去"百思买"买新的
+
+the technology of the era of vacuum tubes and discrete transistors
+那时的主流科技 \N 真空管和晶体管 无法胜任这些要求
+
+Just weren't up to the task
+那个时代的主流科技,真空管和离散晶体管,无法胜任这些要求.
+
+so NASA turned to a brand-new technology, integrated circuits.
+所以 NASA 用全新科技:集成电路
+
+Which we discussed a few episodes ago
+我们几集前聊过
+
+The Apollo guidance computer was the first computer to use them, a huge paradigm shift
+阿波罗导航计算机 首先使用了集成电路
+
+NASA was also the only place that could afford them
+NASA 是唯一负担得起集成电路的组织
+
+Initially each chip cost around $50
+最初,一个芯片差不多50美金
+
+And the guidance computer needed thousands of them.
+导航计算机需要上千个芯片
+
+But by paying that price, the Americans were able to beat the soviets to the moon
+但美国也因此成功登月,打败苏联
+
+Thanks, thought-bubble
+谢了 思想泡泡
+
+Although the Apollo Guidance computer is credited
+虽然人们经常把集成电路的发展 \N 归功于阿波罗导航计算机
+
+with spurring the development and adoption of integrated circuits
+虽然人们经常把集成电路的发展 \N 归功于阿波罗导航计算机
+
+It was a low volume, product there are only 17 Apollo missions after all.
+但它们的产量很低,一共只有 17 次阿波罗任务
+
+it was actually military applications
+实际上是军事 大大推进了集成电路发展
+
+Especially the minuteman and polaris nuclear missile systems
+特别是洲际导弹和核弹,使集成电路大规模生产
+
+That allowed integrated circuits to become a mass-produced item
+特别是洲际导弹和核弹,使集成电路大规模生产
+
+This rapid Advancement was further accelerated by the U.S.
+美国建造强大计算机时,也进一步推进了集成电路
+
+Building and buying huge powerful computers
+美国建造强大计算机时,也进一步推进了集成电路
+
+Often called supercomputers, because they were frequently
+一般叫"超级计算机",\N 因为它们经常比全球最快电脑还快10倍以上
+
+10 times faster than any other computer on the planet, upon their release.
+一般叫"超级计算机",\N 因为它们经常比全球最快电脑还快10倍以上
+
+but these machines built by companies like CDC, Cray and IBM were also
+但 CDC,Cray,IBM 制造的计算机非常昂贵
+
+super in cost, and pretty much only governments could afford to buy them.
+几乎只有政府负担得起
+
+in the U.S. these machines went to government Agencies like the NSA.
+这些计算机用于政府机构,比如美国国家安全局
+
+and government research labs like Lawrence Livermore and Los Alamos National laboratories
+以及实验室比如 \N 劳伦斯·利弗莫尔 实验室 \N 洛斯·阿拉莫斯 国家实验室
+
+Initially the U.S. semiconductor industry boomed
+最初,美国的半导体行业 \N 靠高利润政府合同起步
+
+buoyed by High profit government contracts
+最初,美国的半导体行业 \N 靠高利润政府合同起步
+
+However this meant that most U.S.companies overlooked
+因此忽略了消费者市场,因为利润小
+
+the consumer market where profit margins were small
+因此忽略了消费者市场,因为利润小
+
+the Japanese Semiconductor industry came to dominate this niche
+因此日本半导体行业在1950和1960年代 \N 靠低利润率占领了消费者市场
+
+by having to operate with lean profit margins in the 1950s and 60s
+因此日本半导体行业在1950和1960年代 \N 靠低利润率占领了消费者市场
+
+the Japanese had invested heavily in manufacturing capacity
+日本人投入大量资金,大量制造以达到规模经济
+
+to achieve economies of scale
+日本人投入大量资金,大量制造以达到规模经济
+
+in research to improve quality and Yields and in automation to keep manufacturing costs low.
+同时研究技术,提高质量和产量 \N 以及用自动化来降低成本
+
+in the 1970s with the Space Race and cold war subsiding
+1970年代,太空竞赛和冷战逐渐消退 \N 高利润的政府合同变少
+
+previously juicy defense contracts began to dry up.
+1970年代,太空竞赛和冷战逐渐消退 \N 高利润的政府合同变少
+
+and American semi-conductor and electronics companies found it harder to compete.
+美国的半导体和电子设备公司发现更难竞争了
+
+it didn't help the many computing components had been commoditized
+虽然很多计算机组件商品化了,但并没有什么帮助
+
+DRAM was DRAM
+DRAM 就是 DRAM
+
+So why buy expensive Intel memory when you could buy the same chip for less from Hitachi?
+能从日立买便宜的,干嘛要从英特尔买贵的?
+
+Throughout the 1970s U.S. companies began to downsize,
+1970年代 美国公司开始缩小,合并,或直接倒闭
+
+consolidate or outright fail.
+1970年代 美国公司开始缩小,合并,或直接倒闭
+
+Intel had to lay off a third of its workforce in 1974
+1974年 英特尔不得不裁员三分之一
+
+and even the storied Fairchild semiconductor
+知名的仙童半导体也在 1979 年濒临倒闭 \N 被其他公司收购了
+
+was acquired in 1979 after near bankruptcy
+知名的仙童半导体也在 1979 年濒临倒闭 \N 被其他公司收购了
+
+to survive many of these companies began to outsource their manufacturing in a bid to reduce costs.
+为了生存,很多公司把生产外包出去,降低成本
+
+Intel withdrew from its main product category, Memory IC
+英特尔不再把精力放在 内存集成电路 \N 而是把精力放在处理器
+
+and decided to refocus on processes.
+英特尔不再把精力放在 内存集成电路 \N 而是把精力放在处理器
+
+Which ultimately saved the company.
+这个决定最后挽救了公司
+
+This low and U.S.
+美国公司的无力 \N 导致 夏普 和 卡西欧 这样的日本公司
+
+electronics industry allowed Japanese companies like Sharp and Casio
+美国公司的无力 \N 导致 夏普 和 卡西欧 这样的日本公司
+
+to dominate the breakout computing product of the 1970s.
+占领了1970年代的主流产品
+
+Handheld electronic calculators.
+手持计算器
+
+by using integrated circuits, these could be made small and cheap.
+因为集成电路,计算机又小又便宜
+
+They replaced expensive desktop adding machines you find in offices.
+取代了办公室里昂贵的桌面计算器
+
+For most people it was the first time they didn't have to do math on paper, or use a slide rule
+对大多数人 \N 这是他们第一次不必用纸笔和计算尺来做计算
+
+They were an instant hit, selling by the millions.
+手持计算机因此大卖
+
+This further drove down the cost of integrated circuits
+进一步降低了集成电路的成本
+
+and led to the development and widespread use of micro processors.
+使得微处理器被广泛使用
+
+like the Intel 4004 we've discussed previously
+比如之前讨论过的 Intel 4004
+
+This chip was built by Intel in 1971
+Intel 在1971年 \N 应日本计算器公司 Busicom 的要求做了这个芯片
+
+at the request of Japanese calculator company Busicom.
+Intel 在1971年 \N 应日本计算器公司 Busicom 的要求做了这个芯片
+
+Soon, Japanese electronics were everywhere.
+很快,日本电子产品到处都是
+
+from televisions of VCRs to digital wristwatches and Walkmans
+从电视到手表到随身听
+
+the availability of inexpensive microprocessor
+而廉价的微处理器,也催生了全新的产品,比如街机游戏
+
+Spawned in entirely new products like video arcades,
+而廉价的微处理器,也催生了全新的产品,比如街机游戏
+
+the world got Pong in 1972 and Breakout in 1976.
+1972年诞生了Pong,1976年诞生了打砖块
+
+as cost continued to plummet
+因为成本不断下降
+
+soon it became possible for regular people to afford computing devices
+很快,普通人也买得起计算机了
+
+during this time we see the emergence of the first successful home computers
+这段期间,第一批家用电脑开始出现,比如1975年的 Altair 8800
+
+like the 1975 Altair 8800
+这段期间,第一批家用电脑开始出现,比如1975年的 Altair 8800
+
+and also the first home gaming consoles
+以及第一款家用游戏机,比如1977年的Atari 2600
+
+like the Atari 2600 in 1977,
+以及第一款家用游戏机,比如1977年的Atari 2600
+
+Home, now I repeat that, Home.
+家用!我再说一遍 家用!
+
+That seems like a small thing today.
+如今没什么大不了的.
+
+But this was the dawn of a whole new era in computing.
+但那时是计算机的全新时代
+
+in just three decades, computers have evolved from
+在短短三十年内,计算机从大到人类可以在 CPU 里走来走去
+
+machines where you could literally walk inside of the CPU.
+在短短三十年内,计算机从大到人类可以在 CPU 里走来走去
+
+assuming you had government clearance
+当然,你要有政府许可你这样做.
+
+to the point where a child could play with a handheld toy
+发展到小到小孩都能拿住的手持玩具,而且微处理器还快得多.
+
+Containing a microprocessor many times faster,
+发展到小到小孩都能拿住的手持玩具,而且微处理器还快得多.
+
+Critically, this dramatic evolution would have been but without two powerful forces at play
+这种巨大变化是由两种力量推动的:政府和消费者
+
+Governments and Consumers.
+这种巨大变化是由两种力量推动的:政府和消费者
+
+Government funding like the United States provided during the cold war
+政府资金,比如冷战期间美国投入的钱
+
+enabled early adoption of many nascent computing technologies
+推动了计算机的早期发展
+
+This funding helped flow entire Industries relate into computing long enough
+并且让计算机行业活得足够久,使得技术成熟到可以商用
+
+for the technology to mature and become commercially feasible.
+并且让计算机行业活得足够久,使得技术成熟到可以商用
+
+Then businesses and ultimately consumers, provided the demand to take it mainstream.
+然后是公司,最后是消费者,把计算机变成了主流
+
+The cold war may be over, but this relationship continues today
+冷战虽然结束了,但这种关系今天仍在继续
+
+Governments are still funding science research.
+政府依然在资助科学研究
+
+intelligence agencies are still buying supercomputers.
+情报机构依然在超级计算机
+
+humans are still being launched into space.
+人类仍然被发射到太空里
+
+And you're still buying TV, Xbox, Playstation, Laptop and Smartphone
+而你依然在买电视,Xbox,Playstation,笔记本电脑和手机
+
+and for these reasons,
+因此,计算机会继续飞速发展
+
+Computing continues to advance a lightning pace.
+因此,计算机会继续飞速发展
+
+I'll see you next week
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/25. 个人计算机革命-The Personal Computer Revolution.ass.txt b/(字幕)全40集中英字幕文本/25. 个人计算机革命-The Personal Computer Revolution.ass.txt
new file mode 100644
index 0000000..3f41a64
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/25. 个人计算机革命-The Personal Computer Revolution.ass.txt
@@ -0,0 +1,552 @@
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+As we discussed last week, the idea of having a computer all to yourself a personal
+上周说过"个人计算机"的概念 \N 在计算机发展的头 30 年难以想象
+
+computer was elusive for the first three decades of electronic computing.
+上周说过"个人计算机"的概念 \N 在计算机发展的头 30 年难以想象
+
+It was just way too expensive for a computer to be owned and used by one single person.
+如果只让一个人用,成本实在太高
+
+But, by the early 1970s, all the required components had fallen into place to build
+但到 70 年代初,各种组件的成本都下降了 \N 可以做出低成本 同时性能足够强大的计算机
+
+a low cost, but still usefully powerful computer.
+但到 70 年代初,各种组件的成本都下降了 \N 可以做出低成本 同时性能足够强大的计算机
+
+Not a toy, but a tool.
+不是玩具级计算机,是真正能用的计算机
+
+Most influential in this transition was the advent of single-chip CPUs,
+这个转变中 \N 最有影响力的是 单芯片 CPU 的出现
+
+which were surprisingly powerful, yet small and inexpensive.
+强大 + 体积小 + 便宜
+
+Advances in integrated circuits also offered low-cost solid-state memory,
+集成电路的进步,也提供了低成本固态存储器
+
+both for computer RAM and ROM.
+可以用于计算机的 RAM 和 ROM
+
+Suddenly it was possible to have an entire computer on one circuit board,
+忽然间 \N 把整台计算机做到一张电路板上成为可能
+
+dramatically reducing manufacturing costs.
+大大地降低了制造成本
+
+Additionally, there was cheap and reliable computer storage,
+而且,那时有便宜可靠的储存介质 \N 比如磁带和软盘
+
+like magnetic tape cassettes and floppy disks.
+而且,那时有便宜可靠的储存介质 \N 比如磁带和软盘
+
+And finally, the last ingredient was low cost displays, often just repurposed televisions.
+最后是 低成本的显示器 \N 通常是电视机稍作改装而成
+
+If you blended these four ingredients together in the 1970s, you got,
+如果在 1970 年代 \N 将这四种原料混在一起
+
+what was called a microcomputer,
+就得到了"微型计算机"
+
+because these things were so tiny compared to "normal" computers of that era, the
+因为和那个时代的"普通"计算机相比 \N 这些计算机很小
+
+types you'd see in business or universities.
+"普通"计算机就是公司或大学里的那种
+
+But more important than their size was their cost.
+但比大小更重要的是成本
+
+These were, for the first time, sufficiently cheap.
+这是有史以来第一次,计算机的价格足够低
+
+It was practical to buy one and only have one person ever use it.
+"一个人专用"的想法变得可行
+
+No time sharing,
+不用划分时间和别人公用计算机
+
+no multi-user logins, just a single owner and user.
+没有多用户登录,计算机只属于一个人,只有一个用户
+
+The personal computer era had arrived.
+个人计算机时代到来
+
+Computer cost and performance eventually reached the point
+计算机成本下降+性能提升, 让个人计算机成为可能
+
+where personal computing became viable.
+计算机成本下降+性能提升, 让个人计算机成为可能
+
+But, it's hard to define exactly when that happened.
+但这个时间点很难准确定义, 并没有一个具体时间点
+
+There's no one point in time.
+但这个时间点很难准确定义, 并没有一个具体时间点
+
+And as such, there are many contenders for the title of "first" personal computer,
+因此"第一台个人计算机"这个名号,有很多竞争者
+
+like the Kenback-1 and MCM/70.
+比如 Kenback-1 和 MCM/70
+
+Less disputed, however, is the first commercially successful personal computer: The Altair 8800.
+不过第一台取得商业成功的个人计算机 \N 争议较小:Altair 8800
+
+This machine debuted on the cover of Popular Electronics in 1975,
+首次亮相在 1975 年《Popular Electronics》封面
+
+and was sold as a $439 kit that you built yourself.
+售价 $439 美元,需要自己组装
+
+Inflation adjusted, that's about $2,000 today,
+计算通货膨胀后,相当如今的 2000 美元左右
+
+which isn't chump change, but extremely cheap for a computer in 1975.
+不算小钱,但比起 1975 年的其它计算机,算是非常便宜了
+
+Tens of thousands of kits were sold to computer hobbyists,
+各种需要自己组装的组件包 \N卖给了计算机爱好者
+
+and because of its popularity, there were soon all sorts of nifty add-ons available...
+因为买的人多,很快相关产品出现了
+
+things like extra memory, a paper tape reader and even a teletype interface.
+比如内存,纸带读取器,甚至电传接口
+
+This allowed you, for example, to load a longer, more complicated program from punch tape,
+让你可以从纸带上读取更长更复杂的程序
+
+and then interact with it using a teletype terminal.
+然后用电传终端交互
+
+However, these programs still had to be written in machine code,
+但程序还是要用 机器码 写
+
+which was really low level and nasty, even for hardcore computer enthusiasts.
+写起来很麻烦,即使计算机爱好者也讨厌写
+
+This problem didn't escape a young Bill Gates and Paul Allen,
+这没有吓跑年轻的比尔·盖茨和保罗·艾伦
+
+who were 19 and 22 respectively.
+他们当时是19岁和22岁
+
+They contacted MITS, the company making the Altair 8800,
+他们联系了制造 Altair 8800 的 MITS 公司
+
+suggesting the computer would be more attractive to hobbyists
+建议说,如果能运行 BASIC 程序 \N 会对爱好者更有吸引力
+
+if it could run programs written in BASIC,
+建议说,如果能运行 BASIC 程序 \N 会对爱好者更有吸引力
+
+a popular and simple programming language.
+BASIC 是一门更受欢迎更简单的编程语言
+
+To do this, they needed to write a program that converted BASIC instructions
+为此,他们需要一个程序 \N 把 BASIC 代码转成可执行机器码
+
+into native machine code, what's called an interpreter.
+这叫 解释器 (interpreter)
+
+This is very similar to a compiler,
+"解释器"和"编译器"类似
+
+but happens as the programs runs instead of beforehand.
+区别是"解释器"运行时转换\N而"编译器"提前转换
+
+Let's go to the thought bubble!
+让我们进入思想泡泡!
+
+MITS was interested,
+MITS 表示感兴趣
+
+and agreed to meet Bill and Paul for a demonstration.
+同意与 Bill 和 Paul 见个面,让他们演示一下
+
+Problem is, they hadn't written the interpreter yet.
+问题是,他们还没写好解释器
+
+So, they hacked it together in just a few weeks
+所以他们花了几个星期赶工 \N 而且还不是在 Altair 8800 上写的
+
+without even an Altair 8800 to develop on,
+所以他们花了几个星期赶工 \N 而且还不是在 Altair 8800 上写的
+
+finishing the final piece of code on the plane.
+最后在飞机上完成了代码
+
+The first time they knew their code worked was at MITS headquarters
+他们在墨西哥 阿尔伯克基(城市) \N 的 MITS 总部做演示时,才知道代码可以成功运行
+
+in Albuquerque, New Mexico, for the demo.
+他们在墨西哥 阿尔伯克基(城市) \N 的 MITS 总部做演示时,才知道代码可以成功运行
+
+Fortunately, it went well and MITS agreed to distribute their software.
+幸运的是进展顺利 \N MITS 同意在计算机上搭载他们的软件
+
+Altair BASIC became the newly formed Microsoft's first product.
+Altair BASIC 成了微软的第一个产品
+
+Although computer hobbyists existed prior to 1975,
+虽然1975年之前就有计算机爱好者
+
+the Altair 8800 really jump-started the movement.
+但 Altair 8800 大量催生了更多计算机爱好者
+
+Enthusiast groups formed, sharing knowledge and software and passion about computing.
+爱好者们组成各种小组 \N 分享知识,软件,以及对计算机的热爱
+
+Most legendary among these is the Homebrew Computer Club,
+最具传奇色彩的小组是"家酿计算机俱乐部"
+
+which met for the first time in March 1975
+第一次小组聚会在1975年3月
+
+to see a review unit of the Altair 8800, one of the first to ship to California.
+看一台第一批运来加州的 Altair 8800
+
+At that first meeting was 24-year-old Steve Wozniak, who was so inspired by
+第一次聚会上,24岁的 Steve Wozniak \N 被 Altair 8800 大大激励
+
+the Altair 8800 that he set out to design his own computer.
+开始想设计自己的计算机
+
+In May 1976, he demonstrated his prototype to the Club
+1976年5月,他向小组展示了原型机
+
+and shared the schematics with interested members.
+并且把电路图分享给感兴趣的其他会员
+
+Unusual for the time, it was designed to connect to a TV and offered a text interface
+他的设计不同寻常 \N 要连到电视显示,并提供文本界面
+
+a first for a low-cost computer.
+在低成本计算机上还是第一次见
+
+Interest was high, and shortly after fellow club member and college friend Steve Jobs
+同是俱乐部成员和大学朋友的 史蒂夫·乔布斯
+
+suggested that instead of just sharing the designs for free,
+建议说与其免费分享设计,不如直接出售装好的主板
+
+they should just sell an assembled motherboard.
+建议说与其免费分享设计,不如直接出售装好的主板
+
+However, you still had to add your own keyboard, power supply, and enclosure.
+但用户依然需要自己加键盘,电源和机箱
+
+It went on sale in July 1976 with a price tag of $666.66.
+1976年7月开始发售,价格$666.66美元
+
+It was called the Apple-I, and it was Apple Computer's first product.
+它叫 Apple-I ,苹果计算机公司的第一个产品
+
+Thanks thought bubble!
+谢了 思想泡泡
+
+Like the Altair 8800, the Apple-I was sold as a kit.
+就像 Altair 8800 一样,Apple-I 也是作为套件出售
+
+It appealed to hobbyists,
+Apple-I 吸引了业余爱好者 \N 不介意机器买回来自己组装
+
+who didn't mind tinkering and soldering,
+Apple-I 吸引了业余爱好者 \N 不介意机器买回来自己组装
+
+but consumers and businesses weren't interested.
+但个人消费者和公司对 Apple-I 不感兴趣
+
+This changed in 1977,
+这在 1977 年发生变化 \N 市场上有了三款开箱即用的计算机
+
+with the release of three game-changing computers, that could be used right out of the box.
+这在 1977 年发生变化 \N 市场上有了三款开箱即用的计算机
+
+First was the Apple II,
+第一款是 Apple-II
+
+Apple's earliest product that sold as a complete system
+苹果公司第一个提供全套设备的产品
+
+that was professionally designed and manufactured.
+设计和制造工艺都是专业的
+
+It also offered rudimentary color graphics and sound output,
+它还提供了简单彩色图形和声音输出
+
+amazing features for a low cost machine.
+这些功能对低成本机器非常了不起
+
+The Apple II series of computers sold by the millions and quickly
+Apple-II 卖了上百万套
+
+propelled Apple to the forefront of the personal computing industry.
+把苹果公司推到了个人计算机行业的前沿
+
+The second computer was the TRS-80 Model I,
+第二款是"TRS-80 1型"
+
+made by the Tandy Corporation
+由 Tandy 公司生产
+
+and sold by RadioShack hence the "TRS"
+由 Radioshack 销售,所以叫 TRS
+
+Although less advanced than the Apple II,
+虽然不如 Apple-II 先进 \N 但因为价格只有一半,所以卖得很火爆
+
+it was half the cost and sold like hot cakes.
+虽然不如 Apple-II 先进 \N 但因为价格只有一半,所以卖得很火爆
+
+Finally, there was the Commodore PET 2001,
+最后一款是 Commodore PET 2001
+
+with a unique all-in-one design
+有一体化设计
+
+that combined computer, monitor, keyboard and tape drive into one device,
+集成了计算机,显示器,键盘和磁带驱动器
+
+aimed to appeal to consumers.
+目标是吸引普通消费者
+
+It started to blur the line between computer and appliance.
+计算机和家用电器之间的界限开始变得模糊
+
+These three computers became known as the 1977 Trinity.
+这3台计算机被称为1977年的"三位一体"
+
+They all came bundled with BASIC interpreters,
+它们都自带了 BASIC 解释器
+
+allowing non-computer-wizards to create programs.
+让不那么精通计算机的人也能用 BASIC 写程序
+
+The consumer software industry also took off,
+针对消费者的软件行业 开始腾飞
+
+offering games and productivity tools for personal computers,
+市场上出现了各种 \N 针对个人计算机的游戏和生产力工具
+
+like calculators and word processors.
+比如计算器和文字处理器
+
+The killer app of the era was 1979's VisiCalc,
+最火的是 1979 年的 VisiCalc
+
+the first spreadsheet program
+第一个电子表格程序
+
+which was infinitely better than paper
+比纸好无数倍
+
+and the forbearer of programs like Microsoft Excel and Google Sheets.
+是微软 Excel 和 Google Sheets 的老祖先
+
+But perhaps the biggest legacy of these computers was their marketing,
+但这些计算机带来的最大影响 \N 也许是他们的营销策略
+
+they were the first to be targeted at households, and not just businesses and hobbyists.
+它们针对普通消费者 \N 而不是企业和爱好者
+
+And for the first time in a substantial way,
+这是第一次大规模地
+
+computers started to appear in homes, and also small businesses and schools.
+计算机出现在家庭,小公司,以及学校中
+
+This caught the attention of the biggest computer company on the planet, IBM, who had seen its
+这引起了全球最大计算机公司 IBM 的注意
+
+share of the overall computer market shrink from 60% in 1970 to around 30% by 1980.
+其市场份额从1970年的60% \N 在1980年降到了30%左右
+
+This was mainly because IBM had ignored the microcomputer market,
+因为IBM忽略了增长的"微型计算机"市场
+
+which was growing at about 40% annually.
+这个市场每年增长约40%
+
+As microcomputers evolved into personal computers, IBM knew it needed to get in on the action.
+随着微型计算机演变成个人计算机 \N IBM 知道他们需要采取行动
+
+But to do this, it would have to radically rethink its computer strategy and design.
+但要做到这一点 \N 公司要从根本上重新思考战略和设计
+
+In 1980, IBM's least-expensive computer, the 5120, cost roughly ten thousand dollars,
+1980年 IBM 最便宜的计算机 \N "5120"的价格大概是一万美元
+
+which was never going to compete with the likes of the Apple II.
+永远也没法和 Apple-II 这样的计算机竞争
+
+This meant starting from scratch.
+意味着要从头开始
+
+A crack team of twelve engineers, later nicknamed the dirty dozen,
+一个由十二名工程师组成的精干团队(后来叫"肮脏十二人")
+
+were sent off to offices in Boca Raton, Florida,
+被派往佛罗里达州的 \N 博卡拉顿(Boca Raton)办公室
+
+to be left alone and put their talents to work.
+让他们独立工作
+
+Shielded from IBM internal politics, they were able to design a machine as they desired.
+不受 IBM 内部的政治斗争干扰 \N 他们想怎么设计怎么设计
+
+Instead of using IBM proprietary CPUs, they chose Intel chips.
+没用 IBM 的 CPU,选了 Intel 的芯片
+
+Instead of using IBM's prefered operating system, CP/M,
+也没用 IBM 的首选操作系统 CP/M
+
+they licenced Microsoft's Disk Operating System: DOS
+而是用了微软的 DOS
+
+and so on, from the screen to the printer.
+依此类推,从屏幕到打印机都这样自由选择
+
+For the first time, IBM divisions had to compete with outside firms
+IBM 第一次不得不与外部公司竞争
+
+to build hardware and software for the new computer.
+来给新计算机做硬件和软件
+
+This radical break from the company tradition of in-house development kept costs low
+这和 IBM 的传统做法不同:自己做硬件来节省成本
+
+and brought partner firms into the fold.
+然后和其它公司合作
+
+After just a year of development,
+经过短短一年
+
+the IBM Personal Computer, or IBM PC was released.
+IBM 个人计算机发布了,简称 IBM PC
+
+It was an immediate success,
+产品立马取得了成功
+
+especially with businesses that had long trusted the IBM brand.
+长期信任 IBM 品牌的企业买了很多
+
+But, most influential to its ultimate success was that the computer featured an open architecture,
+但最有影响力的是 \N 它使用 "开放式架构"
+
+with good documentation and expansion slots,
+有良好的文档和扩展槽
+
+allowing third parties to create new hardware and peripherals for the platform.
+使得第三方可以做硬件/外设
+
+That included things like graphics cards, sounds cards, external hard drives, joysticks,
+包括显卡,声卡,外置硬盘,游戏控制杆 \N 以及无数其它组件
+
+and countless other add-ons.
+包括显卡,声卡,外置硬盘,游戏控制杆 \N 以及无数其它组件
+
+This spurred innovation, and also competition, resulting in a huge ecosystem of products.
+这刺激了创新,激发了竞争,产生了巨大的生态系统
+
+This open architecture became known as "IBM Compatible".
+这个开放架构叫 IBM Compatible"(IBM 兼容)
+
+If you bought an "IBM Compatible" computer, it meant you
+意味着如果买了"IBM兼容"的计算机
+
+could use that huge ecosystem of software and hardware.
+你可以用庞大生态系统中的其它软硬件
+
+Being an open architecture also meant that competitor companies could follow the standard
+开放架构也意味着 竞争对手公司可以遵循这个标准
+
+and create their own IBM Compatible computers.
+做出自己的"IBM 兼容"计算机
+
+Soon, Compaq and Dell were selling their own PC clones...
+很快,康柏和戴尔也开始卖 PC
+
+And Microsoft was happy to license MS-DOS to them,
+微软很乐意把 MS-DOS 授权给他们
+
+quickly making it the most popular PC operating system.
+使 DOS 迅速成为最受欢迎的 PC 操作系统
+
+IBM alone sold two million PCs in the first three years, overtaking Apple.
+仅在前三年 \N IBM就卖出了200万台 PC ,超过了苹果
+
+With a large user base, software and hardware developers concentrated
+有了庞大用户群,软件和硬件开发人员 \N 把精力放在"IBM 兼容"平台,因为潜在用户更多
+
+their efforts on IBM Compatible platforms, there were just more users to sell to.
+有了庞大用户群,软件和硬件开发人员 \N 把精力放在"IBM 兼容"平台,因为潜在用户更多
+
+Then, people wishing to buy a computer bought the one with the
+同时,想买计算机的人 \N 也会看哪种计算机的软硬件选择更多
+
+most software and hardware available, and this effect snowballed.
+就像雪球效应一样
+
+Companies producing non-IBM-compatible computers, often with superior specs,
+而那些生产非"IBM兼容"计算机的公司 (一般性能更好)
+
+failed.
+都失败了
+
+Only Apple kept significant market share without IBM compatibility.
+只有苹果公司在没有"IBM兼容"的情况下 \N 保持了足够市场份额
+
+Apple ultimately chose to take the opposite approach a "closed architecture" proprietary
+苹果公司最终选了相反的方式:"封闭架构"
+
+designs that typically prevent people from adding new hardware to their computers.
+即自己设计一切,用户一般无法加新硬件到计算机中
+
+This meant that Apple made its own computers, with its own operating system, and often its
+意味着苹果公司要做自己的计算机,自己的操作系统
+
+own peripherals, like displays, keyboards, and printers.
+还有自己的外围设备,如显示器,键盘和打印机
+
+By controlling the full stack, from hardware to software,
+通过控制整个范围,从硬件到软件
+
+Apple was able to control the user experience and improve reliability.
+苹果能控制用户体验并提高可靠性
+
+These competing business strategies were the genesis of the "Mac" versus "PC" division
+不同的商业策略是"Mac vs PC 谁更好"这种争论的起源
+
+that still exists today... which is a misnomer, because they're both personal computers!
+这些争论如今还存在 \N 不过"Mac vs PC"用词不对,因为它们都是个人计算机!
+
+But whatever.
+但是随便啦
+
+To survive the onslaught of low-cost PCs,
+为了在低成本个人计算机的竞争冲击下生存下来
+
+Apple needed to up its game,
+苹果需要提高自身水平 \N 提供比 PC 和 DOS 更好的用户体验
+
+and offer a user experience that PCs and DOS couldn't.
+苹果需要提高自身水平 \N 提供比 PC 和 DOS 更好的用户体验
+
+Their answer was the Macintosh, released in 1984.
+他们的答案是 Macintosh,于 1984 年发布
+
+This ground breaking, reasonably-low-cost, all-in-one computer
+一台突破性 价格适中的一体式计算机 \N 用的不是命令行界面,而是图形界面
+
+booted not a command-line text-interface, but rather a graphical user interface,
+一台突破性 价格适中的一体式计算机 \N 用的不是命令行界面,而是图形界面
+
+our topic for next week. See you then.
+我们下周讨论图形界面. 到时见
+
diff --git a/(字幕)全40集中英字幕文本/26. 图形用户界面-Graphical User Interfaces.ass.txt b/(字幕)全40集中英字幕文本/26. 图形用户界面-Graphical User Interfaces.ass.txt
new file mode 100644
index 0000000..5480488
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/26. 图形用户界面-Graphical User Interfaces.ass.txt
@@ -0,0 +1,765 @@
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨 我是 Carrie Anne 欢迎收看计算机科学速成课
+
+We ended last episode with the 1984 release of Apple's Macintosh personal computer.
+我们上集最后 \N 谈了苹果在1984年发布的 Macintosh
+
+It was the first computer a regular person could buy with a graphical user interface
+这是普通人可以买到的 \N 第一台带图形用户界面的计算机
+
+and a mouse to interact with it.
+还带一个鼠标
+
+This was a radical evolution from the command line interfaces
+那时的计算机全是命令行 \N 图形界面是个革命性进展
+
+found on all other personal computers of the era.
+那时的计算机全是命令行 \N 图形界面是个革命性进展
+
+Instead of having to remember...
+不必记住或猜正确的命令
+
+or guess... the right commands to type in,
+我们不必记住或猜测正确的命令
+
+a graphical user interface shows you what functions are possible.
+图形界面直接显示了,你可以做什么
+
+You just have to look around the screen for what you want to do.
+只要在屏幕上找选项就行了
+
+It's a "point and click" interface.
+这是一个"选择并点击"的界面
+
+All of a sudden, computers were much more intuitive.
+突然间计算机更直观了
+
+Anybody, not just hobbyists or computer scientists,
+不只是爱好者或科学家能用计算机 \N 任何人都可以用计算机解决问题
+
+could figure things out all by themselves.
+不只是爱好者或科学家能用计算机 \N 任何人都可以用计算机解决问题
+
+The Macintosh is credited with taking Graphical User Interfaces, or GUIs, mainstream,
+人们认为是 Macintosh \N 把图形用户界面(GUI)变成主流
+
+but in reality they were the result of many decades of research.
+但实际上图形界面是数十年研究的成果
+
+In previous episodes, we discussed some early interactive graphical applications,
+前几集,我们讨论了早期的交互式图形程序
+
+like Sketchpad and Spacewar!, both made in 1962.
+比如 Sketchpad 和太空战争 \N 都是1962年制作的
+
+But these were one-off programs,
+但都是一次性项目,不是整合良好的体验
+
+and not whole integrated computing experiences.
+但都是一次性项目,不是整合良好的体验
+
+Arguably, the true forefather of modern GUIs was Douglas Engelbart.
+现代图形界面的先驱 \N 可以说是 道格拉斯·恩格尔巴特
+
+Let's go to the thought bubble!
+让我们进入思想泡泡!
+
+During World War 2, while Engelbart was stationed in the Philippines as a radar operator,
+二战期间 \N 恩格尔巴特 驻扎在菲律宾做雷达操作员
+
+he read Vannevar Bush's article on the Memex.
+他读了 万尼瓦尔·布什 的 Memex 文章
+
+These ideas inspired him,
+这些文章启发了他
+
+and when his Navy service ended,
+当他海军服役结束时
+
+he returned to school, completing a Ph.D. in 1955 at U.C. Berkeley.
+他回到学校 \N 1955年在 UCB 取得博士学位
+
+Heavily involved in the emerging computing scene,
+他沉溺于新兴的计算机领域
+
+he collected his thoughts in a seminal 1962 report,
+他在1962年一份开创性报告中 \N 汇集了各种想法
+
+titled: "Augmenting Human Intellect".
+报告名为:"增强人类智力"
+
+Engelbart believed that the complexity of the problems facing mankind
+恩格尔巴特认为,人类面临的问题 \N 比解决问题的能力增长得更快
+
+was growing faster than our ability to solve them.
+恩格尔巴特认为,人类面临的问题 \N 比解决问题的能力增长得更快
+
+Therefore, finding ways to augment our intellect
+因此,找到增强智力的方法 \N 似乎是必要且值得一做的目标
+
+would seem to be both a necessary and a desirable goal.
+因此,找到增强智力的方法 \N 似乎是必要且值得一做的目标
+
+He saw that computers could be useful beyond just automation,
+他构想计算机不仅做自动化工作
+
+and be essential interactive tools for future knowledge workers to tackle complex problems.
+也可以成为未来知识型员工 \N 应对复杂问题的工具
+
+Further inspired by Ivan Sutherland's recently demonstrated Sketchpad,
+伊凡·苏泽兰 的"几何画板" \N 进一步启发了 恩格尔巴特
+
+Engelbart set out to make his vision a reality, recruiting a team to build the oN-Line System.
+他决定动手把愿景变为现实 \N 开始招募团队来做 oN-Line System
+
+He recognized that a keyboard alone was insufficient
+他意识到如果只有键盘 \N 对他想搭建的程序来说是不够的
+
+for the type of applications he was hoping to enable.
+他意识到如果只有键盘 \N 对他想搭建的程序来说是不够的
+
+In his words:
+用他的话说:
+
+"We envisioned problem-solvers using computer-aided working stations to augment their efforts.
+"我们设想人们用计算机辅助工作站来增强工作
+
+They required the ability to interact with information displays
+用户需要和屏幕上的信息互动
+
+using some sort of device to move [a cursor] around the screen."
+用某种设备在屏幕上移动[光标]"
+
+And in 1964, working with colleague Bill English,
+1964年,和同事比尔·英格利希的共同努力下
+
+he created the very first computer mouse.
+他创造了第一个计算机鼠标,尾部有一根线
+
+The wire came from the bottom of the device
+他创造了第一个计算机鼠标,尾部有一根线
+
+and looked very much like a rodent and the nickname stuck.
+看起来很像老鼠 \N 因此"鼠标"这个名字沿用了下来
+
+Thanks thought bubble!
+谢了思想泡泡!
+
+In 1968, Engelbart demonstrated his whole system at the Fall Joint Computer Conference,
+1968年 恩格尔巴特 \N 在"秋季计算机联合会议"展示了他的系统
+
+in what's often referred to as "the mother of all demos".
+这次演示 被视为如今所有演示的祖先
+
+The demo was 90 minutes long and demonstrated many features of modern computing:
+演示有90分钟 \N 展现了现代计算机的许多功能:
+
+bitmapped graphics,
+包括 位图图像
+
+video conferencing,
+视频会议
+
+word processing,
+文字处理
+
+and collaborative real-time editing of documents.
+和 实时协作编辑文件
+
+There were also precursors to modern GUIs,
+还有现代图形界面的原型 比如鼠标和多窗口
+
+like the mouse and multiple windows
+还有现代图形界面的原型 比如鼠标和多窗口
+
+- although they couldn't overlap.
+- 不过窗口不能重叠
+
+It was way ahead of its time,
+远远先于那个时代
+
+and like many products with that label, it ultimately failed,
+就像其它"跨时代"的产品一样,它最终失败了
+
+at least commercially.
+至少商业上是这样
+
+But its influence on computer researchers of the day was huge.
+但它对当时的计算机研究者影响巨大
+
+Engelbart was recognized for this watershed moment in computing with a Turing Award in 1997.
+恩格尔巴特 因此获得1997年图灵奖
+
+Federal funding started to reduce in the early 1970s,
+政府资金在 1970 年代初开始减少
+
+which we discussed two episodes ago.
+我们在两集前说过\N(第24集:冷战和消费主义)
+
+At that point, many of Engelbart's team, including Bill English,
+那时,恩格尔巴特团队里的许多人,包括比尔·英格利希
+
+left and went to Xerox's newly formed Palo Alto Research Center,
+去了施乐公司新成立的"帕洛阿尔托研究中心"
+
+more commonly known as Xerox PARC.
+更为人熟知的名字是 Xerox PARC
+
+It was here that the first true GUI computer was developed:
+他们在这里开发了第一台带真正 GUI 的计算机:
+
+the Xerox Alto, finished in 1973.
+施乐奥托 于1973年完成
+
+For the computer to be easy to use,
+为了让计算机易于使用,需要的不只是花哨的图形
+
+it needed more than just fancy graphics.
+为了让计算机易于使用,需要的不只是花哨的图形
+
+It needed to be built around a concept that people were already familiar with,
+还要借助一些人们已经熟悉的概念
+
+so they could immediately recognize how to use the interface with little or no training.
+让人们不用培训 就能很快明白如何使用
+
+Xerox's answer was to treat the 2D screen like the top of a desk or desktop.
+施乐的答案是将2D屏幕当作"桌面"
+
+Just like how you can have many papers laid out on a desk,
+就像桌面上放很多文件一样
+
+a user could have several computer programs open at once.
+用户可以打开多个程序 \N 每个程序都在一个框里,叫"窗口"
+
+Each was contained in their own frame,
+用户可以打开多个程序 \N 每个程序都在一个框里,叫"窗口"
+
+which offered a view onto the application called a window.
+用户可以打开多个程序 \N 每个程序都在一个框里,叫"窗口"
+
+Also like papers on a desk,
+就像桌上的文件一样
+
+these windows could overlap, blocking the items behind them.
+窗口可以重叠,挡住后面的东西
+
+And there were desk accessories, like a calculator and clock,
+还有桌面配件,比如计算器和时钟
+
+that the user could place on the screen and move around.
+用户可以把配件在屏幕上四处移动
+
+It wasn't an exact copy of a desktop though.
+它不是现实桌面的完美复制,而是用桌面这种隐喻
+
+Instead, it was a metaphor of a desktop.
+它不是现实桌面的完美复制,而是用桌面这种隐喻
+
+For this reason, surprisingly, it's called the Desktop Metaphor.
+因此叫"桌面隐喻"
+
+There are many ways to design an interface like this,
+有很多方法来设计界面 \N 但 Alto 团队用窗口,图标,菜单和指针来做
+
+but the Alto team did it with windows, icons, menus, and a pointer
+有很多方法来设计界面 \N 但 Alto 团队用窗口,图标,菜单和指针来做
+
+- what's called a WIMP interface.
+- 因此叫 WIMP 界面
+
+It's what most desktop GUIs use today.
+如今大部分图形界面都用这个
+
+It also offered a basic set of widgets,
+它还提供了一套基本部件
+
+reusable graphical building blocks, things like buttons, checkboxes, sliders, and tabs
+可复用的基本元素 \N 比如按钮,打勾框,滑动条和标签页
+
+which were also drawn from real world objects to make them familiar.
+这些也来自现实世界,让人们有熟悉感
+
+GUI applications are constructed from these widgets,
+GUI 程序就是这些小组件组成的
+
+so let's try coding a simple example using this new programming paradigm.
+让我们试着写一个简单例子
+
+First, we have to tell the operating system that we need a new window to be created for our app.
+首先,我们必须告诉操作系统 \N 为程序创建一个窗口
+
+We do this through a GUI API.
+我们通过 GUI API 实现 \N 需要指定窗口的名字和大小
+
+We need to specify the name of the window and also its size.
+我们通过 GUI API 实现 \N 需要指定窗口的名字和大小
+
+Let's say 500 by 500 pixels.
+假设是 500×500 像素
+
+Now, let's add some widgets - a text box and a button.
+现在再加一些小组件,一个文本框和一个按钮
+
+These require a few parameters to create.
+创建它们需要一些参数
+
+First, we need to specify what window they should appear in,
+首先要指定出现在哪个窗口 \N 因为程序可以有多个窗口
+
+because apps can have multiple windows.
+首先要指定出现在哪个窗口 \N 因为程序可以有多个窗口
+
+We also need to specify the default text, the X and Y location in the window, and a width and height.
+还要指定默认文字\N 窗口中的 X,Y 位置 以及宽度和高度
+
+Ok, so now we've got something that looks like a GUI app,
+好,现在我们有个 \N 看起来像 GUI 程序的东西
+
+but has no functionality.
+但它还没有功能
+
+If you click the "roll" button, nothing happens.
+如果点 Roll 按钮,什么也不会发生
+
+In previous examples we've discussed,
+在之前的例子中,代码是从上到下执行的
+
+the code pretty much executes from top to bottom.
+在之前的例子中,代码是从上到下执行的
+
+GUIs, on the other hand, use what's called event-driven programming;
+但 GUI 是 "事件驱动编程"
+
+code can fire at any time, and in different orders, in response to events.
+代码可以在任意时间执行 以响应事件
+
+In this case, it's user driven events,
+这里是用户触发事件 \N 比如点击按钮,选一个菜单项,或滚动窗口
+
+like clicking on a button, selecting a menu item, or scrolling a window.
+这里是用户触发事件 \N 比如点击按钮,选一个菜单项,或滚动窗口
+
+Or if a cat runs across your keyboard,
+或一只猫踩过键盘
+
+it's a bunch of events all at once!
+就会一次触发好多事件!
+
+Let's say that when the user clicks the "roll" button,
+假设当用户点 Roll 按钮
+
+we want to randomly generate a number between 1 and 20,
+我们产生1到20之间的随机数
+
+and then show that value in our text box.
+然后在文本框中,显示这个数字
+
+We can write a function that does just that.
+我们可以写一个函数来做
+
+We can even get a little fancy and say if we get the number 20,
+我们还可以让它变有趣些,假设随机数是 20 \N 就把背景颜色变成血红色!
+
+set the background color of the window to blood red!
+我们还可以让它变有趣些,假设随机数是 20 \N 就把背景颜色变成血红色!
+
+The last thing we need to do is hook this code up
+最后,把代码与"事件"相连 \N 每次点按钮时 都触发代码
+
+so that it's triggered each time our button is clicked.
+最后,把代码与"事件"相连 \N 每次点按钮时 都触发代码
+
+To do this, we need to specify that our function "handles" this event for our button,
+那么,要设置事件触发时 \N 由哪个函数来处理
+
+by adding a line to our initialize function.
+我们可以在初始化函数中,加一行代码来实现
+
+The type of event, in this case, is a click event,
+我们要处理的,是"点击"事件 \N 然后函数会处理这个事件
+
+and our function is the event handler for that event.
+我们要处理的,是"点击"事件 \N 然后函数会处理这个事件
+
+Now we're done.
+现在完成了
+
+We can click that button all day long,
+可以点按钮点上一整天 \N 每次都会执行 rollD20 函数
+
+and each time, our "roll D20" function gets dispatched and executed.
+可以点按钮点上一整天 \N 每次都会执行 rollD20 函数
+
+This is exactly what's happening behind the scenes
+这就是程序背后的原理
+
+when you press the little bold button in a text editor, or select shutdown from a dropdown menu
+在编辑器里点 粗体 或菜单里选 关机 \N 一个处理该事件的函数会触发
+
+- a function linked to that event is firing.
+在编辑器里点 粗体 或菜单里选 关机 \N 一个处理该事件的函数会触发
+
+Hope I don't roll a 20.
+希望不会随机到 20
+
+Ahhhh!
+啊!!!
+
+Ok, back to the Xerox Alto!
+好,现在回到施乐奥托!
+
+Roughly 2000 Altos were made, and used at Xerox and given to University labs.
+大约制作了2000台奥托\N 有的在施乐公司内部用,有的送给大学实验室
+
+They were never sold commercially.
+从来没有商业出售过
+
+Instead, the PARC team kept refining the hardware and software,
+然而,PARC 团队不断完善硬件和软件
+
+culminating in the Xerox Star system, released in 1981.
+最终于1981年发布了 施乐之星系统
+
+The Xerox Star extended the desktop metaphor.
+施乐之星扩展了"桌面隐喻"
+
+Now, files looked like pieces of paper,
+现在文件看起来就像一张纸 \N 还可以存在文件夹里
+
+and they could be stored in little folders,
+现在文件看起来就像一张纸 \N 还可以存在文件夹里
+
+all of which could sit on your desktop, or be put away into digital filing cabinets.
+这些都可以放桌面上,或数字文件柜里
+
+It's a metaphor that sits ontop of the underlying file system.
+这样来隐喻底层的文件系统
+
+From a user's perspective, this is a new level of abstraction!
+从用户角度来看,是一层新抽象!
+
+Xerox, being in the printing machine business, also advanced text and graphics creation tools.
+施乐卖的是印刷机 \N 但在文本和图形制作工具领域也有领先
+
+For example, they introduced the terms: cut, copy and paste.
+例如,他们首先使用了\N "剪切""复制""粘贴"这样的术语
+
+This metaphor was drawn
+这个比喻来自编辑打字机文件
+
+from how people dealt with making edits in documents written on typewriters.
+这个比喻来自编辑打字机文件
+
+You'd literally cut text out with scissors, and then paste it, with glue,
+真的是剪刀"剪切" \N 然后胶水"粘贴" 到另一个文件
+
+into the spot you wanted in another document.
+真的是剪刀"剪切" \N 然后胶水"粘贴" 到另一个文件
+
+Then you'd photocopy the page to flatten it back down into a single layer,
+然后再复印一次,新文件就是一层了
+
+making the change invisible.
+看不出编辑的痕迹
+
+Thank goodness for computers!
+感谢计算机的出现!
+
+This manual process was moot with the advent of word processing software,
+文字处理软件出现后 \N 这种手工做法就消失了
+
+which existed on platforms like the Apple II and Commodore PET.
+Apple II 和 Commodore PET 上有文字处理软件
+
+But Xerox went way beyond the competition
+但施乐在这点上走的更远
+
+with the idea that whatever you made on the computer
+无论你在计算机上做什么 \N 文件打印出来应该长得一样
+
+should look exactly like the real world version, if you printed it out.
+无论你在计算机上做什么 \N 文件打印出来应该长得一样
+
+They dubbed this What-You-See-Is-What-You-Get or WYSIWYG.
+他们叫这个"所见即所得"
+
+Unfortunately, like Engelbart's oN-Line System,
+不幸的是,就像恩格尔巴特的 oN-Line System
+
+the Xerox Star was ahead of its time.
+施乐之星也领先于那个时代,销售量不高
+
+Sales were sluggish
+施乐之星也领先于那个时代,销售量不高
+
+because it had a price tag equivalent to nearly $200,000 today for an office setup.
+因为在办公室里配一个,相当如今20万美元
+
+It also didn't help that the IBM PC launched that same year,
+IBM 同年推出了 IBM PC
+
+followed by a tsunami of cheap "IBM Compatible" PC Clones.
+之后便宜的"IBM兼容"计算机席卷市场
+
+But the great ideas that PARC researchers had been cultivating
+但 PARC 研究人员花了十几年做的这些 \N 没有被浪费
+
+and building for almost a decade didn't go to waste.
+但 PARC 研究人员花了十几年做的这些 \N 没有被浪费
+
+In December of 1979, a year and a half before the Xerox Star shipped,
+1979年12月,施乐之星出货前一年半
+
+a guy you may have heard of visited: Steve Jobs.
+有个人去施乐公司参观 \N 你可能听说过这个人:史蒂夫·乔布斯
+
+There's a lot of lore surrounding this visit,
+这次参观有很多传闻
+
+with many suggesting that Steve Jobs and Apple stole Xerox's ideas.
+许多人认为\N 乔布斯和苹果偷走了施乐的创意
+
+But that simply isn't true.
+但那不是事实
+
+In fact, Xerox approached Apple, hoping to partner with them.
+事实上是施乐公司主动找苹果,希望合作
+
+Ultimately, Xerox was able to buy a million dollar stake in Apple
+最终施乐还买了苹果的一百万美元股份
+
+before its highly anticipated I.P.O.
+在苹果备受瞩目的 首次公开募股(IPO) 前买的
+
+-but it came with an extra provision:
+但一个额外条款是:
+
+"disclose everything cool going on at Xerox PARC".
+"公布一切施乐研究中心正在进行的酷工作"
+
+Steve knew they had some of the greatest minds in computing,
+史蒂夫知道他们很厉害
+
+but he wasn't prepared for what he saw.
+但他完全没预想到这些
+
+There was a demonstration of Xerox's graphical user interface,
+其中有个演示是
+
+running on a crisp, bitmapped display,
+一个清晰的位图显示器上,运行着施乐公司的图形界面 \N 操作全靠鼠标直观进行
+
+all driven with intuitive mouse input.
+一个清晰的位图显示器上,运行着施乐公司的图形界面 \N 操作全靠鼠标直观进行
+
+Steve later said, "It was like a veil being lifted from my eyes.
+史蒂夫后来说:"就像拨开了眼前的一层迷纱
+
+I could see the future of what computing was destined to be."
+我可以看到计算机产业的未来"
+
+Steve returned to Apple with his engineering entourage,
+史蒂夫和随行的工程师回到苹果公司,开始开发新功能
+
+and they got to work inventing new features,
+史蒂夫和随行的工程师回到苹果公司,开始开发新功能
+
+like the menu bar and a trash can to store files to be deleted;
+比如菜单栏和垃圾桶,垃圾桶存删除文件
+
+it would even bulge when full - again with the metaphors.
+满了甚至会膨胀 - 再次使用了隐喻
+
+Apple's first product with a graphical user interface, and mouse,
+苹果第一款有图形界面和鼠标的产品
+
+was the Apple Lisa, released in 1983.
+是 1983 年发行的 Apple Lisa
+
+It was a super advanced machine, with a super advanced price
+一台超级先进的机器,标了"超级先进"的价格
+
+- almost 25 thousand dollars today.
+- 差不多是如今的 25000 美元
+
+That was significantly cheaper than the Xerox Star,
+虽然比施乐之星便宜不少
+
+but it turned out to be an equal flop in the market.
+但在市场上同样失败
+
+Luckily, Apple had another project up its sleeve:
+幸运的是,苹果还有另一个项目:
+
+The Macintosh, released a year later, in 1984.
+Macintosh,于 1984 年发布
+
+It had a price of around 6,000 dollars today - a quarter of the Lisa's cost.
+价格大约是如今的6000美元 - Lisa 的四分之一
+
+And it hit the mark, selling 70,000 units in the first 100 days.
+它成功了,开售100天就卖了7万台
+
+But after the initial craze, sales started to falter,
+但在最初的狂潮后,销售额开始波动
+
+and Apple was selling more of its Apple II computers than Macs.
+苹果公司卖的 Apple II 比 Mac 多
+
+A big problem was that no one was making software for this new machine
+一个大问题是:没人给这台新机器做软件
+
+with it's new radical interface.
+一个大问题是:没人给这台新机器做软件
+
+And it got worse. The competition caught up fast.
+之后情况变得更糟,竞争对手赶上来了
+
+Soon, other personal computers had primitive,
+不久,其它价格只有 Mac 几分之一的个人计算机 \N 有了原始但可用的图形界面
+
+but usable graphical user interfaces on computers a fraction of the cost.
+不久,其它价格只有 Mac 几分之一的个人计算机 \N 有了原始但可用的图形界面
+
+Consumers ate it up, and so did PC software developers.
+消费者认可它们, PC 软件开发者也认可
+
+With Apple's finances looking increasingly dire,
+随着苹果的财务状况日益严峻 \N 以及和苹果新 CEO 约翰·斯卡利 的关系日益紧张
+
+and tensions growing with Apple's new CEO, John Sculley,
+随着苹果的财务状况日益严峻 \N 以及和苹果新 CEO 约翰·斯卡利 的关系日益紧张
+
+Steve Jobs was ousted.
+史蒂夫乔布斯被赶出了苹果公司
+
+A few months later, Microsoft released Windows 1.0.
+几个月后,微软发布了 Windows 1.0
+
+It may not have been as pretty as Mac OS,
+它也许不如 Mac OS 漂亮
+
+but it was the first salvo in what would become a bitter rivalry
+但让微软在市场中站稳脚跟 \N 奠定了统治地位
+
+and near dominance of the industry by Microsoft.
+但让微软在市场中站稳脚跟 \N 奠定了统治地位
+
+Within ten years, Microsoft Windows was running on almost 95% of personal computers.
+十年内,95%的个人计算机上都有微软的 Windows
+
+Initially, fans of Mac OS could rightly claim superior graphics and ease-of-use.
+最初,Mac OS 的爱好者还可以说\N Mac 有卓越的图形界面和易用性
+
+Those early versions of Windows were all built on top of DOS,
+Windows 早期版本都是基于 DOS \N 而 DOS 设计时 没想过运行图形界面
+
+which was never designed to run GUIs.
+Windows 早期版本都是基于 DOS \N 而 DOS 设计时 没想过运行图形界面
+
+But, after Windows 3.1,
+但 Windows 3.1 之后
+
+Microsoft began to develop a new consumer-oriented OS
+微软开始开发新的,\N 面向消费者的 GUI 操作系统
+
+with upgraded GUI called Windows 95.
+叫 Windows 95
+
+This was a significant rewrite that offered much more than just polished graphics.
+这是一个意义非凡的版本 \N 不仅提供精美的界面
+
+It also had advanced features Mac OS didn't have,
+还有 Mac OS 没有的高级功能
+
+like program multitasking and protected memory.
+比如"多任务"和"受保护内存"
+
+Windows 95 introduced many GUI elements still seen in Windows versions today,
+Windows 95 引入了许多 \N 如今依然见得到的 GUI 元素
+
+like the Start menu, taskbar, and Windows Explorer file manager.
+比如开始菜单,任务栏和 Windows 文件管理器
+
+Microsoft wasn't infallible though.
+不过微软也失败过
+
+Looking to make the desktop metaphor even easier and friendlier,
+为了让桌面更简单友好 \N 微软开发了一个产品叫 Microsoft Bob
+
+it worked on a product called Microsoft Bob,
+为了让桌面更简单友好 \N 微软开发了一个产品叫 Microsoft Bob
+
+and it took the idea of using metaphors to an extreme.
+将比喻用到极致
+
+Now you had a whole virtual room on your screen,
+现在屏幕上有了一个虚拟房间
+
+with applications embodied as objects that you could put on tables and shelves.
+程序是物品,可以放在桌子和书架上
+
+It even came with a crackling fireplace and a virtual dog to offer assistance.
+甚至还有噼啪作响的壁炉 \N 和提供帮助的虚拟狗狗
+
+And you see those doors on the sides?
+你看到那边的门没?
+
+Yep, those went to different rooms in your computer
+是的,那些门通往不同房间 \N 房间里有不同程序
+
+where different applications were available.
+是的,那些门通往不同房间 \N 房间里有不同程序
+
+As you might have guessed,
+你可能猜到了,它没有获得成功
+
+it was not a success.
+你可能猜到了,它没有获得成功
+
+This is a great example of how the user interfaces we enjoy today
+这是一个好例子,说明如今的用户界面
+
+are the product of what's essentially natural selection.
+是自然选择后的结果
+
+Whether you're running Windows, Mac, Linux, or some other desktop GUI,
+无论你用的是 \N Windows,Mac,Linux 或其他 GUI
+
+it's almost certainly an evolved version of the WIMP paradigm first introduced on the Xerox Alto.
+几乎都是施乐奥托 WIMP 的变化版
+
+Along the way, a lot of bad ideas were tried, and failed.
+一路上,人们试了各种做法并失败了
+
+Everything had to be invented, tested, refined, adopted or dropped.
+一切都必须发明,测试,改进,适应或抛弃
+
+Today, GUIs are everywhere and while they're good,
+如今,图形界面无处不在 \N 使用体验一般只是可以接受,而不是非常好
+
+they are not always great.
+如今,图形界面无处不在 \N 使用体验一般只是可以接受,而不是非常好
+
+No doubt you've experienced design-related frustrations
+你肯定体验过差劲的设计
+
+after downloading an application, used someone else's phone,
+比如下载了很烂的 App,用过别人糟糕的手机
+
+or visited a website. And for this reason,
+或者看到过很差的网站,因此
+
+computer scientists and interface designers continue to work hard
+计算机科学家和界面设计师 \N 会继续努力工作
+
+to craft computing experiences that are both easier and more powerful.
+做出更好更强大的界面
+
+Ultimately, working towards Engelbart's vision of augmenting human intellect.
+朝着恩格尔巴特"增强人类智能"的愿景努力
+
+I'll see you next week.
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/27. 3D 图形-3D Graphics.ass.txt b/(字幕)全40集中英字幕文本/27. 3D 图形-3D Graphics.ass.txt
new file mode 100644
index 0000000..3c7c91f
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/27. 3D 图形-3D Graphics.ass.txt
@@ -0,0 +1,624 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Over the past five episodes,
+在过去五集
+
+we've worked up from text-based teletype interfaces to pixelated bitmapped graphics.
+我们从基于电传打字机的命令行界面 \N 讲到图形怎么显示到屏幕上
+
+Then, last episode,we covered Graphical User Interfaces and all
+再到上集的 图形用户界面(GUI)
+
+their "Ooey Gooey" richness.
+以及图形界面的美味
+
+All of these examples have been 2D. But of course "we are living in a 3D world
+之前的例子都是2D, 但我们生活的世界是3D的
+
+and I'm a 3 dimensional girl!
+我也是个三维 girl~
+
+So today, we're going to talk about some fundamental methods in 3D computer graphics
+所以今天,我们讲3D图形的基础知识
+
+and how you render them onto a 2D screen.
+以及如何渲染 3D 图形到 2D 屏幕上
+
+As we discussed in episode 24 we can write functions that draw a line between any two points like A and B.
+24集中说过 \N 可以写一个函数,从A到B画一条线
+
+By manipulating the X and Y coordinates of points A and B, we can manipulate the line.
+通过控制 A 和 B 的(X,Y)坐标,可以控制一条线
+
+In 3D graphics, points have not just two coordinates, but three -- X, Y and Z.
+在3D图像中, 点的坐标不再是两点, 而是三点, X,Y,Z
+
+Or "zee" but I'm going to say "zed".
+或读"Zee",但我之后会读成"Zed"
+
+Of course, we don't have X/Y/Z coordinates on a 2D computer screen
+当然,2D的电脑屏幕上\N不可能有 XYZ 立体坐标轴
+
+so graphics algorithms are responsible for "flattening" 3D coordinates onto a 2D plane.
+所以有图形算法 \N 负责把3D坐标"拍平"显示到2D屏幕上
+
+This process is known as 3D Projection.
+这叫"3D投影"
+
+Once all of the points have been converted from 3D to 2D
+所有的点都从3D转成2D后
+
+we can use the regular 2D line drawing function to connect the dots… literally.
+就可以用画2D线段的函数 来连接这些点
+
+This is called Wireframe Rendering.
+这叫 "线框渲染"
+
+Imagine building a cube out of chopsticks, and shining a flashlight on it.
+想象用筷子做一个立方体,然后用手电筒照它
+
+The shadow it casts onto your wall - its projection - is flat.
+墙上的影子就是投射,是平的
+
+If you rotate the cube around
+如果旋转立方体
+
+you can see it's a 3D object, even though it's a flat projection.
+投影看起来会像 3D 物体,尽管是投影面是平的
+
+This transformation from 3D to 2D is exactly what your computer is doing
+电脑也是这样3D转2D
+
+just with a lot more math… and less chopsticks.
+只不过用大量数学,而不是筷子
+
+There are several types of 3D Projection.
+3D投影有好几种
+
+What you're seeing right now is an Orthographic Projection
+你现在看到的,叫 正交投影
+
+where, for example, the parallel sides in the cube appear as parallel in the projection.
+立方体的各个边,在投影中互相平行
+
+In the real 3D world through, parallel lines converge as they get further from the viewer
+在真实3D世界中,平行线段会在远处收敛于一点
+
+like a road going to the horizon.
+就像远处的马路汇聚到一点
+
+This type of 3D projection is called Perspective Projection .
+这叫 透视投射
+
+It's the same process, just with different math.
+过程是类似的,只是数学稍有不同
+
+Sometimes you want perspective and sometimes you don't --
+有时你想要透视投影,有时不想
+
+the choice is up to the developer.
+具体取决于开发人员
+
+Simple shapes, like cubes, are easily defined by straight lines.
+如果想画立方体这种简单图形,直线就够了
+
+But for more complex shapes, triangles are better
+但更复杂的图形,三角形更好
+
+-- what are called polygons in 3D graphics.
+在3D图形学中 \N 我们叫三角形"多边形"(Polygons)
+
+Look at this beautiful teapot made out of polygons.
+看看这个多边形组成的 漂亮茶壶
+
+A collection of polygons like this is a mesh
+一堆多边形的集合叫 网格
+
+The denser the mesh, the smoother the curves and the finer the details.
+网格越密,表面越光滑,细节越多
+
+But, that also increases the polygon count, which means more work for the computer
+但意味着更多计算量
+
+Game designers have to carefully balance model fidelity vs. polygon count,
+游戏设计者要平衡角色的真实度 \N 和多边形数量
+
+because if the count goes too high
+如果数量太多 \N 帧率会下降到肉眼可感知,用户会觉得卡
+
+the framerate of an animation drops below what users perceive as smooth.
+如果数量太多 \N 帧率会下降到肉眼可感知,用户会觉得卡
+
+For this reason, there are algorithms for simplifying meshes.
+因此有算法用来简化网格
+
+The reason triangles are used,
+之所以三角形更常用 \N 而不是用正方形,或其它更复杂的图形
+
+and not squares, or polygons, or some other more complex shape
+之所以三角形更常用 \N 而不是用正方形,或其它更复杂的图形
+
+is simplicity:
+是因为三角形的简单性
+
+three points in space unambiguously define a plane.
+空间中 三点定义一个平面
+
+If you give me three points in a 3D space, I can draw a plane through it
+如果给3个3D点,我能画出一个平面
+
+there is only one.. single.. answer.
+而且只有这一个答案
+
+This isn't guaranteed to be true for shapes with four or more points.
+4个或多于4个点就不一定了
+
+Also two points aren't enough to define a plane, only a line,
+而2个点不够定义平面,只能定义线段
+
+so three is the perfect and minimal number. Triangles for the win!
+所以3是最完美的数字,三角形万岁
+
+Wireframe rendering is cool and all - sorta retro - but of course 3D graphics can also be filled.
+线框渲染 虽然很酷,但3D图像需要填充
+
+The classic algorithm for doing this is called Scanline Rendering,
+填充图形的经典算法叫 扫描线渲染 (Scanline Rendering) \N 于1967年诞生在犹他州大学
+
+first developed in 1967 at the University of Utah
+填充图形的经典算法叫 扫描线渲染 (Scanline Rendering) \N 于1967年诞生在犹他州大学
+
+For a simple example, let's consider just one polygon.
+为了例子简单,我们只看一个多边形
+
+Our job here is to figure out how this polygon translates to filled pixels on a computer screen
+我们要思考 \N 这个多边形如何转成一块填满像素的区域
+
+so let's first overlay a grid of pixels to fill
+我们先铺一层像素网格
+
+The scanline algorithm starts by reading the three points that make up the polygon
+扫描线算法 先读多边形的3个点
+
+and finding the lowest and highest Y values. It will only consider rows between these two points.
+找最大和最小的Y值,只在这两点间工作
+
+Then, the algorithm works down one row at a time.
+然后算法从上往下,一次处理一行
+
+In each row, it calculates where a line running through
+计算每一行和多边形相交的2个点
+
+the center of a row - intersects with the side of the polygon.
+计算每一行和多边形相交的2个点
+
+Because polygons are triangles, if you intersect one line, you have to intersect with another.
+因为是三角形,如果相交一条边, 必然相交另一条
+
+It's guaranteed!
+因为是三角形,如果相交一条边, 必然相交另一条
+
+The job of the scanline algorithm is to fill in the pixels between the two intersections.
+扫描线算法 会填满2个相交点之间的像素
+
+Let's see how this works.
+来看个具体例子
+
+On the first row we look at we intersect here and here.
+第一行 相交于这里和这里
+
+The algorithm then colors in all pixels between those two intersections.
+算法把两点间填满颜色
+
+And this just continues, row by row, which is why it's called Scan... Line... Rendering.
+然后下一行,再下一行,所以叫 扫描..线..渲染
+
+When we hit the bottom of the polygon, we're done.
+扫到底部就完成了
+
+The rate at which a computer fills in polygons is called the fillrate.
+填充的速度叫 fillrate(填充速率)
+
+Admittedly, this is a pretty ugly filled polygon. It has what are known as "Jaggies" rough edges.
+当然 这样的三角形比较丑,边缘满是锯齿
+
+This effect is less pronounced when using smaller pixels.
+当像素较小时 就不那么明显
+
+But nonetheless, you see these in games all the time, especially on lower powered platforms.
+但尽管如此 \N 你肯定在游戏里见过这种效果,特别是低配电脑
+
+One method to soften this effect is Antialiasing.
+一种减轻锯齿的方法叫\N 抗锯齿(Antialiasing)
+
+Instead of filling pixels in a polygon with the same color,
+与其每个像素都涂成一样的颜色
+
+we can adjust the color based on how much the polygon cuts through each pixel
+可以判断多边形切过像素的程度,来调整颜色
+
+If a pixel is entirely inside of a polygon,it gets fully colored.
+如果像素在多边形内部,就直接涂颜色
+
+But if the polygon only grazes a pixel, it'll get a lighter shade.
+如果多边形划过像素,颜色就浅一些
+
+This feathering of the edges is much more pleasant to the eyes.
+这种边缘羽化的效果 看着更舒服些
+
+Antialiasing is used all over the place, including in 2D graphics, like fonts and icons.
+抗锯齿 被广泛使用,比如字体和图标
+
+If you lean in real close to your monitor..
+如果你把脸贴近屏幕
+
+Closer, Closer.
+近点..再近点
+
+You'll see all the fonts in your browser are Antialiased. So smooth!
+你能看到浏览器里字体是抗锯齿的,超平滑
+
+In a 3D scene, there are polygons that are part objects in the back, near the front,and just about everywhere.
+在3D场景中,多边形到处都是
+
+Only some are visible,
+但只有一部分能看见
+
+because some objects are hidden behind other objects in the scene
+因为其它的被挡住了
+
+-- what's called occlusion .
+这叫 遮挡
+
+The most straightforward way to handle this is to use a sort algorithm,
+最直接的处理办法是用排序算法
+
+and arrange all the polygons in the scene from farthest to nearest, then render them in that order.
+从远到近排列,然后从远到近渲染
+
+This is called the Painter's Algorithm , because painters also have to start with the background
+这叫 画家算法 因为画家也是先画背景
+
+and then increasingly work up to foreground elements.
+然后再画更近的东西
+
+Consider this example scene with three overlapping polygons.
+看这个例子,有3个重叠的多边形
+
+To make things easier to follow, we're going to color the polygons differently.
+为了简单,我们画成不同颜色
+
+Also for simplicity, we'll assume these polygons are all parallel to the screen
+同时,假设3个多边形都和屏幕平行
+
+but in a real program, like a game,
+但在实际应用中, 比如游戏里\N多边形可能是倾斜的
+
+the polygons can be tilted in 3D space.
+但在实际应用中, 比如游戏里\N多边形可能是倾斜的
+
+Our three polygons, A B and C… are at distance 20, 12 and 14.
+3个多边形A,B,C,距离20,12,14
+
+The first thing the Painter's Algorithm does is sort all the polygons, from farthest to nearest.
+画家算法的第一件事,是从远到近排序
+
+Now that they're in order, we can use scanline rendering to fill each polygon, one at a time.
+现在有序了,我们可以用 扫描线算法 填充多边形,一次填一个
+
+We start with Polygon A, the farthest one away.
+我们从最远的A开始
+
+Then we repeat the process for the next farthest polygon, in this case, C.
+然后重复这个过程,填充第二远的C
+
+And then we repeat this again, for Polygon B.
+然后是 B
+
+Now we're all done, and you can see the ordering is correct. The polygons that are closer, are in front!
+现在完成了,可以看到顺序是对的,近的多边形在前面!
+
+An alternative method for handling occlusion is called Z-Buffering .
+还有一种方法叫 深度缓冲
+
+It achieves the same output as before, but with a different algorithm.
+它和之前的算法做的事情一样,但方法不同
+
+Let's go back to our previous example, before it was sorted.
+我们回到之前的例子,回到排序前的状态
+
+That's because this algorithm doesn't need to sort any polygons, which makes it faster.
+因为这个算法不用排序,所以速度更快
+
+In short, Z-buffering keeps track of the closest distance
+简而言之,Z-buffering 算法会记录
+
+to a polygon for every pixel in the scene.
+场景中每个像素和摄像机的距离
+
+It does this by maintaining a Z-Buffer, which is just a matrix of values that sits in memory.
+在内存里存一个数字矩阵
+
+At first, every pixel is initialized to infinity.
+首先,每个像素的距离被初始化为"无限大"
+
+Then Z-buffering starts with the first polygon in its list. In this case, that's A.
+然后 Z-buffering 从列表里第一个多边形开始处理,也就是A
+
+It follows the same logic as the scanline algorithm, but instead of coloring in pixels,
+它和扫描线算法逻辑相同,但不是给像素填充颜色
+
+it checks the distance of the polygon versus what's recorded in its Z-Buffer.
+而是把多边形的距离\N和 Z-Buffer 里的距离进行对比
+
+It records the lower of the two values.
+它总是记录更低的值
+
+For our Polygon A, with a distance of 20, it wins against infinity every time.
+A距离20,20小于"无限大",所以缓冲区记录20
+
+When it's done with Polygon A, it moves on to the next polygon in its list, and the same thing happens.
+算完A之后算下一个,以此类推
+
+Now, because we didn't sort the polygons,
+因为没对多边形排序
+
+it's not always the case that later polygons overwrite high values.
+所以后处理的多边形并不总会覆盖前面的
+
+In the case of Polygon C,
+对于多边形C
+
+only some of the values in the Z-buffer get new minimum distances.
+缓冲区里只有一部分值会被多边形C的距离值覆盖
+
+This completed Z-buffer is used in conjunction with a fancier version of scanline rendering
+Z缓冲区完成后,会和"扫描线"算法的改进高级版配合使用
+
+that not only tests for line intersection,
+不仅可以勘测到线的交叉点
+
+but also does a look up to see if that pixel will even be visible in the final scene.
+还可以知道某像素是否在最终场景中可见
+
+If it's not, the algorithm skips it and moves on.
+如果不可见,扫描线算法会跳过那个部分
+
+An interesting problem arises when two polygons have the same distance,
+当两个多边形距离相同时 \N 会出现一个有趣问题
+
+like if Polygon A and B are both at a distance of 20. Which one do you draw on top?
+比如多边形 A 和 B 距离都是 20, 哪个画上面?
+
+Polygons are constantly being shuffled around in memory and changing their access order.
+多边形会在内存中移来移去,访问顺序会不断变化
+
+Plus, rounding errors are inherent in floating point computations.
+另外,计算浮点数有舍入误差
+
+So, which one gets drawn on top is often unpredictable.
+所以哪一个画在上面, 往往是不可预测的
+
+The result is a flickering effect called Z-Fighting, which if you've played 3D games no doubt encountered.
+导致出现 Z-fighting 效果 \N 如果你玩过3D游戏,肯定见过
+
+Speaking of glitches, another common optimization in 3D graphics is called Back-Face Culling.
+说起 故障,3D游戏中有个优化叫 背面剔除
+
+If you think about it, a triangle has two sides, a front and a back.
+你想想,三角形有两面,正面和背面
+
+With something like the head of an avatar, or the ground in a game,
+游戏角色的头部或地面,只能看到朝外的一面
+
+you should only ever see one side -- the side facing outwards.
+游戏角色的头部或地面,只能看到朝外的一面
+
+So to save processing time, the back-side of polygons are often ignored in the rendering pipeline
+所以为了节省处理时间,会忽略多边形背面
+
+which cuts the number of polygon faces to consider in half.
+减了一半多边形面数
+
+This is great, except when there's a bug that lets you get inside of those objects,and look outwards.
+这很好,但有个bug是 如果进入模型内部往外看
+
+Then the avatar head or ground becomes invisible.
+头部和地面会消失
+
+Moving on. We need to talk about lighting -- also known as shading
+继续,我们讲灯光,也叫 明暗处理
+
+because if it's a 3D scene, the lighting should vary over the surface of objects.
+因为3D场景中, 物体表面应该有明暗变化
+
+Let's go back to our teapot mesh.
+我们回到之前的茶壶网格
+
+With scanline rendering coloring in all the polygons, our teapot looks like this.
+用"扫描线"算法渲染所有多边形后,茶壶看起来像这样
+
+Not very 3D.
+没什么 3D 感
+
+So, let's add some lighting to enhance the realism!
+我们来加点灯光,提高真实感
+
+As an example, we'll pick 3 polygons from different parts of our teapot.
+为了举例,我们从茶壶上挑3个不同位置的多边形
+
+Unlike our previous examples, we're now going to consider how these polygons are oriented in 3D space
+和之前的例子不同,这次要考虑这些多边形面对的方向
+
+they're no longer parallel to the screen, but rather tilted in different 3D directions.
+它们不平行于屏幕,而是面对不同方向
+
+The direction they face is called the Surface Normal ,
+他们面对的方向叫 " 表面法线 "
+
+and we can visualize that direction with a little 3D arrow that's perpendicular to the polygon's surface.
+我们可以用一个垂直于表面的小箭头\N来显示这个方向
+
+Now let's add a light source.
+现在加个光源
+
+Each polygon is going to be illuminated a different amount. Some will appear brighter
+每个多边形被照亮的程度不同 有的更亮
+
+because their angle causes more light to be reflected towards the viewer.
+因为面对的角度\N导致更多光线反射到观察者
+
+For example, the bottom-most polygon is tilted downwards,
+举个例子,底部的多边形向下倾斜
+
+away from the light source, which means it's going to be dark.
+远离光源,所以更暗一些
+
+In a similar way, the rightmost polygon is slightly facing away from the light,
+类似的,最右的多边形更背对光源
+
+so it will be partially illuminated.
+所以只有部分照亮
+
+And finally, there's the upper-left polygon.
+最后是左上角的多边形
+
+Its angle means that it will reflect light from the light source towards our view.
+因为它面对的角度 意味着会把光线反射到我们这里
+
+So, it'll appear bright.
+所以会显得更亮
+
+If we do this for every polygon, our teapot looks like this which is much more realistic!
+如果对每个多边形执行同样的步骤,看上去会更真实!
+
+This approach is called Flat Shading, and it's the most basic lighting algorithm.
+这叫 平面着色,是最基本的照明算法
+
+Unfortunately, it also makes all those polygon boundaries really noticeable
+不幸的是,这使多边形的边界非常明显,看起来不光滑
+
+and the mesh doesn't look smooth.
+不幸的是,这使多边形的边界非常明显,看起来不光滑
+
+For this reason, more advanced lighting algorithms were developed,
+因此开发了更多算法
+
+such as Gouraud Shading and Phong Shading .
+比如 高洛德着色 和 冯氏着色
+
+Instead of coloring in polygons using just one colour,
+不只用一种颜色给整个多边形上色
+
+they vary the colour across the surface in clever ways,
+而是以巧妙的方式改变颜色
+
+which results in much nicer output.
+得到更好的效果
+
+We also need to talk about textures ,
+我们还要说下" 纹理 "
+
+which in graphics refers to the look of a surface,rather than its feel.
+纹理在图形学中指外观,而不是手感
+
+Like with lighting, there are many algorithms with all sorts of fancy effects.
+就像照明算法一样,\N 纹理也有多种算法,来做各种花哨效果
+
+The simplest is texture mapping .
+最简单的是 纹理映射
+
+To visualize this process,let's go back to our single polygon.
+为了理解纹理映射,回到单个多边形
+
+When we're filling this in, using scanline rendering,
+用"扫描线算法"填充时
+
+we can look up what color to use at every pixel according to a texture image saved in memory.
+可以看看内存内的纹理图像 决定像素用什么颜色
+
+To do this, we need a mapping between the polygon's coordinates and the texture's coordinates.
+为了做到这点,\N 需要把多边形坐标和纹理坐标对应起来
+
+Let's jump to the first pixel that scanline rendering needs to fill in.
+我们来看看"扫描线算法"要填充的第一个像素
+
+The texturing algorithm will consult the texture in memory,
+纹理算法会查询纹理
+
+take the average color from the corresponding region, and fill the polygon accordingly.
+从相应区域取平均颜色,并填充多边形
+
+This process repeats for all pixels in the polygon, and that's how we get textures.
+重复这个过程,就可以获得纹理
+
+If you combine all the techniques we've talked about this episode, you get a wonderfully funky little teapot.
+如果结合这集提到的所有技巧 \N 会得到一个精美的小茶壶
+
+And this teapot can sit in an even bigger scene, comprised of millions of polygons.
+这个茶壶可以放进更大的场景里 \N 场景由上百万个多边形组成
+
+Rendering a scene like this takes a fair amount of computation.
+渲染这样的场景需要大量计算
+
+But importantly, it's the same type of calculations being performed
+但重要的是,再大的场景,过程都是一样的 \N 一遍又一遍,处理所有多边形
+
+over and over and over again for many millions of polygons –
+但重要的是,再大的场景,过程都是一样的 \N 一遍又一遍,处理所有多边形
+
+scanline filling, antialiasing, lighting, and texturing.
+扫描线填充, 抗锯齿, 光照, 纹理化
+
+However there are a couple of ways to make this much faster!
+然而,有几种方法可以加速渲染
+
+First off, we can speed things up by having special hardware
+首先,我们可以为这种特定运算 \N 做专门的硬件来加快速度,让运算快如闪电
+
+with extra bells and whistles just for these specific types of computations, making them lightning fast.
+首先,我们可以为这种特定运算 \N 做专门的硬件来加快速度,让运算快如闪电
+
+And secondly,we can divide up a 3D scene into many smaller parts,
+其次,我们可以把3D场景分解成多个小部分
+
+and then render all the pieces in parallel,rather than sequentially.
+然后并行渲染,而不是按顺序渲染
+
+CPU's aren't designed for this, so they aren't particularly fast.
+CPU不是为此设计的,因此图形运算不快
+
+So, computer engineers created special processors just for graphics
+所以,计算机工程师为图形做了专门的处理器
+
+– a GPU, or Graphics Processing Unit.
+叫 GPU "图形处理单元"
+
+These can be found on graphics cards inside of your computer, along with RAM reserved for graphics.
+GPU 在显卡上,周围有专用的 RAM
+
+This is where all the meshes and textures live,
+所有网格和纹理都在里面
+
+allowing them to be accessed super fast by many different cores of the GPU all at once.
+让 GPU 的多个核心可以高速访问
+
+A modern graphics card, like a GeForce GTX 1080 TI,
+现代显卡,如 GeForce GTX 1080 TI
+
+contains 3584 processing cores, offering massive parallelization.
+有3584个处理核心,提供大规模并行处理
+
+It can process hundreds of millions of polygons every second!
+每秒处理上亿个多边形!
+
+Ok, that concludes our whistle stop tour of 3D graphics.
+好了,本集对3D图形的介绍到此结束
+
+Next week, we switch topics entirely.
+下周我们聊全新的主题
+
+I'll ping you then.
+我到时会 ping 你~
+
diff --git a/(字幕)全40集中英字幕文本/28. 计算机网络-Computer Networks.ass.txt b/(字幕)全40集中英字幕文本/28. 计算机网络-Computer Networks.ass.txt
new file mode 100644
index 0000000..cac97a1
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/28. 计算机网络-Computer Networks.ass.txt
@@ -0,0 +1,684 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+The internet is amazings
+互联网太棒啦
+
+In just a few keystrokes, we can stream videos on Youtube -- Hello!
+键盘敲几下就能在 Youtube 直播--哈喽!
+
+- read articles on Wikipedia,
+在维基百科上阅读文章
+
+order supplies on amazon, video chat with friends, and tweet about the weather.
+在亚马逊买东西 和朋友视频 发一条天气推特
+
+Without a doubt, the ability for computers, and their users, to send and receive information
+毫无疑问,\N 用户在全球网络中发送和接收信息的能力
+
+over a global telecommunications network forever changed the world.
+永远改变了这个世界
+
+150 years ago, sending a letter from London to California would have taken two to three
+150年前 发一封信件从伦敦到加州 要花2~3周
+
+weeks, and that’s if you paid for express mail.
+而且还是特快邮件
+
+Today, that email takes a fraction of a second.
+如今 电子邮件只要几分之一秒.
+
+This million fold improvement in latency, that’s the time it takes for a message to
+"时延"改善了上百万倍 \N (时延指传播一条信息所需的时间)
+
+transfer, juiced up the global economy helping the modern world to
+振兴了全球经济 \N 帮助现代世界在遍布全球的光纤中快速发展
+
+move at the speed of light on fiber optic cables spanning the globe.
+振兴了全球经济 \N 帮助现代世界在遍布全球的光纤中快速发展
+
+You might think that computers and networks always went hand in hand, but actually most
+你可能觉得计算机和网络密切相关,但事实上,
+
+computers pre-1970 were humming away all alone.
+1970年以前 大多数计算机是独立运行的
+
+However, as big computers began popping up everywhere,
+然而 因为大型计算机开始随处可见
+
+and low cost machines started to show up on people’s desks,
+廉价机器开始出现在书桌上
+
+it became increasingly useful to share data and resources,
+分享数据和资源渐渐变得有用起来
+
+and the first networks of computers appeared.
+首个计算机网络出现了
+
+Today, we’re going to start a three-episode arc on how computer networks came into being
+今天起,我们花3集视频讲网络是如何发展成现在的样子
+
+and the fundamental principles and techniques that power them.
+以及支撑它们的基础原理和技术
+
+The first computer networks appeared in the 1950s and 60s.
+第一个计算机网络出现在1950~1960年代
+
+They were generally used within an organization – like a company or research lab
+通常在公司或研究室内部使用,为了方便信息交换
+
+to facilitate the exchange of information between different people and computers.
+通常在公司或研究室内部使用,为了方便信息交换
+
+This was faster and more reliable than the previous method of having someone walk a pile
+比把纸卡或磁带送到另一栋楼里更快速可靠
+
+of punch cards, or a reel of magnetic tape, to a computer on the other side of a building
+比把纸卡或磁带送到另一栋楼里更快速可靠
+
+‒ which was later dubbed a sneakernet.
+这叫"球鞋网络"
+
+A second benefit of networks was the ability to share physical resources.
+第二个好处是能共享物理资源
+
+For example, instead of each computer having its own printer,
+举个例子,与其每台电脑配一台打印机
+
+everyone could share one attached to the network.
+大家可以共享一台联网的打印机
+
+It was also common on early networks to have large, shared, storage drives,
+早期网络也会共享存储空间
+
+ones too expensive to have attached to every machine.
+因为每台电脑都配存储器太贵了
+
+These relatively small networks of close-by computers
+计算机近距离构成的小型网络 \N 叫局域网, 简称LAN
+
+are called Local Area Networks, or LANs.
+计算机近距离构成的小型网络 \N 叫局域网, 简称LAN
+
+A LAN could be as small as two machines in the same room,
+局域网能小到是同一个房间里的两台机器
+
+or as large as a university campus with thousands of computers.
+或大到校园里的上千台机器
+
+Although many LAN technologies were developed and deployed,
+尽管开发和部署了很多不同 LAN 技术
+
+the most famous and successful was Ethernet, developed in the
+其中最著名和成功的是"以太网" , 开发于1970年代 \N 在施乐的"帕洛阿尔托研究中心"诞生, 今日仍被广泛使用
+
+early 1970s at Xerox PARC, and still widely used today.
+其中最著名和成功的是"以太网" , 开发于1970年代 \N 在施乐的"帕洛阿尔托研究中心"诞生, 今日仍被广泛使用
+
+In its simplest form, a series of computers are connected to a single, common ethernet cable.
+以太网的最简单形式是:一条以太网电线连接数台计算机
+
+When a computer wants to transmit data to another computer,
+当一台计算机要传数据给另一台计算机时
+
+it writes the data, as an electrical signal, onto the cable.
+它以电信号形式,将数据传入电缆
+
+Of course, because the cable is shared, every computer plugged into the network sees the
+当然 因为电缆是共享的 \N 连在同一个网络里的其他计算机也看得到数据
+
+transmission, but doesn’t know if data is intended for them or another computer.
+但不知道数据是给它们的,还是给其他计算机的
+
+To solve this problem, Ethernet requires that each computer has a unique
+为了解决这个问题 以太网需要每台计算机有唯一的 \N 媒体访问控制地址 简称 MAC地址
+
+Media Access Control address, or MAC address.
+为了解决这个问题 以太网需要每台计算机有唯一的 \N 媒体访问控制地址 简称 MAC地址
+
+This unique address is put into a header that prefixes any data sent over the network.
+这个唯一的地址放在头部,作为数据的前缀发送到网络中
+
+So, computers simply listen to the ethernet cable,
+所以,计算机只需要监听以太网电缆 \N 只有看到自己的 MAC 地址,才处理数据
+
+and only process data when they see their address in the header.
+所以,计算机只需要监听以太网电缆 \N 只有看到自己的 MAC 地址,才处理数据
+
+This works really well; every computer made today comes with its own unique MAC address
+这运作得很好 现在制造的每台计算机都自带唯一的MAC地址
+
+for both Ethernet and WiFi.
+用于以太网和无线网络
+
+The general term for this approach is Carrier Sense Multiple Access, or CSMA for short.
+多台电脑共享一个传输媒介,\N 这种方法叫 "载波侦听多路访问" 简称"CSMA"
+
+The "carrier", in this case, is any shared transmission medium that carries data
+载体(carrier)指运输数据的共享媒介
+
+copper wire in the case of ethernet, and the air carrying radio waves for WiFi.
+以太网的"载体"是铜线 \N WiFi 的"载体"是传播无线电波的空气
+
+Many computers can simultaneously sense the carrier,
+很多计算机同时侦听载体
+
+hence the "Sense" and "Multiple Access",
+所以叫"侦听"和"多路访问"
+
+and the rate at which a carrier can transmit data is called its Bandwidth.
+而载体传输数据的速度 叫"带宽"
+
+Unfortunately, using a shared carrier has one big drawback.
+不幸的是 使用共享载体有个很大的弊端
+
+When network traffic is light, computers can simply wait for silence on the carrier,
+当网络流量较小时 计算机可以等待载体清空
+
+and then transmit their data.
+然后传送数据
+
+But, as network traffic increases, the probability that
+但随着网络流量上升 两台计算机想同时写入数据的概率也会上升
+
+two computers will attempt to write data at the same time also increases.
+但随着网络流量上升 两台计算机想同时写入数据的概率也会上升
+
+This is called a collision, and the data gets all garbled up,
+这叫冲突 数据全都乱套了
+
+like two people trying to talk on the phone at the same time.
+就像两个人同时在电话里讲话
+
+Fortunately, computers can detect these collisions by listening to the signal on the wire.
+幸运的是 计算机能够通过监听电线中的信号检测这些冲突
+
+The most obvious solution is for computers to stop transmitting,
+最明显的解决办法是停止传输
+
+wait for silence, then try again.
+等待网络空闲, 然后再试一遍
+
+Problem is, the other computer is going to try that too,
+问题是 其他计算机也打算这样做
+
+and other computers on the network that have been waiting for the
+其他等着的计算机可能在任何停顿间隙闯入
+
+carrier to go silent will try to jump in during any pause.
+其他等着的计算机可能在任何停顿间隙闯入
+
+This just leads to more and more collisions.
+导致越来越多冲突
+
+Soon, everyone is talking over one another and has a backlog of things they need to say,
+很快,每个人都一个接一个地讲话 而且有一堆事要说
+
+like breaking up with a boyfriend over a family holiday dinner.
+就像在家庭聚餐中和男朋友分手一样
+
+Terrible idea!
+馊主意!
+
+Ethernet had a surprisingly simple and effective fix.
+以太网有个超简单有效的解决方法
+
+When transmitting computers detect a collision,
+当计算机检测到冲突 就会在重传之前等待一小段时间
+
+they wait for a brief period before attempting to re-transmit.
+当计算机检测到冲突 就会在重传之前等待一小段时间
+
+As an example, let’s say 1 second.
+因为要举例,假设是 1 秒好了
+
+Of course, this doesn’t work if all the computers use the same wait duration
+当然 如果所有计算机用同样的等待时间 是不行的
+
+-- they’ll just collide again one second later.
+它们会在一秒后再次冲突
+
+So, a random period is added: one computer might wait 1.3 seconds,
+所以加入一个随机时间 一台计算机可能等1.3秒
+
+while another waits 1.5 seconds.
+另一台计算机等待1.5秒
+
+With any luck, the computer that waited 1.3 seconds will wake up,
+要是运气好 等1.3秒的计算机会醒来
+
+find the carrier to be silent, and start transmitting.
+发现载体是空闲的 然后开始传输
+
+When the 1.5 second computer wakes up a moment later, it’ll see the carrier is in use,
+当1.5秒的计算机醒来后 会发现载体被占用 \N 会等待其他计算机完成
+
+and will wait for the other computer to finish.
+当1.5秒的计算机醒来后 会发现载体被占用 \N 会等待其他计算机完成
+
+This definitely helps, but doesn’t totally solve the problem, so an extra trick is used.
+这有用 但不能完全解决问题 所以要用另一个小技巧
+
+As I just explained, if a computer detects a collision while transmitting,
+正如我刚才说的 \N如果一台计算机在传输数据期间检测到冲突
+
+it will wait 1 second, plus some random extra time.
+会等一秒+随机时间
+
+However, if it collides again, which suggests network congestion,
+然而 如果再次发生冲突 表明有网络拥塞
+
+instead of waiting another 1 second, this time it will wait 2 seconds.
+这次不等1秒,而是等2秒
+
+If it collides again, it’ll wait 4 seconds, and then 8, and then 16,
+如果再次发生冲突 等4秒 然后8秒 16秒等等
+
+and so on, until it’s successful.
+直到成功传输
+
+With computers backing off, the rate of collisions goes down,
+因为计算机的退避 冲突次数降低了 \N 数据再次开始流动起来 网络变得顺畅
+
+and data starts moving again, freeing up the network.
+因为计算机的退避 冲突次数降低了 \N 数据再次开始流动起来 网络变得顺畅
+
+Family dinner saved!
+家庭晚餐有救啦!
+
+This "backing off" behavior using an exponentially growing wait time is called
+这种指数级增长等待时间的方法叫:
+
+Exponential Backoff.
+指数退避
+
+Both Ethernet and WiFi use it, and so do many transmission protocols.
+以太网和WiFi都用这种方法 很多其他传输协议也用
+
+But even with clever tricks like Exponential Backoff,
+但即便有了"指数退避"这种技巧
+
+you could never have an entire university’s
+想用一根网线链接整个大学的计算机还是不可能的
+
+worth of computers on one shared ethernet cable.
+想用一根网线链接整个大学的计算机还是不可能的
+
+To reduce collisions and improve efficiency,
+为了减少冲突+提升效率
+
+we need to shrink the number of devices on any given shared carrier
+我们需要减少同一载体中设备的数量 \N 载体和其中的设备总称 "冲突域"
+
+-- what’s called the Collision Domain.
+我们需要减少同一载体中设备的数量 \N 载体和其中的设备总称 "冲突域"
+
+Let go back to our earlier Ethernet example, where we had six computers on one shared cable,
+让我们回到之前以太网的例子 一根电缆连6台计算机
+
+a.k.a. one collision domain.
+也叫一个冲突域
+
+To reduce the likelihood of collisions, we can break this network
+为了减少冲突 我们可以用交换机把它拆成两个冲突域
+
+into two collision domains by using a Network Switch.
+为了减少冲突 我们可以用交换机把它拆成两个冲突域
+
+It sits between our two smaller networks, and only passes data between them if necessary.
+交换机位于两个更小的网络之间 \N 必要时才在两个网络间传数据
+
+It does this by keeping a list of what MAC addresses are on what side of the network.
+交换机会记录一个列表 \N 写着哪个 MAC 地址在哪边网络
+
+So if A wants to transmit to C, the switch doesn’t forward the data to the other network
+如果A想传数据给C \N 交换机不会把数据转发给另一边的网络
+
+– there’s no need.
+没必要
+
+This means if E wants to transmit to F at the same time, the network is wide open, and
+如果E想同一时间传数据给F,网络仍然是空的
+
+two transmissions can happen at once.
+两个传输可以同时发生
+
+But, if F wants to send data to A, then the switch passes it through,
+但如果F想发数据给A 数据会通过交换机
+
+and the two networks are both briefly occupied.
+两个网络都会被短暂占用
+
+This is essentially how big computer networks are constructed,
+大的计算机网络也是这样构建的
+
+including the biggest one of all – The Internet –
+包括最大的网络 - 互联网
+
+which literally inter-connects a bunch of smaller networks,
+也是多个连在一起的稍小一点网络
+
+allowing inter-network communication.
+使不同网络间可以传递信息
+
+What’s interesting about these big networks,
+这些大型网络有趣之处是
+
+is that there’s often multiple paths to
+从一个地点到另一个地点通常有多条路线
+
+get data from one location to another.
+从一个地点到另一个地点通常有多条路线
+
+And this brings us to another fundamental networking topic, routing.
+这就带出了另一个话题 路由
+
+The simplest way to connect two distant computers, or networks,
+连接两台相隔遥远的计算机或网路,最简单的办法 \N 是分配一条专用的通信线路
+
+is by allocating a communication line for their exclusive use.
+连接两台相隔遥远的计算机或网路,最简单的办法 \N 是分配一条专用的通信线路
+
+This is how early telephone systems worked.
+早期电话系统就是这样运作的
+
+For example, there might be 5 telephone lines running between Indianapolis and Missoula.
+假设"印第安纳波利斯"和"米苏拉"之间,有五条电话线
+
+If John picked up the phone wanting to call Hank, in the 1910s,
+如果在1910年代,John 想打电话给 Hank
+
+John would tell a human operator where he wanted to call,
+John要告诉操作员他想打到什么地方
+
+and they’d physically connect John’s phone line into
+然后工作人员手动将 John 的电话连到 \N 通往米苏拉的未使用线路
+
+an unused line running to Missoula.
+然后工作人员手动将 John 的电话连到 \N 通往米苏拉的未使用线路
+
+For the length of the call, that line was occupied, and if all 5 lines were already
+通话期间 这条线就被占用了 如果五条线都被占用了 \N John 要等待某条线空出来
+
+in use, John would have to wait for one to become free.
+通话期间 这条线就被占用了 如果五条线都被占用了 \N John 要等待某条线空出来
+
+This approach is called Circuit Switching,
+这叫 "电路交换"\N因为是把电路连接到正确目的地
+
+because you’re literally switching whole
+这叫 "电路交换"\N因为是把电路连接到正确目的地
+
+circuits to route traffic to the correct destination.
+这叫 "电路交换"\N因为是把电路连接到正确目的地
+
+It works fine, but it’s relatively inflexible and expensive,
+能用倒是能用 \N 但不灵活而且价格昂贵 因为总有闲置的线路
+
+because there’s often unused capacity.
+能用倒是能用 \N 但不灵活而且价格昂贵 因为总有闲置的线路
+
+On the upside, once you have a line to yourself – or if you have the money to buy one for
+好处是 如果有一条专属于自己的线路 \N 你可以最大限度地随意使用,无需共享
+
+your private use – you can use it to its full capacity, without having to share.
+好处是 如果有一条专属于自己的线路 \N 你可以最大限度地随意使用,无需共享
+
+For this reason, the military, banks and other high importance operations
+因此军队, 银行和其他一些机构
+
+still buy dedicated circuits to connect their data centers.
+依然会购买专用线路来连接数据中心
+
+Another approach for getting data from one place to another is Message Switching,
+传输数据的另一个方法是 "报文交换"
+
+which is sort of like how the postal system works.
+"报文交换" 就像邮政系统一样
+
+Instead of dedicated route from A to B, messages are passed through several stops.
+不像之前A和B有一条专有线路 \N 消息会经过好几个站点
+
+So if John writes a letter to Hank,
+如果 John 写一封信给 Hank
+
+it might go from Indianapolis to Chicago, and then
+信件可能从"印第安纳波利斯"到"芝加哥"
+
+hop to Minneapolis, then Billings, and then finally make it to Missoula.
+然后"明尼阿波利斯" 然后"比林斯" 最后到"米苏拉"
+
+Each stop knows where to send it next
+每个站点都知道下一站发哪里 \N 因为站点有表格,记录到各个目的地,信件该怎么传
+
+because they keep a table of where to pass letters given a destination address.
+每个站点都知道下一站发哪里 \N 因为站点有表格,记录到各个目的地,信件该怎么传
+
+What’s neat about Message Switching is that it can use different routes,
+报文交换的好处是 可以用不同路由 \N 使通信更可靠更能容错
+
+making communication more reliable and fault-tolerant.
+报文交换的好处是 可以用不同路由 \N 使通信更可靠更能容错
+
+Sticking with our mail example,
+回到邮件的例子
+
+if there’s a blizzard in Minneapolis grinding things to a halt,
+如果"明尼阿波利斯"有暴风雪中断了通信 \N "芝加哥"可以传给"奥马哈"
+
+the Chicago mail hub can decide to route the letter through Omaha instead.
+如果"明尼阿波利斯"有暴风雪中断了通信 \N "芝加哥"可以传给"奥马哈"
+
+In our example, cities are acting like network routers.
+在这个例子里,城市就像路由器一样
+
+The number of hops a message takes along a route is called the hop count.
+消息沿着路由跳转的次数 \N 叫"跳数"(hop count)
+
+Keeping track of the hop count is useful because it can help identify routing problems.
+记录跳数很有用,因为可以分辨出路由问题
+
+For example, let’s say Chicago thinks the fastest route to Missoula is through Omaha,
+举例,假设芝加哥认为 \N 去米苏拉的最快路线是 奥马哈
+
+but Omaha thinks the fastest route is through Chicago.
+但奥马哈认为 \N 去米苏拉的最快路线是 芝加哥
+
+That's bad, because both cities are going to look at the destination address, Missoula,
+这就糟糕了\N 因为2个城市看到目的地是米苏拉
+
+and end up passing the message back and forth between them, endlessly.
+结果报文会在2个城市之间\N不停传来传去
+
+Not only is this wasting bandwidth, but it’s a routing error that needs to get fixed!
+不仅浪费带宽 而且这个路由错误需要修复!
+
+This kind of error can be detected because the hop count is
+这种错误会被检测到,因为跳数记录在消息中 \N 而且传输时会更新跳数
+
+stored with the message and updated along its journey.
+这种错误会被检测到,因为跳数记录在消息中 \N 而且传输时会更新跳数
+
+If you start seeing messages with high hop counts,
+如果看到某条消息的跳数很高 \N 就知道路由肯定哪里错了
+
+you can bet something has gone awry in the routing!
+如果看到某条消息的跳数很高 \N 就知道路由肯定哪里错了
+
+This threshold is the Hop Limit.
+这叫"跳数限制"
+
+A downside to Message Switching is that messages are sometimes big.
+报文交换的缺点之一是有时候报文比较大
+
+So, they can clog up the network, because the whole message has to be transmitted from
+会堵塞网络 因为要把整个报文从一站传到下一站后 \N 才能继续传递其他报文
+
+one stop to the next before continuing on its way.
+会堵塞网络 因为要把整个报文从一站传到下一站后 \N 才能继续传递其他报文
+
+While a big file is transferring, that whole link is tied up.
+传输一个大文件时 整条路都阻塞了
+
+Even if you have a tiny, one kilobyte email trying to get through,
+即便你只有一个1KB的电子邮件要传输 \N 也只能等大文件传完,或是选另一条效率稍低的路线
+
+it either has to wait for the big file transfer to finish or take a less efficient route.
+即便你只有一个1KB的电子邮件要传输 \N 也只能等大文件传完,或是选另一条效率稍低的路线
+
+That’s bad.
+这就糟了
+
+The solution is to chop up big transmissions into many small pieces, called packets.
+解决方法是 将大报文分成很多小块,叫"数据包"
+
+Just like with Message Switching, each packet contains a destination address on the network,
+就像报文交换 每个数据包都有目标地址 \N 因此路由器知道发到哪里
+
+so routers know where to forward them.
+就像报文交换 每个数据包都有目标地址 \N 因此路由器知道发到哪里
+
+This format is defined by the "Internet Protocol", or IP for short,
+报文具体格式由"互联网协议"定义,简称 IP \N 这个标准创建于 1970 年代
+
+a standard created in the 1970s.
+报文具体格式由"互联网协议"定义,简称 IP \N 这个标准创建于 1970 年代
+
+Every computer connected to a network gets an IP Address.
+每台联网的计算机都需要一个IP地址
+
+You’ve probably seen these as four, 8-bit numbers written with dots in between.
+你可能见过,以点分隔的4组数字
+
+For example,172.217.7.238 is an IP Address for one of Google’s servers.
+例如 172.217.7.238 是 Google 其中一个服务器的IP地址
+
+With millions of computers online, all exchanging data,
+数百万台计算机在网络上不断交换数据 \N 瓶颈的出现和消失是毫秒级的
+
+bottlenecks can appear and disappear in milliseconds.
+数百万台计算机在网络上不断交换数据 \N 瓶颈的出现和消失是毫秒级的
+
+Network routers are constantly trying to balance the load across whatever routes they know
+路由器会平衡与其他路由器之间的负载 \N 以确保传输可以快速可靠,这叫"阻塞控制"
+
+to ensure speedy and reliable delivery, which is called congestion control.
+路由器会平衡与其他路由器之间的负载 \N 以确保传输可以快速可靠,这叫"阻塞控制"
+
+Sometimes different packets from the same message take different routes through a network.
+有时,同一个报文的多个数据包 \N 会经过不同线路
+
+This opens the possibility of packets arriving at their destination out of order,
+到达顺序可能会不一样,这对一些软件是个问题
+
+which is a problem for some applications.
+到达顺序可能会不一样,这对一些软件是个问题
+
+Fortunately, there are protocols that run on top of IP,
+幸运的是,在 IP 之上还有其他协议
+
+like TCP/IP, that handle this issue.
+比如 TCP/IP, 可以解决乱序问题
+
+We’ll talk more about that next week.
+我们下周会讲
+
+Chopping up data into small packets,
+将数据拆分成多个小数据包,然后通过灵活的路由传递
+
+and passing these along flexible routes with spare capacity,
+将数据拆分成多个小数据包,然后通过灵活的路由传递
+
+is so efficient and fault-tolerant, it’s what the whole internet runs on today.
+非常高效且可容错,如今互联网就是这么运行的
+
+This routing approach is called Packet Switching.
+这叫"分组交换"
+
+It also has the nice property of being decentralized,
+有个好处是 它是去中心化的
+
+with no central authority or single point of failure.
+没有中心权威机构 没有单点失败问题
+
+In fact, the threat of nuclear attack is why
+事实上 因为冷战期间有核攻击的威胁,所以创造了分组交换
+
+packet switching was developed during the cold war!
+事实上 因为冷战期间有核攻击的威胁,所以创造了分组交换
+
+Today, routers all over the globe work cooperatively to find efficient routings,
+如今,全球的路由器协同工作,找出最高效的线路
+
+exchanging information with each other using special protocols,
+用各种标准协议运输数据
+
+like the Internet Control Message Protocol (ICMP)
+比如 "因特网控制消息协议"(ICMP)
+
+and the Border Gateway Protocol (BGP).
+和 "边界网关协议"(BGP)
+
+The world's first packet-switched network,
+世界上第一个分组交换网络
+
+and the ancestor to the modern internet, was the ARPANET,
+以及现代互联网的祖先是 ARPANET
+
+named after the US agency that funded it,
+名字来源于赞助这个项目的机构,美国高级研究计划局
+
+the Advanced Research Projects Agency.
+名字来源于赞助这个项目的机构,美国高级研究计划局
+
+Here’s what the entire ARPANET looked like in 1974.
+这是 1974 年整个 ARPANET 的样子
+
+Each smaller circle is a location,
+每个小圆表示一个地点 \N 比如大学或实验室,那里运行着一个路由器
+
+like a university or research lab, that operated a router.
+每个小圆表示一个地点 \N 比如大学或实验室,那里运行着一个路由器
+
+They also plugged in one or more computers
+并且有一台或多台计算机
+
+– you can see PDP-1’s, IBM System 360s,
+能看到 "PDP-1" 和"IBM 360系统"
+
+and even an ATLAS in London connected over a satellite link.
+甚至还有一个伦敦的 ATLAS \N 是通过卫星连到网络里的
+
+Obviously the internet has grown by leaps and bounds in the decades since.
+显然 互联网在这几十年间发展迅速
+
+Today, instead of a few dozen computers online, it’s estimated to be nearing 10 billion.
+如今不再只有几十台计算机联网 \N 据估计 有接近100亿台联网设备
+
+And it continues to grow rapidly,
+而且互联网会继续快速发展
+
+especially with the advent of wifi-connected refrigerators, thermostat
+特别是如今各种智能设备层出不穷 \N 比如联网冰箱,恒温器
+
+and other smart appliances, forming an "internet of things".
+以及其他智能家电,它们组成了"物联网"
+
+So that’s part one – an overview of computer networks.
+第一部分到此结束 \N 我们对计算机网络进行了概览
+
+Is it a series of tubes?
+网络是一堆管子组成的吗?
+
+Well, sort of.
+额 算是吧
+
+Next week we’ll tackle some higher-level transmission protocols,
+下周我们会讨论一些高级传输协议
+
+slowly working our way up to the World Wide Web.
+然后讲万维网
+
+I’ll see you then!
+到时见啦
+
diff --git a/(字幕)全40集中英字幕文本/29. 互联网-The Internet.ass.txt b/(字幕)全40集中英字幕文本/29. 互联网-The Internet.ass.txt
new file mode 100644
index 0000000..329e66a
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/29. 互联网-The Internet.ass.txt
@@ -0,0 +1,612 @@
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+As we talked about last episode, your computer is connected to a large, distributed network,
+上集讲到,你的计算机和一个巨大的分布式网络连在一起
+
+called The Internet.
+这个网络叫互联网
+
+I know this because you’re watching a YouTube video,
+你现在就在网上看视频呀
+
+which is being streamed over that very internet.
+你现在就在网上看视频呀
+
+It’s arranged as an ever-enlarging web of interconnected devices.
+互联网由无数互联设备组成,而且日益增多
+
+For your computer to get this video,
+计算机为了获取这个视频 \N 首先要连到局域网,也叫 LAN
+
+the first connection is to your local area network, or LAN,
+计算机为了获取这个视频 \N 首先要连到局域网,也叫 LAN
+
+which might be every device in your house that’s connected to your wifi router.
+你家 WIFI 路由器连着的所有设备,组成了局域网.
+
+This then connects to a Wide Area Network, or WAN,
+局域网再连到广域网,广域网也叫 WAN
+
+which is likely to be a router run by your Internet Service Provider, or ISP,
+WAN 的路由器一般属于你的"互联网服务提供商",简称 ISP
+
+companies like Comcast, AT&T or Verizon.
+比如 Comcast,AT&T 和 Verizon 这样的公司
+
+At first, this will be a regional router, like one for your neighborhood,
+广域网里,先连到一个区域性路由器,这路由器可能覆盖一个街区。
+
+and then that router connects to an even bigger WAN,
+然后连到一个更大的 WAN,可能覆盖整个城市
+
+maybe one for your whole city or town.
+然后连到一个更大的 WAN,可能覆盖整个城市
+
+There might be a couple more hops, but ultimately you’ll connect to the backbone of the internet
+可能再跳几次,但最终会到达互联网主干
+
+made up of gigantic routers with super high-bandwidth connections running between them.
+互联网主干由一群超大型、带宽超高路由器组成
+
+To request this video file from YouTube,
+为了从 YouTube 获得这个视频,
+
+a packet had to work its way up to the backbone,
+数据包(packet)要先到互联网主干
+
+travel along that for a bit, and then work its way back down to a YouTube server that had the file.
+沿着主干到达有对应视频文件的 YouTube 服务器
+
+That might be four hops up, two hops across the backbone,
+数据包从你的计算机跳到 Youtube 服务器,可能要跳个10次,
+
+and four hops down, for a total of ten hops.
+先跳4次到互联网主干,2次穿过主干,\N主干出来可能再跳4次,然后到 Youtube 服务器
+
+If you’re running Windows, Mac OS or Linux, you can see the route data takes to different
+如果你在用 Windows, Mac OS 或 Linux系统,可以用 traceroute 来看跳了几次
+
+places on the internet by using the traceroute program on your computer.
+如果你在用 Windows, Mac OS 或 Linux系统,可以用 traceroute 来看跳了几次
+
+Instructions in the Doobly Doo.
+更多详情看视频描述(YouTube原视频下)
+
+For us here at the Chad & Stacey Emigholz Studio in Indianapolis,
+我们在"印第安纳波利斯"的 Chad&Stacy Emigholz 工作室,\N 访问加州的 DFTBA 服务器,
+
+the route to the DFTBA server in California goes through 11 stops.
+经历了11次中转
+
+We start at 192.168.0.1 -- that's the IP address for my computer on our LAN.
+从 192.168.0.1 出发,这是我的电脑在 局域网(LAN)里的 IP 地址
+
+Then there’s the wifi router here at the studio,
+然后到工作室的 WIFI 路由器
+
+then a series of regional routers, then we get onto the backbone,
+然后穿过一个个地区路由器,到达主干.
+
+and then we start working back down to the computer hosting "DFTBA.com”,
+然后从主干出来,又跳了几次,到达"DFTBA.com”的服务器
+
+which has the IP address 104.24.109.186.
+IP 地址是 104.24.109.186.
+
+But how does a packet actually get there?
+但数据包*到底*是怎么过去的?
+
+What happens if a packet gets lost along the way?
+如果传输时数据包被弄丢了,会发生什么?
+
+If I type "DFTBA.com” into my web browser, how does it know the server’s address?
+如果在浏览器里输 "DFTBA.com",浏览器怎么知道服务器的地址多少?
+
+These are our topics for today!
+我们今天会讨论这些话题.
+
+As we discussed last episode, the internet is a huge distributed network
+上集说过,互联网是一个巨型分布式网络 \N 会把数据拆成一个个数据包来传输
+
+that sends data around as little packets.
+上集说过,互联网是一个巨型分布式网络 \N 会把数据拆成一个个数据包来传输
+
+If your data is big enough, like an email attachment,
+如果要发的数据很大,比如邮件附件 \N 数据会被拆成多个小数据包
+
+it might get broken up into many packets.
+如果要发的数据很大,比如邮件附件 \N 数据会被拆成多个小数据包
+
+For example, this video stream is arriving to your computer right now
+举例,你现在看的这个视频 \N 就是一个个到达你电脑的数据包
+
+as a series of packets, and not one gigantic file.
+而不是一整个大文件发过来
+
+Internet packets have to conform to a standard called the Internet Protocol, or IP.
+数据包(packet)想在互联网上传输 \N 要符合"互联网协议"的标准,简称 IP
+
+It’s a lot like sending physical mail through the postal system
+就像邮寄手写信一样,邮寄是有标准的\N 每封信需要一个地址,而且地址必须是独特的
+
+– every letter needs a unique and legible address written on it,
+就像邮寄手写信一样,邮寄是有标准的\N 每封信需要一个地址,而且地址必须是独特的
+
+and there are limits to the size and weight of packages.
+并且大小和重量是有限制的
+
+Violate this, and your letter won’t get through.
+违反这些规定,信件就无法送达.
+
+IP packets are very similar.
+IP 数据包也是如此
+
+However, IP is a very low level protocol
+因为 IP 是一个非常底层的协议
+
+– there isn’t much more than a destination address in a packet’s header
+数据包的头部(或者说前面)只有目标地址
+
+which is the metadata that’s stored in front of the data payload.
+头部存 "关于数据的数据" \N 也叫 元数据(metadata)
+
+This means that a packet can show up at a computer, but the computer may not know
+这意味着当数据包到达对方电脑 \N 对方不知道把包交给哪个程序,是交给 Skype 还是使命召唤?
+
+which application to give the data to; Skype or Call of Duty.
+这意味着当数据包到达对方电脑 \N 对方不知道把包交给哪个程序,是交给 Skype 还是使命召唤?
+
+For this reason, more advanced protocols were developed that sit on top of IP.
+因此需要在 IP 之上,开发更高级的协议.
+
+One of the simplest and most common is the User Datagram Protocol, or UDP.
+这些协议里 \N 最简单最常见的叫"用户数据报协议",简称 UDP
+
+UDP has its own header, which sits inside the data payload.
+UDP 也有头部,这个头部位于数据前面
+
+Inside of the UDP header is some useful, extra information.
+头部里包含有用的信息
+
+One of them is a port number.
+信息之一是端口号
+
+Every program wanting to access the internet will
+每个想访问网络的程序 \N 都要向操作系统申请一个端口号.
+
+ask its host computer’s Operating System to be given a unique port.
+每个想访问网络的程序 \N 都要向操作系统申请一个端口号.
+
+Like Skype might ask for port number 3478.
+比如 Skype 会申请端口 3478
+
+When a packet arrives to the computer, the Operating System
+当一个数据包到达时 \N 接收方的操作系统会读 UDP 头部,读里面的端口号
+
+will look inside the UDP header and read the port number.
+当一个数据包到达时 \N 接收方的操作系统会读 UDP 头部,读里面的端口号
+
+Then, if it sees, for example, 3478, it will give the packet to Skype.
+如果看到端口号是 3478,就把数据包交给 Skype
+
+So to review, IP gets the packet to the right computer,
+总结:\NIP 负责把数据包送到正确的计算机 \N UDP 负责把数据包送到正确的程序
+
+but UDP gets the packet to the right program running on that computer.
+总结:\NIP 负责把数据包送到正确的计算机 \N UDP 负责把数据包送到正确的程序
+
+UDP headers also include something called a checksum,
+UDP 头部里还有"校验和",用于检查数据是否正确
+
+which allows the data to be verified for correctness.
+UDP 头部里还有"校验和",用于检查数据是否正确
+
+As the name suggests, it does this by checking the sum of the data.
+正如"校验和"这个名字所暗示的 \N 检查方式是把数据求和来对比
+
+Here’s a simplified version of how this works.
+以下是个简单例子
+
+Let's imagine the raw data in our UDP packet is
+假设 UDP 数据包里 \N 原始数据是 89 111 33 32 58 41
+
+89 111 33 32 58 and 41.
+假设 UDP 数据包里 \N 原始数据是 89 111 33 32 58 41
+
+Before the packet is sent, the transmitting computer calculates the checksum
+在发送数据包前 \N 电脑会把所有数据加在一起,算出"校验和"
+
+by adding all the data together: 89 plus 111 plus 33 and so on.
+89+111+33+... 以此类推
+
+In our example, this adds up to a checksum of 364.
+得到 364,这就是"校验和".
+
+In UDP, the checksum value is stored in 16 bits.
+UDP 中,\N"校验和"以 16 位形式存储 (就是16个0或1)
+
+If the sum exceeds the maximum possible value, the upper-most bits overflw,
+如果算出来的和,超过了 16 位能表示的最大值 \N 高位数会被扔掉,保留低位
+
+and only the lower bits are used.
+如果算出来的和,超过了 16 位能表示的最大值 \N 高位数会被扔掉,保留低位
+
+Now, when the receiving computer gets this packet,
+当接收方电脑收到这个数据包
+
+it repeats the process, adding up all the data.
+它会重复这个步骤 \N 把所有数据加在一起,89+111+33... 以此类推
+
+89 plus 111 plus 33 and so on.
+它会重复这个步骤 \N 把所有数据加在一起,89+111+33... 以此类推
+
+If that sum is the same as the checksum sent in the header, all is well.
+如果结果和头部中的校验和一致 \N 代表一切正常
+
+But, if the numbers don’t match, you know that the data got corrupted
+如果不一致,数据肯定坏掉了
+
+at some point in transit, maybe because of a power fluctuation or faulty cable.
+也许传输时碰到了功率波动,或电缆出故障了
+
+Unfortunately, UDP doesn’t offer any mechanisms to fix the data, or request a new copy
+不幸的是,UDP 不提供数据修复或数据重发的机制
+
+receiving programs are alerted to the corruption, but typically just discard the packet.
+接收方知道数据损坏后,一般只是扔掉.
+
+Also, UDP provides no mechanisms to know if packets are getting through
+而且,UDP 无法得知数据包是否到达.
+
+a sending computer shoots the UDP packet off,
+发送方发了之后,无法知道数据包是否到达目的地
+
+but has no confirmation it ever gets to its destination successfully.
+发送方发了之后,无法知道数据包是否到达目的地
+
+Both of these properties sound pretty catastrophic, but some applications are ok with this,
+这些特性听起来很糟糕,但是有些程序不在意这些问题
+
+because UDP is also really simple and fast.
+因为 UDP 又简单又快.
+
+Skype, for example, which uses UDP for video chat, can handle corrupt or missing packets.
+拿 Skype 举例 \N 它用 UDP 来做视频通话,能处理坏数据或缺失数据
+
+That’s why sometimes if you’re on a bad internet connection,
+所以网速慢的时候 Skype 卡卡的 \N 因为只有一部分数据包到了你的电脑
+
+Skype gets all glitchy – only some of the UDP packets are making it to your computer.
+所以网速慢的时候 Skype 卡卡的 \N 因为只有一部分数据包到了你的电脑
+
+But this approach doesn’t work for many other types of data transmission.
+但对于其他一些数据,这个方法不适用.
+
+Like, it doesn’t really work if you send an email, and it shows up with the middle missing.
+比如发邮件,\N 邮件不能只有开头和结尾 没有中间.
+
+The whole message really needs to get there correctly!
+邮件要完整到达收件方
+
+When it "absolutely, positively needs to get there”,
+如果"所有数据必须到达" \N 就用"传输控制协议",简称 TCP
+
+programs use the Transmission Control Protocol, or TCP,
+如果"所有数据必须到达" \N 就用"传输控制协议",简称 TCP
+
+which like UDP, rides inside the data payload of IP packets.
+TCP 和 UDP 一样,头部也在存数据前面
+
+For this reason, people refer to this combination of protocols as TCP/IP.
+因此,人们叫这个组合 TCP/IP
+
+Like UDP, the TCP header contains a destination port and checksum.
+就像 UDP ,TCP 头部也有"端口号"和"校验和"
+
+But, it also contains fancier features, and we’ll focus on the key ones.
+但 TCP 有更高级的功能,我们这里只介绍重要的几个
+
+First off, TCP packets are given sequential numbers.
+1. TCP 数据包有序号
+
+So packet 15 is followed by packet 16, which is followed by 17, and so on...
+15号之后是16号,16号之后是17号,以此类推 \N 发上百万个数据包也是有可能的.
+
+for potentially millions of packets sent during that session.
+15号之后是16号,16号之后是17号,以此类推 \N 发上百万个数据包也是有可能的.
+
+These sequence numbers allow a receiving computer to put the packets into the correct order,
+序号使接收方可以把数据包排成正确顺序,即使到达时间不同.
+
+even if they arrive at different times across the network.
+序号使接收方可以把数据包排成正确顺序,即使到达时间不同.
+
+So if an email comes in all scrambled, the TCP implementation in your computer’s operating
+哪怕到达顺序是乱的,TCP 协议也能把顺序排对
+
+system will piece it all together correctly.
+哪怕到达顺序是乱的,TCP 协议也能把顺序排对
+
+Second, TCP requires that once a computer has correctly received a packet
+2. TCP 要求接收方的电脑收到数据包 \N 并且"校验和"检查无误后(数据没有损坏)\N 给发送方发一个确认码,代表收到了
+
+– and the data passes the checksum – that it send back an acknowledgement,
+2. TCP 要求接收方的电脑收到数据包 \N 并且"校验和"检查无误后(数据没有损坏)\N 给发送方发一个确认码,代表收到了
+
+or "ACK” as the cool kids say, to the sending computer.
+"确认码" 简称 ACK \N 得知上一个数据包成功抵达后,发送方会发下一个数据包
+
+Knowing the packet made it successfully, the sender can now transmit the next packet.
+"确认码" 简称 ACK \N 得知上一个数据包成功抵达后,发送方会发下一个数据包
+
+But this time, let’s say, it waits, and doesn’t get an acknowledgement packet back.
+假设这次发出去之后,没收到确认码 \N 那么肯定哪里错了
+
+Something must be wrong. If enough time elapses,
+如果过了一定时间还没收到确认码 \N 发送方会再发一次
+
+the sender will go ahead and just retransmit the same packet.
+如果过了一定时间还没收到确认码 \N 发送方会再发一次
+
+It’s worth noting here that the original packet might have actually gotten there,
+注意 数据包可能的确到了
+
+but the acknowledgment is just really delayed.
+只是确认码延误了很久,或传输中丢失了
+
+Or perhaps it was the acknowledgment that was lost.
+只是确认码延误了很久,或传输中丢失了
+
+Either way, it doesn’t matter, because the receiver has those sequence numbers,
+但这不碍事 因为收件方有序列号
+
+and if a duplicate packet arrives, it can be discarded.
+如果收到重复的数据包就删掉
+
+Also, TCP isn’t limited to a back and forth conversation – it can send many packets,
+还有,TCP 不是只能一个包一个包发
+
+and have many outstanding ACKs, which increases bandwidth significantly, since you aren’t
+可以同时发多个数据包,收多个确认码 \N 这大大增加了效率,不用浪费事件等确认码
+
+wasting time waiting for acknowledgment packets to return.
+可以同时发多个数据包,收多个确认码 \N 这大大增加了效率,不用浪费事件等确认码
+
+Interestingly, the success rate of ACKs, and also the round trip time
+有趣的是,确认码的成功率和来回时间 \N 可以推测网络的拥堵程度
+
+between sending and acknowledging, can be used to infer network congestion.
+有趣的是,确认码的成功率和来回时间 \N 可以推测网络的拥堵程度
+
+TCP uses this information to adjust how aggressively it sends packets –
+TCP 用这个信息,调整同时发包数量,解决拥堵问题
+
+a mechanism for congestion control.
+TCP 用这个信息,调整同时发包数量,解决拥堵问题
+
+So, basically, TCP can handle out-of-order packet delivery, dropped packets
+简单说,TCP 可以处理乱序和丢失数据包,丢了就重发.
+
+– including retransmission – and even throttle its transmission rate according to available bandwidth.
+还可以根据拥挤情况自动调整传输率
+
+Pretty awesome!
+相当厉害!
+
+You might wonder why anyone would use UDP when TCP has all those nifty features.
+你可能会奇怪,既然 TCP 那么厉害,还有人用 UDP 吗?
+
+The single biggest downside are all those acknowledgment packets
+TCP 最大的缺点是 \N 那些"确认码"数据包把数量翻了一倍
+
+– it doubles the number of messages on the network,
+TCP 最大的缺点是 \N 那些"确认码"数据包把数量翻了一倍
+
+and yet, you're not transmitting any more data.
+但并没有传输更多信息
+
+That overhead, including associated delays, is sometimes not worth the improved robustness,
+有时候这种代价是不值得的 \N 特别是对时间要求很高的程序,比如在线射击游戏
+
+especially for time-critical applications, like Multiplayer First Person Shooters.
+有时候这种代价是不值得的 \N 特别是对时间要求很高的程序,比如在线射击游戏
+
+And if it’s you getting lag-fragged you’ll definitely agree!
+如果你玩游戏很卡,你也会觉得这样不值!
+
+When your computer wants to make a connection to a website, you need two things
+当计算机访问一个网站时 \N 需要两个东西:1.IP地址 2.端口号
+
+- an IP address and a port.
+当计算机访问一个网站时 \N 需要两个东西:1.IP地址 2.端口号
+
+Like port 80, at 172.217.7.238.
+例如 172.217.7.238 的 80 端口 \N 这是谷歌的 IP 地址和端口号
+
+This example is the IP address and port for the Google web server.
+例如 172.217.7.238 的 80 端口 \N 这是谷歌的 IP 地址和端口号
+
+In fact, you can enter this into your browser’s address bar, like so,
+事实上,你可以输到浏览器里,然后你会进入谷歌首页
+
+and you’ll end up on the google homepage.
+事实上,你可以输到浏览器里,然后你会进入谷歌首页
+
+This gets you to the right destination,
+有了这两个东西就能访问正确的网站 \N 但记一长串数字很讨厌
+
+but remembering that long string of digits would be really annoying.
+有了这两个东西就能访问正确的网站 \N 但记一长串数字很讨厌
+
+It’s much easier to remember: google.com.
+google.com 比一长串数字好记
+
+So the internet has a special service that maps these domain names to addresses.
+所以互联网有个特殊服务 \N 负责把域名和 IP 地址一一对应
+
+It’s like the phone book for the internet.
+就像专为互联网的电话簿 \N 它叫"域名系统",简称 DNS
+
+And it’s called the Domain Name System, or DNS for short.
+就像专为互联网的电话簿 \N 它叫"域名系统",简称 DNS
+
+You can probably guess how it works.
+它的运作原理你可能猜到了
+
+When you type something like "youtube.com” into your web browser,
+在浏览器里输 youtube.com \N 浏览器会去问 DNS 服务器,它的 IP 地址是多少
+
+it goes and asks a DNS server – usually one provided by your ISP – to lookup the address.
+一般 DNS 服务器 \N 是互联网供应商提供的
+
+DNS consults its huge registry, and replies with the address... if one exists.
+DNS 会查表,如果域名存在,就返回对应 IP 地址.
+
+In fact, if you try mashing your keyboard, adding ".com”, and then hit enter in your
+如果你乱敲键盘加个.com 然后按回车
+
+browser, you’ll likely be presented with an error that says DNS failed.
+你很可能会看到 DNS 错误
+
+That’s because that site doesn’t exist, so DNS couldn’t give your browser an address.
+因为那个网站不存在,所以 DNS 无法返回给你一个地址
+
+But, if DNS returns a valid address, which it should for "YouTube.com”, then your
+如果你输的是有效地址,比如 youtube.com \N DNS 按理会返回一个地址
+
+browser shoots off a request over TCP for the website’s data.
+然后浏览器会给这个 IP 地址 \N 发 TCP 请求
+
+There’s over 300 million registered domain names, so to make out DNS Lookup a little
+如今有三千万个注册域名,所以为了更好管理
+
+more manageable, it’s not stored as one gigantically long list,
+DNS 不是存成一个超长超长的列表,而是存成树状结构
+
+but rather in a tree data structure.
+DNS 不是存成一个超长超长的列表,而是存成树状结构
+
+What are called Top Level Domains, or TLDs, are at the very top.
+顶级域名(简称 TLD)在最顶部,比如 .com 和 .gov
+
+These are huge categories like .com and .gov.
+顶级域名(简称 TLD)在最顶部,比如 .com 和 .gov
+
+Then, there are lower level domains that sit below that, called second level domains; Examples
+下一层是二级域名,比如 .com 下面有 \N google.com 和 dftba.com
+
+under .com include google.com and dftba.com.
+下一层是二级域名,比如 .com 下面有 \N google.com 和 dftba.com
+
+Then, there are even lower level domains, called subdomains,
+再下一层叫子域名,\N 比如 images.google.com, store.dftba.com
+
+like images.google.com, store.dftba.com.
+再下一层叫子域名,\N 比如 images.google.com, store.dftba.com
+
+And this tree is absolutely HUGE!
+这个树超!级!大!
+
+Like I said, more than 300 million domain names, and that's just second level domain
+我前面说的"三千万个域名"只是二级域名 \N 不是所有子域名
+
+names, not all the sub domains.
+我前面说的"三千万个域名"只是二级域名 \N 不是所有子域名
+
+For this reason, this data is distributed across many DNS servers,
+因此,这些数据散布在很多 DNS 服务器上
+
+which are authorities for different parts of the tree.
+不同服务器负责树的不同部分
+
+Okay, I know you’ve been waiting for it...
+好了 我知道你肯定在等这个梗:
+
+We’ve reached a new level of abstraction!
+我们到了一层新抽象!
+
+Over the past two episodes, we’ve worked up from electrical signals on wires,
+过去两集里 \N 我们讲了线路里的电信号,以及无线网络里的无线信号
+
+or radio signals transmitted through the air in the case of wireless networks.
+过去两集里 \N 我们讲了线路里的电信号,以及无线网络里的无线信号
+
+This is called the Physical Layer.
+这些叫"物理层"
+
+MAC addresses, collision detection,
+而"数据链路层"负责操控"物理层",\N 数据链路层有:媒体访问控制地址(MAC),碰撞检测,
+
+exponential backoff and similar low level protocols that
+而"数据链路层"负责操控"物理层",\N 数据链路层有:媒体访问控制地址(MAC),碰撞检测,
+
+mediate access to the physical layer are part of the Data Link Layer.
+指数退避,以及其他一些底层协议
+
+Above this is the Network Layer,
+再上一层是"网络层"
+
+which is where all the switching and routing technologies that we discussed operate.
+负责各种报文交换和路由
+
+And today, we mostly covered the Transport layer, protocols like UDP and TCP,
+而今天,我们讲了"传输层"里一大部分, 比如 UDP 和 TCP 这些协议,
+
+which are responsible for point to point data transfer between computers,
+负责在计算机之间进行点到点的传输
+
+and also things like error detection and recovery when possible.
+而且还会检测和修复错误
+
+We’ve also grazed the Session Layer –
+我们还讲了一点点"会话层"
+
+where protocols like TCP and UDP are used to open a connection,
+"会话层"会使用 TCP 和 UDP 来创建连接,传递信息,然后关掉连接
+
+pass information back and forth, and then close the connection when finished
+"会话层"会使用 TCP 和 UDP 来创建连接,传递信息,然后关掉连接
+
+– what’s called a session.
+这一整套叫"会话"
+
+This is exactly what happens when you, for example, do a DNS Lookup, or request a webpage.
+查询 DNS 或看网页时,就会发生这一套流程
+
+These are the bottom five layers of the Open System Interconnection (OSI) model,
+这是 开放式系统互联通信参考模型(OSI) 的底下5层
+
+a conceptual framework for compartmentalizing all these different network processes.
+这个概念性框架 把网络通信划分成多层
+
+Each level has different things to worry about and solve,
+每一层处理各自的问题
+
+and it would be impossible to build one huge networking implementation.
+如果不分层 \N 直接从上到下捏在一起实现网络通信,是完全不可能的
+
+As we’ve talked about all series, abstraction allows computer scientists and engineers to
+抽象使得科学家和工程师能分工同时改进多个层 \N 不被整体复杂度难倒.
+
+be improving all these different levels of the stack simultaneously,
+抽象使得科学家和工程师能分工同时改进多个层 \N 不被整体复杂度难倒.
+
+without being overwhelmed by the full complexity.
+抽象使得科学家和工程师能分工同时改进多个层 \N 不被整体复杂度难倒.
+
+And amazingly, we’re not quite done yet
+而且惊人的是!我们还没讲完呢!
+
+The OSI model has two more layers, the Presentation Layer and the Application Layer,
+OSI 模型还有两层,"表示层"和"应用程序层"
+
+which include things like web browsers, Skype,
+其中有浏览器,Skype,HTML解码,在线看电影等
+
+HTML decoding, streaming movies and more.
+其中有浏览器,Skype,HTML解码,在线看电影等
+
+Which we’ll talk about next week. See you then.
+我们下周说,到时见
+
diff --git a/(字幕)全40集中英字幕文本/3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates.ass.txt b/(字幕)全40集中英字幕文本/3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates.ass.txt
new file mode 100644
index 0000000..4753760
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates.ass.txt
@@ -0,0 +1,498 @@
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science!
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Today we start our journey up the ladder of abstraction,
+今天我们开始"抽象"的旅程
+
+where we leave behind the simplicity of being able to see every switch and gear,
+不用管底层细节,把精力用来构建更复杂的系统
+
+but gain the ability to assemble increasingly complex systems.
+不用管底层细节,把精力用来构建更复杂的系统
+
+Last episode, we talked about how computers evolved from electromechanical devices,
+上集,我们谈了计算机最早是机电设备
+
+that often had decimal representations of numbers
+一般用十进制计数
+
+- like those represented by teeth on a gear
+- 比如用齿轮数来代表十进制
+
+- to electronic computers with transistors that can turn the flow of electricity on or off.
+- 再到晶体管计算机
+
+And fortunately, even with just two states of electricity,
+幸运的是,只用 开/关 两种状态也可以代表信息
+
+we can represent important information.
+幸运的是,只用 开/关 两种状态也可以代表信息
+
+We call this representation Binary
+这叫 二进制
+
+-- which literally means "of two states",
+- 意思是"用两种状态表示"
+
+in the same way a bicycle has two wheels or a biped has two legs.
+就像自行车有两个轮,双足动物有两条腿
+
+You might think two states isn't a lot to work with, and you'd be right!
+你可能觉得两种状态不多,你是对的!
+
+But, it's exactly what you need for representing the values "true" and "false".
+但如果只需要表示 true 和 false,两个值就够了
+
+In computers, an "on" state, when electricity is flowing, represents true.
+电路闭合,电流流过,代表 "真"
+
+The off state, no electricity flowing, represents false.
+电路断开,无电流流过,代表"假"
+
+We can also write binary as 1's and 0's instead of true's and false's
+二进制也可以写成 1 和 0 而不是 true 和 false
+
+- they are just different expressions of the same signal
+- 只是不同的表达方式罢了
+
+- but we'll talk more about that in the next episode.
+- 我们下集会讲更多细节
+
+Now it is actually possible to use transistors for more than just turning electrical current on and off,
+晶体管的确可以不只是 开/关,还可以让不同大小的电流通过
+
+and to allow for different levels of current.
+晶体管的确可以不只是 开/关,还可以让不同大小的电流通过
+
+Some early electronic computers were ternary, that's three states,
+一些早期电子计算机是三进制的,有 3 种状态
+
+and even quinary, using 5 states.
+甚至五进制,5 种状态
+
+The problem is, the more intermediate states there are,
+问题是,状态越多,越难区分信号
+
+the harder it is to keep them all seperate
+问题是,状态越多,越难区分信号
+
+-- if your smartphone battery starts running low or there's electrical noise
+- 如果手机快没电了或者附近有电噪音
+
+because someone's running a microwave nearby,
+因为有人在用微波炉,
+
+the signals can get mixed up...
+信号可能会混在一起...
+
+and this problem only gets worse with transistors changing states millions of times per second!
+而每秒百万次变化的晶体管会让这个问题变得更糟!
+
+So, placing two signals as far apart as possible
+所以我们把两种信号尽可能分开
+
+- using just 'on and off' - gives us the most distinct signal to minimize these issues.
+- 只用"开"和"关"两种状态,可以尽可能减少这类问题
+
+Another reason computers use binary
+计算机用二进制的另一个原因是
+
+is that an entire branch of mathematics already existed that dealt exclusively with true and false values.
+有一整个数学分支存在,专门处理"真"和"假"
+
+And it had figured out all of the necessary rules and operations for manipulating them.
+它已经解决了所有法则和运算
+
+It's called Boolean Algebra!
+叫"布尔代数"!
+
+George Boole, from which Boolean Algebra later got its name,
+乔治·布尔(George Boole)是布尔二字的由来
+
+was a self-taught English mathematician in the 1800s.
+是一位 19 世纪自学成才的英国数学家
+
+He was interested in representing logical statements that went "under, over, and beyond"
+他有兴趣用数学式子 扩展亚里士多德基于哲学的逻辑方法
+
+Aristotle's approach to logic, which was, unsurprisingly, grounded in philosophy.
+他有兴趣用数学式子 扩展亚里士多德基于哲学的逻辑方法
+
+Boole's approach allowed truth to be systematically and formally proven, through logic equations
+布尔用 逻辑方程 系统而正式的证明真理(truth)
+
+which he introduced in his first book, "The Mathematical Analysis of Logic" in 1847.
+他在 1847 年的第一本书"逻辑的数学分析"中介绍过
+
+In "regular" algebra -- the type you probably learned in high school -- the values of variables
+在"常规"代数里 - 你在高中学的那种 - 变量的值
+
+are numbers, and operations on those numbers are things like addition and multiplication.
+是数字,可以进行加法或乘法之类的操作
+
+But in Boolean Algebra, the values of variables are true and false, and the operations are logical.
+但在布尔代数中,变量的值是 true 和 false,\N 能进行逻辑操作
+
+There are three fundamental operations in Boolean Algebra: a NOT, an AND, and an OR operation.
+布尔代数中有三个基本操作:NOT, AND 和 OR
+
+And these operations turn out to be really useful so we're going to look at them individually.
+这些操作非常有用,我们一个个来看
+
+A NOT takes a single boolean value, either true or false, and negates it.
+NOT 操作把布尔值反转,\N把 true 进行 NOT 就会变成 false,反之亦然
+
+It flips true to false, and false to true.
+NOT 操作把布尔值反转,\N把 true 进行 NOT 就会变成 false,反之亦然
+
+We can write out a little logic table that shows the original value under Input,
+我们可以根据 NOT 操作的输入和输出,做出这个表
+
+and the outcome after applying the operation under Output.
+我们可以根据 NOT 操作的输入和输出,做出这个表
+
+Now here's the cool part -- we can easily build boolean logic out of transistors.
+酷的地方是 - 用晶体管可以轻松实现这个逻辑
+
+As we discussed last episode, transistors are really just little electrically controlled switches.
+上集说过,晶体管只是电控制的开关
+
+They have three wires: two electrodes and one control wire.
+有 3 根线:2 根电极和 1 根控制线
+
+When you apply electricity to the control wire,
+控制线通电时
+
+it lets current flow through from one electrode, through the transistor, to the other electrode.
+电流就可以从一个电极流到另一个电极
+
+This is a lot like a spigot on a pipe
+就像水龙头一样
+
+-- open the tap, water flows,
+- 打开水龙头,就有水流出来
+
+close the tap, water shuts off.
+关掉水龙头,就没水了
+
+You can think of the control wire as an input,
+可以把控制线,当做输入 ( input ) \N 底部的电极,当做输出(output)
+
+and the wire coming from the bottom electrode as the output.
+可以把控制线,当做输入 ( input ) \N 底部的电极,当做输出(output)
+
+So with a single transistor, we have one input and one output.
+所以 1 个晶体管,有一个输入和一个输出
+
+If we turn the input on, the output is also on because the current can flow through it.
+如果我们打开输入(input on) \N 输出也会打开(output on) \N 因为电流可以流过
+
+If we turn the input off, the output is also off and the current can no longer pass through.
+如果关闭输入(input off) \N 输出也会关闭(output off)\N 因为电流无法通过
+
+Or in boolean terms, when the input is true, the output is true.
+或者用布尔术语来说\N 输入为 真,输出为 真
+
+And when the input is false, the output is also false.
+输入为 假 \N 输出为 假
+
+Which again we can show on a logic table.
+我们也可以把这个做成"真值表"
+
+This isn't a very exciting circuit though because its not doing anything
+这个电路没什么意思,因为它没做什么事
+
+-- the input and output are the same.
+- 输入和输出是一样的
+
+But, we can modify this circuit just a little bit to create a NOT.
+但我们可以稍加修改,实现 NOT
+
+Instead of having the output wire at the end of the transistor, we can move it before.
+与其把下面那根线当做 输出,我们可以把 输出 放到上面
+
+If we turn the input on, the transistor allows current to pass through it to the "ground",
+如果打开 输入,电流可以流过然后 "接地"
+
+and the output wire won't receive that current
+输出就没有电流,所以输出是 off
+
+- so it will be off.
+输出就没有电流,所以输出是 off
+
+In our water metaphor grounding would be like
+如果用水来举例
+
+if all the water in your house was flowing out of a huge hose
+就像家里的水都从一个大管子流走了
+
+so there wasn't any water pressure left for your shower.
+打开淋浴头一点水也没有
+
+So in this case if the input is on, output is off.
+如果输入是 on,输出是 off
+
+When we turn off the transistor, though, current is prevented from flowing down it to the ground,
+当输入是 off,电流没法接地,就流过了输出,所以输出是 on
+
+so instead, current flows through the output wire.
+当输入是 off,电流没法接地,就流过了输出,所以输出是 on
+
+So the input will be off and the output will be on.
+如果输入是 off,输出是 on
+
+And this matches our logic table for NOT, so congrats, we just built a circuit that computes NOT!
+和 NOT 操作表一样!太棒了!我们做了个有点用的电路!
+
+We call them NOT gates - we call them gates because they're controlling the path of our current.
+我们叫它 "NOT 门" \N 之所以叫 "门",是因为它能控制电流的路径
+
+The AND Boolean operation takes two inputs, but still has a single output.
+"AND"操作有 2 个输入,1 个输出
+
+In this case the output is only true if both inputs are true.
+如果 2 个输入都是 true,输出才是 true
+
+Think about it like telling the truth.
+你可以想成是 说真话
+
+You're only being completely honest if you don't lie even a little.
+如果完全不说谎,才是诚实
+
+For example, let's take the statement,
+举例,看如下这个句子
+
+"My name is Carrie Anne AND I'm wearing a blue dress".
+我叫 Carrie Anne "而且"我穿着蓝色的衣服
+
+Both of those facts are true, so the whole statement is true.
+2 个都是真的,所以整个是真的
+
+But if I said, "My name is Carrie Anne AND I'm wearing pants" that would be false,
+但如果说,我叫 Carrie Anne"而且"我穿了裤子, 就是假的
+
+because I'm not wearing pants.
+因为我没穿裤子
+
+Or trousers.
+或长裤,如果你是英国人你会用这个词……(英/美单词不同梗)
+
+If you're in England.
+或长裤,如果你是英国人你会用这个词……(英/美单词不同梗)
+
+The Carrie Anne part is true, but a true AND a false, is still false.
+虽然前半句是真的,但是 真 "AND" 假,还是假
+
+If I were to reverse that statement it would still obviously be false,
+就算把前后顺序反过来,也依然是 假
+
+and if I were to tell you two complete lies that is also false,
+如果我说 2 个假的事情,那么结果是假。
+
+and again we can write all of these combinations out in a table.
+和上次一样,可以给"AND"做个表
+
+To build an AND gate, we need two transistors connected together
+为了实现 "AND 门",我们需要 2 个晶体管连在一起
+
+so we have our two inputs and one output.
+这样有 2 个输入和 1 个输出
+
+If we turn on just transistor A, current won't flow because the current is stopped by transistor B.
+如果只打开 A,不打开 B \N 电流无法流到 output,所以输出是 false
+
+Alternatively, if transistor B is on, but the transistor A is off,
+如果只打开 B,不打开 A ,也一样,电流无法流到 output
+
+the same thing, the current can't get through.
+如果只打开 B,不打开 A ,也一样,电流无法流到 output
+
+Only if transistor A AND transistor B are on does the output wire have current.
+只有 A 和 B 都打开了,output 才有电流
+
+The last boolean operation is OR
+最后一个是 OR (前面讲了 NOT 和 AND)
+
+-- where only one input has to be true for the output to be true.
+只要 2 个输入里,其中 1 个是 true,输出就是 true
+
+For example, my name is Margaret Hamilton OR I'm wearing a blue dress.
+比如,我叫 Margaret Hamilton"或"我穿着蓝色衣服
+
+This is a true statement because although I'm not Margaret Hamilton unfortunately,
+结果是 true,虽然我不是 Margaret Hamilton
+
+I am wearing a blue dress, so the overall statement is true.
+但是我穿着蓝色衣服,所以结果是 true
+
+An OR statement is also true if both facts are true.
+对于"OR 操作"来说,\N如果 2 个 输入都是 true,输出也是 true
+
+The only time an OR statement is false is if both inputs are false.
+只有 2 个输入都是 false,OR 的结果才是 false
+
+Building an OR gate from transistors needs a few extra wires.
+实现 "OR 门" 除了晶体管还要额外的线
+
+Instead of having two transistors in series -- one after the other --
+不是串联起来。而是并联
+
+we have them in parallel.
+不是串联起来。而是并联
+
+We run wires from the current source to both transistors.
+然后左边这条线有电流输入
+
+We use this little arc to note that the wires jump over one another and aren't connected,
+我们用"小拱门"代表 2 条线没连在一起,只是跨过而已
+
+even though they look like they cross.
+虽然看起来像连在一起
+
+If both transistors are turned off, the current is prevented from flowing to the output,
+如果 A 和 B 都是 off,电流无法流过
+
+so the output is also off.
+所以输出是 off
+
+Now, if we turn on just Transistor A, current can flow to the output.
+如果打开 A,电流可以流过。输出是 on
+
+Same thing if transistor A is off, but Transistor B in on.
+如果只打开 B 也一样
+
+Basically if A OR B is on, the output is also on.
+只要 A OR B 是 on, 输出就是 on
+
+Also, if both transistors are on, the output is still on.
+如果 A 和 B 都 on,结果是 on
+
+Ok, now that we've got NOT, AND, and OR gates,
+好,现在 NOT 门, AND 门, OR 门 都搞定了
+
+and we can leave behind the constituent transistors and move up a layer of abstraction.
+我们可以进行一次抽象
+
+The standard engineers use for these gates are a triangle with a dot for a NOT,
+NOT 门的画法是三角形前面一个圆点
+
+a D for the AND, and a spaceship for the OR.
+AND 门用 D 表示 ,OR 门用太空船表示
+
+Those aren't the official names, but that's howI like to think of them.
+"D 形状和太空船"不是标准叫法, 只是我喜欢这样叫而已
+
+Representing them and thinking about them this way allows us to build even bigger components
+我们可以用这种方法表示它们,构建更大的组件
+
+while keeping the overall complexity relatively the same
+就不会变得很复杂
+
+- just remember that that mess of transistors and wires is still there.
+- 晶体管和电线依然在那里,我们只是用符号来代表而已
+
+For example, another useful boolean operation in computation is called an Exclusive OR
+除了前面说的三个\N 另一个有用的布尔操作叫 "异或"
+
+- or XOR for short.
+- 简称 XOR
+
+XOR is like a regular OR, but with one difference:
+XOR 就像普通 OR,但有一个区别:
+
+if both inputs are true, the XOR is false.
+如果 2 个输入都是 true,XOR 输出 false
+
+The only time an XOR is true is when one input is true and the other input is false.
+想要 XOR 输出 true \N 一个输入必须是 true,另一个必须是 false
+
+It's like when you go out to dinner and your meal comes with a side salad OR a soup
+就像你出去吃晚饭,你点的饭要么配沙拉,要么配汤
+
+- sadly, you can't have both!
+- 你不能两个都要!
+
+And building this from transistors is pretty confusing,
+用晶体管实现 XOR 门有点烧脑子
+
+but we can show how an XOR is created from our three basic boolean gates.
+但我可以展示一下\N 怎么用前面提到的 3 种门来做 XOR 门
+
+We know we have two inputs again -- A and B -- and one output.
+我们有 2 个输入,A 和 B ,还有 1 个输出.
+
+Let's start with an OR gate, since the logic table looks almost identical to an OR.
+我们先放一个 OR 门. 因为 OR 和 XOR 的逻辑表很像
+
+There's only one problem - when A and B are true, the logic is different from OR,
+只有 1 个问题 - 当 A 和 B 都是 true 时 \N OR 的输出和想要的 XOR 输出不一样
+
+and we need to output "false".
+我们想要 false
+
+And XOR turns out to be a very useful component,
+XOR 超有用的
+
+and we'll get to it in another episode,
+我们下次再说它
+
+so useful in fact engineers gave it its own symbol too -- an OR gate with a smile :)
+因为超有用,\N 工程师给了它一个符号,一个 OR 门 + 一个笑脸
+
+But most importantly, we can now put XOR into our metaphorical toolbox
+重要的是,现在可以把 XOR 放入"工具箱"了
+
+and not have to worry about the individual logic gates that make it up,
+不用担心 XOR 具体用了几个门
+
+or the transistors that make up those gates,
+这几个门又是怎么用晶体管拼的
+
+or how electrons are flowing through a semiconductor.
+或电子是怎么流过半导体的
+
+Moving up another layer of abstraction.
+再次向上抽象
+
+When computer engineers are designing processors, they rarely work at the transistor level,
+工程师设计处理器时,很少在晶体管的层面上思考,
+
+and instead work with much larger blocks, like logic gates, and even larger components
+而是用更大的组件,比如逻辑门,或者由逻辑门组成的更大组件,
+
+made up of logic gates, which we'll discuss in future episodes.
+我们以后会讲
+
+And even if you are a professional computer programmer,
+就算是专业程序员
+
+it's not often that you think about
+也不用考虑逻辑是怎样在物理层面实现的
+
+how the logic that you are programming is actually implemented
+也不用考虑逻辑是怎样在物理层面实现的
+
+in the physical world by these teeny tiny components.
+也不用考虑逻辑是怎样在物理层面实现的
+
+We've also moved from thinking about raw electrical signals to our first representation of data
+我们从电信号开始,到现在第一次表示数据
+
+- true and false - and we've even gotten a little taste of computation.
+- 真和假 - 开始有点"计算"的感觉了
+
+With just the logic gates in this episode,
+仅用这集讲的 逻辑门
+
+we could build a machine that evaluates complex logic statements,
+我们可以判断复杂的语句 比如:
+
+like if "Name is John Green AND after 5pm OR is Weekend AND near Pizza Hut",
+[如果是 John Green] AND [下午 5 点后] \N OR [周末] AND [在比萨店附近]
+
+then "John will want pizza" equals true.
+那么 "John 想要比萨" = 真
+
+And with that, I'm starving, I'll see you next week.
+我都说饿了,下周见
+
diff --git a/(字幕)全40集中英字幕文本/30. 万维网-The World Wide Web.ass.txt b/(字幕)全40集中英字幕文本/30. 万维网-The World Wide Web.ass.txt
new file mode 100644
index 0000000..e7ff31f
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/30. 万维网-The World Wide Web.ass.txt
@@ -0,0 +1,636 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science.
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Over the past two episodes, we’ve delved into the wires, signals, switches, packets,
+前两集我们深入讨论了电线 信号 交换机 数据包 \N 路由器以及协议,它们共同组成了互联网.
+
+routers and protocols that make up the internet.
+前两集我们深入讨论了电线 信号 交换机 数据包 \N 路由器以及协议,它们共同组成了互联网.
+
+Today we’re going to move up yet another level of abstraction
+今天我们向上再抽象一层,来讨论万维网
+
+and talk about the World Wide Web.
+今天我们向上再抽象一层,来讨论万维网
+
+This is not the same thing as the Internet,
+万维网(World Wide Web) \N 和互联网(Internet)不是一回事
+
+even though people often use the two terms interchangeably.
+尽管人们经常混用这两个词
+
+The World Wide Web runs on top of the internet,
+万维网在互联网之上运行
+
+in the same way that Skype, Minecraft or Instagram do.
+互联网之上还有 Skype, Minecraft 和 Instagram
+
+The Internet is the underlying plumbing that conveys the data for all these different applications.
+互联网是传递数据的管道,各种程序都会用,
+
+And The World Wide Web is the biggest of them all
+其中传输最多数据的程序是万维网
+
+– a huge distributed application running on millions of servers worldwide,
+分布在全球数百万个服务器上
+
+accessed using a special program called a web browser.
+可以用"浏览器"来访问万维网
+
+We’re going to learn about that, and much more, in today’s episode.
+这集我们会深入讲解万维网
+
+The fundamental building block of the World Wide Web – or web for short
+万维网的最基本单位,是单个页面
+
+– is a single page.
+万维网的最基本单位,是单个页面
+
+This is a document, containing content, which can include links to other pages.
+页面有内容,也有去往其他页面的链接 \N 这些链接叫"超链接"
+
+These are called hyperlinks.
+页面有内容,也有去往其他页面的链接 \N 这些链接叫"超链接"
+
+You all know what these look like: text or images that you can click,
+你们都见过:可以点击的文字或图片,把你送往另一个页面
+
+and they jump you to another page.
+你们都见过:可以点击的文字或图片,把你送往另一个页面
+
+These hyperlinks form a huge web of interconnected information,
+这些超链接形成巨大的互联网络
+
+which is where the whole thing gets its name.
+这就是"万维网"名字的由来
+
+This seems like such an obvious idea.
+现在说起来觉得很简单,但在超链接做出来之前
+
+But before hyperlinks were implemented,
+现在说起来觉得很简单,但在超链接做出来之前
+
+every time you wanted to switch to another piece of information on a computer,
+计算机上每次想看另一个信息时
+
+you had to rummage through the file system to find it, or type it into a search box.
+你需要在文件系统中找到它 \N 或是把地址输入搜索框
+
+With hyperlinks, you can easily flow from one related topic to another.
+有了超链接,你可以在相关主题间轻松切换
+
+The value of hyperlinked information was conceptualized by Vannevar Bush way back in 1945.
+超链接的价值早在 1945 年 \N 就被 Vannevar Bush 意识到了
+
+He published an article describing a hypothetical machine called a Memex,
+在第 24 集中我们说过,他发过一篇文章 \N 描述一个假想的机器 Memex
+
+which we discussed in Episode 24.
+在第 24 集中我们说过,他发过一篇文章 \N 描述一个假想的机器 Memex
+
+Bush described it as "associative indexing... whereby any item may be caused
+Bush的形容是"关联式索引.. 选一个物品会引起
+
+at will to select another immediately and automatically."
+另一个物品被立即选中"
+
+He elaborated: "The process of tying two things together is the important thing...
+他解释道:"将两样东西联系在一起的过程十分重要
+
+thereafter, at any time, when one of those items is in view,
+在任何时候,当其中一件东西进入视线
+
+the other [item] can be instantly recalled merely by tapping a button."
+只需点一下按钮,立马就能回忆起另一件"
+
+In 1945, computers didn’t even have screens, so this idea was way ahead of its time!
+1945年的时候计算机连显示屏都没有,\N 所以这个想法非常超前!
+
+Text containing hyperlinks is so powerful,
+因为文字超链接是如此强大
+
+it got an equally awesome name: hypertext!
+它得到了一个同样厉害的名字:"超文本"!
+
+Web pages are the most common type of hypertext document today.
+如今超文本最常指向的,是另一个网页
+
+They’re retrieved and rendered by web browsers
+然后网页由浏览器渲染,我们待会会讲
+
+which we'll get to in a few minutes.
+然后网页由浏览器渲染,我们待会会讲
+
+In order for pages to link to one another, each hypertext page needs a unique address.
+为了使网页能相互连接,每个网页需要一个唯一的地址
+
+On the web, this is specified by a Uniform Resource Locator, or URL for short.
+这个地址叫 "统一资源定位器",简称 URL
+
+An example web page URL is thecrashcourse.com/courses.
+一个网页URL的例子是 "thecrashcourse.com/courses"
+
+Like we discussed last episode, when you request a site,
+就像上集讨论的,当你访问一个网站时
+
+the first thing your computer does is a DNS lookup.
+计算机首先会做"DNS查找"
+
+This takes a domain name as input – like "thecrashcourse.com"
+"DNS查找"的输入是一个域名 \N 比如 thecrashcourse.com
+
+and replies back with the corresponding computer’s IP address.
+DNS 会输出对应的IP地址
+
+Now, armed with the IP address of the computer you want,
+现在有了IP地址 \N 你的浏览器会打开一个 TCP 连接到这个 IP 地址
+
+your web browser opens a TCP connection to a computer
+现在有了IP地址 \N 你的浏览器会打开一个 TCP 连接到这个 IP 地址
+
+that’s running a special piece of software called a web server.
+这个地址运行着"网络服务器"
+
+The standard port number for web servers is port 80.
+网络服务器的标准端口是 80 端口
+
+At this point, all your computer has done is connect to
+这时,你的计算机连到了 \N thecrashcourse.com 的服务器
+
+the web server at the address thecrashcourse.com
+这时,你的计算机连到了 \N thecrashcourse.com 的服务器
+
+The next step is to ask that web server for the "courses" hypertext page.
+下一步是向服务器请求"courses"这个页面
+
+To do this, it uses the aptly named Hypertext Transfer Protocol, or HTTP.
+这里会用"超文本传输协议"(HTTP)
+
+The very first documented version of this spec, HTTP 0.9, created in 1991,
+HTTP的第一个标准,HTTP 0.9,创建于1991年
+
+only had one command – "GET".
+只有一个指令,"GET" 指令
+
+Fortunately, that’s pretty much all you need.
+幸运的是,对当时来说也够用
+
+Because we’re trying to get the "courses" page,
+因为我们想要的是"courses"页面
+
+we send the server the following command– GET /courses.
+我们向服务器发送指令:"GET /courses"
+
+This command is sent as raw ASCII text to the web server,
+该指令以"ASCII编码"发送到服务器
+
+which then replies back with the web page hypertext we requested.
+服务器会返回该地址对应的网页 \N 然后浏览器会渲染到屏幕上
+
+This is interpreted by your computer's web browser and rendered to your screen.
+服务器会返回该地址对应的网页 \N 然后浏览器会渲染到屏幕上
+
+If the user follows a link to another page, the computer just issues another GET request.
+如果用户点了另一个链接,计算机会重新发一个GET请求
+
+And this goes on and on as you surf around the website.
+你浏览网站时,这个步骤会不断重复
+
+In later versions, HTTP added status codes,
+在之后的版本,HTTP添加了状态码
+
+which prefixed any hypertext that was sent following a GET request.
+状态码放在请求前面
+
+For example, status code 200 means OK – I’ve got the page and here it is!
+举例,状态码 200 代表 "网页找到了,给你"
+
+Status codes in the four hundreds are for client errors.
+状态码400~499代表客户端出错
+
+Like, if a user asks the web server for a page that doesn’t exist,
+比如网页不存在,就是可怕的404错误
+
+that’s the dreaded 404 error!
+比如网页不存在,就是可怕的404错误
+
+Web page hypertext is stored and sent as plain old text,
+"超文本"的存储和发送都是以普通文本形式
+
+for example, encoded in ASCII or UTF-16, which we talked about in Episodes 4 and 20.
+举个例子,编码可能是 ASCII 或 UTF-16 \N 我们在第4集和第20集讨论过
+
+Because plain text files don’t have a way to specify what’s a link and what’s not,
+因为如果只有纯文本 \N 无法表明什么是链接,什么不是链接
+
+it was necessary to develop a way to "mark up" a text file with hypertext elements.
+所以有必要开发一种标记方法
+
+For this, the Hypertext Markup Language was developed.
+因此开发了 超文本标记语言(HTML)
+
+The very first version of HTML version 0.8, created in 1990,
+HTML 第一版的版本号是 0.8,创建于 1990 年
+
+provided 18 HTML commands to markup pages.
+有18种HTML指令
+
+That’s it!
+仅此而已
+
+Let’s build a webpage with these!
+我们来做一个网页吧!
+
+First, let’s give our web page a big heading.
+首先,给网页一个大标题
+
+To do this, we type in the letters "h1", which indicates the start of a first level
+我们输 h1 代表一级标题,然后用<>括起来
+
+heading, and we surround that in angle brackets.
+我们输 h1 代表一级标题,然后用<>括起来
+
+This is one example of an HTML tag.
+这就是一个HTML标签
+
+Then, we enter whatever heading text we want.
+然后输入想要的标题
+
+We don’t want the whole page to be a heading.
+我们不想一整页都是标题 \N 所以加 作为结束标签
+
+So, we need to "close" the "h1" tag like so, with a little slash in the front.
+我们不想一整页都是标题 \N 所以加 作为结束标签
+
+Now lets add some content.
+现在来加点内容
+
+Visitors may not know what Klingons are, so let’s make that word a hyperlink to the
+读者可能不知道"克林贡"是什么,所以我们给这个词
+
+Klingon Language Institute for more information.
+加一个超链接到"克林贡语言研究院"
+
+We do this with an "A" tag, inside of which we include an attribute
+我们用 标签来做,它有一个 href 属性
+
+that specifies a hyperlink reference.
+说明链接指向哪里,当点击链接时就会进入那个网页
+
+That’s the page to jump to if the link is clicked.
+说明链接指向哪里,当点击链接时就会进入那个网页
+
+And finally, we need to close the A tag.
+最后用 关闭标签
+
+Now lets add a second level heading, which uses an "h2" tag.
+接下来用 标签做二级标题
+
+HTML also provides tags to create lists.
+HTML也有做列表的标签
+
+We start this by adding the tag for an ordered list.
+我们先写 \N 代表 有序列表(ordered list)
+
+Then we can add as many items as we want,
+然后想加几个列表项目 就加几个 \N 用 - 包起来就行
+
+surrounded in "
- " tags, which stands for list item.
+然后想加几个列表项目 就加几个 \N 用
- 包起来就行
+
+People may not know what a bat'leth is, so let’s make that a hyperlink too.
+读者可能不知道Bat'leth是什么,那么也加上超链接
+
+Lastly, for good form, we need to close the ordered list tag.
+最后,为了保持良好格式,用
代表列表结束
+
+And we’re done – that’s a very simple web page!
+这就完成了 - 一个很简单的网页!
+
+If you save this text into notepad or textedit, and name it something like "test.html",
+如果把这些文字存入记事本或文本编辑器,\N 然后文件取名"test.html"
+
+you should be able to open it by dragging it into your computer’s web browser.
+就可以拖入浏览器打开
+
+Of course, today’s web pages are a tad more sophisticated.
+当然,如今的网页更复杂一些
+
+The newest version of HTML, version 5, has over a hundred different tags –
+最新版的 HTML,HTML5,有100多种标签
+
+for things like images, tables, forms and buttons.
+图片标签,表格标签,表单标签,按钮标签,等等
+
+And there are other technologies we’re not going to discuss, like Cascading Style Sheets
+还有其他相关技术就不说了\N 比如 层叠样式表 (CSS)
+
+or CSS and JavaScript, which can be embedded into HTML pages and do even fancier things.
+和 JavaScript,这俩可以加进网页,做一些更厉害的事
+
+That brings us back to web browsers.
+让我们回到浏览器
+
+This is the application on your computer that lets you talk with all these web servers.
+网页浏览器可以和网页服务器沟通
+
+Browsers not only request pages and media,
+浏览器不仅获取网页和媒体,获取后还负责显示.
+
+but also render the content that’s being returned.
+浏览器不仅获取网页和媒体,获取后还负责显示.
+
+The first web browser, and web server,
+第一个浏览器和服务器
+
+was written by (now Sir) Tim Berners-Lee over the course of two months in 1990.
+是 Tim Berners-Lee 在 1990 年写的,一共花了2个月
+
+At the time, he was working at CERN in Switzerland.
+那时候他在瑞士的"欧洲核子研究所"工作
+
+To pull this feat off, he simultaneously created several of the fundamental web standards
+为了做出来,他同时建立了几个最基本的网络标准
+
+we discussed today: URL, HTML and HTTP.
+URL, HTML 和 HTTP.
+
+Not bad for two months work!
+两个月能做这些很不错啊!
+
+Although to be fair, he’d been researching hypertext systems for over a decade.
+不过公平点说,他研究超文本系统已经有十几年了
+
+After initially circulating his software amongst colleagues at CERN,
+和同事在 CERN 内部使用一阵子后
+
+it was released to the public in 1991.
+在 1991 年发布了出去
+
+The World Wide Web was born.
+万维网就此诞生
+
+Importantly, the web was an open standard,
+重要的是,万维网有开放标准
+
+making it possible for anyone to develop new web servers and browsers.
+大家都可以开发新服务器和新浏览器
+
+This allowed a team at the University of Illinois at Urbana-Champaign to
+因此"伊利诺伊大学香槟分校"的一个小组
+
+create the Mosaic web browser in 1993.
+在 1993 年做了 Mosaic 浏览器
+
+It was the first browser that allowed graphics to be embedded alongside text;
+第一个可以在文字旁边显示图片的浏览器
+
+previous browsers displayed graphics in separate windows.
+之前浏览器要单开一个新窗口显示图片
+
+It also introduced new features like bookmarks, and had a friendly GUI interface,
+还引进了书签等新功能,界面友好,使它很受欢迎
+
+which made it popular.
+还引进了书签等新功能,界面友好,使它很受欢迎
+
+Even though it looks pretty crusty, it’s recognizable as the web we know today!
+尽管看上去硬邦邦的,但和如今的浏览器长的差不多
+
+By the end of the 1990s, there were many web browsers in use,
+1990年代末有许多浏览器面世
+
+like Netscape Navigator, Internet Explorer, Opera, OmniWeb and Mozilla.
+Netscape Navigator, Internet Explorer \N Opera, OmniWeb, Mozilla
+
+Many web servers were also developed,
+也有很多服务器面世
+
+like Apache and Microsoft’s Internet Information Services (IIS).
+比如 Apache 和 微软互联网信息服务(IIS)
+
+New websites popped up daily, and web mainstays
+每天都有新网站冒出来,如今的网络巨头
+
+like Amazon and eBay were founded in the mid-1990s.
+比如亚马逊和 eBay,创始于 1990 年代中期
+
+It was a golden era!
+那是个黄金时代!
+
+The web was flourishing and people increasingly needed ways to find things.
+随着万维网日益繁荣,人们越来越需要搜索
+
+If you knew the web address of where you wanted to go –
+如果你知道网站地址 \N 比如 ebay.com,直接输入浏览器就行
+
+like ebay.com – you could just type it into the browser.
+如果你知道网站地址 \N 比如 ebay.com,直接输入浏览器就行
+
+But what if you didn’t know where to go?
+如果不知道地址呢?
+
+Like, you only knew that you wanted pictures of cute cats.
+比如想找可爱猫咪的图片
+
+Right now!
+现在就要!
+
+Where do you go?
+去哪里找呢?
+
+At first, people maintained web pages
+起初人们会维护一个目录,链接到其他网站
+
+which served as directories hyperlinking to other websites.
+起初人们会维护一个目录,链接到其他网站
+
+"Most famous among these was "Jerry and David's guide to the World Wide Web",
+其中最有名的叫"Jerry和David的万维网指南"
+
+renamed Yahoo in 1994.
+1994年改名为Yahoo
+
+As the web grew, these human-edited directories started to get unwieldy,
+随着网络越来越大,人工编辑的目录变得不便利
+
+and so search engines were developed.
+所以开发了搜索引擎
+
+Let’s go to the thought bubble!
+让我们进入思想泡泡!
+
+The earliest web search engine that operated like the ones we use today, was JumpStation,
+长的最像现代搜索引擎的最早搜素引擎,叫JumpStation
+
+created by Jonathon Fletcher in 1993 at the University of Stirling.
+由Jonathon Fletcher于1993年在斯特林大学创建
+
+This consisted of three pieces of software that worked together.
+它有 3 个部分
+
+The first was a web crawler, software that followed all the links it could find on the web;
+第一个是爬虫,一个跟着链接到处跑的软件
+
+anytime it followed a link to a page that had new links,
+每当看到新链接,就加进自己的列表里
+
+it would add those to its list.
+每当看到新链接,就加进自己的列表里
+
+The second component was an ever enlarging index,
+第二个部分是不断扩张的索引
+
+recording what text terms appeared on what pages the crawler had visited.
+记录访问过的网页上,出现过哪些词
+
+The final piece was a search algorithm that consulted the index;
+最后一个部分,是查询索引的搜索算法
+
+for example, if I typed the word "cat" into JumpStation,
+举个例子,如果我在 JumpStation 输入"猫"
+
+every webpage where the word "cat" appeared would come up in a list.
+每个有"猫"这个词的网页都会出现
+
+Early search engines used very simple metrics to rank order their search results, most often
+早期搜索引擎的排名方式 非常简单
+
+just the number of times a search term appeared on a page.
+取决于 搜索词在页面上的出现次数
+
+This worked okay, until people started gaming the system,
+刚开始还行,直到有人开始钻空子
+
+like by writing "cat" hundreds of times on their web pages just to steer traffic their way.
+比如在网页上写几百个"猫",把人们吸引过来
+
+Google’s rise to fame was in large part
+谷歌成名的一个很大原因是 \N 创造了一个聪明的算法来规避这个问题
+
+due to a clever algorithm that sidestepped this issue.
+谷歌成名的一个很大原因是 \N 创造了一个聪明的算法来规避这个问题
+
+Instead of trusting the content on a web page,
+与其信任网页上的内容 \N 搜索引擎会看其他网站 有没有链接到这个网站
+
+they looked at how other websites linked to that page.
+与其信任网页上的内容 \N 搜索引擎会看其他网站 有没有链接到这个网站
+
+If it was a spam page with the word cat over and over again, no site would link to it.
+如果只是写满"猫"的垃圾网站,没有网站会指向它
+
+But if the webpage was an authority on cats, then other sites would likely link to it.
+如果有关于猫的有用内容,有网站会指向它
+
+So the number of what are called "backlinks", especially from reputable sites,
+所以这些"反向链接"的数量,特别是有信誉的网站
+
+was often a good sign of quality.
+代表了网站质量
+
+This started as a research project called BackRub at Stanford University in 1996, before
+Google 一开始时是 1996 年斯坦福大学 \N 一个叫 BackRub 的研究项目
+
+being spun out, two years later, into the Google we know today.
+两年后分离出来,演变成如今的谷歌
+
+Thanks thought bubble!
+谢谢思想泡泡!
+
+Finally, I want to take a second to talk about a term you’ve probably heard a lot recently,
+最后 我想讲一个词,你最近可能经常听到
+
+"Net Neutrality".
+网络中立性
+
+Now that you’ve built an understanding of packets, internet routing, and the World Wide
+现在你对数据包,路由和万维网,有了个大体概念
+
+Web, you know enough to understand the essence, at least the technical essence, of this big debate.
+足够你理解这个争论的核心点,至少从技术角度
+
+In short, network neutrality is the principle that
+简单说"网络中立性"是
+
+all packets on the internet should be treated equally.
+应该平等对待所有数据包
+
+It doesn’t matter if the packets are my email or you streaming this video,
+不论这个数据包是我的邮件,或者是你在看视频
+
+they should all chug along at the same speed and priority.
+速度和优先级应该是一样的
+
+But many companies would prefer that their data arrive to you preferentially.
+但很多公司会乐意让它们的数据优先到达
+
+Take for example, Comcast, a large ISP that also owns many TV channels,
+拿 Comcast 举例,它们不但是大型互联网服务提供商\N 而且拥有多家电视频道
+
+like NBC and The Weather Channel, which are streamed online.
+比如 NBC 和 The Weather Channel,可以在线看.
+
+Not to pick on Comcast, but in the absence of Net Neutrality rules,
+我不是特意找Comcast麻烦 \N 但要是没有网络中立性
+
+they could for example say that they want their content to be delivered silky smooth, with high priority…
+Comcast 可以让自己的内容优先到达 \N 节流其他线上视频
+
+But other streaming videos are going to get throttled,
+Comcast 可以让自己的内容优先到达 \N 节流其他线上视频
+
+that is, intentionally given less bandwidth and lower priority.
+节流(Throttled) 意思是故意给更少带宽和更低优先级
+
+Again I just want to reiterate here this is just conjecture.
+再次重申,这只是举例,不是说 Comcast 很坏
+
+At a high level, Net Neutrality advocates argue that giving internet providers this
+支持网络中立性的人说 \N 没有中立性后,服务商可以推出提速的"高级套餐"
+
+ability to essentially set up tolls on the internet – to provide premium packet delivery
+支持网络中立性的人说 \N 没有中立性后,服务商可以推出提速的"高级套餐"
+
+plants the seeds for an exploitative business model.
+给剥削性商业模式埋下种子
+
+ISPs could be gatekeepers to content, with strong incentives to not play nice with competitors.
+互联网服务供应商成为信息的"守门人",\N 它们有着强烈的动机去碾压对手
+
+Also, if big companies like Netflix and Google can pay to get special treatment,
+另外,Netflix和Google这样的大公司可以花钱买特权
+
+small companies, like start-ups, will be at a disadvantage, stifling innovation.
+而小公司,比如刚成立的创业公司,\N 会处于劣势,阻止了创新
+
+On the other hand, there are good technical reasons why you might
+另一方面,从技术原因看
+
+want different types of data to flow at different speeds.
+也许你会希望不同数据传输速度不同
+
+That skype call needs high priority,
+你希望Skype的优先级更高,邮件晚几秒没关系
+
+but it’s not a big deal if an email comes in a few seconds late.
+你希望Skype的优先级更高,邮件晚几秒没关系
+
+Net-neutrality opponents also argue that market forces and competition would discourage bad
+而反对"网络中立性"的人认为,市场竞争会阻碍不良行为
+
+behavior, because customers would leave ISPs that are throttling sites they like.
+如果供应商把客户喜欢的网站降速 \N 客户会离开供应商
+
+This debate will rage on for a while yet, and as we always encourage on Crash Course,
+这场争辩还会持续很久,\N 就像我们在 Crash Course 其他系列中说过
+
+you should go out and learn more
+你应该自己主动了解更多信息
+
+because the implications of Net Neutrality are complex and wide-reaching.
+因为"网络中立性"的影响十分复杂而且广泛
+
+I’ll see you next week.
+我们下周再见
+
diff --git a/(字幕)全40集中英字幕文本/31. 计算机安全-Cybersecurity.ass.txt b/(字幕)全40集中英字幕文本/31. 计算机安全-Cybersecurity.ass.txt
new file mode 100644
index 0000000..2a63e0c
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/31. 计算机安全-Cybersecurity.ass.txt
@@ -0,0 +1,693 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+Over the last three episodes, we’ve talked about how computers have become interconnected,
+过去3集 我们讲了计算机如何互连
+
+allowing us to communicate near-instantly across the globe.
+让我们能瞬时跨全球沟通
+
+But, not everyone who uses these networks is going to play by the rules,
+但不是每个使用网络的人都会规规矩矩 不损害他人利益
+
+or have our best interests at heart.
+但不是每个使用网络的人都会规规矩矩 不损害他人利益
+
+Just as how we have physical security like locks, fences
+就像现实世界中我们用锁和栅栏保证物理安全
+
+and police officers to minimize crime in the real world,
+有警察减少犯罪
+
+we need cybersecurity to minimize crime and harm in the virtual world.
+我们需要网络安全减少虚拟世界中的犯罪
+
+Computers don’t have ethics.
+计算机没有道德观念
+
+Give them a formally specified problem and
+只要给计算机写清具体问题 它们很乐意地闪电般算出答案
+
+they’ll happily pump out an answer at lightning speed.
+只要给计算机写清具体问题 它们很乐意地闪电般算出答案
+
+Running code that takes down a hospital’s computer systems
+破坏医院计算机系统的代码 和 保持病人心跳的代码 \N 对计算机来说没有区别
+
+is no different to a computer than code that keeps a patient's heart beating.
+破坏医院计算机系统的代码 和 保持病人心跳的代码 \N 对计算机来说没有区别
+
+Like the Force, computers can be pulled to the light side or the dark side.
+就像"原力"一样 \N 计算机可以被拉到"光明面"或"黑暗面"
+
+Cybersecurity is like the Jedi Order, trying to bring peace and justice to the cyber-verse.
+网络安全就像 绝地武士团 \N 给网络世界带来和平与正义
+
+The scope of cybersecurity evolves as fast as the capabilities of computing,
+计算机安全的范围,和计算能力的发展速度一样快
+
+but we can think of it as a set of techniques to protect the secrecy,
+我们可以把计算机安全,看成是保护系统和数据的:
+
+integrity and availability of computer systems and data against threats.
+保密性,完整性和可用性
+
+Let’s unpack those three goals:
+我们逐个细说:
+
+Secrecy, or confidentiality, means that only authorized people
+"保密性"是只有有权限的人 \N 才能读取计算机系统和数据
+
+should be able to access or read specific computer systems and data.
+"保密性"是只有有权限的人 \N 才能读取计算机系统和数据
+
+Data breaches, where hackers reveal people’s credit card information,
+黑客泄露别人的信用卡信息,就是攻击保密性.
+
+is an attack on secrecy.
+黑客泄露别人的信用卡信息,就是攻击保密性.
+
+Integrity means that only authorized people
+"完整性"是只有有权限的人 \N 才能使用和修改系统和数据
+
+should have the ability to use or modify systems and data.
+"完整性"是只有有权限的人 \N 才能使用和修改系统和数据
+
+Hackers who learn your password and send e-mails masquerading as you, is an integrity attack.
+黑客知道你的邮箱密码,假冒你发邮件\N 就是攻击"完整性"
+
+And availability means that authorized people should
+"可用性"是有权限的人 \N 应该随时可以访问系统和数据
+
+always have access to their systems and data.
+"可用性"是有权限的人 \N 应该随时可以访问系统和数据
+
+Think of Denial of Service Attacks, where hackers overload a website
+拒绝服务攻击(DDOS) 就是黑客
+
+with fake requests to make it slow or unreachable for others.
+发大量的假请求到服务器,让网站很慢或者挂掉
+
+That’s attacking the service’s availability.
+这就是攻击"可用性"
+
+To achieve these three general goals, security experts start with
+为了实现这三个目标,安全专家会从 \N 抽象层面想象"敌人"可能是谁,这叫"威胁模型分析"
+
+a specification of who your "enemy" is, at an abstract level, called a threat model.
+为了实现这三个目标,安全专家会从 \N 抽象层面想象"敌人"可能是谁,这叫"威胁模型分析"
+
+This profiles attackers: their capabilities, goals, and probable means of attack
+模型会对攻击者有个大致描述:\N 能力如何,目标可能是什么,可能用什么手段
+
+– what’s called, awesomely enough, an attack vector.
+攻击手段又叫"攻击矢量"
+
+Threat models let you prepare against specific threats, rather than
+"威胁模型分析"让你能为特定情境做准备
+
+being overwhelmed by all the ways hackers could get to your systems and data.
+不被可能的攻击手段数量所淹没 \N 因为手段实在有太多种了
+
+And there are many, many ways.
+不被可能的攻击手段数量所淹没 \N 因为手段实在有太多种了
+
+Let’s say you want to "secure" physical access to your laptop.
+假设你想确保笔记本计算机的"物理安全" \N 你的威胁模型是"好管闲事的室友"
+
+Your threat model is a nosy roommate.
+假设你想确保笔记本计算机的"物理安全" \N 你的威胁模型是"好管闲事的室友"
+
+To preserve the secrecy, integrity and availability of your laptop,
+为了保证保密性,完整性和可用性 \N 你可以藏在脏兮兮的洗衣篮里
+
+you could keep it hidden in your dirty laundry hamper.
+为了保证保密性,完整性和可用性 \N 你可以藏在脏兮兮的洗衣篮里
+
+But, if your threat model is a mischievous younger sibling
+但如果威胁模型是调皮的兄弟姐妹,知道你喜欢藏哪里
+
+who knows your hiding spots,
+但如果威胁模型是调皮的兄弟姐妹,知道你喜欢藏哪里
+
+then you’ll need to do more: maybe lock it in a safe.
+那么你需要更多保护:比如锁在保险箱里
+
+In other words, how a system is secured depends heavily on who it’s being secured against.
+换句话说,要怎么保护,具体看对抗谁
+
+Of course, threat models are typically a bit more formally defined than just "nosy roommate".
+当然,威胁模型通常比"好管闲事的室友"更正式一些
+
+Often you’ll see threat models specified in terms of technical capabilities.
+通常威胁模型分析里 会以能力水平区分
+
+For example, "someone who has physical access to your laptop along with unlimited time".
+比如"某人可以物理接触到笔记本计算机,而且时间无限"
+
+With a given threat model, security architects need to come up
+在给定的威胁模型下,安全架构师要
+
+with a solution that keeps a system secure –
+提供解决方案,保持系统安全
+
+as long as certain assumptions are met,
+只要某些假设不被推翻
+
+like no one reveals their password to the attacker.
+比如没人会告诉攻击者密码
+
+There are many methods for protecting computer systems, networks and data.
+保护计算机系统,网络和数据的方法有很多
+
+A lot of security boils down to two questions:
+很多安全问题可以总结成2个问题:
+
+who are you, and what should you have access to?
+你是谁?你能访问什么?
+
+Clearly, access should be given to the right people, but refused to the wrong people.
+权限应该给合适的人,拒绝错误的人
+
+Like, bank employees should be able to open ATMs to restock them, but not me…
+比如银行员工可以打开取款机来补充现金。\N 但我不应该有权限打开
+
+because I’d take it all... all of it!
+因为我会把钱拿走 全拿走!
+
+That ceramic cat collection doesn’t buy itself!
+陶瓷猫收藏品可不会从天上掉下来哟!
+
+So, to differentiate between right and wrong people, we use authentication
+所以,为了区分谁是谁,\N 我们用 "身份认证"(authentication)
+
+- the process by which a computer understands who it’s interacting with.
+- 让计算机得知使用者是谁
+
+Generally, there are three types, each with their own pros and cons:
+身份认证有三种,各有利弊:
+
+What you know.
+你知道什么
+
+What you have.
+你有什么
+
+And what you are.
+你是什么
+
+What you know authentication is based on knowledge of a secret that
+"你知道什么" 是基于某个秘密
+
+should be known only by the real user and the computer,
+只有用户和计算机知道
+
+for example, a username and password.
+比如 用户名和密码
+
+This is the most widely used today because it’s the easiest to implement.
+这是如今使用最广泛的,因为最容易实现
+
+But, it can be compromised if hackers guess or otherwise come to know your secret.
+但如果黑客通过猜测或其他方式,知道你的密码,就惨了
+
+Some passwords are easy for humans to figure out, like 12356 or qwerty.
+有些密码很容易猜中,比如12356或qwerty
+
+But, there are also ones that are easy for computers.
+但有些密码对计算机很容易
+
+Consider the PIN: 2580.
+比如PIN码:2580
+
+This seems pretty difficult to guess – and it is – for a human.
+看起来很难猜中 - 起码对人类来说是这样
+
+But there are only ten thousand possible combinations of 4-digit PINs.
+但4位数字,只有一万种可能
+
+A computer can try entering 0000, then try 0001, and then 0002,
+一台计算机可以尝试0000,然后0001,然后0002,
+
+all the way up to 9999... in a fraction of a second.
+然后到9999,不到一秒内试完
+
+This is called a brute force attack, because it just tries everything.
+这叫"暴力攻击",因为只是试遍一切可能
+
+There’s nothing clever to the algorithm.
+这种算法没什么聪明的地方
+
+Some computer systems lock you out, or have you wait a little, after say three wrong attempts.
+如果你错误尝试3次,\N 有些系统会阻止你继续尝试,或让你等一会儿
+
+That’s a common and reasonable strategy,
+这个策略普遍而且合理
+
+and it does make it harder for less sophisticated attackers.
+对于一般的攻击者确实很难
+
+But think about what happens if hackers have already taken over
+但假设黑客控制了
+
+tens of thousands of computers, forming a botnet.
+数以万计的计算机,形成一个僵尸网络
+
+Using all these computers, the same pin – 2580 –
+用这么多计算机尝试密码 2580
+
+can be tried on many tens of thousands of bank accounts simultaneously.
+同时尝试很多银行账户
+
+Even with just a single attempt per account, they’ll very likely
+即使每个账户只试一次,也很可能
+
+get into one or more that just happen to use that PIN.
+碰到某个账户刚好用这个 PIN
+
+In fact, we’ve probably guessed the pin of someone watching this video!
+事实上,看视频的某人可能刚好用这个 PIN
+
+Increasing the length of PINs and passwords can help,
+增加密码长度有帮助
+
+but even 8 digit PINs are pretty easily cracked.
+但即使8位数字的PIN码也很容易破解
+
+This is why so many websites now require you to use a mix of upper and lowercase letters,
+这就是为什么现在很多网站 要求大写+小写字母
+
+special symbols, and so on – it explodes the number of possible password combinations.
+还有特殊符号等,大大增加可能的密码
+
+An 8-digit numerical PIN only has a hundred million combinations
+8位数字的PIN只有一亿种组合
+
+– computers eat that for breakfast!
+对计算机轻而易举
+
+But an 8-character password with all those funky things mixed in
+但包含各种字符的8位长度密码
+
+has more than 600 trillion combinations.
+有超过600万亿种组合
+
+Of course, these passwords are hard for us mere humans to remember,
+当然,这些密码会难以记住,
+
+so a better approach is for websites to let us pick something more memorable,
+所以更好的方法是 选一些更好记的东西
+
+like three words joined together:
+比如三个单词连在一起:
+
+"green brothers rock" or "pizza tasty yum".
+"格林兄弟好厉害"或"披萨尝起来好好吃"
+
+English has around 100,000 words in use,
+英文大约有10万个单词
+
+so putting three together would give you roughly
+所以三个单词连一起大概有
+
+1 quadrillion possible passwords. Good luck trying to guess that!
+1亿亿种可能,想猜中的话,祝你好运!
+
+I should also note here that using non-dictionary words
+另外使用不在字典内的单词
+
+is even better against more sophisticated kinds of attacks,
+被猜中的可能性更低
+
+but we don’t have time to get into that here.
+但我们没时间细说这个
+
+Computerphile has a great video on choosing a password - link in the dooblydoo.
+Computerphile 频道有个视频讲怎么选择好密码 - \N 链接请看 Youtube 描述
+
+What you have authentication, on the other hand,
+"你有什么"这种验证方式
+
+is based on possession of a secret token that only the real user has.
+是基于用户有特定物体
+
+An example is a physical key and lock.
+比如钥匙和锁
+
+You can only unlock the door if you have the key.
+如果你有钥匙,就能开门
+
+This escapes this problem of being "guessable".
+这避免了被人"猜中"的问题
+
+And they typically require physical presence,
+而且通常需要人在现场
+
+so it’s much harder for remote attackers to gain access.
+所以远程攻击就更难了
+
+Someone in another country can’t gain access to your front door in Florida
+另一个国家的人,得先来佛罗里达州
+
+without getting to Florida first.
+才能到你家前门
+
+But, what you have authentication can be compromised if an attacker is physically close.
+但如果攻击者离你比较近,那么也不安全
+
+Keys can be copied, smartphones stolen, and locks picked.
+钥匙可以被复制,手机可能被偷,锁可以撬开
+
+Finally, what you are authentication is based on... you!
+最后,"你是什么"这种验证,是基于你
+
+You authenticate by presenting yourself to the computer.
+把特征展示给计算机进行验证
+
+Biometric authenticators, like fingerprint readers and iris scanners are classic examples.
+生物识别验证器,\N 比如指纹识别器和虹膜扫描仪就是典型例子
+
+These can be very secure, but the best technologies are still quite expensive.
+这些非常安全,但最好的识别技术仍然很贵
+
+Furthermore, data from sensors varies over time.
+而且,来自传感器的数据每次会不同
+
+What you know and what you have authentication have the nice property of being deterministic
+"你知道什么"和"你有什么"。这两种验证是"确定性"的
+
+– either correct or incorrect.
+- 要么正确,要么错误
+
+If you know the secret, or have the key, you’re granted access 100% of the time.
+如果你知道密码,或有钥匙,那么100%能获得访问权限
+
+If you don’t, you get access zero percent of the time.
+如果没有,就绝对进不去
+
+Biometric authentication, however, is probabilistic.There’s some chance the system won’t recognize you…
+但"生物识别"是概率性的,系统有可能认不出你
+
+maybe you’re wearing a hat or the lighting is bad.
+可能你戴了帽子,或者光线不好
+
+Worse, there’s some chance the system will recognize the wrong person as you
+更糟的是,系统可能把别人错认成你
+
+– like your evil twin!
+比如你的邪恶双胞胎
+
+Of course, in production systems, these chances are low, but not zero.
+当然,在现实世界中几率很低,但不是零
+
+Another issue with biometric authentication is it can’t be reset.
+生物认证的另一个问题是无法重设
+
+You only have so many fingers, so what happens if an attacker compromises your fingerprint data?
+你只有这么多手指,如果攻击者拿到你的指纹数据怎么办
+
+This could be a big problem for life.
+你一辈子都麻烦了
+
+And, recently, researchers showed it’s possible to forge your iris
+最近还有研究人员表示,拍个照都有可能伪造虹膜
+
+just by capturing a photo of you, so that’s not promising either.
+所以也不靠谱
+
+Basically, all forms of authentication have strengths and weaknesses,
+所有认证方法都有优缺点,
+
+and all can be compromised in one way or another.
+它们都可以被攻破
+
+So, security experts suggest using two or more forms of authentication
+所以,对于重要账户,\N 安全专家建议用两种或两种以上的认证方式
+
+for important accounts.
+所以,对于重要账户,\N 安全专家建议用两种或两种以上的认证方式
+
+This is known as two-factor or multi-factor authentication.
+这叫"双因素"或"多因素"认证
+
+An attacker may be able to guess your password or steal your phone:
+攻击者可能猜出你密码,或偷走你的手机:
+
+but it’s much harder to do both.
+但两个都做到,会比较难
+
+After authentication comes Access Control.
+"身份验证"后,就来到了"访问控制"
+
+Once a system knows who you are, it needs to know what you should be able to access,
+一旦系统知道你是谁,它需要知道你能访问什么,
+
+and for that there’s a specification of who should be able to see, modify and use what.
+因此应该有个规范,\N 说明谁能访问什么,修改什么,使用什么。
+
+This is done through Permissions or Access Control Lists (ACL),
+这可以通过"权限"或"访问控制列表"(ACL)来实现
+
+which describe what access each user has for every file, folder and program on a computer.
+其中描述了用户对每个文件,文件夹和程序的访问权限
+
+"Read" permission allows a user to see the contents of a file,
+"读"权限允许用户查看文件内容,
+
+"write" permission allows a user to modify the contents,
+"写"权限允许用户修改内容,
+
+and "execute" permission allows a user to run a file, like a program.
+"执行"权限允许用户运行文件,比如程序
+
+For organizations with users at different levels of access privilege
+有些组织需要不同层级的权限
+
+– like a spy agency – it’s especially important for Access Control Lists
+比如间谍机构,"访问控制列表"的正确配置非常重要
+
+to be configured correctly to ensure secrecy, integrity and availability.
+以确保保密性,完整性和可用性
+
+Let’s say we have three levels of access: public, secret and top secret.
+假设我们有三个访问级别:公开,机密,顶级机密
+
+The first general rule of thumb is that people shouldn’t be able to "read up".
+第一个普遍的好做法是,\N 用户不能"读上", 不能读等级更高的信息
+
+If a user is only cleared to read secret files, they shouldn’t be able to read top secret
+如果用户能读"机密"文件\N 那么不应该有权限读"顶级机密"文件
+
+files, but should be able to access secret and public ones.
+但能访问"机密"和"公开"文件
+
+The second general rule of thumb is that people shouldn’t be able to "write down".
+第二个法则是用户不能"写下"
+
+If a member has top secret clearance, then they should be able to
+如果用户等级是"顶级机密"
+
+write or modify top secret files, but not secret or public files.
+那么能写入或修改"顶级机密"文件,\N 但不能修改"机密"或"公共"文件
+
+It may seem weird that even with the highest clearance,
+听起来好像很奇怪 \N 有最高等级也不能改等级更低的文件
+
+you can’t modify less secret files.
+听起来好像很奇怪 \N 有最高等级也不能改等级更低的文件
+
+But, it guarantees that there’s no accidental leakage of
+但这样确保了"顶级机密" \N 不会意外泄露到"机密"文件或"公共"文件里
+
+top secret information into secret or public files.
+但这样确保了"顶级机密" \N 不会意外泄露到"机密"文件或"公共"文件里
+
+This "no read up, no write down" approach is called the Bell-LaPadula model.
+这个"不能向上读,不能向下写"的方法\N 叫 Bell-LaPadula 模型
+
+It was formulated for the U.S. Department of Defense’s Multi-Level Security policy.
+它是为美国国防部"多层安全政策"制定的
+
+There are many other models for access control – like the Chinese Wall model and Biba model.
+还有许多其他的访问控制模型 - 比如"中国墙"模型和"比伯"模型
+
+Which model is best depends on your use-case.
+哪个模型最好,取决于具体情况
+
+Authentication and access control help a computer determine who you are
+"身份验证"和"访问控制"帮助计算机知道"你是谁"
+
+and what you should access,
+以及"你可以访问什么",
+
+but depend on being able to trust the hardware and software
+但做这些事情的软硬件必须是可信的
+
+that run the authentication and access control programs.
+但做这些事情的软硬件必须是可信的
+
+That’s a big dependence.
+这个依赖很重要
+
+If an attacker installs malicious software – called malware
+如果攻击者给计算机装了恶意软件
+
+– compromising the host computer’s operating system,
+- 控制了计算机的操作系统
+
+how can we be sure security programs don’t have a backdoor that let attackers in?
+我们怎么确定安全程序没有给攻击者留后门?
+
+The short answer is… we can’t.
+短回答是...无法确定
+
+We still have no way to guarantee the security of a program or computing system.
+我们仍然无法保证程序或计算机系统的安全
+
+That’s because even while security software might be "secure" in theory,
+因为安全软件在理论上可能是"安全的"
+
+implementation bugs can still result in vulnerabilities.
+实现时可能会不小心留下漏洞
+
+But, we do have techniques to reduce the likelihood of bugs,
+但我们有办法减少漏洞出现的可能性
+
+like quickly find and patch bugs when they do occur,
+比如一找到就马上修复
+
+and mitigate damage when a program is compromised.
+以及当程序被攻破时尽可能减少损害
+
+Most security errors come from implementation error.
+大部分漏洞都是具体实现的时候出错了
+
+To reduce implementation error, reduce implementation.
+为了减少执行错误,减少执行
+
+One of the holy grails of system level security is a "security kernel"
+系统级安全的圣杯之一是"安全内核"
+
+or a "trusted computing base": a minimal set of operating system software
+或"可信计算基础":一组尽可能少的操作系统软件
+
+that’s close to provably secure.
+安全性都是接近可验证的
+
+A challenge in constructing these security kernels is deciding what should go into it.
+构建安全内核的挑战在于 决定内核应该有什么
+
+Remember, the less code, the better!
+记住,代码越少越好!
+
+Even after minimizing code bloat, it would be great to "guarantee"
+在最小化代码数量之后,\N 要是能"保证"代码是安全的,会非常棒
+
+that’s code is written in secure.
+在最小化代码数量之后,\N 要是能"保证"代码是安全的,会非常棒
+
+Formally verifying the security of code is an active area of research.
+正式验证代码的安全性 是一个活跃的研究领域
+
+The best we have right now is a process called Independent Verification and Validation.
+我们现在最好的手段,叫"独立安全检查和质量验证"
+
+This works by having code audited by a crowd of security-minded developers.
+让一群安全行业内的软件开发者来审计代码
+
+This is why security code is almost always open-sourced.
+这就是为什么安全型代码几乎都是开源的
+
+It’s often difficult for people who wrote the original code to find bugs,
+写原始代码的人通常很难找到错误
+
+but external developers, with fresh eyes and different expertise, can spot problems.
+但外部开发人员有新鲜的眼光 \N和不同领域的专业知识,可以发现问题.
+
+There are also conferences where like-minded hackers and security experts
+另外还有一些安全大会,安全专家可以相互认识,分享想法.
+
+can mingle and share ideas,
+另外还有一些安全大会,安全专家可以相互认识,分享想法.
+
+the biggest of which is DEF CON, held annually in Las Vegas.
+一年一次在拉斯维加斯举办的 DEF CON \N 是全球最大的安全大会
+
+Finally, even after reducing code and auditing it,
+最后,即便尽可能减少代码 并进行了安全审计
+
+clever attackers are bound to find tricks that let them in.
+聪明的攻击者还是会找到方法入侵
+
+With this in mind, good developers should take the approach that,
+因为如此,优秀的开发人员
+
+not if, but when their programs are compromised,
+应该计划当程序被攻破后,\N如何限制损害,控制损害的最大程度
+
+the damage should be limited and contained,
+应该计划当程序被攻破后,\N如何限制损害,控制损害的最大程度
+
+and not let it compromise other things running on the computer.
+并且不让它危害到计算机上其他东西
+
+This principle is called isolation.
+这叫"隔离"
+
+To achieve isolation, we can "sandbox" applications.
+要实现隔离,我们可以"沙盒"程序
+
+This is like placing an angry kid in a sandbox; when the kid goes ballistic,
+这好比把生气的小孩放在沙箱里,
+
+they only destroy the sandcastle in their own box,
+他们只能摧毁自己的沙堡,不会影响到其他孩子
+
+but other kids in the playground continue having fun.
+他们只能摧毁自己的沙堡,不会影响到其他孩子
+
+Operating Systems attempt to sandbox applications
+操作系统会把程序放到沙盒里
+
+by giving each their own block of memory that others programs can’t touch.
+方法是给每个程序独有的内存块,其他程序不能动
+
+It’s also possible for a single computer to run multiple Virtual Machines, essentially
+一台计算机可以运行多个虚拟机
+
+simulated computers, that each live in their own sandbox.
+虚拟机模拟计算机,每个虚拟机都在自己的沙箱里
+
+If a program goes awry, worst case is that it crashes or
+如果一个程序出错,最糟糕的情况是它自己崩溃
+
+compromises only the virtual machine on which it’s running.
+或者搞坏它处于的虚拟机
+
+All other Virtual Machines running on the computer are isolated and unaffected.
+计算机上其他虚拟机是隔离的,不受影响
+
+Ok, that’s a broad overview of some key computer security topics.
+好,一些重要安全概念的概览 \N 我们到此就介绍完了
+
+And I didn’t even get to network security, like firewalls.
+我都还没讲网络安全,比如防火墙
+
+Next episode, we’ll discuss some methods
+下集我们会讨论 黑客侵入系统的一些方法
+
+hackers use to get into computer systems.
+下集我们会讨论 黑客侵入系统的一些方法
+
+After that, we’ll touch on encryption.
+然后我们学加密
+
+Until then, make your passwords stronger, turn on 2-factor authentication,
+在此之前,别忘了加强你的密码,打开两步验证
+
+and NEVER click links in unsolicited emails!
+永远不要点可疑邮件
+
+I’ll see you next week.
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/32. 黑客&攻击-Hackers & Cyber Attacks.ass.txt b/(字幕)全40集中英字幕文本/32. 黑客&攻击-Hackers & Cyber Attacks.ass.txt
new file mode 100644
index 0000000..2843379
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/32. 黑客&攻击-Hackers & Cyber Attacks.ass.txt
@@ -0,0 +1,626 @@
+Hi, I’m Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode, we talked about the basics of computer security,
+上集我们讲了计算机安全的基础知识,
+
+principles and techniques used to keep computer systems safe and sound.
+包括各种原则和技术
+
+But, despite our best efforts, the news is full of stories of individuals, companies
+但尽管尽了最大努力,新闻上还是各种 \N 个人,公司,政府被黑客攻击的故事
+
+and governments getting cyberattacked by hackers, people who,
+但尽管尽了最大努力,新闻上还是各种 \N 个人,公司,政府被黑客攻击的故事
+
+with their technical knowledge, break into computer systems.
+那些黑客凭技术知识 闯入计算机系统
+
+Not all hackers are bad though.
+不是所有黑客都是坏人
+
+There are hackers who hunt for bugs and try to close security holes
+有些黑客会寻找并修复软件漏洞 \N 让系统更安全
+
+in software to make systems safer and more resilient.
+有些黑客会寻找并修复软件漏洞 \N 让系统更安全
+
+They’re often hired by companies and governments to perform security evaluations.
+他们经常被公司和政府雇来做安全评估
+
+These hackers are called White Hats, they’re the good guys.
+这些黑客叫"白帽子",他们是好人
+
+On the flip side, there are Black Hats, malicious hackers with
+另一方面,也有"黑帽"黑客,他们窃取,
+
+intentions to steal, exploit and sell computer vulnerabilities and data.
+利用和销售计算机漏洞和数据
+
+Hackers’ motivations also differ wildly.
+黑客的动机有很多种
+
+Some hack for amusement and curiosity,
+有些是好玩和好奇
+
+while cybercriminals hack most often for monetary gain.
+而网络罪犯一般是为了钱
+
+And then there are hacktivists, who use their skills to promote a social or political goal.
+还有的叫"黑客行动主义者",\N 通过黑客手段影响社会或达到政治目的
+
+And that’s just the tip of the iceberg.
+这只是冰山一角
+
+Basically, the stereotypical view of a hacker as some unpopular kid sitting in a dark room
+一般对黑客的刻板印象是 \N 某个不受欢迎的小孩在黑暗的房间里
+
+full of discarded pizza boxes probably better describes John Green in college than it does hackers.
+到处都是吃完的比萨盒,这个印象是错的,\N形容约翰·格林的宿舍还更贴切些
+
+Today, we’re not going to teach you how to be a hacker.
+今天,我们不会教你如何成为黑客
+
+Instead, we’ll discuss some classic examples of how hackers
+而是讨论一些入侵原理,给你一个大概概念
+
+break into computer systems to give you an idea of how it’s done.
+而是讨论一些入侵原理,给你一个大概概念
+
+The most common way hackers get into computer systems isn’t
+黑客入侵最常见的方式
+
+by hacking at all; it’s by tricking users into letting them in.
+不是通过技术,而是欺骗别人
+
+This is called social engineering, where a person is manipulated into divulging confidential
+这叫"社会工程学",欺骗别人让人泄密信息
+
+information, or configuring a computer system so that it permits entry by attackers.
+或让别人配置电脑系统,变得易于攻击
+
+The most common type of attack is phishing, which you most often encounter as an email
+最常见的攻击是网络钓鱼,你可能见过
+
+asking you to login to an account on a website, say your bank.
+银行发邮件叫你点邮件里的链接,登陆账号
+
+You’ll be asked to click a link in the email, which takes you to a site that looks legit
+然后你会进入一个像官网的网站
+
+to the casual observer, but is really an evil clone.
+但实际上是个假网站
+
+When you enter your username and password, that information goes straight to the hackers,
+当你输入用户名和密码时,信息会发给黑客,
+
+who then can login to the real website as you.
+然后黑客就可以假扮你登陆网站
+
+Bad news!
+坏消息!
+
+Even with a 1/10th of one percent success rate, a million phishing emails might yield
+即使成功率只有1/1000,发一百万封钓鱼邮件
+
+a thousand compromised accounts.
+也有一千个帐户中招
+
+Another social engineering attack is pretexting, where attackers call up, let's say a company,
+另一种方法叫 假托(Pretexting),\N 攻击者给某个公司打电话
+
+and then confidently pretend to be from their IT department.
+假装是IT部门的人
+
+Often attackers will call a first number, and then ask to be transferred to a second,
+攻击者的第一通电话一般会叫人转接
+
+so that the phone number appears to be internal to the company.
+这样另一个人接的时候,电话看起来像内部的
+
+Then, the attacker can instruct an unwitting user to configure their computer in a compromising
+然后让别人把电脑配置得容易入侵
+
+way, or get them to reveal confidential details, like passwords or network configurations.
+或让他们泄露机密信息,比如密码或网络配置
+
+Sorry, one sec…
+不好意思,等一下
+
+Oh. Hey, it's Susan from It.
+嘿,我是 IT 部门的苏珊
+
+We’re having some network issues down here, can you go ahead and check a setting for me?"
+我们遇到一些网络问题,你能帮我检查一个配置吗?
+
+... and it begins.
+然后就开始了
+
+Attackers can be very convincing, especially with a little bit
+只要预先做一点研究,攻击者可以装得很像真的
+
+of research beforehand to find things like key employees’ names.
+比如关键员工的名字
+
+It might take ten phone calls to find an victim, but you only need one to get in.
+也许要10通电话才能找到一个受害者,\N 但只要一个人上当就够了
+
+Emails are also a common delivery mechanism for trojan horses,
+邮件里带"木马"也是常见手段
+
+programs that masquerade as harmless attachments, like a photo or invoice,
+木马会伪装成无害的东西,比如照片或发票
+
+but actually contain malicious software, called malware.
+但实际上是恶意软件
+
+Malware can take many forms.
+恶意软件有很多种
+
+Some might steal your data, like your banking credentials.
+有的会偷数据,比如银行凭证
+
+Others might encrypt your files and demand a ransom, what's known as ransomware.
+有的会加密文件,交赎金才解密,也就是"勒索软件"
+
+If they can’t run malware or get a user to let them in,
+如果攻击者无法用木马或电话欺骗
+
+attackers have to force their way in through other means.
+攻击者只能被迫用其他手段
+
+One method, which we briefly discussed last episode, is to brute force a password
+方法之一是暴力尝试,我们上集讨论过
+
+try every combination of password until you gain entry.
+尝试所有可能的密码,直到进入系统
+
+Most modern systems defend against this type of attack by having you wait incrementally
+大多数现代系统会加长等待时间,来抵御这种攻击
+
+longer periods of time following each failed attempt,
+每次失败就加长等待时间
+
+or even lock you out entirely after a certain number of tries.
+甚至失败超过一定次数后,完全锁住
+
+One recent hack to get around this is called NAND Mirroring,
+最近出现一种攻破方法叫 "NAND镜像"
+
+where if you have physical access to the computer,
+如果能物理接触到电脑
+
+you can attach wires to the device's memory chip
+可以往内存上接几根线
+
+and make a perfect copy of its contents.
+复制整个内存
+
+With this setup, you can try a series of passwords, until the device starts making you wait.
+复制之后,暴力尝试密码,直到设备让你等待
+
+When this happens, you just reflash the memory with the original copy you made,
+这时只要把复制的内容覆盖掉内存
+
+essentially resetting it, allowing you to try more passwords immediately, with no waiting.
+本质上重置了内存,就不用等待,可以继续尝试密码了
+
+This technique was shown to be successful on an iPhone 5C,
+这项方法在 iPhone 5C 上管用
+
+but many newer devices include mechanisms to thwart this type of attack.
+更新的设备有机制阻止这种攻击
+
+If you don’t have physical access to a device,
+如果你无法物理接触到设备
+
+you have to find a way to hack it remotely, like over the internet.
+就必须远程攻击,比如通过互联网.
+
+In general, this requires an attacker to find and take advantage of a bug in a system, and
+远程攻击一般需要攻击者利用系统漏洞
+
+successfully utilizing a bug to gain capabilities or access is called an exploit.
+来获得某些能力或访问权限,这叫"漏洞利用"(Exploit)
+
+One common type of exploit is a buffer overflow.
+一种常见的漏洞利用叫"缓冲区溢出"
+
+Buffers are a general term for a block of memory reserved for storing data.
+"缓冲区"是一种概称,指预留的一块内存空间
+
+We talked about video buffers for storing pixel data in Episode 23.
+我们在第23集,讨论过存像素数据的视频缓冲区
+
+As a simple example, we can imagine an operating system’s login prompt,
+举个简单例子,假设我们在系统登陆界面
+
+which has fields for a username and password.
+要输入用户名和密码
+
+Behind the scenes, this operating system uses buffers for storing the text values that are entered.
+在幕后,系统用缓冲区存输入的值
+
+For illustration, let's say these buffers were specified to be of size ten.
+假设缓冲区大小是10
+
+In memory, the two text buffers would look something like this:
+两个文本缓冲区看起来会像这样:
+
+Of course, the operating system is keeping track of a lot more than just a username and
+当然,操作系统记录的远不止用户名和密码
+
+password, so there’s going to be data stored both before and after in memory.
+所以缓冲区前后 肯定有其他数据
+
+When a user enters a username and password, the values are copied into the buffers,
+当用户输入用户名和密码时,这些值会复制到缓冲区
+
+where they can be verified.
+然后验证是否正确
+
+A buffer overflow attack does exactly what the name suggests: overflows the buffer.
+"缓冲区溢出"正如名字所暗示的:它会溢出缓冲区
+
+In this case, any password longer than ten characters
+在这个例子中,超过十个字符的密码
+
+will overwrite adjacent data in memory.
+会覆盖掉相邻的数据
+
+Sometimes this will just cause a program or operating system to crash,
+有时只会让程序或系统崩溃,
+
+because important values are overwritten with gobbledygook.
+因为重要值被垃圾数据覆盖了
+
+Crashing a system is bad, and maybe that’s all that
+系统崩溃是坏事
+
+a mischievous hacker wants to do, be a nuisance.
+但也许恶作剧黑客就只是想系统崩溃,当个讨厌鬼
+
+But attackers can also exploit this bug more cleverly by injecting purposeful new values
+但攻击者可以更巧妙地利用这个漏洞(bug),\N 注入有意义的新值
+
+into a program’s memory, for example, setting an "is admin" variable to true.
+到程序的内存中,比如把"is_admin"的值改成true
+
+With the ability to arbitrarily manipulate a program’s memory,
+有了任意修改内存的能力,
+
+hackers can bypass things like login prompts,
+黑客可以绕过"登录"之类的东西,
+
+and sometimes even use that program to hijack the whole system.
+甚至使用那个程序劫持整个系统
+
+There are many methods to combat buffer overflow attacks.
+有很多方法阻止缓冲区溢出
+
+The easiest is to always test the length of input before copying it into a buffer,
+最简单的方法是,复制之前先检查长度,
+
+called bounds checking.
+这叫 "边界检查"
+
+Many modern programming languages implement bounds checking automatically.
+许多现代编程语言自带了边界检查
+
+Programs can also randomize the memory location of variables,
+程序也会随机存放变量在内存中的位置,
+
+like our hypothetical "is admin" flag,
+比如我们之前假设的"is_admin"
+
+so that hackers don’t know what memory location to overwrite,
+这样黑客就不知道应该覆盖内存的哪里
+
+and are more likely to crash the program than gain access.
+导致更容易让程序崩溃,而不是获得访问权限
+
+Programs can also leave unused space after buffers,
+程序也可以在缓冲区后,留一些不用的空间
+
+and keep an eye on those values to see if they change;
+然后跟踪里面的值,看是否发生变化
+
+if they do, they know an attacker is monkeying around with memory.
+如果发生了变化,说明有攻击者在乱来
+
+These regions are called canaries, named after the small birds miners
+这些不用的内存空间叫"金丝雀",因为以前矿工会带
+
+used to take underground to warn them of dangerous conditions.
+金丝雀下矿,金丝雀会警告危险
+
+Another classic hack is code injection.
+另一种经典手段叫"代码注入"
+
+It’s most commonly used to attack websites that use databases,
+最常用于攻击用数据库的网站,
+
+which pretty much all big websites do.
+几乎所有大网站都用数据库
+
+We won’t be covering databases in this series,
+我们这个系列中不会讲解数据库,
+
+so here’s a simple example to illustrate this type of attack.
+所以以下是个简单例子
+
+We’ll use Structured Query Language, S-Q-L, also called sequel, a popular database API.
+我们会用"结构化查询语言",也叫SQL,\N 一种流行的数据库API
+
+Let’s imagine our login prompt is now running on a webpage.
+假设网页上有登录提示
+
+When a user clicks "login", the text values are sent to a server, which executes code
+当用户点击"登录"时,值会发到服务器
+
+that checks if that username exists, and if it does, verifies the password matches.
+服务器会运行代码,检查用户名是否存在,\N 如果存在,看密码是否匹配
+
+To do this, the server will execute code, known as a SQL query,
+为了做检查,服务器会执行一段叫 "SQL查询" 的代码
+
+that looks something like this.
+看起来像这样
+
+First, it needs to specify what data we’re retrieving from the database.
+首先,语句要指定从数据库里查什么数据
+
+In this case, we want to fetch the password.
+在这个例子中,我们想查的是密码 (password) \N (SELECT password)
+
+The server also needs to specify from what place in the database
+还要指定从哪张表查数据 \N (FROM users)
+
+to retrieve the value from.
+还要指定从哪张表查数据 \N (FROM users)
+
+In this case, let’s imagine all the users’ data is stored
+在这个例子里,\N 我们假设所有用户数据都存在 "users" 表里
+
+in a data structure called a table labeled "users".
+在这个例子里,\N 我们假设所有用户数据都存在 "users" 表里
+
+Finally, the server doesn’t want to get back a giant list of passwords for every user
+最后,服务器不想每次取出一个巨大密码列表,\N 包含所有用户密码
+
+in the database, so it specifies that it only wants data for the account
+所以用 username = '用户名'\N 代表只要这个用户
+
+whose username equals a certain value.
+所以用 username = '用户名'\N 代表只要这个用户
+
+That value is copied into the SQL query by the server, based on what the user typed in,
+用户输的值会复制到"SQL查询"
+
+so the actual command that’s sent to the SQL database would look something like this,
+所以实际发到 SQL 数据库的命令,是这样的.
+
+where username='philbin'
+Where username='philbin'
+
+Note also that SQL commands end with a semicolon.
+还要注意,SQL命令以分号结尾
+
+So how does someone hack this?
+那怎么破解这个?
+
+By sending in a malicious username, with embedded SQL commands!
+做法是把"SQL命令"输入到用户名里!
+
+Like, we could send the server this funky username:
+比如我们可以发这个奇怪的用户名:
+
+When the server copies this text into the SQL Query, it ends up looking like this:
+当服务器把值复制到SQL查询中,会变成这样:
+
+As I mentioned before, semicolons are used to separate commands,
+正如之前提的,分号用于分隔命令,
+
+so the first command that gets executed is this:
+所以第一条被执行的命令是:
+
+If there is a user named ‘whatever’, the database will return the password.
+如果有个用户叫"whateer",数据库将返回密码
+
+Of course, we have no idea what ‘whatever’s’ password is,
+当然,我们不知道密码是什么
+
+so we’ll get it wrong and the server will reject us.
+所以会出错,服务器会拒绝我们
+
+If there’s no user named ‘whatever’, the database will return
+如果没有一个用户叫"whatever",数据库会返回 \N 空密码或直接错误,服务器也会拒绝我们
+
+no password or provide an error, and the server will again reject us.
+如果没有一个用户叫"whatever",数据库会返回 \N 空密码或直接错误,服务器也会拒绝我们
+
+Either way, we don’t care, because it’s the next SQL command we’re interested in:
+总之 我们不在乎,\N 我们感兴趣的是下一个SQL命令:
+
+"drop table users" – a command that we injected by manipulating the username field.
+"drop table users" - 我们注入的命令
+
+This command instructs the SQL database to delete the table containing all user data.
+这条命令的意思是 删掉 users 这张表
+
+Wiped clean!
+全删干净!
+
+Which would cause a lot of headaches at a place like a bank... or really anywhere.
+这会造成很多麻烦,不管是银行或什么其他地方
+
+And notice that we didn’t even break into the system –
+注意,我们甚至不需要侵入系统
+
+it’s not like we correctly guessed a username and password.
+我们没有猜到正确的用户名和密码
+
+Even with no formal access, we were able to create mayhem by exploiting a bug.
+即使没有正式访问权限,还是可以利用 bug 来制造混乱
+
+This is a very simple example of code injection,
+这是代码注入的一个简单例子,
+
+which almost all servers today have defenses against.
+如今几乎所有服务器都会防御这种手段
+
+With more sophisticated attacks, it’s possible to add records to the database
+如果指令更复杂一些,也许可以添加新记录到数据库
+
+– like a new administrator account –
+- 比如一个新管理员帐户 -
+
+or even get the database to reveal data, allowing hackers
+甚至可以让数据库泄露数据,使得黑客
+
+to steal things like credit card numbers, social security numbers
+窃取信用卡号码,社会安全号码
+
+and all sorts of nefarious goodies.
+以及各种其他信息
+
+But we’re not going to teach you how to do that.
+但我们不会教你具体怎么做
+
+As with buffer overflows, programmers should always assume input coming from the outside
+就像缓冲区溢出攻击一样,应该总是假设外部数据
+
+to be potentially dangerous, and examine it carefully.
+是危险的,应该好好检查
+
+Most username and password forms on the web don’t let you
+很多用户名和密码表单,不让你输入
+
+include special symbols like semicolons or quotes as a first level of defense.
+特殊字符,比如分号或者括号,作为第一道防御
+
+Good servers also sanitize input by removing or
+好的服务器也会清理输入
+
+modifying special characters before running database queries.
+比如修改或删除特殊字符,然后才放到数据库查询语句里
+
+Working exploits are often sold or shared online.
+管用的漏洞利用(Exploits)一般会在网上贩卖或分享
+
+The more prevalent the bug, or the more damaging the exploit,
+如果漏洞很流行,或造成的危害很大
+
+the higher the price or prestige it commands.
+价格会越高,或者名气越大
+
+Even governments sometimes buy exploits,
+有时甚至政府也会买漏洞利用
+
+which allow them to compromise computers for purposes like spying.
+让他们侵入系统做间谍工作
+
+When a new exploitable bug is discovered that the software creators weren’t aware of,
+当软件制造者不知道软件有新漏洞被发现了
+
+it’s called a zero day vulnerability.
+那么这个漏洞叫 "零日漏洞"
+
+Black Hat Hackers rush to use the exploit for maximum benefit
+黑帽黑客经常赶时间,抢在白帽程序员做出补丁之前
+
+before white hat programmers release a patch for the bug.
+尽可能利用漏洞
+
+This is why it’s so important to keep your computer’s software up to date;
+所以保持系统更新非常重要
+
+a lot of those downloads are security patches.
+很多更新都是安全性补丁
+
+If bugs are left open on enough systems, it allows hackers to
+如果有足够多的电脑有漏洞
+
+write a program that jump from computer to computer automatically
+让恶意程序可以在电脑间互相传播
+
+which are called worms.
+那么叫"蠕虫"
+
+If a hacker can take over a large number of computers, they can be used together,
+如果黑客拿下大量电脑,这些电脑可以组成
+
+to form what’s called a botnet.
+"僵尸网络"
+
+This can have many purposes, like sending huge volumes of spam,
+可以用于很多目的,比如发大量垃圾邮件,
+
+mining bitcoins using other people's computing power and electricity,
+用别人电脑的计算能力和电费挖 Bitcoin,
+
+and launching Distributed Denial of Service or DDoS attacks against servers.
+或发起"拒绝服务攻击"简称DDoS,攻击服务器
+
+DDoS is where all the computers in the botnet send a flood of dummy messages.
+DDoS 就是僵尸网络里的所有电脑发一大堆垃圾信息
+
+This can knock services offline, either to force owners
+堵塞服务器,要么迫使别人交钱消灾
+
+to pay a ransom or just to be evil.
+或纯粹为了作恶
+
+Despite all of the hard working white hats, exploits documented online,
+尽管白帽黑客非常努力工作,漏洞利用的文档都在网上,
+
+and software engineering best practices, cyberattacks happen on a daily basis.
+编写软件有很多"最佳实践",网络攻击每天都在发生
+
+They cost the global economy roughly half a trillion dollars annually,
+每年损害全球经济差不多5000亿
+
+and that figure will only increase as we become more reliant on computing systems.
+并且随着我们越来越依赖计算机系统,这个数字只会增加.
+
+This is especially worrying to governments, as infrastructure is increasingly computer-driven,
+这使得政府非常担心,因为基础设施越来越电脑化
+
+like powerplants, the electrical grid, traffic lights, water treatment plants, oil refineries,
+比如电力厂,电网,交通灯,水处理厂,炼油厂
+
+air traffic control, and lots of other key systems.
+空管,还有很多其他关键系统
+Many experts predict that the next major war will be fought in cyberspace,
+很多专家预测下一次大战会主要是网络战争
+
+where nations are brought to their knees not by physical attack,
+国家不是被物理攻击打败
+
+but rather crippled economically and infrastructurally through cyberwarfare.
+而是因为网络战争导致经济和基础设施崩溃
+
+There may not be any bullets fired, but the potential for lives lost is still very high...
+也许不会发射一颗子弹,但是人员伤亡的可能性依然很高
+
+maybe even higher than conventional warfare.
+甚至可能高于传统战争
+
+So, we should all adopt good cybersecurity practices.
+所以大家都应该知道一些方法保证网络安全
+
+And, as a community interconnected over the internet,
+全球社区因为互联网而互相连接,
+
+we should ensure our computers are secured against those
+我们应该确保自己的电脑安全
+
+who wish to use their great potential for harm.
+抵御其他想做坏事的人
+
+So maybe stop ignoring that update notification?
+也许不要再忽略更新提示?
+
+I’ll see you next week.
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/33. 加密-Cryptography.ass.txt b/(字幕)全40集中英字幕文本/33. 加密-Cryptography.ass.txt
new file mode 100644
index 0000000..9765102
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/33. 加密-Cryptography.ass.txt
@@ -0,0 +1,566 @@
+Hi, I'm Carrie Anne, and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Over the past two episodes, we’ve talked a lot about computer security.
+在过去两集,我们聊了很多计算机安全话题
+
+But the fact is, there’s no such thing as a perfectly, 100% secure, computer system.
+但事实是 世上不存在100%安全的系统
+
+There will always be bugs and security experts know that.
+总会有漏洞存在,而且安全专家知道这一点
+
+So system architects employ a strategy called defence in depth
+所以系统架构师会部署"多层防御"
+
+which uses many layers of varying security mechanisms to frustrate attackers.
+用多层不同的安全机制来阻碍攻击者
+
+It’s a bit like how castles are designed
+有点像城堡的设计一样
+
+first you’ve got to dodge the archers
+首先要避开弓箭手
+
+then cross the moat, scale the walls, avoid the hot oil, get over the ramparts, and defeat the guards
+穿过护城河,翻过城墙,避开热油,打败守卫
+
+before you get to the throne room
+才能达到王座
+
+but in this case we’re talking about one of the most common forms of computer security
+不过我们这里要说的是,计算机安全中最常见的防御形式
+
+Cryptography
+密码学
+
+The word cryptography comes from the roots ‘crypto’ and ‘graphy’, roughly translating to "secret writing".
+密码学(cryptography) 一词 \N 来自 crypto 和 graphy,大致翻译成"秘密写作"
+
+In order to make information secret, you use a cipher – an algorithm that converts plain text into ciphertext
+为了加密信息,要用加密算法(Cipher) 把明文转为密文
+
+which is gibberish unless you have a key that lets you undo the cipher.
+除非你知道如何解密,不然密文看起来只是一堆乱码
+
+The process of making text secret is called encryption
+把明文转成密文叫"加密"(encryption)
+
+and the reverse process is called decryption
+把密文恢复回明文叫"解密"(decryption)
+
+Ciphers have been used long before computers showed up.
+加密算法早在计算机出现前就有了
+
+Julius Caesar used what’s now called a Caesar cipher, to encrypt private correspondence.
+朱利叶斯·凯撒 用如今我们叫"凯撒加密"的方法 来加密私人信件
+
+He would shift the letters in a message forward by three places.
+他会把信件中的字母 向前移动三个位置
+
+So, A became D, and the word "brutus" became this: "euxwxv".
+所以A会变成D,brutus变成euxwxv
+
+To decipher the message, recipients had to know both the algorithm and the number to shift by, which acted as the key.
+为了解密,接收者要知道 \N 1. 用了什么算法 2. 要偏移的字母位数
+
+The Caesar cipher is one example of a larger class of techniques called substitution ciphers.
+有一大类算法叫"替换加密",凯撒密码是其中一种
+
+These replace every letter in a message with\Nsomething else according to a translation.
+算法把每个字母替换成其他字母
+
+A big drawback of basic substitution ciphers is that letter frequencies are preserved.
+但有个巨大的缺点是,字母的出现频率是一样的
+
+For example, E is the most common letter in English
+举个例子,E在英语中是最常见的字母
+
+so if your cipher translates E to an X
+如果把E加密成X
+
+then X will show up the most frequently in the ciphertext.
+那么密文中 X 的出现频率会很高
+
+A skilled cryptanalyst can work backwards from these kinds of statistics to figure out the message.
+熟练的密码破译师可以从统计数据中发现规律,进而破译密码
+
+Indeed, it was the breaking of a substitution cipher that led to the execution of Mary Queen of Scots,in 1587 for plotting to kill Queen Elizabeth.
+1587年,正因为一个"替换加密"的密文被破译,\n导致杀伊丽莎白女王的阴谋暴露,使得玛丽女王被处决
+
+Another fundamental class of techniques are permutation ciphers.
+另一类加密算法叫 "移位加密"
+
+Let’s look at a simple example, called a columnar transposition cipher.
+我们来看一个简单例子叫 "列移位加密"
+
+Here, we take a message, and fill the letters into a grid.
+我们把明文填入网格
+
+In this case, we’ve chosen 5 by 5
+网格大小我们这里选择 5x5
+
+To encrypt our message, we read out the characters in a different order
+为了加密信息,我们换个顺序来读
+
+let’s say from the bottom left, working upwards, one column at a time.
+比如从左边开始,从下往上,一次一列。
+
+The new letter ordering, what’s called a permutation, is the encrypted message.
+加密后字母的排列不同了
+
+The ordering direction, as well as the 5 by 5 grid size, serves as the key.
+解密的关键是,知道读取方向和网格大小是5x5
+
+Like before, if the cipher and key are known, a recipient can reverse the process to reveal the original message.
+就像之前,如果接收者知道密文和加密方法 \N 才能解密得到原始消息
+
+By the 1900s, cryptography was mechanized in the form of encryption machines.
+到了1900年代,人们用密码学做了加密机器
+
+The most famous was the German Enigma, used by the Nazis to encrypt their wartime communications.
+其中最有名的是德国的英格玛(Enigma)\N 纳粹在战时用英格玛加密通讯信息
+
+As we discussed back in Episode 15, the Enigma was a typewriter-like machine, with a keyboard and lampboard, both showing the full alphabet.
+正如第15集中说过,Enigma 是一台像打字机的机器,\N 有键盘和灯板,两者都有完整的字母表
+
+Above that, there was a series of configurable rotors that were the key to the Enigma’s encryption capability.
+而且它有一系列"转子"(rotros) ,是加密的关键
+
+First, let’s look at just one rotor.
+首先,我们只看一个转子
+
+One side had electrical contacts for all 26 letters.
+它一面有26个接触点,代表26个字母
+
+These connected to the other side of the rotor using cross-crossing wires that swapped one letter for another.
+然后线会连到另一面,替换字母
+
+If ‘H’ went in, ‘K’ might come out the other side.
+如果输入'H','K'会从另一边出来
+
+If "K’ went in, ‘F’ might come out, and so on.
+如果输入'K','F'会从另一边出来,以此类推
+
+This letter swapping behavior should sound familiar: it’s a substitution cipher!
+这个字母替换过程你应该听起来很熟悉:它是"替换加密"!
+
+But, the Enigma was more sophisticated becauseit used three or more rotors in a row, each feeding into the next.
+但英格玛(Enigma)更复杂一些,因为它有3个或更多转子,\N 一个转子的输出作为下一个转子的输入。
+
+Rotors could also be rotated to one of 26 possible starting positions
+转子还有26个起始位置
+
+and they could be inserted in different orders, providinga lot of different substitution mappings.
+还可以按不同顺序放入转子,提供更多字母替换映射
+
+Following the rotors was a special circuit called a reflector.
+转子之后是一个叫"反射器"的特殊电路
+
+Instead of passing the signal on to another rotor, it connected every pin to another,
+它每个引脚会连到另一个引脚
+
+and sent the electrical signal back through the rotors.
+并把信号发回给转子
+
+Finally, there was a plug board at the front of the machine
+最后,机器前方有一个插板
+
+that allowed letters coming from the keyboard to be optionally swapped,
+可以把输入键盘的字母预先进行替换
+
+adding another level of complexity.
+又加了一层复杂度
+
+With our simplified circuit, let’s encrypta letter on this example enigma configuration.
+让我们用这里的简化版电路,加密一些字母
+
+If we press the ‘H’ key, electricity flows through the plugboard, then the rotors
+如果我们按下"H"键,电流会先通过插板,然后通过转子
+
+hits the reflector, comes back through the rotorsand plugboard, and illuminates the letter ‘L’ on the lampboard.
+到达反射器,然后回来转子,回来插板,并照亮键盘灯板的字母"L"。
+
+So H is encrypted to L.
+H 就加密成了 L
+
+Note that the circuit can flow both ways –
+注意, 电路是双向的
+
+so if we typed the letter ‘L’, ‘H’ would light up.
+所以如果我们按下 L,H 会亮起来
+
+In other words, it’s the same process for encrypting and decrypting;
+换句话说,加密和解密的步骤是一样的
+
+you just have to make sure the sending and receiving machineshave the same initial configuration.
+你只需要确保 发送机和接收机的初始配置一样就行
+
+If you look carefully at this circuit, you’ll notice it’s impossible for a letter to be encrypted as itself
+如果你有仔细观察,会注意到字母加密后一定会变成另一个字母
+
+which turned out to be a fatal cryptographic weakness.
+之后这成为最大的弱点
+
+Finally, to prevent the Enigma from being a simple substitution cipher
+最后,为了让英格玛不只是简单的"替换加密"
+
+every single time a letter was entered, the rotors advanced by one spot, sort of like an odometer in a car.
+每输入一个字母,转子会转一格,有点像汽车里程表。
+
+So if you entered the text A-A-A, it might come out as B-D-K, where the substitution mapping changed with every key press.
+如果你输入A-A-A,可能会变成B-D-K,\n映射会随着每次按键而改变
+
+The Enigma was a tough cookie to crack, for sure.
+英格玛当然是一块难啃的骨头
+
+But as we discussed in Episode 15, Alan Turingand and his colleagues
+但正如我们第15集中说的,艾伦·图灵和同事
+
+at Bletchley Park were able to break Enigma codes and largely automate the process.
+破解了英格玛加密,并把大部分破解流程做成了自动化
+
+But with the advent of computers, cryptography moved from hardware into software.
+但随着计算机出现,加密从硬件转往软件
+
+One of the earliest software ciphers to become widespread
+早期加密算法中,应用最广泛的
+
+was the Data Encryption Standard developed by IBM and the NSA in 1977
+是 IBM 和 NSA 于1977年开发的"数据加密标准"
+
+DES, as it was known, originally used binary keys that were 56 bits long,
+DES最初用的是56 bit长度的二进制密钥,
+
+which means that there are 2 to the 56, or about 72 quadrillion different keys.
+意味着有2的56次方,或大约72千万亿个不同密钥
+
+Back in 1977, that meant that nobody – except perhaps the NSA –
+在1977年时,也许 NSA 有这能力,
+
+had enough computing power to brute-force all possible keys.
+但没有其他人有足够计算能力 来暴力破解所有可能密钥。
+
+But, by 1999, a quarter-million dollar computer could try every possible DES key in just two days, rendering the cipher insecure.
+但到1999年,一台25万美元的计算机能在两天内 \N 把 DES 的所有可能密钥都试一遍,让 DES 算法不再安全
+
+So, in 2001, the Advanced Encryption Standard(AES) was finalized and published.
+因此 2001 年出了:高级加密标准(AES)
+
+AES is designed to use much bigger keys – 128,192 or 256 bits in size – making brute force attacks much, much harder.
+AES 用更长的密钥 - 128位/192位/256位 - 让暴力破解更加困难
+
+For a 128-bit keys, you'd need trillions of years to try every combination, even if you used every single computer on the planet today.
+128位的密钥,哪怕用现在地球上的所有计算机\N 也要上万亿年才能试遍所有组合
+
+So you better get started!
+你最好赶紧开始!
+
+AES chops data up into 16-byte blocks, and then applies a series of substitutions and permutations,
+AES将数据切成一块一块,每块16个字节,\N 然后用密钥进行一系列替换加密和移位加密
+
+based on the key value plus some other operations to obscure the message,
+再加上一些其他操作,进一步加密信息
+
+and this process is repeated ten or more times for each block.
+每一块数据,会重复这个过程10次或以上
+
+You might be wondering: why only ten rounds?
+你可能想知道:为什么只重复10次?
+
+Or why only 128 bit keys, and not ten thousand bit keys?
+为什么用128位密钥,而不是10000位?
+
+Well, it’s a performance tradeoff.
+这其实是基于性能的权衡
+
+If it took hours to encrypt and send an email,or minutes to connect to a secure website, people wouldn't use it
+如果要花几小时加密和发邮件,或几分钟载入网站,没人愿意用
+
+AES balances performance and security to provide practical cryptography.
+AES 在性能和安全性间取得平衡
+
+Today, AES is used everywhere, from encrypting files on iPhones
+如今AES被广泛使用,比如iPhone上加密文件
+
+and transmitting data over WiFi with WPA2 to accessing websites using HTTPS.
+用 WPA2 协议在 WiFi 中访问 HTTPS 网站
+
+So far, the cryptographic techniques we’ve discussed rely on keys that are known by both sender and recipient.
+到目前为止 我们讨论过的加密技术\N 依赖于发送者和接收者都知道密钥
+
+The sender encrypts a message using a key, and the recipient decrypts it using the same key.
+发件人用密钥加密,收件人用相同的密钥解密
+
+In the old days, keys would be shared by voice, or physically;
+以前,密钥可以口头约定,或依靠物品
+
+for example, the Germans distributed codebooks with daily settings for their Enigma machines.
+比如德国人给英格玛配了密码本,上面有每天的配置
+
+But this strategy could never work in the internet era.
+但互联网时代没法这样做
+
+Imagine having to crack open a codebook to connect to youtube
+你能想象 要打开密码本才能访问 YouTube 吗?
+
+What’s needed is a way for a server to send a secret key over the public internet to a user wishing to connect securely.
+我们需要某种方法 在公开的互联网上传递密钥给对方
+
+It seems like that wouldn’t be secure, because if the key is sent in the open and intercepted by a hacker
+这看起来好像不安全,如果密钥被黑客拦截了
+
+couldn’t they use that to decrypt all communication between the two?
+黑客不就能解密通信了吗?
+
+The solution is key exchange!
+解决方案是 "密钥交换"!
+
+– An algorithm that lets two computers agreeon a key without ever sending one.
+密钥交换是一种不发送密钥,\N 但依然让两台计算机在密钥上达成共识的算法
+
+We can do this with one-way functions –
+我们可以用"单向函数"来做
+
+mathematical operations that are very easy to do in one direction, but hard to reverse.
+单项函数是一种数学操作,很容易算出结果,\N 但想从结果逆向推算出输入非常困难
+
+To show you how one-way functions work, let’ s use paint colors as an analogy.
+为了让你明白单项函数,我们拿颜色作比喻
+
+It’s easy to mix paint colors together, but it’s not so easy to figure
+将颜色混合在一起很容易,
+
+out the constituent colors that were used to make a mixed paint color.
+但想知道混了什么颜色很难
+
+You’d have to test a lot of possibilities to figure it out.
+要试很多种可能才知道
+
+In this metaphor, our secret key is a unique shade of paint.
+用这个比喻,那么我们的密钥是一种独特的颜色
+
+First, there’s a public paint color that everyone can see.
+首先,有一个公开的颜色,所有人都可以看到
+
+Then, John and I each pick a secret paint color.
+然后,约翰和我各自选一个秘密颜色,只有自己知道.
+
+To exchange keys, I mix my secret paint color with the public paint color.
+为了交换密钥,我把我的 秘密颜色 和 公开颜色 混在一起
+
+Then, I send that mixed color to John by anymeans – mail, carrier pigeon, whatever.
+然后发给约翰,可以写信发,用信鸽发,什么方式都行.
+
+John does the same – mixing his secret paint color with the public color, then sending that to me.
+约翰也这样做,把他的秘密颜色和公开颜色混在一起,然后发我
+
+When I receive John’s color, I simply add my private color to create a blend of all three paints.
+我收到约翰的颜色之后,把我的秘密颜色加进去,\N 现在3种颜色混合在一起
+
+John does the same with my mixed color.
+John 也一样做
+
+And Voila!
+瞧!
+
+We both end up with the same paint color!
+我们有了一样的颜色
+
+We can use this as a shared secret, even though we never sent each other our individual secret colors.
+我们可以把这个颜色当密钥,尽管我们从来没有给对方发过这颜色
+
+A snooping outside observer would know partial information, but they’d find it very difficult to figure out our shared secret color.
+外部窥探者可以知道部分信息,但无法知道最终颜色
+
+Of course, sending and mixing paint colors isn’t going to work well for transmitting computer data.
+当然,计算机要传输数据时,混合颜料和发颜料不太合适
+
+But luckily, mathematical one-way functions are perfect,
+但幸运的是,数学单向函数是完美的
+
+and this is what Diffie-Hellman Key Exchange uses.
+我们可以用 "迪菲-赫尔曼密钥交换"
+
+In Diffie-Hellman, the one-way function is modular exponentiation.
+在 Diffie-Hellman 中,单向函数是模幂运算
+
+This means taking one number, the base, to the power of another number,
+意思是先做幂运算,拿一个数字当底数,拿一个数字当指数,比如 A
+
+b
+
+the exponent, and taking the remainder when dividing by a third number, the modulus.
+然后除以第三个数字,最后拿到我们想要的余数
+
+So, for example, if we wanted to calculate 3 to the 5th power, modulo 31,
+举个例子,假设我们想算3的5次方,模31
+
+we would calculate 3 to the 5th, which is 243,
+我们先算3的5次方,得到243
+
+then take the remainder when divided by 31, which is 26.
+\N然后除31,取余数,得到26
+
+The hard part is figuring out the exponent given only the result and the base.
+重点是 如果只给余数和基数。很难得知指数是多少
+
+If I tell you I raised 3 to some secret number, modulo 31, and got 7 as the remainder
+如果我告诉你,3的某次方 模31,余数是7
+
+you'd have to test a lot of exponents to know which one I picked.
+你要试很多次,才能知道次方是多少
+
+If we make these numbers big, say hundreds of digits long,
+如果把数字变长一些,比如几百位长
+
+then finding the secret exponent is nearly impossible.
+想找到秘密指数是多少,几乎是不可能的。
+
+Now let’s talk about how Diffie-Hellman
+现在我们来讨论 Diffie-Hellman 是怎么
+
+uses modular exponentiation to calculate a shared key.
+用模幂运算 算出双方共享的密钥
+
+First, there's a set of public values – the base and the modulus,
+首先,我们有公开的值 - 基数和模数
+
+that, like our public paint color, everyone gets to know... even the bad guys!
+就像公开的油漆颜色,所有人都看的到,甚至坏人!
+
+To send a message securely to John, I would pick a secret exponent: X.
+为了安全向 John 发信息,我选一个秘密指数:X
+
+Then, I’d calculate B to the power of X, modulo M.
+然后算 B^X mod M 的结果
+
+I send this big number over to John.
+然后把这个大数字发给 John.
+
+John does the same, picking a secret exponent Y, and sending me B to the Y modulo M.
+John 也一样做,选一个秘密指数Y,然后把 B^Y mod M 的结果发我
+
+To create a shared secret key,
+为了算出 双方共用的密钥
+
+I take what John sent me, and take it to the power of X, my secret exponent.
+我把 John 给我的数,用我的秘密指数 X,进行模幂运算 (看上图)
+
+This is mathematically equivalent to B to the XY modulus M.
+数学上相等于 B的XY次方 模M
+
+John does the same, taking what I sent to him to the power of Y, and we both end up with the exact same number!
+John也一样做,拿我给他的数 进行模幂运算,最终得到一样的数
+
+It’s a secret shared key, even though we never sent each other our secret number.
+双方有一样的密钥,即使我们从来没给对方发过各自的秘密指数
+
+We can use this big number as a shared key for encrypted communication, using something like AES for encryption.
+我们可以用这个大数字当密钥,用 AES 之类的加密技术来加密通信
+
+Diffie-Hellman key exchange is one method for establishing a shared key.
+"Diffie-Hellman 密钥交换"是建立共享密钥的一种方法。
+
+These keys that can be used by both sender and receiver, to encrypt and decrypt messages
+双方用一样的密钥加密和解密消息,这叫"对称加密", 因为密钥一样
+
+are called symmetric keys because the key is the same on both sides.
+双方用一样的密钥加密和解密消息,这叫"对称加密", 因为密钥一样
+
+The Caesar Cipher, Enigma and AES are all symmetric encryption.
+凯撒加密,英格玛,AES 都是"对称加密"
+
+There’s also asymmetric encryption, where there are two different keys
+还有"非对称加密",有两个不同的密钥
+
+most often one that’s public and another that’s private.
+一个是公开的,另一个是私有的
+
+So, people can encrypt a message using a public key that
+人们用公钥加密消息 \N 只有有私钥的人能解密
+
+only the recipient, with their private key, can decrypt.
+人们用公钥加密消息 \N 只有有私钥的人能解密
+
+In other words, knowing the public key only lets you encrypt, but not decrypt – it’s asymmetric!
+换句话说,知道公钥只能加密但不能解密 \N - 它是"不对称"的!
+
+So, think about boxes with padlocks that you can open with a key.
+想象一个可以锁上的盒子
+
+To receive a secure message, I can give a sender a box and padlock.
+为了收到安全的信息,我们可以给别人箱子和锁
+
+They put their message in it and lock it shut.
+别人把信息放箱子,然后锁起来
+
+Now, they can send that box back to me and only I can open it, with my private key.
+把盒子寄回给我,只有我的钥匙能打开
+
+After locking the box, neither the sender,
+上锁后,如果发件人或其他人想打开盒子 \N 除了暴力尝试没有其他办法.
+
+nor anyone else who finds the box, can open it without brute force.
+上锁后,如果发件人或其他人想打开盒子 \N 除了暴力尝试没有其他办法.
+
+In the same way, a digital public key can encrypt something that can only be decrypted with a private key.
+和盒子例子一样,公钥加密后只能私钥来解密.
+
+The reverse is possible too: encrypting something with a
+反过来也是可以的:私钥加密后 用公钥解密
+
+private key that can be decrypted with a public key.
+反过来也是可以的:私钥加密后 用公钥解密
+
+This is used for signing, where a server encrypts data using their private key.
+这种做法用于签名,服务器可以用私钥加密,
+
+Anyone can decrypt it using the server's public key.
+任何人都可以用服务器的公钥解密
+
+This acts like an unforgeable signature,
+就像一个不可伪造的签名
+
+as only the owner, using their private key, can encrypt.
+因为只有私钥的持有人 能加密
+
+It proves that you're getting data from the right server or person, and not an imposter.
+这能证明数据来自正确的服务器或个人,而不是某个假冒者
+
+The most popular asymmetric encryption technique used today is RSA,
+目前最流行的"非对称加密"技术是 RSA
+
+named after its inventors: Rivest, Shamir and Adleman.
+名字来自发明者: Rivest, Shamir, Adleman.
+
+So, now you know all the "key" parts of modern cryptography:
+现在你学会了现代密码学的所有"关键"部分:
+
+symmetric encryption, key exchange and public-key cryptography.
+对称加密,密钥交换,公钥密码学
+
+When you connect to a secure website, like your bank,
+当你访问一个安全的网站,比如银行官网
+
+that little padlock icon means that your computer has used public key cryptography
+绿色锁图标代表 用了公钥密码学
+
+to verify the server key exchange to establish a secret temporary key,
+验证服务器的密钥,然后建立临时密钥
+
+and symmetric encryption to protect all the back-and-forth communication from prying eyes.
+然后用对称加密保证通信安全
+
+Whether you're buying something online, sending emails to BFFs,
+不管你是网上购物,发邮件给朋友,还是看猫咪视频
+
+or just browsing cat videos
+不管你是网上购物,发邮件给朋友,还是看猫咪视频
+
+cryptography keeps all that safe, private and secure.
+密码学都在保护你的隐私和安全
+
+Thanks cryptography!
+谢啦密码学!
+
diff --git a/(字幕)全40集中英字幕文本/34. 机器学习&人工智能-Machine Learning & Artificial Intelligence.ass.txt b/(字幕)全40集中英字幕文本/34. 机器学习&人工智能-Machine Learning & Artificial Intelligence.ass.txt
new file mode 100644
index 0000000..3458614
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/34. 机器学习&人工智能-Machine Learning & Artificial Intelligence.ass.txt
@@ -0,0 +1,714 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+As we've touched on many times in this series,
+我们之前说过 \N 计算机很擅长存放,整理,获取和处理大量数据
+
+computers are incredible at storing, organizing,
+我们之前说过 \N 计算机很擅长存放,整理,获取和处理大量数据
+
+fetching and processing huge volumes of data.
+我们之前说过 \N 计算机很擅长存放,整理,获取和处理大量数据
+
+That's perfect for things like e-commerce websites with millions of items for sale,
+很适合有上百万商品的电商网站
+
+and for storing billions of health records for quick access by doctors.
+或是存几十亿条健康记录,方便医生看.
+
+But what if we want to use computers not just to fetch and display data,
+但如果想根据数据做决定呢?
+
+but to actually make decisions about data?
+但如果想根据数据做决定呢?
+
+This is the essence of machine learning
+这是机器学习的本质
+
+algorithms that give computers the ability to learn from data,
+机器学习算法让计算机可以从数据中学习,\N 然后自行做出预测和决定
+
+and then make predictions and decisions.
+机器学习算法让计算机可以从数据中学习,\N 然后自行做出预测和决定
+
+Computer prosgrams with this ability
+能自我学习的程序很有用 \N 比如判断是不是垃圾邮件
+
+are extremely useful in answering questions like Is an email spam?
+能自我学习的程序很有用 \N 比如判断是不是垃圾邮件
+
+Does a person's heart have arrhythmia?
+这人有心律失常吗?
+
+or what video should youtube recommend after this one?
+YouTube 的下一个视频该推荐哪个?
+
+While useful, we probably wouldn't describe these programs as "intelligent"
+虽然有用,但我们不会说它有人类一般的智能
+
+in the same way we think of human intelligence.
+虽然有用,但我们不会说它有人类一般的智能
+
+So, even though the terms are often interchanged,
+虽然 AI 和 ML 这两词经常混着用
+
+most computer scientists would say that machine learning is a set of techniques
+大多数计算机科学家会说 \N机器学习是为了实现人工智能这个更宏大目标的技术之一
+
+that sits inside the even more ambitious goal of Artificial Intelligence,
+大多数计算机科学家会说 \N机器学习是为了实现人工智能这个更宏大目标的技术之一
+
+or AI for short.
+人工智能简称 AI
+
+Machine Learning and AI algorithms tend to be pretty sophisticated.
+机器学习和人工智能算法一般都很复杂
+
+So rather than wading into the mechanics of how they work,
+所以我们不讲具体细节 重点讲概念
+
+we're going to focus on what the algorithms do conceptually.
+所以我们不讲具体细节 重点讲概念
+
+Let's start with a simple example:
+我们从简单例子开始:
+
+deciding if a moth is a Luna Moth or an Emperor Moth.
+判断飞蛾是"月蛾"还是"帝蛾"
+
+This decision process is called classification,
+这叫"分类"
+
+and an algorithm that does it is called a classifier.
+做分类的算法叫 "分类器"
+
+Although there are techniques that can use raw data for training
+虽然我们可以用 照片和声音 来训练算法
+
+- like photos and sounds -
+虽然我们可以用 照片和声音 来训练算法
+
+many algorithms reduce the complexity of real world objects
+很多算法会减少复杂性
+
+and phenomena into what are called features.
+把数据简化成 "特征"
+
+Features are values that usefully characterize the things we wish to classify.
+"特征"是用来帮助"分类"的值
+
+For our moth example, we're going to use two features: "wingspan" and "mass".
+对于之前的飞蛾分类例子\N 我们用两个特征:"翼展"和"重量"
+
+In order to train our machine learning classifier to make good predictions,
+为了训练"分类器"做出好的预测,
+
+we're going to need training data.
+我们需要"训练数据"
+
+To get that,
+为了得到数据
+
+we'd send an entomologist out into a forest to collect data for both luna and emperor moths.
+我们派昆虫学家到森林里 收集"月蛾"和"帝蛾"的数据
+
+These experts can recognize different moths,
+专家可以认出不同飞蛾,
+
+so they not only record the feature values,
+所以专家不只记录特征值,还会把种类也写上
+
+but also label that data with the actual moth species.
+所以专家不只记录特征值,还会把种类也写上
+
+This is called labeled data.
+这叫 "标记数据"
+
+Because we only have two features,
+因为只有两个特征
+
+it's easy to visualize this data in a scatterplot.
+很容易用散点图把数据视觉化
+
+Here, I've plotted data for 100 Emperor Moths in red and 100 Luna Moths in blue.
+红色标了100个帝蛾\N 蓝色标了100个月蛾
+
+We can see that the species make two groupings, but.
+可以看到大致分成了两组
+
+there's some overlap in the middle
+但中间有一定重叠
+
+so it's not entirely obvious how to best separate the two.
+所以想完全区分两个组比较困难
+
+That's what machine learning algorithms do
+所以机器学习算法登场
+
+- find optimal separations!
+- 找出最佳区分
+
+I'm just going to eyeball it
+我用肉眼大致估算下
+
+and say anything less than 45 millimeters in wingspan is likely to be an Emperor Moth.
+然后判断 翼展小于45毫米的 很可能是帝蛾
+
+We can add another division that says additionally mass must be less than .75
+可以再加一个条件,重量必须小于.75
+
+in order for our guess to be Emperor Moth.
+才算是帝蛾。
+
+These lines that chop up the decision space are called decision boundaries.
+这些线叫 "决策边界"
+
+If we look closely at our data,
+如果仔细看数据
+
+we can see that 86 emperor moths would correctly end up inside the emperor decision region,
+86只帝蛾在正确的区域
+
+but 14 would end up incorrectly in luna moth territory.
+但剩下14只在错误的区域
+
+On the other hand, 82 luna moths would be correct,
+另一方面,82只月蛾在正确的区域
+
+with 18 falling onto the wrong side.
+18个在错误的区域
+
+A table, like this, showing where a classifier gets things right and wrong
+这里有个表 记录正确数和错误数
+
+is called a confusion matrix...
+这表叫"混淆矩阵"
+
+which probably should have also been the title of the last two movies in the Matrix Trilogy!
+"黑客帝国三部曲"的后两部也许该用这个标题
+
+Notice that there's no way for us to draw lines that give us 100% accuracy.
+注意我们没法画出 100% 正确分类的线
+
+If we lower our wingspan decision boundary,
+降低翼展的决策边界,会把更多"帝蛾"误分类成"月蛾"
+
+we misclassify more Emperor moths as Lunas.
+降低翼展的决策边界,会把更多"帝蛾"误分类成"月蛾"
+
+If we raise it, we misclassify more Luna moths.
+如果提高,会把更多月蛾分错类.
+
+The job of machine learning algorithms,
+机器学习算法的目的
+
+at a high level,
+机器学习算法的目的
+
+is to maximize correct classifications while minimizing errors
+是最大化正确分类 + 最小化错误分类
+
+On our training data, we get 168 moths correct, and 32 moths wrong,
+在训练数据中,有168个正确,32个错误
+
+for an average classification accuracy of 84%.
+平均准确率84%
+
+Now, using these decision boundaries,
+用这些决策边界
+
+if we go out into the forest and encounter an unknown moth,
+如果我们进入森林,碰到一只不认识的飞蛾,
+
+we can measure its features and plot it onto our decision space.
+我们可以测量它的特征, 并绘制到决策空间上
+
+This is unlabeled data.
+这叫 "未标签数据"
+
+Our decision boundaries offer a guess as to what species the moth is.
+决策边界可以猜测飞蛾种类
+
+In this case, we'd predict it's a Luna Moth.
+这里我们预测是"月蛾"
+
+This simple approach, of dividing the decision space up into boxes,
+这个把决策空间 切成几个盒子的简单方法
+
+can be represented by what's called a decision tree,
+可以用"决策树"来表示
+
+which would look like this pictorially or could be written in code using If-Statements, like this.
+画成图像,会像左侧 \N 用 if 语句写代码,会像右侧
+
+A machine learning algorithm that produces decision trees
+生成决策树的 机器学习算法
+
+needs to choose what features to divide on
+需要选择用什么特征来分类
+
+and then for each of those features, what values to use for the division.
+每个特征用什么值
+
+Decision Trees are just one basic example of a machine learning technique.
+"决策树"只是机器学习的一个简单例子
+
+There are hundreds of algorithms in computer science literature today.
+如今有数百种算法,而且新算法不断出现
+
+And more are being published all the time.
+如今有数百种算法,而且新算法不断出现
+
+A few algorithms even use many decision trees working together to make a prediction.
+一些算法甚至用多个"决策树"来预测
+
+Computer scientists smugly call those Forests
+计算机科学家叫这个"森林",因为有多颗树嘛
+
+because they contain lots of trees.
+计算机科学家叫这个"森林",因为有多颗树嘛
+
+There are also non-tree-based approaches,
+也有不用树的方法,比如"支持向量机"
+
+like Support Vector Machines,
+也有不用树的方法,比如"支持向量机"
+
+which essentially slice up the decision space using arbitrary lines.
+本质上是用任意线段来切分"决策空间"
+
+And these don't have to be straight lines;
+不一定是直线
+
+they can be polynomials or some other fancy mathematical function.
+可以是多项式或其他数学函数
+
+Like before, it's the machine learning algorithm's job
+就像之前,机器学习算法负责
+
+to figure out the best lines to provide the most accurate decision boundaries.
+找出最好的线,最准的决策边界
+
+So far, my examples have only had two features,
+之前的例子只有两个特征,人类也可以轻松做到
+
+which is easy enough for a human to figure out.
+之前的例子只有两个特征,人类也可以轻松做到
+
+If we add a third feature,
+如果加第3个特征,比如"触角长度"
+
+let's say, length of antennae,
+如果加第3个特征,比如"触角长度"
+
+then our 2D lines become 3D planes,
+那么2D线段,会变成3D平面
+
+creating decision boundaries in three dimensions.
+在三个维度上做决策边界
+
+These planes don't have to be straight either.
+这些平面不必是直的
+
+Plus, a truly useful classifier would contend with many different moth species.
+而且 真正有用的分类器 会有很多飞蛾种类
+
+Now I think you'd agree this is getting too complicated to figure out by hand
+你可能会同意 现在变得太复杂了
+
+But even this is a very basic example
+但这也只是个简单例子
+
+- just three features and five moth species.
+- 只有3个特征和5个品种
+
+We can still show it in this 3D scatter plot.
+我们依然可以用 3D散点图 画出来
+
+Unfortunately, there's no good way to visualize four features at once, or twenty features,
+不幸的是,一次性看4个或20个特征,没有好的方法
+
+let alone hundreds or even thousands of features.
+更别说成百上千的特征了
+
+But that's what many real-world machine learning problems face.
+但这正是机器学习要面临的问题
+
+Can YOU imagine trying to figure out the equation for a hyperplane
+你能想象靠手工 在一个上千维度的决策空间里
+
+rippling through a thousand-dimensional decision space?
+给超平面(Hyperplane)找出一个方程吗
+
+Probably not,
+大概不行
+
+but computers, with clever machine learning algorithms can
+但聪明的机器学习算法可以做到
+
+and they do, all day long, on computers at places like Google, Facebook, Microsoft and Amazon.
+Google,Facebook,微软和亚马逊的计算机里\N 整天都在跑这些算法
+
+Techniques like Decision Trees and Support Vector Machines are strongly rooted in the field of statistics,
+"决策树"和"支持向量机"这样的技术 \N 发源自统计学
+
+which has dealt with making confident decisions,
+统计学早在计算机出现前,就在用数据做决定
+
+using data, long before computers ever existed.
+统计学早在计算机出现前,就在用数据做决定
+
+There's a very large class of widely used statistical machine learning techniques,
+有一大类机器学习算法用了统计学
+
+but there are also some approaches with no origins in statistics.
+但也有不用统计学的算法
+
+Most notable are artificial neural networks,
+其中最值得注意的是 人工神经网络
+
+which were inspired by neurons in our brains!
+灵感来自大脑里的神经元
+
+For a primer of biological neurons,
+想学习神经元知识的人,可以看这3集
+
+check out our three-part overview here,
+想学习神经元知识的人,可以看这3集
+
+but basically neurons are cells
+神经元是细胞
+
+that process and transmit messages using electrical and chemical signals.
+用电信号和化学信号 来处理和传输消息
+
+They take one or more inputs from other cells,
+它从其他细胞 得到一个或多个输入
+
+process those signals,
+然后处理信号并发出信号
+
+and then emit their own signal.
+然后处理信号并发出信号
+
+These form into huge interconnected networks that are able to process complex information.
+形成巨大的互联网络,能处理复杂的信息
+
+Just like your brain watching this youtube video.
+就像你的大脑 在看这个视频
+
+Artificial Neurons are very similar.
+人造神经元很类似
+
+Each takes a series of inputs, combines them, and emits a signal.
+可以接收多个输入,然后整合并发出一个信号
+
+Rather than being electrical or chemical signals,
+它不用电信号或化学信号
+
+artificial neurons take numbers in, and spit numbers out.
+而是吃数字进去,吐数字出来
+
+They are organized into layers that are connected by links,
+它们被放成一层层
+
+forming a network of neurons, hence the name.
+形成神经元网络,因此得名神经网络
+
+Let's return to our moth example to see how neural nets can be used for classification.
+回到飞蛾例子,看如何用神经网络分类
+
+Our first layer - the input layer -
+我们的第一层 - 输入层 -
+
+provides data from a single moth needing classification.
+提供需要被分类的单个飞蛾数据
+
+Again, we'll use mass and wingspan.
+同样,这次也用重量和翼展
+
+At the other end, we have an output layer, with two neurons:
+另一边是输出层,有两个神经元:
+
+one for Emperor Moth and another for Luna Moth.
+一个是帝蛾,一个是月蛾
+
+The most excited neuron will be our classification decision.
+2个神经元里最兴奋的 就是分类结果
+
+In between, we have a hidden layer,
+中间有一个隐藏层
+
+that transforms our inputs into outputs, and does the hard work of classification.
+负责把输入变成输出,负责干分类这个重活
+
+To see how this is done,
+为了看看它是如何分类的
+
+let's zoom into one neuron in the hidden layer.
+我们放大"隐藏层"里的一个神经元
+
+The first thing a neuron does is multiply each of its inputs by a specific weight,
+神经元做的第一件事 \N 是把每个输入乘以一个权重
+
+let's say 2.8 for its first input, and .1 for it's second input.
+假设2.8是第一个输入,0.1是第二个输入。
+
+Then, it sums these weighted inputs together,
+然后它会相加输入
+
+which is in this case, is a grand total of 9.74.
+总共是9.74
+
+The neuron then applies a bias to this result
+然后对这个结果,用一个偏差值处理
+
+- in other words, it adds or subtracts a fixed value,
+意思是 加或减一个固定值
+
+for example, minus six, for a new value of 3.74.
+比如-6,得到3.74
+
+These bias and inputs weights are initially set to random values when a neural network is created.
+做神经网络时,这些偏差和权重,\N一开始会设置成随机值
+
+Then, an algorithm goes in, and starts tweaking all those values to train the neural network,
+然后算法会调整这些值 来训练神经网络
+
+using labeled data for training and testing.
+使用"标记数据"来训练和测试
+
+This happens over many interactions, gradually improving accuracy
+逐渐提高准确性
+
+- a process very much like human learning.
+- 很像人类学习的过程
+
+Finally, neurons have an activation function, also called a transfer function,
+最后,神经元有激活函数,它也叫传递函数,
+
+that gets applied to the output, performing a final mathematical modification to the result.
+会应用于输出,对结果执行最后一次数学修改
+
+For example, limiting the value to a range from negative one and positive one,
+例如,把值限制在-1和+1之间
+
+or setting any negative values to 0.
+或把负数改成0
+
+We'll use a linear transfer function that passes the value through unchanged,
+我们用线性传递函数,它不会改变值
+
+so 3.74 stays as 3.74.
+所以3.74还是3.74
+
+So for our example neuron,
+所以这里的例子
+
+given the inputs .55 and 82, the output would be 3.74.
+输入0.55和82,输出3.74
+
+This is just one neuron,
+这只是一个神经元,
+
+but this process of weighting, summing, biasing
+但加权,求和,偏置,激活函数
+
+and applying an activation function is computed for all neurons in a layer,
+会应用于一层里的每个神经元
+
+and the values propagate forward in the network, one layer at a time.
+并向前传播,一次一层
+
+In this example, the output neuron with the highest value is our decision:
+数字最高的就是结果:
+
+Luna Moth.
+月蛾
+
+Importantly, the hidden layer doesn't have to be just one layer
+重要的是,隐藏层不是只能有一层,可以有很多层
+
+it can be many layers deep.
+重要的是,隐藏层不是只能有一层,可以有很多层
+
+This is where the term deep learning comes from.
+"深度学习"因此得名
+
+Training these more complicated networks takes a lot more computation and data.
+训练更复杂的网络 需要更多的计算量和数据
+
+Despite the fact that neural networks were invented over fifty years ago,
+尽管神经网络50多年前就发明了
+
+deep neural nets have only been practical very recently,
+深层神经网络直到最近才成为可能
+
+thanks to powerful processors,
+感谢强大的处理器和超快的GPU
+
+but even more so, wicked fast GPUs.
+感谢强大的处理器和超快的GPU
+
+So, thank you gamers for being so demanding about silky smooth framerates!
+感谢游戏玩家对帧率的苛刻要求!
+
+A couple of years ago, Google and Facebook
+几年前,Google和Facebook
+
+demonstrated deep neural nets that could find faces in photos as well as humans
+展示了深度神经网络 \N 在照片中识别人脸的准确率,和人一样高
+
+- and humans are really good at this!
+- 人类可是很擅长这个的!
+
+It was a huge milestone.
+这是个巨大的里程碑
+
+Now deep neural nets are driving cars,
+现在有深层神经网络开车,翻译,诊断医疗状况等等
+
+translating human speech,
+现在有深层神经网络开车,翻译,诊断医疗状况等等
+
+diagnosing medical conditions and much more.
+现在有深层神经网络开车,翻译,诊断医疗状况等等
+
+These algorithms are very sophisticated,
+这些算法非常复杂,但还不够"聪明"
+
+but it's less clear if they should be described as "intelligent".
+这些算法非常复杂,但还不够"聪明"
+
+They can really only do one thing like classify moths, find faces, or translate languages.
+它们只能做一件事,分类飞蛾,找人脸,翻译
+
+This type of AI is called Weak AI or Narrow AI.
+这种AI叫"弱AI"或"窄AI",只能做特定任务
+
+It's only intelligent at specific tasks.
+这种AI叫"弱AI"或"窄AI",只能做特定任务
+
+But that doesn't mean it's not useful;
+但这不意味着它没用
+
+I mean medical devices that can make diagnoses,
+能自动做出诊断的医疗设备,
+
+and cars that can drive themselves are amazing!
+和自动驾驶的汽车真是太棒了!
+
+But do we need those computers to compose music
+但我们是否需要这些计算机来创作音乐
+
+and look up delicious recipes in their free time?
+在空闲时间找美味食谱呢?
+
+Probably not.
+也许不要
+
+Although that would be kinda cool.
+如果有的话 还挺酷的
+
+Truly general-purpose AI, one as smart and well-rounded as a human,
+真正通用的,像人一样聪明的AI,叫 "强AI"
+
+is called Strong AI.
+真正通用的,像人一样聪明的AI,叫 "强AI"
+
+No one has demonstrated anything close to human-level artificial intelligence yet.
+目前没人能做出来 接近人类智能的 AI
+
+Some argue it's impossible,
+有人认为不可能做出来
+
+but many people point to the explosion of digitized knowledge
+但许多人说 数字化知识的爆炸性增长
+
+- like Wikipedia articles, web pages, and Youtube videos -
+- 比如维基百科,网页和Youtube视频 -
+
+as the perfect kindling for Strong AI.
+是"强 AI"的完美引燃物
+
+Although you can only watch a maximum of 24 hours of youtube a day,
+你一天最多只能看24小时的 YouTube \N 计算机可以看上百万小时
+
+a computer can watch millions of hours.
+你一天最多只能看24小时的 YouTube \N 计算机可以看上百万小时
+
+For example, IBM's Watson consults and synthesizes information from 200 million pages of content,
+比如,IBM 的沃森吸收了 2 亿个网页的内容
+
+including the full text of Wikipedia.
+包括维基百科的全文
+
+While not a Strong AI, Watson is pretty smart,
+虽然不是"强AI" 但沃森也很聪明 \N 在2011年的知识竞答中碾压了人类
+
+and it crushed its human competition in Jeopardy way back in 2011.
+虽然不是"强AI" 但沃森也很聪明 \N 在2011年的知识竞答中碾压了人类
+
+Not only can AIs gobble up huge volumes of information,
+AI不仅可以吸收大量信息 \N 也可以不断学习进步,而且一般比人类快得多
+
+but they can also learn over time, often much faster than humans.
+AI不仅可以吸收大量信息 \N 也可以不断学习进步,而且一般比人类快得多
+
+In 2016, Google debuted AlphaGo,
+2016 年 Google 推出 AlphaGo
+
+a Narrow AI that plays the fiendishly complicated board game Go.
+一个会玩围棋的窄AI
+
+One of the ways it got so good and able to beat the very best human players,
+它和自己的克隆版下无数次围棋 \N 从而打败最好的人类围棋选手
+
+was by playing clones of itself millions and millions of times.
+它和自己的克隆版下无数次围棋 \N 从而打败最好的人类围棋选手
+
+It learned what worked and what didn't,
+学习什么管用,什么不管用 \N 自己发现成功的策略
+
+and along the way, discovered successful strategies all by itself.
+学习什么管用,什么不管用 \N 自己发现成功的策略
+
+This is called Reinforcement Learning,
+这叫 "强化学习" 是一种很强大的方法
+
+and it's a super powerful approach.
+这叫 "强化学习" 是一种很强大的方法
+
+In fact, it's very similar to how humans learn.
+和人类的学习方式非常类似
+
+People don't just magically acquire the ability to walk...
+人类不是天生就会走路,是上千小时的试错学会的
+
+it takes thousands of hours of trial and error to figure it out.
+人类不是天生就会走路,是上千小时的试错学会的
+
+Computers are now on the cusp of learning by trial and error,
+计算机现在才刚学会反复试错来学习
+
+and for many narrow problems,
+对于很多狭窄的问题,强化学习已被广泛使用
+
+reinforcement learning is already widely used.
+对于很多狭窄的问题,强化学习已被广泛使用
+
+What will be interesting to see, is if these types of learning techniques can be applied more broadly,
+有趣的是,如果这类技术可以更广泛地应用
+
+to create human-like, Strong AIs that learn much like how kids learn, but at super accelerated rates.
+创造出类似人类的"强AI" \N 能像人类小孩一样学习,但学习速度超快
+
+If that happens, there are some pretty big changes in store for humanity
+如果这发生了,对人类可能有相当大的影响
+
+- a topic we'll revisit later.
+- 我们以后会讨论
+
+Thanks for watching. See you next week.
+感谢收看. 我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/35. 计算机视觉-Computer Vision.ass.txt b/(字幕)全40集中英字幕文本/35. 计算机视觉-Computer Vision.ass.txt
new file mode 100644
index 0000000..fc33598
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/35. 计算机视觉-Computer Vision.ass.txt
@@ -0,0 +1,633 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨 我是Carrie Anne,欢迎收看计算机科学速成课
+
+Today, let's start by thinking about how important vision can be.
+今天 我们来思考视觉的重要性
+
+Most people rely on it to prepare food,
+大部分人靠视觉来做饭
+
+walk around obstacles,
+越过障碍
+
+read street signs,
+读路牌
+
+watch videos like this,
+看视频
+
+and do hundreds of other tasks.
+以及无数其它任务
+
+Vision is the highest bandwidth sense,
+视觉是信息最多的感官 \N 比如周围的世界是怎样的,如何和世界交互
+
+and it provides a firehose of information about the state of the world and how to act on it.
+视觉是信息最多的感官 \N 比如周围的世界是怎样的,如何和世界交互
+
+For this reason, computer scientists have been trying to give computers vision for half a century,
+因此半个世纪来\N 计算机科学家一直在想办法让计算机有视觉
+
+birthing the sub-field of computer vision.
+因此诞生了"计算机视觉"这个领域
+
+Its goal is to give computers the ability
+目标是让计算机理解图像和视频
+
+to extract high-level understanding from digital images and videos.
+目标是让计算机理解图像和视频
+
+As everyone with a digital camera or smartphone knows,
+用过相机或手机的都知道 \N 可以拍出有惊人保真度和细节的照片
+
+computers are already really good at capturing photos with incredible fidelity and detail
+用过相机或手机的都知道 \N 可以拍出有惊人保真度和细节的照片
+
+- much better than humans in fact.
+- 比人类强得多
+
+But as computer vision professor Fei-Fei Li recently said,
+但正如计算机视觉教授 李飞飞 最近说的
+
+"Just like to hear is the not the same as to listen.
+"听到"不等于"听懂"
+
+To take pictures is not the same as to see."
+"看到"不等于"看懂"
+
+As a refresher, images on computers are most often stored as big grids of pixels.
+复习一下,图像是像素网格
+
+Each pixel is defined by a color, stored as a combination of three additive primary colors:
+每个像素的颜色 通过三种基色定义:红,绿,蓝
+
+red, green and blue.
+每个像素的颜色 通过三种基色定义:红,绿,蓝
+
+By combining different intensities of these three colors,
+通过组合三种颜色的强度 \N 可以得到任何颜色, 也叫 RGB 值
+
+we can represent any color. what's called a RGB value,
+通过组合三种颜色的强度 \N 可以得到任何颜色, 也叫 RGB 值
+
+Perhaps the simplest computer vision algorithm
+最简单的计算机视觉算法
+
+- and a good place to start -
+最合适拿来入门的
+
+is to track a colored object, like a bright pink ball.
+是跟踪一个颜色物体,比如一个粉色的球
+
+The first thing we need to do is record the ball's color.
+首先,我们记下球的颜色,保存最中心像素的 RGB 值
+
+For that, we'll take the RGB value of the centermost pixel.
+首先,我们记下球的颜色,保存最中心像素的 RGB 值
+
+With that value saved, we can give a computer program an image,
+然后给程序喂入图像,让它找最接近这个颜色的像素
+
+and ask it to find the pixel with the closest color match.
+然后给程序喂入图像,让它找最接近这个颜色的像素
+
+An algorithm like this might start in the upper right corner,
+算法可以从左上角开始,逐个检查像素
+
+and check each pixel, one at time,
+算法可以从左上角开始,逐个检查像素
+
+calculating the difference from our target color.
+计算和目标颜色的差异
+
+Now, having looked at every pixel,
+检查了每个像素后,最贴近的像素,很可能就是球
+
+the best match is very likely a pixel from our ball.
+检查了每个像素后,最贴近的像素,很可能就是球
+
+We're not limited to running this algorithm on a single photo;
+不只是这张图片 \N 我们可以在视频的每一帧图片跑这个算法
+
+we can do it for every frame in a video,
+不只是这张图片 \N 我们可以在视频的每一帧图片跑这个算法
+
+allowing us to track the ball over time.
+跟踪球的位置
+
+Of course, due to variations in lighting, shadows, and other effects,
+当然,因为光线,阴影和其它影响
+
+the ball on the field is almost certainly not going to be the exact same RGB value as our target color,
+球的颜色会有变化,不会和存的 RGB 值完全一样
+
+but merely the closest match.
+但会很接近
+
+In more extreme cases, like at a game at night,
+如果情况更极端一些 \N 比如比赛是在晚上,追踪效果可能会很差
+
+the tracking might be poor.
+如果情况更极端一些 \N 比如比赛是在晚上,追踪效果可能会很差
+
+And if one of the team's jerseys used the same color as the ball,
+如果球衣的颜色和球一样,算法就完全晕了
+
+our algorithm would get totally confused.
+如果球衣的颜色和球一样,算法就完全晕了
+
+For these reasons, color marker tracking and similar algorithms are rarely used,
+因此很少用这类颜色跟踪算法
+
+unless the environment can be tightly controlled.
+除非环境可以严格控制
+
+This color tracking example was able to search pixel-by-pixel,
+颜色跟踪算法是一个个像素搜索 \N 因为颜色是在一个像素里
+
+because colors are stored inside of single pixels.
+颜色跟踪算法是一个个像素搜索 \N 因为颜色是在一个像素里
+
+But this approach doesn't work for features larger than a single pixel,
+但这种方法 不适合占多个像素的特征
+
+like edges of objects, which are inherently made up of many pixels.
+比如物体的边缘,是多个像素组成的.
+
+To identify these types of features in images,
+为了识别这些特征,算法要一块块像素来处理
+
+computer vision algorithms have to consider small regions of pixels,
+为了识别这些特征,算法要一块块像素来处理
+
+called patches.
+每一块都叫"块"
+
+As an example, let's talk about an algorithm that finds vertical edges in a scene,
+举个例子,找垂直边缘的算法
+
+let's say to help a drone navigate safely through a field of obstacles.
+假设用来帮无人机躲避障碍
+
+To keep things simple, we're going to convert our image into grayscale,
+为了简单,我们把图片转成灰度 \N 不过大部分算法可以处理颜色
+
+although most algorithms can handle color.
+为了简单,我们把图片转成灰度 \N 不过大部分算法可以处理颜色
+
+Now let's zoom into one of these poles to see what an edge looks like up close.
+放大其中一个杆子,看看边缘是怎样的
+
+We can easily see where the left edge of the pole starts,
+可以很容易地看到 杆子的左边缘从哪里开始
+
+because there's a change in color that persists across many pixels vertically.
+因为有垂直的颜色变化
+
+We can define this behavior more formally by creating a rule
+我们可以弄个规则说
+
+that says the likelihood of a pixel being a vertical edge
+某像素是垂直边缘的可能性 \N 取决于左右两边像素的颜色差异程度
+
+is the magnitude of the difference in color
+某像素是垂直边缘的可能性 \N 取决于左右两边像素的颜色差异程度
+
+between some pixels to its left and some pixels to its right.
+某像素是垂直边缘的可能性 \N 取决于左右两边像素的颜色差异程度
+
+The bigger the color difference between these two sets of pixels,
+左右像素的区别越大,这个像素越可能是边缘
+
+the more likely the pixel is on an edge.
+左右像素的区别越大,这个像素越可能是边缘
+
+If the color difference is small, it's probably not an edge at all.
+如果色差很小,就不是边缘
+
+The mathematical notation for this operation looks like this
+这个操作的数学符号 看起来像这样
+
+it's called a kernel or filter.
+这叫"核"或"过滤器"
+
+It contains the values for a pixel-wise multiplication,
+里面的数字用来做像素乘法
+
+the sum of which is saved into the center pixel.
+总和 存到中心像素里
+
+Let's see how this works for our example pixel.
+我们来看个实际例子
+
+I've gone ahead and labeled all of the pixels with their grayscale values.
+我已经把所有像素转成了灰度值
+
+Now, we take our kernel, and center it over our pixel of interest.
+现在把"核"的中心,对准感兴趣的像素
+
+This specifies what each pixel value underneath should be multiplied by.
+这指定了每个像素要乘的值
+
+Then, we just add up all those numbers.
+然后把所有数字加起来
+
+In this example, that gives us 147.
+在这里,最后结果是 147
+
+That becomes our new pixel value.
+成为新像素值
+
+This operation, of applying a kernel to a patch of pixels,
+把 核 应用于像素块,这种操作叫"卷积"
+
+is call a convolution.
+把 核 应用于像素块,这种操作叫"卷积"
+
+Now let's apply our kernel to another pixel.
+现在我们把"核"应用到另一个像素
+
+In this case, the result is 1. Just 1.
+结果是 1
+
+In other words, it's a very small color difference, and not an edge.
+色差很小,不是边缘
+
+If we apply our kernel to every pixel in the photo,
+如果把"核"用于照片中每个像素
+
+the result looks like this,
+结果会像这样
+
+where the highest pixel values are where there are strong vertical edges.
+垂直边缘的像素值很高
+
+Note that horizontal edges, like those platforms in the background,
+注意,水平边缘(比如背景里的平台)
+
+are almost invisible.
+几乎看不见
+
+If we wanted to highlight those features,
+如果要突出那些特征
+
+we'd have to use a different kernel
+要用不同的"核"
+
+- one that's sensitive to horizontal edges.
+用对水平边缘敏感的"核"
+
+Both of these edge enhancing kernels are called Prewitt Operators,
+这两个边缘增强的核叫"Prewitt 算子"
+
+named after their inventor.
+以发明者命名
+
+These are just two examples of a huge variety of kernels,
+这只是众多"核"的两个例子
+
+able to perform many different image transformations.
+"核"能做很多种图像转换
+
+For example, here's a kernel that sharpens images.
+比如这个"核"能锐化图像
+
+And here's a kernel that blurs them.
+这个"核"能模糊图像
+
+Kernels can also be used like little image cookie cutters that match only certain shapes.
+"核"也可以像饼干模具一样,匹配特定形状
+
+So, our edge kernels looked for image patches
+之前做边缘检测的"核"
+
+with strong differences from right to left or up and down.
+会检查左右或上下的差异
+
+But we could also make kernels that are good at finding lines, with edges on both sides.
+但我们也可以做出 擅长找线段的"核"
+
+And even islands of pixels surrounded by contrasting colors.
+或者包了一圈对比色的区域
+
+These types of kernels can begin to characterize simple shapes.
+这类"核"可以描述简单的形状
+
+For example, on faces, the bridge of the nose tends to be brighter than the sides of the nose,
+比如鼻梁往往比鼻子两侧更亮
+
+resulting in higher values for line-sensitive kernels.
+所以线段敏感的"核"对这里的值更高
+
+Eyes are also distinctive
+眼睛也很独特
+
+- a dark circle sounded by lighter pixels -
+- 一个黑色圆圈被外层更亮的一层像素包着
+
+a pattern other kernels are sensitive to.
+有其它"核"对这种模式敏感
+
+When a computer scans through an image,
+当计算机扫描图像时,最常见的是用一个窗口来扫
+
+most often by sliding around a search window,
+当计算机扫描图像时,最常见的是用一个窗口来扫
+
+it can look for combinations of features indicative of a human face.
+可以找出人脸的特征组合
+
+Although each kernel is a weak face detector by itself,
+虽然每个"核"单独找出脸的能力很弱 \N 但组合在一起会相当准确
+
+combined, they can be quite accurate.
+虽然每个"核"单独找出脸的能力很弱 \N 但组合在一起会相当准确
+
+It's unlikely that a bunch of face-like features will cluster together if they're not a face.
+不是脸但又有一堆脸的特征在正确的位置,\N 这种情况不太可能
+
+This was the basis of an early and influential algorithm
+这是一个早期很有影响力的算法的基础
+
+called Viola-Jones Face Detection.
+叫 维奥拉·琼斯 人脸检测算法
+
+Today, the hot new algorithms on the block are Convolutional Neural Networks.
+如今的热门算法是 "卷积神经网络"
+
+We talked about neural nets last episode, if you need a primer.
+我们上集谈了神经网络,如果需要可以去看看
+
+In short, an artificial neuron
+总之,神经网络的最基本单位,是神经元
+
+- which is the building block of a neural network -
+总之,神经网络的最基本单位,是神经元
+
+takes a series of inputs, and multiplies each by a specified weight,
+它有多个输入,然后会把每个输入 乘一个权重值
+
+and then sums those values all together.
+然后求总和
+
+This should sound vaguely familiar, because it's a lot like a convolution.
+听起来好像挺耳熟,因为它很像"卷积"
+
+In fact, if we pass a neuron 2D pixel data, rather than a one-dimensional list of inputs,
+实际上,如果我们给神经元输入二维像素
+
+it's exactly like a convolution.
+完全就像"卷积"
+
+The input weights are equivalent to kernel values,
+输入权重等于"核"的值
+
+but unlike a predefined kernel,
+但和预定义"核"不同
+
+neural networks can learn their own useful kernels
+神经网络可以学习对自己有用的"核"
+
+that are able to recognize interesting features in images.
+来识别图像中的特征
+
+Convolutional Neural Networks use banks of these neurons to process image data,
+"卷积神经网络"用一堆神经元处理图像数据
+
+each outputting a new image, essentially digested by different learned kernels.
+每个都会输出一个新图像,\N 本质上是被不同的"核"处理了
+
+These outputs are then processed by subsequent layers of neurons,
+输出会被后面一层神经元处理
+
+allowing for convolutions on convolutions on convolutions.
+卷积卷积再卷积
+
+The very first convolutional layer might find things like edges,
+第一层可能会发现"边缘"这样的特征
+
+as that's what a single convolution can recognize, as we've already discussed.
+单次卷积可以识别出这样的东西,之前说过
+
+The next layer might have neurons that convolve on those edge features
+下一层可以在这些基础上识别
+
+to recognize simple shapes, comprised of edges, like corners.
+比如由"边缘"组成的角落
+
+A layer beyond that might convolve on those corner features,
+然后下一层可以在"角落"上继续卷积
+
+and contain neurons that can recognize simple objects,
+下一些可能有识别简单物体的神经元
+
+like mouths and eyebrows.
+比如嘴和眉毛
+
+And this keeps going, building up in complexity,
+然后不断重复,逐渐增加复杂度
+
+until there's a layer that does a convolution that puts it together:
+直到某一层把所有特征放到一起:
+
+eyes, ears, mouth, nose, the whole nine yards,
+眼睛,耳朵,嘴巴,鼻子
+
+and says "ah ha, it's a face!"
+然后说:"啊哈,这是脸!"
+
+Convolutional neural networks aren't required to be many layers deep,
+"卷积神经网络"不是非要很多很多层
+
+but they usually are, in order to recognize complex objects and scenes.
+但一般会有很多层,来识别复杂物体和场景
+
+That's why the technique is considered deep learning.
+所以算是"深度学习"
+
+Both Viola-Jones and Convolutional Neural Networks can be applied to many image recognition problems,
+"维奥拉·琼斯"和"卷积神经网络"\N 不只是认人脸,还可以识别手写文字
+
+beyond faces, like recognizing handwritten text,
+"维奥拉·琼斯"和"卷积神经网络"\N 不只是认人脸,还可以识别手写文字
+
+spotting tumors in CT scans and monitoring traffic flow on roads.
+在 CT 扫描中发现肿瘤,监测马路是否拥堵
+
+But we're going to stick with faces.
+但我们这里接着用人脸举例
+
+Regardless of what algorithm was used, once we've isolated a face in a photo,
+不管用什么算法,识别出脸之后
+
+we can apply more specialized computer vision algorithms to pinpoint facial landmarks,
+可以用更专用的计算机视觉算法 \N 来定位面部标志
+
+like the tip of the nose and corners of the mouth.
+比如鼻尖和嘴角
+
+This data can be used for determining things like if the eyes are open,
+有了标志点,判断眼睛有没有张开就很容易了
+
+which is pretty easy once you have the landmarks
+有了标志点,判断眼睛有没有张开就很容易了
+
+it's just the distance between points.
+只是点之间的距离罢了
+
+We can also track the position of the eyebrows;
+也可以跟踪眉毛的位置
+
+their relative position to the eyes can be an indicator of surprise, or delight.
+眉毛相对眼睛的位置 可以代表惊喜或喜悦
+
+Smiles are also pretty straightforward to detect based on the shape of mouth landmarks.
+根据嘴巴的标志点,检测出微笑也很简单
+
+All of this information can be interpreted by emotion recognition algorithms,
+这些信息可以用"情感识别算法"来识别
+
+giving computers the ability to infer when you're happy, sad, frustrated, confused and so on.
+让电脑知道你是开心,忧伤,沮丧,困惑等等
+
+In turn, that could allow computers to intelligently adapt their behavior...
+然后计算机可以做出合适的行为.
+
+maybe offer tips when you're confused,
+比如当你不明白时 给你提示
+
+and not ask to install updates when you're frustrated.
+你心情不好时,就不弹更新提示了
+
+This is just one example of how vision can give computers the ability to be context sensitive,
+这只是计算机通过视觉感知周围的一个例子
+
+that is, aware of their surroundings.
+这只是计算机通过视觉感知周围的一个例子
+
+And not just the physical surroundings
+不只是物理环境 - 比如是不是在上班,或是在火车上
+
+- like if you're at work or on a train -
+不只是物理环境 - 比如是不是在上班,或是在火车上
+
+but also your social surroundings
+还有社交环境 - 比如是朋友的生日派对,还是正式商务会议
+
+- like if you're in a formal business meeting versus a friend's birthday party.
+还有社交环境 - 比如是朋友的生日派对,还是正式商务会议
+
+You behave differently in those surroundings, and so should computing devices,
+你在不同环境会有不同行为,计算机也应如此
+
+if they're smart.
+如果它们够聪明的话...
+
+Facial landmarks also capture the geometry of your face,
+面部标记点 也可以捕捉脸的形状
+
+like the distance between your eyes and the height of your forehead.
+比如两只眼睛之间的距离,以及前额有多高
+
+This is one form of biometric data,
+做生物识别
+
+and it allows computers with cameras to recognize you.
+让有摄像头的计算机能认出你
+
+Whether it's your smartphone automatically unlocking itself when it sees you,
+不管是手机解锁 还是政府用摄像头跟踪人
+
+or governments tracking people using CCTV cameras,
+不管是手机解锁 还是政府用摄像头跟踪人
+
+the applications of face recognition seem limitless.
+人脸识别有无限应用场景
+
+There have also been recent breakthroughs in landmark tracking for hands and whole bodies,
+另外 跟踪手臂和全身的标记点,最近也有一些突破
+
+giving computers the ability to interpret a user's body language,
+让计算机理解用户的身体语言
+
+and what hand gestures they're frantically waving at their internet connected microwave.
+比如用户给联网微波炉的手势
+
+As we've talked about many times in this series,
+正如系列中常说的,抽象是构建复杂系统的关键
+
+abstraction is the key to building complex systems,
+正如系列中常说的,抽象是构建复杂系统的关键
+
+and the same is true in computer vision.
+计算机视觉也是一样
+
+At the hardware level, you have engineers building better and better cameras,
+硬件层面,有工程师在造更好的摄像头 \N 让计算机有越来越好的视力
+
+giving computers improved sight with each passing year,
+硬件层面,有工程师在造更好的摄像头 \N 让计算机有越来越好的视力
+
+which I can't say for myself.
+我自己的视力却不能这样
+
+Using that camera data,
+用来自摄像头的数据 可以用视觉算法找出脸和手
+
+you have computer vision algorithms crunching pixels to find things like faces and hands.
+用来自摄像头的数据 可以用视觉算法找出脸和手
+
+And then, using output from those algorithms,
+然后可以用其他算法接着处理,解释图片中的东西
+
+you have even more specialized algorithms for interpreting things
+然后可以用其他算法接着处理,解释图片中的东西
+
+like user facial expression and hand gestures.
+比如用户的表情和手势
+
+On top of that, there are people building novel interactive experiences,
+有了这些,人们可以做出新的交互体验
+
+like smart TVs and intelligent tutoring systems,
+比如智能电视和智能辅导系统 \N 会根据用户的手势和表情来回应
+
+that respond to hand gestures and emotion.
+比如智能电视和智能辅导系统 \N 会根据用户的手势和表情来回应
+
+Each of these levels are active areas of research,
+这里的每一层都是活跃的研究领域
+
+with breakthroughs happening every year.
+每年都有突破,这只是冰山一角
+
+And that's just the tip of the iceberg.
+每年都有突破,这只是冰山一角
+
+Today, computer vision is everywhere
+如今 计算机视觉无处不在
+
+- whether it's barcodes being scanned at stores,
+- 商店里扫条形码 \N 等红灯的自动驾驶汽车
+
+self-driving cars waiting at red lights,
+- 商店里扫条形码 \N 等红灯的自动驾驶汽车
+
+or snapchat filters superimposing mustaches.
+或是 Snapchat 里添加胡子的滤镜
+
+And, the most exciting thing is that computer scientists are really just getting started,
+令人兴奋的是 一切才刚刚开始
+
+enabled by recent advances in computing, like super fast GPUs.
+最近的技术发展,比如超快的GPU,\N 会开启越来越多可能性
+
+Computers with human-like ability to see is going to totally change how we interact with them.
+视觉能力达到人类水平的计算机 \N 会彻底改变交互方式
+
+Of course, it'd also be nice if they could hear and speak,
+当然,如果计算机能听懂我们然后回话,就更好了
+
+which we'll discuss next week. I'll see you then.
+我们下周讨论 到时见
+
diff --git a/(字幕)全40集中英字幕文本/36. 自然语言处理-Natural Language Processing.ass.txt b/(字幕)全40集中英字幕文本/36. 自然语言处理-Natural Language Processing.ass.txt
new file mode 100644
index 0000000..1febf98
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/36. 自然语言处理-Natural Language Processing.ass.txt
@@ -0,0 +1,693 @@
+Hi, I'm Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨 我是Carrie Anne,欢迎收看计算机科学速成课
+
+Last episode we talked about computer vision
+上集我们讨论了计算机视觉 - 让电脑能看到并理解
+
+- giving computers the ability to see and understand visual information.
+上集我们讨论了计算机视觉 - 让电脑能看到并理解
+
+Today we're going to talk about how to give computers the ability to understand language.
+今天我们讨论 怎么让计算机理解语言
+
+You might argue they've always had this capability.
+你可能会说:计算机已经有这个能力了
+
+Back in Episodes 9 and 12,
+在第9和第12集
+
+we talked about machine language instructions,
+我们聊了机器语言和更高层次的编程语言
+
+as well as higher-level programming languages.
+我们聊了机器语言和更高层次的编程语言
+
+While these certainly meet the definition of a language,
+虽然从定义来说 它们也算语言
+
+they also tend to have small vocabularies and follow highly structured conventions.
+但词汇量一般很少,而且非常结构化
+
+Code will only compile and run if it's 100 percent free of spelling and syntactic errors.
+代码只能在拼写和语法完全正确时,编译和运行
+
+Of course, this is quite different from human languages
+当然,这和人类语言完全不同 \N - 人类语言叫"自然语言"
+
+- what are called natural languages -
+当然,这和人类语言完全不同 \N - 人类语言叫"自然语言"
+
+containing large, diverse vocabularies,
+自然语言有大量词汇
+
+words with several different meanings,
+有些词有多种含义
+
+speakers with different accents,
+不同口音
+
+and all sorts of interesting word play.
+以及各种有趣的文字游戏
+
+People also make linguistic faux pas when writing and speaking,
+人们在写作和说话时也会犯错
+
+like slurring words together, leaving out key details so things are ambiguous,
+比如单词拼在一起发音 \N 关键细节没说 导致意思模糊两可
+
+and mispronouncing things.
+以及发错音
+
+But, for the most part, humans can roll right through these challenges.
+但大部分情况下,另一方能理解
+
+The skillful use of language is a major part of what makes us human.
+人类有强大的语言能力
+
+And for this reason,
+因此,让计算机拥有语音对话的能力
+
+the desire for computers to understand and speak our language
+因此,让计算机拥有语音对话的能力
+
+has been around since they were first conceived.
+这个想法从构思计算机时就有了
+
+This led to the creation of Natural Language Processing, or NLP,
+"自然语言处理"因此诞生,简称 NLP
+
+an interdisciplinary field combining computer science and linguistics.
+结合了计算机科学和语言学的 一个跨学科领域
+
+There's an essentially infinite number of ways to arrange words in a sentence.
+单词组成句子的方式有无限种
+
+We can't give computers a dictionary of all possible sentences
+我们没法给计算机一个字典,包含所有可能句子
+
+to help them understand what humans are blabbing on about.
+让计算机理解人类在嘟囔什么
+
+So an early and fundamental NLP problem was deconstructing sentences into bite-sized pieces,
+所以 NLP 早期的一个基本问题是 \N 怎么把句子切成一块块
+
+which could be more easily processed.
+这样更容易处理
+
+In school, you learned about nine fundamental types of English words:
+上学时,老师教你 英语单词有九种基本类型:
+
+nouns, pronouns, articles, verbs, adjectives,
+名词,代词,冠词,动词,形容词
+
+adverbs, prepositions, conjunctions, and interjections.
+副词,介词,连词和感叹词
+
+These are called parts of speech.
+这叫"词性"
+
+There are all sorts of subcategories too,
+还有各种子类,比如
+
+like singular vs. plural nouns and superlative vs. comparative adverbs,
+单数名词 vs 复数名词 \N 副词最高级 vs 副词比较级
+
+but we're not going to get into that.
+但我们不会深入那些.
+
+Knowing a word's type is definitely useful,
+了解单词类型有用
+
+but unfortunately, there are a lot words that have multiple meanings - like "rose" and "leaves",
+但不幸的是,很多词有多重含义 比如 rose 和 leaves
+
+which can be used as nouns or verbs.
+可以用作名词或动词
+
+A digital dictionary alone isn't enough to resolve this ambiguity,
+仅靠字典,不能解决这种模糊问题
+
+so computers also need to know some grammar.
+所以电脑也要知道语法
+
+For this, phrase structure rules were developed, which encapsulate the grammar of a language.
+因此开发了 "短语结构规则" 来代表语法规则
+
+For example, in English there's a rule
+例如,英语中有一条规则
+
+that says a sentence can be comprised of a noun phrase followed by a verb phrase.
+句子可以由一个名词短语和一个动词短语组成
+
+Noun phrases can be an article, like "the",
+名词短语可以是冠词,如 the
+
+followed by a noun or they can be an adjective followed by a noun.
+然后一个名词,或一个形容词后面跟一个名词
+
+And you can make rules like this for an entire language.
+你可以给一门语言制定出一堆规则
+
+Then, using these rules, it's fairly easy to construct what's called a parse tree,
+用这些规则,可以做出"分析树"
+
+which not only tags every word with a likely part of speech,
+它给每个单词标了可能是什么词性
+
+but also reveals how the sentence is constructed.
+也标明了句子的结构
+
+These smaller chunks of data allow computers to more easily access,
+数据块更小 更容易处理
+
+process and respond to information.
+数据块更小 更容易处理
+
+Equivalent processes are happening every time you do a voice search,
+每次语音搜索,都有这样的流程
+
+like: "where's the nearest pizza".
+比如 "最近的披萨在哪里"
+
+The computer can recognize that this is a "where" question,
+计算机能明白这是"哪里"(where)的问题
+
+knows you want the noun "pizza",
+知道你想要名词"披萨"(pizza)
+
+and the dimension you care about is "nearest".
+而且你关心的维度是"最近的"(nearest)
+
+The same process applies to "what is the biggest giraffe?" or "who sang thriller?"
+"最大的长颈鹿是什么?"或"Thriller是谁唱的?" \N 也是这样处理
+
+By treating language almost like lego,
+把语言像乐高一样拆分,方便计算机处理
+
+computers can be quite adept at natural language tasks.
+把语言像乐高一样拆分,方便计算机处理
+
+They can answer questions and also process commands,
+计算机可以回答问题 以及处理命令
+
+like "set an alarm for 2:20"
+比如"设 2:20 的闹钟"
+
+or "play T-Swizzle on spotify".
+或"用 Spotify 播放 T-Swizzle"
+
+But, as you've probably experienced, they fail when you start getting too fancy,
+但你可能体验过,如果句子复杂一点
+
+and they can no longer parse the sentence correctly, or capture your intent.
+计算机就没法理解了
+
+Hey Siri... me thinks the mongols doth roam too much,
+嘿Siri ...... 俺觉得蒙古人走得太远了
+
+what think ye on this most gentle mid-summer's day?
+在这个最温柔的夏日的日子里,你觉得怎么样?
+
+Siri: I'm not sure I got that.
+Siri:我没明白
+
+I should also note that phrase structure rules, and similar methods that codify language,
+还有,"短语结构规则"和其他把语言结构化的方法
+
+can be used by computers to generate natural language text.
+可以用来生成句子
+
+This works particularly well when data is stored in a web of semantic information,
+数据存在语义信息网络时,这种方法特别有效
+
+where entities are linked to one another in meaningful relationships,
+实体互相连在一起
+
+providing all the ingredients you need to craft informational sentences.
+提供构造句子的所有成分
+
+Siri: Thriller was released in 1983 and sung by Michael Jackson
+Siri:Thriller 于1983年发行,由迈克尔杰克逊演唱
+
+Google's version of this is called Knowledge Graph.
+Google 版的叫"知识图谱"
+
+At the end of 2016,
+在2016年底
+
+it contained roughly seventy billion facts about, and relationships between, different entities.
+包含大概七百亿个事实,以及不同实体间的关系
+
+These two processes, parsing and generating text,
+处理, 分析, 生成文字 \N 是聊天机器人的最基本部件
+
+are fundamental components of natural language chatbots
+处理, 分析, 生成文字 \N 是聊天机器人的最基本部件
+
+- computer programs that chat with you.
+- 聊天机器人就是能和你聊天的程序
+
+Early chatbots were primarily rule-based,
+早期聊天机器人大多用的是规则.
+
+where experts would encode hundreds of rules mapping what a user might say,
+专家把用户可能会说的话,和机器人应该回复什么,\N 写成上百个规则
+
+to how a program should reply.
+专家把用户可能会说的话,和机器人应该回复什么,\N 写成上百个规则
+
+Obviously this was unwieldy to maintain and limited the possible sophistication.
+显然,这很难维护,而且对话不能太复杂.
+
+A famous early example was ELIZA, created in the mid-1960s at MIT.
+一个著名早期例子叫 Eliza\N 1960年代中期 诞生于麻省理工学院
+
+This was a chatbot that took on the role of a therapist,
+一个治疗师聊天机器人
+
+and used basic syntactic rules to identify content in written exchanges,
+它用基本句法规则 来理解用户打的文字
+
+which it would turn around and ask the user about.
+然后向用户提问
+
+Sometimes, it felt very much like human-human communication,
+有时候会感觉像和人类沟通一样
+
+but other times it would make simple and even comical mistakes.
+但有时会犯简单 甚至很搞笑的错误
+
+Chatbots, and more advanced dialog systems,
+聊天机器人和对话系统
+
+have come a long way in the last fifty years, and can be quite convincing today!
+在过去五十年发展了很多,如今可以和真人很像!
+
+Modern approaches are based on machine learning,
+如今大多用机器学习
+
+where gigabytes of real human-to-human chats are used to train chatbots.
+用上GB的真人聊天数据 来训练机器人
+
+Today, the technology is finding use in customer service applications,
+现在聊天机器人已经用于客服回答
+
+where there's already heaps of example conversations to learn from.
+客服有很多对话可以参考
+
+People have also been getting chatbots to talk with one another,
+人们也让聊天机器人互相聊天
+
+and in a Facebook experiment, chatbots even started to evolve their own language.
+在 Facebook 的一个实验里,\N 聊天机器人甚至发展出自己的语言
+
+This experiment got a bunch of scary-sounding press,
+很多新闻把这个实验 报导的很吓人
+
+but it was just the computers crafting a simplified protocol to negotiate with one another.
+但实际上只是计算机 \N 在制定简单协议来帮助沟通
+
+It wasn't evil, it's was efficient.
+这些语言不是邪恶的,而是为了效率
+
+But what about if something is spoken
+但如果听到一个句子
+
+- how does a computer get words from the sound?
+- 计算机怎么从声音中提取词汇?
+
+That's the domain of speech recognition,
+这个领域叫"语音识别"
+
+which has been the focus of research for many decades.
+这个领域已经重点研究了几十年
+
+Bell Labs debuted the first speech recognition system in 1952,
+贝尔实验室在1952年推出了第一个语音识别系统
+
+nicknamed Audrey, the automatic digit recognizer.
+绰号 Audrey,自动数字识别器
+
+It could recognize all ten numerical digits,
+如果你说得够慢,它可以识别全部十位数字
+
+if you said them slowly enough.
+如果你说得够慢,它可以识别全部十位数字
+
+5
+
+9
+
+7?
+
+The project didn't go anywhere
+这个项目没有实际应用,因为手输快得多
+
+because it was much faster to enter telephone numbers with a finger.
+这个项目没有实际应用,因为手输快得多
+
+Ten years later, at the 1962 World's Fair,
+十年后,1962年的世界博览会上
+
+IBM demonstrated a shoebox-sized machine capable of recognizing sixteen words.
+IBM展示了一个鞋盒大小的机器,能识别16个单词
+
+To boost research in the area,
+为了推进"语音识别"领域的研究
+
+DARPA kicked off an ambitious five-year funding initiative in 1971,
+DARPA 在1971年启动了一项雄心勃勃的五年筹资计划
+
+which led to the development of Harpy at Carnegie Mellon University.
+之后诞生了卡内基梅隆大学的 Harpy
+
+Harpy was the first system to recognize over a thousand words.
+Harpy 是第一个可以识别1000个单词以上的系统
+
+But, on computers of the era,
+但那时的电脑
+
+transcription was often ten or more times slower than the rate of natural speech.
+语音转文字,经常比实时说话要慢十倍或以上
+
+Fortunately, thanks to huge advances in computing performance in the 1980s and 90s,
+幸运的是,1980,1990年代 计算机性能的大幅提升
+
+continuous, real-time speech recognition became practical.
+实时语音识别变得可行
+
+There was simultaneous innovation in the algorithms for processing natural language,
+同时也出现了处理自然语言的新算法
+
+moving from hand-crafted rules,
+不再是手工定规则
+
+to machine learning techniques
+而是用机器学习
+
+that could learn automatically from existing datasets of human language.
+从语言数据库中学习
+
+Today, the speech recognition systems with the best accuracy are using deep neural networks,
+如今准确度最高的语音识别系统 用深度神经网络
+
+which we touched on in Episode 34.
+我们在第34集讲过
+
+To get a sense of how these techniques work,
+为了理解原理
+
+let's look at some speech, specifically,
+我们来看一些对话声音
+
+the acoustic signal.
+我们来看一些对话声音
+
+Let's start by looking at vowel sounds,
+先看元音
+
+like aaaaa and eeeeee.
+比如 a 和 e
+
+These are the waveforms of those two sounds, as captured by a computer's microphone.
+这是两个声音的波形
+
+As we discussed in Episode 21 - on Files and File Formats -
+我们在第21集(文件格式)说过
+
+this signal is the magnitude of displacement,
+这个信号来自 麦克风内部隔膜震动的频率
+
+of a diaphragm inside of a microphone, as sound waves cause it to oscillate.
+这个信号来自 麦克风内部隔膜震动的频率
+
+In this view of sound data, the horizontal axis is time,
+在这个视图中,横轴是时间
+
+and the vertical axis is the magnitude of displacement, or amplitude.
+竖轴是隔膜移动的幅度,或者说振幅
+
+Although we can see there are differences between the waveforms,
+虽然可以看到2个波形有区别
+
+it's not super obvious what you would point at to say,
+但不能看出
+
+"ah ha! this is definitely an eeee sound".
+"啊!这个声音肯定是 e"
+
+To really make this pop out, we need to view the data in a totally different way:
+为了更容易识别,我们换个方式看:
+
+a spectrogram.
+谱图
+
+In this view of the data, we still have time along the horizontal axis,
+这里横轴还是时间
+
+but now instead of amplitude on the vertical axis,
+但竖轴不是振幅
+
+we plot the magnitude of the different frequencies that make up each sound.
+而是不同频率的振幅
+
+The brighter the color, the louder that frequency component.
+颜色越亮,那个频率的声音越大
+
+This conversion from waveform to frequencies is done with a very cool algorithm called
+这种波形到频率的转换 是用一种很酷的算法做的
+
+a Fast Fourier Transform.
+快速傅立叶变换(FFT)
+
+If you've ever stared at a stereo system's EQ visualizer,
+如果你盯过立体声系统的 EQ 可视化器
+
+it's pretty much the same thing.
+它们差不多是一回事
+
+A spectrogram is plotting that information over time.
+谱图是随着时间变化的
+
+You might have noticed that the signals have a sort of ribbed pattern to them
+你可能注意到,信号有种螺纹图案
+
+that's all the resonances of my vocal tract.
+那是我声道的回声
+
+To make different sounds,
+为了发出不同声音
+
+I squeeze my vocal chords, mouth and tongue into different shapes,
+我要把声带,嘴巴和舌头变成不同形状
+
+which amplifies or dampens different resonances.
+放大或减少不同的共振
+
+We can see this in the signal, with areas that are brighter, and areas that are darker.
+可以看到有些区域更亮,有些更暗
+
+If we work our way up from the bottom, labeling where we see peaks in the spectrum
+如果从底向上看,标出高峰
+
+- what are called formants -
+- 叫"共振峰" -
+
+we can see the two sounds have quite different arrangements.
+可以看到有很大不同
+
+And this is true for all vowel sounds.
+所有元音都是如此
+
+It's exactly this type of information that lets computers recognize spoken vowels,
+这让计算机可以识别元音
+
+and indeed, whole words.
+然后识别出整个词
+
+Let's see a more complicated example,
+让我们看一个更复杂的例子
+
+like when I say: "she.. was.. happy"
+当我说"她..很开心"的时候
+
+We can see our "eee" sound here, and "aaa" sound here.
+可以看到 e 声,和 a 声
+
+We can also see a bunch of other distinctive sounds,
+以及其它不同声音
+
+like the "shh" sound in "she",
+比如 she 中的 shh 声
+
+the "wah" and "sss" in "was", and so on.
+was 中的 wah 和 sss,等等
+
+These sound pieces, that make up words,
+这些构成单词的声音片段
+
+are called phonemes.
+叫"音素"
+
+Speech recognition software knows what all these phonemes look like.
+语音识别软件 知道这些音素
+
+In English, there are roughly forty-four,
+英语有大概44种音素
+
+so it mostly boils down to fancy pattern matching.
+所以本质上变成了音素识别
+
+Then you have to separate words from one another,
+还要把不同的词分开
+
+figure out when sentences begin and end...
+弄清句子的开始和结束点
+
+and ultimately, you end up with speech converted into text,
+最后把语音转成文字
+
+allowing for techniques like we discussed at the beginning of the episode.
+使这集视频开头里讨论的那些技术成为可能
+
+Because people say words in slightly different ways,
+因为口音和发音错误等原因
+
+due to things like accents and mispronunciations,
+人们说单词的方式略有不同
+
+transcription accuracy is greatly improved when combined with a language model,
+所以结合语言模型后,语音转文字的准确度会大大提高
+
+which contains statistics about sequences of words.
+里面有单词顺序的统计信息
+
+For example "she was" is most likely to be followed by an adjective, like "happy".
+比如:"她"后面很可能跟一个形容词,\N 比如"很开心"
+
+It's uncommon for "she was" to be followed immediately by a noun.
+"她"后面很少是名词
+
+So if the speech recognizer was unsure between, "happy" and "harpy",
+如果不确定是 happy 还是 harpy,会选 happy
+
+it'd pick "happy",
+如果不确定是 happy 还是 harpy,会选 happy
+
+since the language model would report that as a more likely choice.
+因为语言模型认为可能性更高
+
+Finally, we need to talk about Speech Synthesis,
+最后, 我们来谈谈 "语音合成"
+
+that is, giving computers the ability to output speech.
+让计算机输出语音
+
+This is very much like speech recognition, but in reverse.
+它很像语音识别,不过反过来
+
+We can take a sentence of text, and break it down into its phonetic components,
+把一段文字,分解成多个声音
+
+and then play those sounds back to back, out of a computer speaker.
+然后播放这些声音
+
+You can hear this chaining of phonemes very clearly with older speech synthesis technologies,
+早期语音合成技术,可以清楚听到音素是拼在一起的
+
+like this 1937, hand-operated machine from Bell Labs.
+比如这个1937年贝尔实验室的手动操作机器
+
+Say, "she saw me" with no expression.
+不带感情的说"她看见了我"
+
+She saw me.
+她看见了我
+
+Now say it in answer to these questions.
+现在回答问题
+
+Who saw you?
+谁看见你了?
+
+She saw me.
+她看见了我
+
+Who did she see?
+她看到了谁?
+
+She saw me.
+她看见了我
+
+Did she see you or hear you?
+她看到你还是听到你说话了?
+
+She saw me.
+她看见了我
+
+By the 1980s, this had improved a lot,
+到了1980年代,技术改进了很多
+
+but that discontinuous and awkward blending of phonemes
+但音素混合依然不够好,产生明显的机器人声
+
+still created that signature, robotic sound.
+但音素混合依然不够好,产生明显的机器人声
+
+Thriller was released in 1983 and sung by Michael Jackson.
+Thriller 于1983年发行,迈克尔·杰克逊 演唱.
+
+Today, synthesized computer voices, like Siri, Cortana and Alexa,
+如今,电脑合成的声音,比如 Siri, Cortana, Alexa
+
+have gotten much better, but they're still not quite human.
+好了很多,但还不够像人
+
+But we're soo soo close,
+但我们非常非常接近了
+
+and it's likely to be a solved problem pretty soon.
+这个问题很快会被解决
+
+Especially because we're now seeing an explosion of voice user interfaces on our phones,
+现在语音界面到处都是,手机里
+
+in our cars and homes, and maybe soon, plugged right into our ears.
+汽车里,家里,也许不久之后耳机也会有.
+
+This ubiquity is creating a positive feedback loop,
+这创造一个正反馈循环
+
+where people are using voice interaction more often,
+人们用语音交互的频率会提高
+
+which in turn, is giving companies like Google, Amazon and Microsoft
+这又给了谷歌,亚马逊,微软等公司
+
+more data to train their systems on.
+更多数据来训练语音系统.
+
+Which is enabling better accuracy,
+提高准确性
+
+which is leading to people using voice more,
+准确度高了,人们更愿意用语音交互
+
+which is enabling even better accuracy and the loop continues!
+越用越好,越好越用
+
+Many predict that speech technologies will become as common a form of interaction
+很多人预测,语音交互会越来越常见
+
+as screens, keyboards, trackpads and other physical input-output devices that we use today.
+就像如今的屏幕,键盘,触控板等设备
+
+That's particularly good news for robots,
+这对机器人发展是个好消息
+
+who don't want to have to walk around with keyboards in order to communicate with humans.
+机器人就不用走来走去时 带个键盘和人类沟通
+
+But, we'll talk more about them next week. See you then.
+下周我们讲机器人. 到时见
+
diff --git a/(字幕)全40集中英字幕文本/37. 机器人-Robots.ass.txt b/(字幕)全40集中英字幕文本/37. 机器人-Robots.ass.txt
new file mode 100644
index 0000000..b2a7cb6
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/37. 机器人-Robots.ass.txt
@@ -0,0 +1,753 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+嗨,我是 Carrie Anne,欢迎收看计算机速成课
+
+Today we’re going to talk about robots.
+今天 我们要讨论机器人
+
+The first image that jumps to your mind is probably a humanoid robot,
+你脑中冒出来的第一个印象估计是 类人机器人
+
+like we usually see in shows or movies.
+经常在电视剧和电影里看到.
+
+Sometimes they’re our friends and colleagues,
+有时候它们是朋友和同事
+
+but more often, they're sinister, apathetic and battle-hardened.
+但更常见的是阴险无情,身经百战
+
+We also tend to think of robots as a technology of the future.
+我们经常把机器人看成未来科技
+
+But the reality is: they’re already here – by the millions
+但事实是:机器人时代已经来临了
+
+– and they're our workmates,
+- 它们是同事
+
+helping us to do things harder, better, faster, and stronger.
+帮我们把困难的工作,做得更快更好
+
+There are many definitions for robots, but in general,
+机器人的定义有很多种,但总的来说,
+
+these are machines capable of carrying out a series of actions automatically
+机器人由计算机控制,可以自动执行一系列动作的机器
+
+guided by computer control.
+机器人由计算机控制,可以自动执行一系列动作的机器
+
+How they look isn’t part of the equation –
+外观并不重要
+
+robots can be industrial arms that spray paint cars,
+可以是给汽车喷漆的机械臂
+
+drones that fly, snake-like medical robots that assist surgeons,
+无人机,或辅助外科医生的蛇状机器人
+
+as well as humanoid robotic assistants.
+以及人形机器人
+
+Although the term "robot" is sometimes
+有时我们叫虚拟人物"机器人"
+
+applied to interactive virtual characters,
+有时我们叫虚拟人物"机器人"
+
+it’s more appropriate to call these "bots", or even better, "agents."
+但叫 bot 甚至 agent 会更合适
+
+That’s because the term "robot" carries a physical connotation
+因为"机器人"的潜在含义是 存在于现实世界中的机器
+
+a machine that lives in and acts on the real world.
+因为"机器人"的潜在含义是 存在于现实世界中的机器
+
+The word "robot" was first used in a 1920 Czech play
+robot (机器人) 一词 \N 首次出现在1920年的一部捷克戏剧
+
+to denote artificial, humanoid characters.
+代表人造的类人角色
+
+The word was derived from "robota", the slavic-language word for a forced laborer,
+robot 源于斯拉夫语词汇 robota \N 代表强迫劳动
+
+indicating peasants in compulsory service in feudal, nineteenth century Europe.
+代表农民在十九世纪 \N 欧洲封建社会的强迫劳动
+
+The play didn’t go too much into technological details.
+戏剧没讲太多技术细节
+
+But, even a century later, it’s still a common portrayal:
+但即使一个世纪后,这种描述依然很普遍:
+
+mass-produced, efficient, tireless creatures that look human-esque,
+机器人都是大规模生产,高效不知疲倦,看起来像人的东西
+
+but are emotionless, indifferent to self-preservation and lack creativity.
+但毫无情感,不会保护自己,没有创造力
+
+The more general idea of self-operating machines
+更广义的自动运行机器,早在1920年代前就有了
+
+goes back even further than the 1920s.
+更广义的自动运行机器,早在1920年代前就有了
+
+Many ancient inventors created mechanical devices that
+很多古代发明家 \N 发明了能自动运行的机械装置
+
+performed functions automatically,
+很多古代发明家 \N 发明了能自动运行的机械装置
+
+like keeping the time and striking bells on the hour.
+比如计时和定时敲钟
+
+There are plenty of examples of automated animal and humanoid figures,
+有很多装置 有动物和人类的形象 \N 能跳舞,唱歌,打鼓等
+
+that would perform dances, sing songs, strike drums and do other physical actions.
+有很多装置 有动物和人类的形象 \N 能跳舞,唱歌,打鼓等
+
+These non-electrical and certainly non-electronic machines were called automatons.
+这些不用电,而且肯定没有电子部件的机器,叫"自动机"
+
+For instance, an early automaton created in 1739
+举个例子 \N 1739年法国人 Jacques de Vaucans 做了个自动机
+
+by the Frenchman Jacques de Vaucanson
+举个例子 \N 1739年法国人 Jacques de Vaucans 做了个自动机
+
+was the Canard Digerateur or Digesting Duck,
+法语叫 Canard Digerateur,翻译过来是 "吃饭鸭"
+
+a machine in the shape of a duck that appeared
+一个像鸭子的机器,能吃东西然后排便
+
+to eat grain and then defecate.
+一个像鸭子的机器,能吃东西然后排便
+
+In 1739 Voltaire wrote,
+伏尔泰在1739年写
+
+"Without the voice of le Maure and Vaucanson’s duck,
+"如果没有吃饭鸭的声音
+
+you would have nothing to remind you of the glory of France."
+还有什么能提醒你法国的荣光呢?"
+
+One of the most infamous examples was the "Mechanical Turk":
+一个名声很臭的例子是"土耳其行棋傀儡"
+
+a chess-playing, humanoid automaton.
+一个能下国际象棋的人形机器人
+
+After construction in 1770, it toured all over Europe,
+在1770年建造完成后,就在欧洲各地展览
+
+wowing audiences with its surprisingly good chess-playing.
+好棋艺惊叹观众
+
+It appeared to be a mechanical, artificial intelligence.
+像某种机械人工智能
+
+Unfortunately, it was a hoax – there was a dainty human stuffed inside the machine.
+不幸的是,这是个骗局 - 机器里有人控制
+
+The first machines controlled by computers emerged in the late 1940s.
+第一台计算机控制的机器,出现在1940年代晚期
+
+These Computer Numerical Control, or CNC machines,
+这些计算机数控的机器,简称 CNC 机器
+
+could run programs that instructed a machine to perform a series of operations.
+可以执行一连串 程序指定的操作
+
+This level of control also enabled the creation of new manufactured goods,
+精细的控制 让我们能生产之前很难做的物品
+
+like milling a complex propellor design out of a block of aluminum
+比如从一整块铝 加工出复杂的螺旋桨
+
+– something that was difficult to do using standard machine tools,
+- 这用普通机械工具很难做到
+
+and with tolerances too small to be done by hand.
+并且误差容忍度很小,无法手工加工
+
+CNC machines were a huge boon to industry,
+CNC 机器大大推进了制造业
+
+not just due to increased capability and precision,
+不仅提高了制造能力和精确度 还降低了生产成本
+
+but also in terms of reducing labor costs by automating human jobs
+不仅提高了制造能力和精确度 还降低了生产成本
+
+– a topic we'll revisit in a later episode.
+- 我们之后会深入讨论这个(第40集)
+
+The first commercial deployment was a programmable industrial robot
+第一个商业贩卖的 可编程工业机器人
+
+called the Unimate, sold to General Motors in 1960
+叫 Unimate,于1960年卖给通用汽车公司
+
+to lift hot pieces of metal from a die casting machine and stack them.
+它可以把压铸机做出来的热金属成品提起来,然后堆起来
+
+This was the start of the robotics industry.
+机器人行业由此开始
+
+Soon, robots were stacking pallets, welding parts, painting cars and much more.
+很快,机器人开始堆叠货盘,焊接,给汽车喷漆等等
+
+For simple motions – like a robotic gripper that moves back and forth on a track
+对于简单运动 - 比如机器爪子 在轨道上来回移动
+
+a robot can be instructed to move to a particular position,
+可以指示它移动到特定位置
+
+and it'll keep moving in that direction until the desired position is reached
+它会一直朝那个方向移动,直到到达 \N 然后停下来
+
+at which point it’ll stop.
+它会一直朝那个方向移动,直到到达 \N 然后停下来
+
+This behavior can be achieved through a simple control loop.
+这种行为 可以用简单控制回路做
+
+First, sense the robot position.
+首先,判断机器人的位置
+
+Are we there yet?
+我们到了吗?
+
+Nope.
+没有
+
+So keep moving.
+那么继续前进
+
+Now sense position again.
+再次判断位置
+
+Are we there yet?
+我们到了吗?
+
+Nope, so keep moving.
+没有,所以继续前进
+
+Are we there yet?
+我们到了吗?
+
+Yes!
+是的!
+
+So we can stop moving, and also please be quiet!
+现在可以停下来了,别问了!
+
+Because we’re trying to minimize the distance between
+因为我们在不断缩小 当前位置和目标位置的距离
+
+the sensed position and the desired position,
+因为我们在不断缩小 当前位置和目标位置的距离
+
+this control loop is, more specifically, a negative feedback loop.
+这个控制回路 更准确的叫"负反馈回路"
+
+A negative feedback control loop has three key pieces.
+负反馈回路 有三个重要部分
+
+There’s a sensor, that measures things in the real world,
+首先是一个传感器,可以测量现实中的东西
+
+like water pressure, motor position, air temperature,
+比如水压,马达位置,气温,
+
+or whatever you’re trying to control.
+或任何你想控制的东西
+
+From this measurement, we calculate how far we are from
+根据传感器,计算和目标值相差多大
+
+where we want to be – the error.
+得到一个"错误"
+
+The error is then interpreted by a controller,
+然后"控制器"会处理这个"错误"
+
+which decides how to instruct the system to minimize that error.
+决定怎么减小错误
+
+Then, the system acts on the world though pumps, motors,
+然后用泵,电机,加热元件,或其他物理组件来做出动作
+
+heating elements, and other physical actuators.
+然后用泵,电机,加热元件,或其他物理组件来做出动作
+
+In tightly controlled environments, simple control loops, like this, work OK.
+在严格控制的环境中,这种简单控制回路也够用了
+
+But in many real world applications, things are a tad more complicated.
+但在很多现实应用中,情况复杂得多
+
+Imagine that our gripper is really heavy, and even when the control loop says to stop,
+假设爪子很重,哪怕控制回路叫停了
+
+momentum causes the gripper to overshoot the desired position.
+惯性让爪子超过了预期位置
+
+That would cause the control loop to take over again,
+然后控制回路又开始运行
+
+this time backing the gripper up.
+叫爪子移动回去
+
+A badly tuned control loop might overshoot and overshoot and overshoot,
+一个糟糕的控制回路 可能会让爪子不断来回移动
+
+and maybe even wobble forever.
+甚至永远循环
+
+To make matters worse, in real world settings,
+更糟糕的是,现实世界中
+
+there are typically external and variable forces acting on a robot,
+机器人会受到各种外力影响
+
+like friction, wind and items of different weight.
+比如摩擦力,风,等等
+
+To handle this gracefully, more sophisticated control logic is needed.
+为了处理这些外力,我们需要更复杂的控制逻辑
+
+A widely used control-loop, feedback mechanism is a
+一个使用广泛的机制,有控制回路和反馈机制。
+
+proportional–integral–derivative controller.
+叫 "比例-积分-微分控制器"
+
+That’s a bit of a mouthful, so people call them PID controllers.
+这个有点绕口,所以一般简称 "PID控制器"
+
+These used to be mechanical devices, but now it’s all done in software.
+它以前是机械设备,现在全是纯软件了
+
+Let’s imagine a robot that delivers coffee.
+想象有一个机器人,端咖啡给客人
+
+Its goal is to travel between customers at two meters per second,
+设计目标是 每秒两米的速度在顾客间穿行
+
+which has been determined to be the ideal speed
+这个速度是理想速度
+
+that’s both safe and expedient.
+安全又合适
+
+Of course, the environment doesn’t always cooperate.
+当然,环境是会变化的
+
+Sometimes there’s wind, and sometimes there's uphills and downhills
+有时候有风,有时候有上坡下坡
+
+and all sorts of things that affect the speed of the robot.
+以及其他影响机器人速度的因素
+
+So, it’s going to have to increase and decrease power
+所以,给马达的动力要加大或减少,以保持目标速度
+
+to its motors to maintain the desired speed.
+所以,给马达的动力要加大或减少,以保持目标速度
+
+Using the robot's speed sensor, we can keep track of its
+用机器人的速度传感器,我们可以
+
+actual speed and plot that alongside its desired speed.
+把当前速度和目标速度画张图
+
+PID controllers calculate three values from this data.
+PID 控制器根据这些数据,算出3个值
+
+First is the proportional value, which is the difference between
+首先是"比例值",就是"实际值"和"理想值"差多少
+
+the desired value and the actual value
+首先是"比例值",就是"实际值"和"理想值"差多少
+
+at the most recent instant in time or the present.
+"实际值"可能有一定滞后,或者是实时的。
+
+This is what our simpler control loop used before.
+之前的简单控制回路,用的就是这个值
+
+The bigger the gap between actual and desired,
+"实际值"和"理想值"的差距越大,
+
+the harder you'll push towards your target.
+就越用力
+
+In other words, it’s proportional control.
+换句话说,它是"比例控制"的
+
+Next, the integral value is computed,
+接下来,算"积分值"
+
+which is the sum of error over a window of time,
+就是一段时间内 误差的总和
+
+like the last few seconds.
+比如最近几秒
+
+This look back helps compensate for steady state errors,
+帮助弥补误差
+
+resulting from things like motoring up a long hill.
+比如上坡时可能就会产生误差
+
+If this value is large, it means proportional control is not enough,
+如果这个值很大,说明比例控制不够,
+
+and we have to push harder still.
+要继续用力前进
+
+Finally, there’s the derivative value,
+最后有"导数值"
+
+which is the rate of change between the desired and actual values.
+是期望值与实际值之间的变化率
+
+This helps account for possible future error,
+有助于解决 未来可能出现的错误,
+
+and is sometimes called "anticipatory control".
+有时也叫"预期控制"
+
+For example, if you are screaming in towards your goal too fast,
+比如前进的太快
+
+you'll need to ease up a little to prevent overshoot.
+要稍微放松一点,避免冲过头
+
+These three values are summed together, with different relative weights,
+这三个值会一起使用,它们有不同权重
+
+to produce a controller output that’s passed to the system.
+然后用来控制系统
+
+PID controllers are everywhere,
+PID 控制器到处都是
+
+from the cruise control in your car,
+比如汽车里的巡航控制
+
+to drones that automatically adjust their rotor speeds to maintain level flight,
+无人机调整螺旋桨速度,以保持水平
+
+as well as more exotic robots,
+以及一些更奇怪的机器人,
+
+like this one that balances on a ball to move around.
+比如这个用球来平衡和移动的机器人
+
+Advanced robots often require many control loops running in parallel,
+更高级的机器人一般需要多个控制回路同时运行
+
+working together, managing everything from robot balance to limb position.
+来保持机器人平衡,调整肢体位置,等等
+
+As we’ve discussed, control loops are responsible for
+之前说过,控制回路负责
+
+getting robot attributes like location to desired values.
+把机器人的属性(比如当前位置)变成期望值
+
+So, you may be wondering where these values come from.
+你可能好奇这些值 是哪里来的
+
+This is the responsibility of higher-level robot software,
+这是更高层软件的责任
+
+which plans and executes robot actions,
+软件负责做出计划 并让机器人执行动作,
+
+like plotting a path around sensed obstacles, or breaking down physical tasks,
+比如制定一条路线来绕过障碍物,或者把任务分成一步步
+
+like picking up a ball, into simple, sequential motions.
+比如把拿起一个球,分解成一个个简单连续动作
+
+Using these techniques, robots have racked up some impressive achievements
+用这些技术,机器人已经取得不少令人印象深刻的成就
+
+– they've been to the deepest depths of Earth's oceans
+- 它们潜到了海洋最深处
+
+and roved around on Mars for over a decade.
+在火星上跑了十几年
+
+But interestingly, lots of problems that are trivial for many humans
+但有趣的是,许多对人类来说很简单的任务
+
+have turned out to be devilishly difficult for robots:
+对机器人很困难:
+
+like walking on two legs, opening a door, picking up objects
+比如两条腿走路,开门,拿东西时不要捏碎了
+
+without crushing them, putting on a t-shirt, or petting a dog.
+或是穿T恤,或是摸狗
+
+These are tasks you may be able to do without thinking,
+这些你可能想都不用想
+
+but a supercomputer-powered robot fails at spectacularly.
+但有超级计算机能力的机器人却做不到
+
+These sorts of tasks are all active areas of robotics research.
+机器人研究领域在全力解决这些问题
+
+Artificial intelligence techniques,
+我们前几集聊过的 人工智能
+
+which we discussed a few episodes ago, are perhaps
+我们前几集聊过的 人工智能
+
+the most promising avenue to overcome these challenges.
+最有可能解决这些问题
+
+For example, Google has been running an experiment
+例如,谷歌在进行一项实验
+
+with a series of robotic arms that spend their days
+让一堆机器人手臂把各种东西
+
+moving miscellaneous objects from one box to another, learning from trial and error.
+从一个盒子拿到另一个盒子,不断试错学习
+
+After thousands of hours of practice, the robots had cut their error rate in half.
+经过数千小时的练习,机器人把错误率降低了一半
+
+Of course, unlike humans, robots can run twenty-four hours a day
+不像人类,机器人可以24小时全天运行
+
+and practice with many arms at the same time.
+而且多个手臂同时练习
+
+So, it may just be a matter of time until they become adept at grasping things.
+所以机器人擅长抓东西只是时间问题
+
+But, for the time being, toddlers can out-grasp them.
+但现在,小婴儿都比机器人更会抓东西
+
+One of the biggest and most visible robotic breakthrough
+近年最大的突破之一
+
+in recent years has been self-driving, autonomous cars.
+是无人驾驶汽车
+
+If you think about it, cars don’t have too many system inputs
+如果你仔细想想,汽车没几个输入
+
+– you can speed up or slow down, and you can steer left or right.
+- 只是加速减速,左转右转
+
+The tough part is sensing lanes, reading signs,
+难的问题是 判断车道,理解路标
+
+and anticipating and navigating traffic, pedestrians,
+预测车流,车流中穿行,留心行人和骑自行车的。
+
+bicyclists, and a whole host of obstacles.
+以及各种障碍
+
+In addition to being studded with proximity sensors,
+车上布满了传感器
+
+these robotic vehicles heavily rely
+无人驾驶汽车非常依赖
+
+on Computer Vision algorithms, which we discussed in Episode 35.
+计算机视觉算法,我们在第35集讨论过
+
+We’re also seeing the emergence of very primitive androids
+现在也开始出现类人机器人
+
+– robots that look and act like humans.
+- 外貌和行为像人类的机器人
+
+Arguably, we’re not close on either of those goals,
+不过现在两个目标都没接近(外貌和行为)
+
+as they tend to look pretty weird and act even weirder.
+因为看起来一般怪怪的,行为也怪怪的.
+
+At least we’ll always have Westworld.
+但至少有《西部世界》可以看看
+
+But anyway, these remain a tantalizing goal for roboticists
+无论如何,对机器人研究者来说,把各种技术结合起来
+
+combine many computer science topics
+比如人工智能,计算机视觉和自然语言处理
+
+we’ve touched on over the last few episodes, like artificial intelligence,
+比如人工智能,计算机视觉和自然语言处理
+
+computer vision and natural language processing.
+来让机器人越来越像人,是个诱人的目标
+
+As for why humans are so fascinated by
+至于人类为什么如此着迷 做出和我们一样的机器人
+
+creating artificial embodiments of ourselves.
+至于人类为什么如此着迷 做出和我们一样的机器人
+
+you'll have to go to Crash Course Philosophy for that.
+你得去看《哲学速成课》
+
+And for the foreseeable future,
+在未来好一段时间里
+
+realistic androids will continue to be the stuff of science fiction.
+和人类一样的机器人 依然只能存在科幻小说里。
+
+Militaries also have a great interest in robots –
+军队也对机器人很有兴趣 -
+
+they're not only replaceable, but can surpass humans
+因为机器人可以替换,
+
+in attributes like strength, endurance, attention, and accuracy.
+而且力量,耐力,注意力,准确性可以远超人类
+
+Bomb disposal robots and reconnaissance drones are fairly common today.
+拆弹机器人和无人侦察机如今很常见
+
+But fully autonomous, armed-to-the-teeth robots are slowly appearing,
+但完全自主决定,全副武装的机器人也在慢慢出现
+
+like the Samsung SGR-A1 sentry gun deployed by South Korea.
+比如韩国的三星 SGR-A1 哨兵炮
+
+Robots with the intelligence and capability to take human lives
+有智力并且可以杀人的机器人
+
+are called lethal autonomous weapons.
+叫 "致命自主武器"
+
+And they’re widely considered a complex and thorny issue.
+这种武器是复杂又棘手的问题
+
+Without doubt, these systems could save soldiers lives
+毫无疑问,它们可以把士兵从战场带离 挽救生命
+
+by taking them off the battlefield and out of harm’s way.
+毫无疑问,它们可以把士兵从战场带离 挽救生命
+
+It might even discourage war all together.
+甚至阻止战争的发生
+
+Though it’s worth noting that people said the same thing
+值得注意的是 人们对炸药和核弹也说过一样的话
+
+about dynamite and nuclear weapons.
+值得注意的是 人们对炸药和核弹也说过一样的话
+
+On the flip side, we might be creating ruthlessly
+另一方面,我们可能会不小心创造出 \N 无情又高效的杀人机器
+
+efficient killing machines that don't apply human judgment
+没有人类般的判断力和同情心
+
+or compassion to complex situations.
+没有人类般的判断力和同情心
+
+And the fog of war is about as complex and murky as they come.
+战争的硝烟会变得更加黑暗和复杂
+
+These robots would be taking orders and executing them
+机器人会接受命令并高效执行
+
+as efficiently as they can and sometimes
+机器人会接受命令并高效执行
+
+human orders turn out to be really bad.
+但有时人类的命令是错的
+
+This debate is going to continue for a long time,
+这场辩论会持续很长时间,
+
+and pundits on both sides will grow louder as robotic technology improves.
+而且随着机器人技术的进步,两边的辩论会越来越激烈
+
+It’s also an old debate –
+这也是个老话题了
+
+the danger was obvious to science fiction writer Isaac Asimov,
+科幻作家 艾萨克·阿西莫夫 早预见了这种危险
+
+who introduced a fictional "Three Laws of Robotics" in his 1942 short story "Runaround".
+他在1942年短篇小说 Runaround 中写了"机器人三定律"
+
+And then, later he added a zeroth rule.
+之后又加了"定律0"
+
+In short, it’s a code of conduct or moral compass for robots –
+简单说 这些定律指导机器人的行为准则 或者说道德指南
+
+guiding them to do no harm, especially to humans.
+让机器人不要伤害,特别是不要伤害人类
+
+It’s pretty inadequate for practical application and it leaves plenty of room for equivocation.
+这些规则实践起来相当不足,并且有很多模糊的地方
+
+But still, Asimov’s laws inspired a ton of science fiction and academic discussion,
+但阿西莫夫三定律 激发了大量科幻小说讨论和学术讨论,
+
+and today there are whole conferences on robot ethics.
+如今有专门讨论机器人伦理的会议
+
+Importantly, Asimov crafted his fictional rules
+重要的是,阿西莫夫写这些虚构规则
+
+as a way to push back on "Robot as a Menace" memes
+是为了反对 "机器人都很邪恶" 这种常见描述
+
+common in fiction from his childhood.
+他童年读的小说里,这样的场景很常见
+
+These were stories where robots went off the rails,
+机器人脱离控制,然后伤害甚至毁灭创造者
+
+harming or even destroying their creators in the process.
+机器人脱离控制,然后伤害甚至毁灭创造者
+
+Asimov, on the other hand, envisioned robots as useful,
+阿西莫夫认为 机器人有用,可靠,甚至可以让人喜爱
+
+reliable, and even loveable machines.
+阿西莫夫认为 机器人有用,可靠,甚至可以让人喜爱
+
+And it’s this duality I want to leave you thinking about today.
+我想让你思考这种两面性
+
+Like many of the technologies we’ve discussed throughout this series,
+我们讨论过的许多技术,有好的一面也有坏的一面
+
+there are benevolent and malicious uses.
+我们讨论过的许多技术,有好的一面也有坏的一面
+
+Our job is to carefully reflect on computing's potential and peril,
+我们要认真思考计算机的潜力和危害
+
+and wield our inventive talents to improve the state of the world.
+来改善这个世界
+
+And robots are one of the most potent reminders of this responsibility.
+而机器人最能提醒我们这一点了
+
+I’ll see you next week.
+我 们 下 周 见
+
diff --git a/(字幕)全40集中英字幕文本/38. 计算机心理学 - Psychology of Computing.ass.txt b/(字幕)全40集中英字幕文本/38. 计算机心理学 - Psychology of Computing.ass.txt
new file mode 100644
index 0000000..cff7df2
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/38. 计算机心理学 - Psychology of Computing.ass.txt
@@ -0,0 +1,699 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+So, over the course of this series,
+在这个系列中,
+
+we’ve focused almost exclusively on computers –
+我们聊的话题几乎全是计算机-比如电路和算法
+
+the circuits and algorithms that make them tick.
+我们聊的话题几乎全是计算机-比如电路和算法
+
+Because...this is Crash Course Computer Science.
+毕竟这是*计算机*速成课
+
+But ultimately, computers are tools employed by people.
+但归根结底,计算机只是给人用的工具
+
+And humans are… well… messy.
+而人类有点... 乱
+
+We haven’t been designed by human engineers from the ground up
+人类不是被工程师设计的,没有具体性能规格
+
+with known performance specifications.
+人类不是被工程师设计的,没有具体性能规格
+
+We can be logical one moment and irrational the next.
+我们一会儿是理性的,一会儿是不理性的
+
+Have you ever gotten angry at your navigation system? Surfed wikipedia aimlessly?
+你有没有对导航生过气?或是漫无目的的刷维基百科?
+
+Begged your internet browser to load faster?
+求浏览器加载快点?
+
+Nicknamed your roomba?
+给扫地机器人取名?
+
+These behaviors are quintessentially human!
+这些是人类行为!
+
+To build computer systems that are useful, usable and enjoyable,
+为了做出使用愉快的计算机
+
+we need to understand the strengths and weaknesses of both computers and humans.
+我们需要了解计算机和人类的优缺点
+
+And for this reason, when good system designers are creating software,
+优秀的系统设计师在创造软件时
+
+they employ social, cognitive, behavioral, and perceptual psychology principles.
+会运用社会心理学,认知心理学,\N 行为心理学,感知心理学的原理
+
+No doubt you’ve encountered a physical or computer interface
+你肯定见过难用的物理界面/计算机界面 \N 阻碍你做事
+
+that was frustrating to use, impeding your progress.
+你肯定见过难用的物理界面/计算机界面 \N 阻碍你做事
+
+Maybe it was so badly designed that you couldn’t figure it out and just gave up.
+甚至糟糕到放弃使用
+
+That interface had poor usability.
+那个界面的"易用度"很差
+
+Usability is the degree to which a human-made artifact – like software
+"易用度"指的是人造物体,比如软件 \N 达到目的的效率有多高
+
+– can be used to achieve an objective effectively and efficiently.
+"易用度"指的是人造物体,比如软件 \N 达到目的的效率有多高
+
+To facilitate human work, we need to understand humans
+为了帮助人类工作,我们需要了解人类 \N - 怎么看,思考,反应和互动
+
+- from how they see and think, to how they react and interact.
+为了帮助人类工作,我们需要了解人类 \N - 怎么看,思考,反应和互动
+
+For instance, the human visual system has been well studied by Psychologists.
+举个例子,心理学家已经对 \N 人类的视觉系统做了全面的研究
+
+Like, we know that people are good at ordering intensities of colors.
+我们知道人类擅长给颜色强度排序
+
+Here are three.
+这里有三个颜色
+
+Can you arrange these from lightest to darkest?
+你能从浅色到深色排序吗?
+
+You probably don’t have to think too much about it.
+你可以轻易做到
+
+Because of this innate ability, color intensity is a great choice
+所以颜色强度很适合显示连续值
+
+for displaying data with continuous values.
+所以颜色强度很适合显示连续值
+
+On the other hand, humans are terrible at ordering colors.
+另一方面,人类很不擅长排序颜色
+
+Here’s another example for you to put in order.
+这是另一个例子
+
+is orange before blue, or after blue?
+把橙色放到蓝色前面还是后面?绿色放哪里?
+
+Where does green go?
+把橙色放到蓝色前面还是后面?绿色放哪里?
+
+You might be thinking we could order this by wavelength of light,
+你可能想通过光的波长排序 \N 就像彩虹一样,但这样太累了
+
+like a rainbow, but that’s a lot more to think about.
+你可能想通过光的波长排序 \N 就像彩虹一样,但这样太累了
+
+Most people are going to be much slower and error-prone at ordering.
+大部分人会很慢而且容易出错
+
+Because of this innate ineptitude of your visual system,
+由于视觉系统天生是这样
+
+displaying continuous data using colors can be a disastrous design choice.
+所以用不同颜色显示连续性数据,是个糟糕的选择
+
+You’ll find yourself constantly referring back to a color legend to compare items.
+你得经常看表格来对比数据
+
+However, colors are perfect for when the data is discrete with no ordering,
+然而,如果数据没有顺序,用不同颜色就很合适
+
+like categorical data.
+比如分类数据
+
+This might seem obvious, but you’d be amazed at
+也许这些看起来很明显 \N 但你会惊讶有多少设计把这些基本事情搞错
+
+how many interfaces get basic things like this wrong.
+也许这些看起来很明显 \N 但你会惊讶有多少设计把这些基本事情搞错
+
+Beyond visual perception, understanding human cognition helps us
+除了视觉 \N 理解人类的认知系统能帮我们设计更好的界面
+
+design interfaces that align with how the mind works.
+除了视觉 \N 理解人类的认知系统能帮我们设计更好的界面
+
+Like, humans can read, remember and process information more effectively
+比如,如果信息分块了 \N 会更容易读,更容易记
+
+when it's chunked–that is, when items are put together into small, meaningful groups.
+分块是指把信息分成更小,更有意义的块
+
+Humans can generally juggle seven items, plus-or-minus two, in short-term memory.
+人类的短期记忆能记住5到9个东西
+
+To be conservative, we typically see groupings of five or less.
+保守一点,分组一般是5个或更少
+
+That’s why telephone numbers are broken into chunks, like 317, 555, 3897.
+所以电话号码一般分块,比如 317-555-3897
+
+Instead of being ten individual digits that we’d likely forget, it’s three chunks,
+10个连续数可能会忘,分成3块更好记
+
+which we can handle better.
+10个连续数可能会忘,分成3块更好记
+
+From a computer's standpoint, this needlessly takes more time and space,
+从计算机的角度来看,分块更费时费空间
+
+so it's less efficient.
+效率更低
+
+But, it’s way more efficient for us humans –
+但这对人类更有效率
+
+a tradeoff we almost always make in our favor,
+- 碰到这种抉择时,我们总是以人类优先
+
+since we’re the ones running the show...for now.
+现在我们还是老大.. 暂时啦
+
+Chunking has been applied to computer interfaces for things
+界面设计用了分块 \N 比如下拉菜单 和带按钮的菜单栏
+
+like drop-down menu items and menu bars with buttons.
+界面设计用了分块 \N 比如下拉菜单 和带按钮的菜单栏
+
+It’d be more efficient for computers to just pack all those together, edge to edge
+对电脑来说,全部挤在一起更有效率
+
+– it’s wasted memory and screen real estate.
+分块浪费内存 浪费屏幕
+
+But designing interfaces in this way makes them much easier
+但这样设计更容易扫视,记住和访问
+
+to visually scan, remember and access.
+但这样设计更容易扫视,记住和访问
+
+Another central concept used in interface design is affordances.
+界面设计中另一个重点概念是"直观功能"
+
+According to Don Norman, who popularized the term in computing,
+Don Norman 让这个词在计算机界流行起来,根据他的说法
+
+"affordances provide strong clues to the operations of things.
+"直观功能 为如何操作物体提供线索
+
+Plates are for pushing.
+平板用来推
+
+Knobs are for turning.
+旋钮用来转
+
+Slots are for inserting things into.
+插槽用来插东西
+
+[...] When affordances are taken advantage of, the user knows what to do just by looking:
+[...]直观功能做的好,用户只需要看一眼就知道怎么做:
+
+no picture, label, or instruction needed."
+不需要图片,标签或指南来说明"
+
+If you’ve ever tried to pull a door handle, only to realize that you have to push it open,
+如果你拉过门把手打不开,然后意识到要推开才对
+
+you’ve discovered a broken affordance.
+那么你发现了一个坏掉的"直观功能"
+
+On the other hand, a door plate is a better design
+平板是更好的设计
+
+because it only gives you the option to push.
+因为只能推开
+
+Doors are pretty straightforward – if you need to put written instructions on them,
+门是简单的东西,如果你要贴指示让人们明白怎么用.
+
+you should probably go back to the drawing board.
+那么也许你应该重新设计
+
+Affordances are used extensively in graphical user interfaces,
+"直观功能"广泛用于图形界面
+
+which we discussed in episode 26.
+我们在第26集讨论过
+
+It’s one of the reasons why computers became so much easier to use than with command lines.
+这是图形界面比命令行更容易用的原因之一
+
+You don’t have to guess what things on-screen are clickable, because they look like buttons.
+你不用猜测屏幕上什么东西是可点的,\N 可点的会看起来像按钮
+
+They pop out, just waiting for you to press them!
+他们弹出来,只是等着你压他们!
+
+One of my favorite affordances, which suggests to users that an on-screen element is draggable,
+我最喜欢的"直观功能"之一,是向用户表明元素是可拖动的
+
+is knurling – that texture added to objects
+"滚花" - 一种视觉纹理
+
+to improve grip and show you where to best grab them.
+告诉用户哪里可以拖动
+
+This idea and pattern was borrowed from real world physical tools.
+这个点子来自现实世界中的工具
+
+Related to the concept of affordances is the psychology of recognition vs recall.
+和"直观功能"相关的一个心理学概念是 "认出与回想"
+
+You know this effect well from tests –
+如果你考过试,肯定感受过这个
+
+it's why multiple choice questions are easier than fill-in-the-blank ones.
+这就是为什么选择题比填空题容易
+
+In general, human memory is much better when it’s triggered by a sensory cue,
+一般来说,用感觉来触发记忆会容易得多
+
+like a word, picture or sound.
+比如文字,图片或声音
+
+That’s why interfaces use icons – pictorial representations of functions
+所以我们用图标代表功能
+
+– like a trash can for where files go to be deleted.
+- 比如"垃圾桶"图标 代表里面放着被删除的文件
+
+We don’t have to recall what that icon does, we just have to recognise the icon.
+我们不用去回想图标的功能是什么,只要能认出来就行了
+
+This was also a huge improvement over command line interfaces,
+比命令行好得多
+
+where you had to rely on your memory for what commands to use.
+命令行得依靠记忆来输命令
+
+Do I have to type "delete", or "remove", or... "trash", or… shoot, it could be anything!
+到底是输入"删除""移除""垃圾"还是"射出"?\N 可能是任何命令!
+
+It’s actually "rm" in linux,
+顺带一说,在 Linux 里删除文件的命令是 "rm"
+
+but anyway, making everything easy to discover and learn sometimes means slow to access,
+回到正题,\N 让所有菜单选项好找好记,有时候意味着用的时候会慢一些
+
+which conflicts with another psychology concept: expertise.
+这与另一个心理学概念冲突:"专业知识"
+
+As you gain experience with interfaces, you get faster,
+当你用界面熟悉之后,速度会更快一些
+
+building mental models of how to do things efficiently.
+建立如何高效完成事情的"心理模型"
+
+So, good interfaces should offer multiple paths to accomplish goals.
+所以 好的界面应该提供多种方法来实现目标
+
+A great example of this is copy and paste, which can be found in the edit dropdown menu
+一个好例子是复制粘贴,可以在"编辑"的下拉菜单中找到
+
+of word processors, and is also triggered with keyboard shortcuts.
+也可以用快捷键
+
+One approach caters to novices, while the other caters to experts, slowing down neither.
+一种适合新手,一种适合专家,两者都不耽误
+
+So, you can have your cake and eat it too!
+鱼和熊掌兼得!
+
+In addition to making humans more efficient,
+除了让人类做事更高效,
+
+we'd also like computers to be emotionally intelligent –
+我们也希望电脑能有一点情商
+
+adapting their behavior to respond appropriately
+能根据用户的状态做出合适地反应
+
+to their users' emotional state – also called affect.
+能根据用户的状态做出合适地反应
+
+That could make experiences more empathetic, enjoyable, or even delightful.
+让使用电脑更加愉快
+
+This vision was articulated by Rosalind Picard in her 1995 paper on Affective Computing,
+Rosalind Picard 在 1995 年关于"情感计算"的论文中,阐述了这一愿景
+
+which kickstarted an interdisciplinary field combining aspects
+这篇论文开创了心理学,社会科学和计算机科学的跨学科结合
+
+of psychology, social and computer sciences.
+这篇论文开创了心理学,社会科学和计算机科学的跨学科结合
+
+It spurred work on computing systems that could recognize,
+促进了让计算机理解人类情感的研究
+
+interpret, simulate and alter human affect.
+促进了让计算机理解人类情感的研究
+
+This was a huge deal, because we know emotion influences cognition and perception
+这很重要,因为情绪会影响日常活动
+
+in everyday tasks like learning, communication, and decision making.
+比如学习,沟通和决策
+
+Affect-aware systems use sensors, sometimes worn, that capture things like speech and
+情感系统会用传感器,录声音,
+
+video of the face, as well as biometrics, like sweatiness and heart rate.
+录像(你的脸)以及生物指标,比如出汗和心率
+
+This multimodal sensor data is used in conjunction with computational models that represent how
+得到的数据和计算模型结合使用
+
+people develop and express affective states, like happiness and frustration,
+模型会写明人类如何表达情感,怎么是快乐 怎么是沮丧
+
+and social states, like friendship and trust.
+以及社交状态,比如友谊和信任
+
+These models estimate the likelihood of a user being in a particular state,
+模型会估算用户的情绪
+
+and figure out how to best respond to that state,
+以及怎样以最好的回应用户
+
+in order to achieve the goals of the system.
+以达到目标
+
+This might be to calm the user down, build trust, or help them get their homework done.
+比如让用户冷静下来,建立信任,或帮忙完成作业
+
+A study, looking at user affect, was conducted by Facebook in 2012.
+Facebook 在 2012 年进行了一项"影响用户"的研究
+
+For one week, data scientists altered the content
+数据科学家在一个星期内
+
+on hundreds of thousands of users' feeds.
+修改了很多用户 时间线上显示的内容
+
+Some people were shown more items with positive content,
+有些人会看到更多积极向上的内容
+
+while others were presented with more negative content.
+有些人会看到更多负面消极的内容
+
+The researchers analyzed people's posts during that week,
+研究人员分析了那一周内人们的发帖
+
+and found that users who were shown more positive content,
+发现看到积极向上内容的用户,
+
+tended to also post more positive content.
+发的帖子往往更正面
+
+On the other hand, users who saw more negative content, tended to have more negative posts.
+另一方面,看到负面内容的用户,发的内容也更负面
+
+Clearly, what Facebook and other services show you
+显然,Facebook和其他网站向你展示的内容
+
+can absolutely have an affect on you.
+绝对会对你有影响
+
+As gatekeepers of content, that’s a huge opportunity and responsibility.
+作为信息的守门人,这是巨大的机会 同时也是责任
+
+Which is why this study ended up being pretty controversial.
+研究结果相当有争议性.
+
+Also, it raises some interesting questions about
+而且它还产生了一个有趣的问题:
+
+how computer programs should respond to human communication.
+计算机程序如何回应人类
+
+If the user is being negative, maybe the computer shouldn’t be
+如果用户的情绪比较负面,也许电脑不应该
+
+annoying by responding in a cheery, upbeat manner.
+以一种烦人的 "你要振作起来呀" 的态度回答问题.
+
+Or, maybe the computer should attempt to evoke a positive response,
+或者,也许电脑应该试着积极正面的回应用户
+
+even if it's a bit awkward.
+即使这有点尴尬.
+
+The "correct" behavior is very much an open research question.
+什么行为是"正确的",是个开放性的研究问题
+
+Speaking of Facebook, it’s a great example of computer-mediated communication, or CMC,
+既然说到Facebook,\N 这是一个"以计算机为媒介沟通"的好例子,简称 "CMC"
+
+another large field of research.
+也是一个很大的研究领域
+
+This includes synchronous communication – like video calls, where all participants are online
+这包括同步通信 - 所有参与者同时在线进行视频通话
+
+simultaneously – as well as asynchronous communication – like tweets, emails, and
+以及异步通信 - 比如推特,邮件,
+
+text messages, where people respond whenever they can or want.
+短信,人们可以随时随地回复信息
+
+Researchers study things like the use of emoticons, rules such as turn-taking,
+研究人员还研究用户怎么用表情包,怎么轮换发言,
+
+and language used in different communication channels.
+以及用不同沟通渠道时,用词有什么区别.
+
+One interesting finding is that people exhibit higher levels of self-disclosure
+一个有趣的发现是,比起面对面沟通,
+
+– that is, reveal personal information –in computer-mediated conversations,
+人们更愿意在网上透露自己的信息
+
+as opposed to face-to-face interactions.
+人们更愿意在网上透露自己的信息
+
+So if you want to build a system that knows how many hours a user truly spent
+所以如果想知道用户 \N 真正花了多少小时看"大英烘培大赛"(电视节目)
+
+watching The Great British Bakeoff, it might be better to build a chatbot
+比起做个带脸的虚拟助理 \N 做 聊天机器人 是个更好的选择
+
+than a virtual agent with a face.
+比起做个带脸的虚拟助理 \N 做 聊天机器人 是个更好的选择
+
+Psychology research has also demonstrated that eye gaze is
+心理学研究也表明,如果想说服,讲课,或引起注意 \N 眼神注视非常重要
+
+extremely important in persuading, teaching and getting people's attention.
+心理学研究也表明,如果想说服,讲课,或引起注意 \N 眼神注视非常重要
+
+Looking at others while talking is called mutual gaze.
+在谈话时看着别人叫 相互凝视
+
+This has been shown to boost engagement and help achieve the goals of a conversation,
+这被证明可以促进参与感 帮助实现谈话目标,
+
+whether that’s learning, making a friend, or closing a business deal.
+不管是学习,交朋友,还是谈生意
+
+In settings like a videotaped lecture, the instructor rarely, if ever, looks into the
+在录像讲座中,老师很少直视相机 \N 一般是看在场学生
+
+camera, and instead generally looks at the students who are physically present.
+在录像讲座中,老师很少直视相机 \N 一般是看在场学生
+
+That’s ok for them, but it means people who
+对他们没问题,但这会让在线看视频的人 没什么参与感
+
+watch the lectures online have reduced engagement.
+对他们没问题,但这会让在线看视频的人 没什么参与感
+
+In response, researchers have developed computer vision
+为此,研究人员开发了计算机视觉和图形软件 \N 来纠正头部和眼睛
+
+and graphics software that can warp the head and eyes,
+为此,研究人员开发了计算机视觉和图形软件 \N 来纠正头部和眼睛
+
+making it appear as though the instructor is looking into the camera
+视频时会觉得对方在直视摄像头,看着他们
+
+– right at the remote viewer.
+视频时会觉得对方在直视摄像头,看着他们
+
+This technique is called augmented gaze.
+这叫"增强凝视"
+
+Similar techniques have also been applied to video conference calls, to correct for
+类似技术也用于视频会议
+
+the placement of webcams, which are almost always located above screens.
+纠正摄像头位置,因为摄像头几乎总在屏幕上方
+
+Since you’re typically looking at the video of your conversation partner,
+因为你一般会盯着屏幕上的另一方 \N 而不是盯着摄像头
+
+rather than directly into the webcam,
+因为你一般会盯着屏幕上的另一方 \N 而不是盯着摄像头
+
+you'll always appear to them as though you're looking downwards –
+所以视频里看起来像在向下看
+
+breaking mutual gaze – which can create all kinds of
+没有相互凝视 - 这会导致各种不幸的副作用,比如权力不平衡
+
+unfortunate social side effects, like a power imbalance.
+没有相互凝视 - 这会导致各种不幸的副作用,比如权力不平衡
+
+Fortunately, this can be corrected digitally, and appear to participants
+幸运的是 可以用软件修正
+
+as though you're lovingly gazing into their eyes.
+看起来像在凝视着对方的眼睛
+
+Humans also love anthropomorphizing objects, and computers are no exception,
+人类也喜欢"拟人化"的物体,对计算机也不例外
+
+especially if they move, like our Robots from last episode.
+特别是会动的计算机,比如上集说的机器人
+
+Beyond industrial uses that prevailed over the last century,
+在过去一个世纪,除了工业用途机器人
+
+robots are used increasingly in medical, education, and entertainment settings,
+有越来越多机器人用于医疗,教育和娱乐 \N 它们经常和人类互动
+
+where they frequently interact with humans.
+有越来越多机器人用于医疗,教育和娱乐 \N 它们经常和人类互动
+
+Human-Robot Interaction – or HRI
+人机交互,简称 HRI
+
+– is a field dedicated to studying these interactions,
+- 是一个研究人类和机器人交互的领域,
+
+like how people perceive different robots behaviors and forms,
+比如人类如何感受 机器人的不同形式和不同行为
+
+or how robots can interpret human social cues to blend in and not be super awkward.
+或是机器人如何明白人类暗示来社交,而不是尴尬的互动
+
+As we discussed last episode, there’s an ongoing quest to make
+正如上集说的,我们有追求
+
+robots as human-like in their appearance and interactions as possible.
+把机器人的外表和行为,做得尽可能像人一样
+
+When engineers first made robots in the 1940s and 50s, they didn’t look very human at all.
+工程师在1940 1950年代刚开始做机器人时,\N 看起来完全不像人
+
+They were almost exclusively industrial machines with no human-likeness.
+是完完全全的工业机器
+
+Over time, engineers got better and better at making human-like robots
+随着时间的推移,工程师越来越擅长做类人机器人
+
+– they gained heads and walked around on two legs,
+它们有头,而且用两条腿走路
+
+but… they couldn't exactly go to restaurants and masquerade as humans.
+但它们做不到伪装成人类去餐馆点餐
+
+As people pushed closer and closer to human likeness,
+随着机器人可以做得越来越像人类
+
+replacing cameras with artificial eyeballs, and covering metal chassis with synthetic flesh,
+用人造眼球代替摄像头,用人工肌肉盖住金属骨架
+
+things started to get a bit... uncanny...
+事情会开始变得有些.. 奇怪.. \N 引起一种怪异不安的感觉
+
+eliciting an eerie and unsettling feeling.
+事情会开始变得有些.. 奇怪.. \N 引起一种怪异不安的感觉
+
+This dip in realism between almost-human and actually-human became known as the uncanny valley.
+这个"几乎像人类"和"真的人类"之间的小曲线,叫 "恐怖谷"
+
+There’s debate over whether robots should act like humans too.
+对于机器人是否应该有人类一样的行为,也存在争议
+
+Lots of evidence already suggests that even if robots don’t act like us,
+很多证据表明,即使机器人的行为不像人类
+
+people will treat them as though they know our social conventions.
+人类也会用社交习俗对待它们
+
+And when they violate these rules – such as not apologizing if they cut in front of
+而当机器人违反习俗时 - 比如插队或踩了脚不道歉 \N 人们会很生气!
+
+you or roll over your foot – people get really mad!
+而当机器人违反习俗时 - 比如插队或踩了脚不道歉 \N 人们会很生气!
+
+Without a doubt, psychology and computer science are a potent combination,
+毫无疑问,心理学+计算机科学是强大的组合
+
+and have tremendous potential to affect our everyday lives.
+可以影响日常生活的巨大潜力
+
+Which leaves us with a lot of question, like you might lie to your laptop,
+这也带来了很多开放式问题,比如你可能会对计算机撒谎
+
+but should your laptop lie to you?
+但计算机应不应该对你撒谎?
+
+What if it makes you more efficient or happy?
+如果撒谎能让你更高效更快乐呢?
+
+Or should social media companies curate the content they show you to
+或社交媒体公司 \N 是否应该精心挑选展示给你的内容
+
+make you stay on their site longer to make you buy more products?
+让你在网站上多待一会儿,买更多东西?
+
+They do by the way.
+顺带一说,他们的确有这样做
+
+These types of ethical considerations aren’t easy to answer, but psychology can at least
+这类道德问题不容易回答,但心理学至少可以
+
+help us understand the effects and implications of design choices in our computing systems.
+帮助我们理解不同选择 带来的影响和意义
+
+But, on the positive side, understanding the psychology behind design
+但从积极的方面来说,了解设计背后的心理学
+
+might lead to increased accessibility.
+能增加易用性
+
+A greater number of people can understand and use computers
+让更多人可以明白和使用电脑,如今计算机比以往更加直观
+
+now that they're more intuitive than ever.
+让更多人可以明白和使用电脑,如今计算机比以往更加直观
+
+Conference calls and virtual classrooms are becoming more agreeable experiences.
+线上会议和虚拟教室的体验越来越好
+
+As robot technology continues to improve, the population
+随着机器人技术不断提高,互动也会越来越舒适
+
+will grow more comfortable in those interactions.
+随着机器人技术不断提高,互动也会越来越舒适
+
+Plus, thanks to psychology, we can all bond over our love of knurling.
+另外,感谢心理学,让我们能分享对"滚花"的热爱
+
+I’ll see you next week.
+我们下周见
+
diff --git a/(字幕)全40集中英字幕文本/39. 教育科技-Educational Technology.ass.txt b/(字幕)全40集中英字幕文本/39. 教育科技-Educational Technology.ass.txt
new file mode 100644
index 0000000..ae270fa
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/39. 教育科技-Educational Technology.ass.txt
@@ -0,0 +1,690 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!\N
+
+One of the most dramatic changes enabled by computing technology
+计算机带来的最大改变之一 \N 是信息的创造和传播能力
+
+has been the creation and widespread availability of information.
+计算机带来的最大改变之一 \N 是信息的创造和传播能力
+
+There are currently 1.3 billion websites on the internet.
+目前有13亿个网站在互联网上
+
+Wikipedia alone has five million English language articles,
+仅维基百科就有500万篇英文文章
+
+spanning everything from the Dancing Plague of 1518
+涵盖从"1518年的舞蹈瘟疫"
+
+to proper toilet paper roll orientation.
+到"正确的纸卷方向"
+
+Every day, Google serves up four billion searches to access this information.
+每天,Google提供40亿次搜索来访问这些信息
+
+And every minute, 3.5 million videos are viewed on Youtube,
+Youtube上每分钟有350万个视频被观看.
+
+and 400 hours of NEW video get uploaded by users.
+每分钟用户上传400小时的新视频
+
+Lots of these views are people watching Gangnam Style and Despacito.
+很多观看量都是 Gangnam Style 和 Despacito
+
+But another large percentage could be considered educational,
+但剩下的 大部分是教育型内容
+
+like what you’re doing right now.
+就像你现在看的这个.
+
+This amazing treasure trove of information can be accessed
+如今只要手机上点几下 就能访问到这些宝藏
+
+with just a few taps on your smartphone.
+如今只要手机上点几下 就能访问到这些宝藏
+
+Anywhere, anytime.
+任何时间,任何地点
+
+But, having information available isn’t the same as learning from it.
+但能获取到信息和学习不是一回事
+
+To be clear, we here at Crash Course we are big fans of interactive in-class learning,
+先说清楚,我们 Crash Course 喜欢互动式课堂学习
+
+directed conversations, and hands-on experiences as powerful tools for learning.
+课上提问,以及上手实践,它们是很棒的学习途径
+
+But we also believe in the additive power of educational technology
+但我们也相信教育型技术在课内课外带来的帮助
+
+both inside and outside the classroom.
+但我们也相信教育型技术在课内课外带来的帮助
+
+So today we’re going to go a little meta,
+今天我们要在这个教育型视频里 \N 聊教育型科技
+
+and talk specifically about how computer science
+具体讲解计算机怎么帮助我们学习
+
+can support learning with educational technology.
+具体讲解计算机怎么帮助我们学习
+
+Technology, from paper and pencil to recent machine-learning-based intelligent systems,
+从纸和笔 到用机器学习的智能系统,
+
+has been supporting education for millennia -
+科技几千年来一直在辅助教育
+
+even as early as humans drawing cave paintings
+甚至早期人类 在洞穴里画狩猎场景也是为了后代
+
+to record hunting scenes for posterity.
+甚至早期人类 在洞穴里画狩猎场景也是为了后代
+
+Teaching people at a distance has long been a driver of educational technology.
+远距离教育一直推动着教育科技的发展
+
+For example, around 50 CE, St. Paul was sending epistles
+例如公元前50年左右,圣保罗就发书信 \N 给亚洲设立的新教堂提供宗教课程
+
+that offered lessons on religious teachings
+例如公元前50年左右,圣保罗就发书信 \N 给亚洲设立的新教堂提供宗教课程
+
+for new churches being set up in Asia.
+例如公元前50年左右,圣保罗就发书信 \N 给亚洲设立的新教堂提供宗教课程
+
+Since then, several major waves of technological advances
+从那以后,有几大技术浪潮,自称要改变教育
+
+have each promised to revolutionize education,
+从那以后,有几大技术浪潮,自称要改变教育
+
+from radio and television, to DVDs and laserdiscs.
+从广播和电视,到DVD和光碟
+
+In fact, as far back as 1913, Thomas Edison predicted,
+事实上,在1913年 托马斯·爱迪生 预测说
+
+"Books will soon be obsolete in the schools…
+"书籍很快会过时.. 用影片来教授所有知识是可能的
+
+It is possible to teach every branch of human knowledge with the motion picture.
+"书籍很快会过时.. 用影片来教授所有知识是可能的
+
+Our school system will be completely changed in the next ten years."
+学校体系将在未来十年彻底改变"
+
+Of course, you know that didn’t happen.
+当然,他的预测没有成真
+
+But distributing educational materials in formats like video has become more and more popular.
+但发布教育视频变得越来越流行
+
+Before we discuss what educational technology research can do for you,
+在讨论教育技术可以帮你做什么之前
+
+there are some simple things research has shown you can do,
+有研究表明 有些简单事情 \N 可以显著提高学习效率
+
+while watching an educational video like this one,
+有研究表明 有些简单事情 \N 可以显著提高学习效率
+
+significantly increase what you learn and retain.
+有研究表明 有些简单事情 \N 可以显著提高学习效率
+
+First, video is naturally adjustable, so make sure the pacing is right for you,
+1. 把速度调整到适合你,YouTube 的速度设置在右下角
+
+by using the video speed controls.
+1. 把速度调整到适合你,YouTube 的速度设置在右下角
+
+On YouTube, you can do that in the right hand corner of the screen.
+1. 把速度调整到适合你,YouTube 的速度设置在右下角
+
+You should be able to understand the video and have enough time to reflect on the content.
+让你能理解视频 有足够的时间思考
+
+Second, pause!
+2. 暂停!在困难的部分暂停
+
+You learn more if you stop the video at the difficult parts.
+2. 暂停!在困难的部分暂停
+
+When you do, ask yourself questions about what you’ve watched, and see if you can answer.
+问自己一些问题,看能不能回答
+
+Or ask yourself questions about what might be coming up next,
+或想想视频接下来可能讲什么 \N 然后继续播放,看猜对没有
+
+and then play the video to see if you’re right.
+或想想视频接下来可能讲什么 \N 然后继续播放,看猜对没有
+
+Third, try any examples or exercises that are presented in the video on your own.
+3. 做视频中的提供的练习
+
+Even if you aren’t a programmer, write pseudocode on paper,
+即使不是程序员,你也可以在纸上写伪代码,或试试学编程
+
+and maybe even give coding a try.
+即使不是程序员,你也可以在纸上写伪代码,或试试学编程
+
+Active learning techniques like these
+这些主动学习的技巧已被证明 \N 可以把学习效率提升10倍或以上
+
+have been shown to increase learning by a factor of ten.
+这些主动学习的技巧已被证明 \N 可以把学习效率提升10倍或以上
+
+And if you want more information like this - we’ve got a whole course on it here.
+如果想学学习技巧,有整个系列专门讲这个
+
+The idea of video as a way to spread quality education
+把高质量教育内容做成视频传播 \N 在过去一个世纪吸引了很多人
+
+has appealed to a lot of people over the last century.
+把高质量教育内容做成视频传播 \N 在过去一个世纪吸引了很多人
+
+What’s just the latest incarnation of this idea
+这个老想法的新化身
+
+came in the form of Massive Open Online Courses, or MOOCs.
+以"大型开放式在线课程"(MOOC)的形式出现
+
+In fact, the New York Times declared 2012 the Year of the MOOC!
+纽约时报宣称 2012 年是 MOOC 年!
+
+A lot of the early forms were just videos of lectures from famous professors.
+很多早期视频 直接录制著名教授上课
+
+But for a while, some people thought this might mean the end of universities as we know them.
+有段时间,有些人以为大学要终结了
+
+Whether you were worried about this idea or excited by it,
+不管你是担心还是开心,这暂时还没成为现实
+
+that future also hasn’t really come to pass
+不管你是担心还是开心,这暂时还没成为现实
+
+and most of the hype has dissipated.
+现在热度也淡去了
+
+This is probably mostly because when you try to scale up learning
+这可能是因为加大规模时 同时教百万名学生
+
+using technology to include millions of students simultaneously
+这可能是因为加大规模时 同时教百万名学生
+
+with small numbers of instructional staff - or even none
+但老师数量很少,甚至完全没有老师
+
+- you run into a lot of problems.
+- 会遇到很多问题
+
+Fortunately, these problems have intrigued computer scientists and more specifically,
+幸运的是,这引起了计算机科学家,\N 或具体一点 "教育科技家"的兴趣
+
+educational technologists, who are finding ways to solve them.
+他们在想办法解决这些问题
+
+For example, effective learning involves getting timely and relevant feedback
+比如,为了有效学习,学生要及时获得反馈
+
+but how do you give good feedback
+但如果有几百万学生,只有一名老师,
+
+when you have millions of learners and only one teacher?
+怎么提供好的反馈?
+
+For that matter, how does a teacher grade a million assignments?
+一个老师怎么给一百万份作业打成绩?
+
+Solving many of these problems means creating hybrid, human-technology systems.
+为了解决问题,很多时候需要把科技和人类都用上
+
+A useful, but controversial insight,
+一种有用 但有些争议的做法是
+
+was that students could be a great resource to give each other feedback.
+学生互相之间提供反馈
+
+Unfortunately, they’re often pretty bad at doing so –
+不幸的是,学生一般做不好
+
+they’re neither experts in the subject matter, nor teachers.
+他们既不是专家也不是老师
+
+However, we can support their efforts with technology.
+但我们可以用技术来帮助他们
+
+Like, by using algorithms, we can match perfect learning partners together,
+比如通过算法,从数百万个选择里 \N 匹配出最完美的学习伙伴
+
+out of potentially millions of groupings.
+比如通过算法,从数百万个选择里 \N 匹配出最完美的学习伙伴
+
+Also, parts of the grading can be done with automated systems while humans do the rest.
+另外,有些部分可以机器打分,剩下的让人类打分
+
+For instance, computer algorithms that grade the
+例如,给 SAT 写作部分打分的电脑算法
+
+writing portions of the SATs have been found to be
+已被证实和人工打分一样准确
+
+just as accurate as humans hired to grade them by hand.
+已被证实和人工打分一样准确
+
+Other algorithms are being developed that provide personalized learning experiences,
+还有些算法提供个性化学习体验
+
+much like Netflix’s personalized movie recommendations or Google’s personalized search results.
+类似于 Netflix 的电影推荐 \N 或 Google 的个性化搜索结果
+
+To achieve this, the software needs to understand what a learner knows and doesn’t know.
+为了个性化推荐,\N 软件需要了解用户知道什么,不知道什么
+
+With that understanding, the software can present the right material, at the right time,
+在正确的时间提供正确的资料,
+
+to give each particular learner practice on the things that are hardest for them,
+让用户练习没理解的难的部分
+
+rather than what they’re already good at.
+而不是给出用户已经学会的内容
+
+Such systems – most often powered by Artificial Intelligence –
+这种系统一般用 AI 实现
+
+are broadly called Intelligent Tutoring Systems.
+泛称叫法是"智能辅导系统"
+
+Let’s break down a hypothetical system that follows common conventions.
+我们现在讲一个假想的辅导系统
+
+So, imagine a student is working on this algebra problem in our hypothetical tutoring software.
+假设学生在这个假想的辅导系统中,研究一个代数问题
+
+The correct next step to solve it, is to subtract both sides by 7.
+正确的下一步是两边-7
+
+The knowledge required to do this step can be represented by something called a production rule.
+我们可以用 "判断规则" 来表示这一步
+
+These describe procedures as IF-THEN statements.
+用 IF-THEN 语句来描述
+
+The pseudo code of a production rule for this step would say
+伪代码是
+
+IF there is a constant on the same side as the variable,
+*如果* 变量和常数在同一边
+
+THEN subtract that constant from both sides.
+*那么* 两侧都减去这个常数
+
+The cool thing about production rules is that they can also be used
+"判断规则" 酷的地方是也可以用来
+
+to represent common mistakes a student might make.
+代表学生的常犯错误
+
+These production rules are called "buggy rules".
+这些"判断规则"叫"错误规则"
+
+For example, instead of subtracting the constant,
+例如,学生可能不去减常数
+
+the student might mistakenly try to subtract the coefficient.
+而是去减系数
+
+No can do!
+这不行!
+
+It’s totally possible that multiple competing production rules
+学生做完一个步骤后可能触发多个"判断规则"
+
+are triggered after a student completes a step –
+学生做完一个步骤后可能触发多个"判断规则"
+
+it may not be entirely clear what misconception has led to a student’s answer.
+系统不能完全弄清 是什么原因让学生选了那个答案
+
+So, production rules are combined with an algorithm that selects the most likely one.
+所以"判断规则"会和算法结合使用,判断可能原因
+
+That way, the student can be given a helpful piece of feedback.
+让学生得到有用反馈
+
+These production rules, and the selection algorithm,
+"判断规则"+选择算法,组合在一起成为 "域模型"
+
+combine to form what’s called a Domain Model,
+"判断规则"+选择算法,组合在一起成为 "域模型"
+
+which is a formal representation of the knowledge,
+它给知识,解决步骤和一门学科 比如代数,\N 用一种"正式写法"来表示
+
+procedures and skills of a particular discipline - like algebra.
+它给知识,解决步骤和一门学科 比如代数,\N 用一种"正式写法"来表示
+
+Domain models can be used to assist learners on any individual problem,
+域模型可以用来 帮助学习者解决特定问题
+
+but they’re insufficient for helping learners move through a whole curriculum
+但它无法带着学习者 \N 以正确顺序搞定整个学科该上的所有课程
+
+because they don’t track any progress over time.
+因为域模型不记录进度
+
+For that, intelligent tutoring systems build and maintain a student model
+因此智能辅导系统 负责创建和维护学生模型
+
+– one that tracks, among other things, what production rules a student has mastered,
+- 记录学生已经掌握的判断规则
+
+and where they still need practice.
+以及还需练习的生疏部分
+
+This is exactly what we need to properly personalize the tutor.
+这正是个性化辅导系统需要的。
+
+That doesn’t sound so hard,
+听起来好像不难,
+
+but it’s actually a big challenge to figure out what a student knows and doesn’t know
+但只靠学生对一些问题的回答,\N 来弄清学生知道什么,不知道什么,是很大的挑战
+
+based only on their answers to problems.
+但只靠学生对一些问题的回答,\N 来弄清学生知道什么,不知道什么,是很大的挑战
+
+A common technique for figuring this out is Bayesian knowledge tracing.
+"贝叶斯知识追踪" 常用来解决这个问题
+
+The algorithm treats student knowledge as a set of latent variables,
+这个算法把学生的知识 当成一组隐藏变量
+
+which are variables whose true value is hidden from
+这些变量的值,对外部是不可见的
+
+an outside observer, like our software.
+比如我们的软件
+
+This is also true in the physical world,
+这在现实中也是一样的
+
+where a teacher would not know for certain whether
+老师无法知道 学生是否完全掌握了某个知识点
+
+a student knows something completely.
+老师无法知道 学生是否完全掌握了某个知识点
+
+Instead, they might probe that knowledge using a test
+老师会出考题,测试学生能否答对
+
+to see if the student gets the right answer.
+老师会出考题,测试学生能否答对
+
+Similarly, Bayesian knowledge tracing updates its estimate of the students’ knowledge
+同样,"贝叶斯知识追踪" \N 会看学生答题的正确度,更新学生掌握程度的估算值
+
+by observing the correctness of each interaction using that skill.
+同样,"贝叶斯知识追踪" \N 会看学生答题的正确度,更新学生掌握程度的估算值
+
+To do this, the software maintains four probabilities..
+它会记录四个概率
+
+First is the probability that a student has learned how to do a particular skill.
+首先是 "学生已经学会的概率"
+
+For example, the skill of subtracting constants from both sides of an algebraic equation.
+比如从代数方程的两边减去常数
+
+Let’s say our student correctly subtracts both sides by 7.
+假设学生正确将两边-7
+
+Because she got the problem correct,
+做对了
+
+we might assume she knows how to do this step.
+我们可以假设她知道怎么做
+
+But there’s also the possibility that the student got it correct by accident,
+但也有可能她是瞎蒙的
+
+and doesn’t actually understand how to solve the problem.
+没有真的学会怎么解决问题
+
+This is the probability of guess.
+这叫 "瞎猜的概率"
+
+Similarly, if the student gets it wrong,
+类似的,如果学生答错了,
+
+you might assume that she doesn’t know how to do the step.
+你可能会假设她不会做
+
+But, there’s also the possibility that she knows it,
+但她可能知道答案,只是不小心犯了个错
+
+but made a careless error or other slip-up.
+但她可能知道答案,只是不小心犯了个错
+
+This is called the probability of slip.
+这叫 "失误的概率"
+
+The last probability that Bayesian knowledge tracing calculates
+最后一个概率
+
+is the probability that the student started off the problem
+是学生一开始不会做,\N 但是在解决问题的过程中,学会了怎么做
+
+not knowing how to do the step, but learned how to do
+是学生一开始不会做,\N 但是在解决问题的过程中,学会了怎么做
+
+it as a result of working through the problem.
+是学生一开始不会做,\N 但是在解决问题的过程中,学会了怎么做
+
+This is called the probability of transit.
+这叫 "做题过程中学会的概率"
+
+These four probabilities are used in a set of equations that update the student model,
+有一组方程,会用这四个概率,更新学生模型
+
+keeping a running assessment for each skill the student is supposed to know.
+对学生应该学会的每项技能进行持续评估
+
+The first equation asks:
+第一个等式问:
+
+what’s the probability that the student has learned a particular skill
+学生已经知道某技能的概率是多少?
+
+which takes into account the probability that it was
+等式里有
+
+already learned previously and the probability of transit.
+"之前已经学会的概率"和"做题过程中学会的概率"
+
+Like a teacher, our estimate of this probability that it was already learned previously
+就像老师一样,"之前已经学会的概率"
+
+depends on whether we observe a student getting a question correct or incorrect,
+取决于学生回答问题正确与否,
+
+and so we have these two equations to pick from.
+回答正确和错误分别有2个公式
+
+After we compute the right value, we plug it into our first equation,
+算出结果之后,我们把结果放到第一个方程
+
+updating the probability that a student has learned a particular skill,
+更新"之前已经学会的概率"
+
+which then gets stored in their student model.
+然后存到学生模型里.
+
+Although there are other approaches,
+虽然存在其他方法,
+
+intelligent tutoring systems often use Bayesian knowledge tracing
+但"智能辅导系统"通常用 贝叶斯知识追踪
+
+to support what’s called mastery learning, where students practice skills,
+让学生练习技能,直到掌握
+
+until they’re deeply understood.
+让学生练习技能,直到掌握
+
+To do this most efficiently, the software selects the
+为了高效做到这点,软件要选择合适的问题
+
+best problems to present to the student to achieve mastery,
+呈现给学生,让学生学
+
+what’s called adaptive sequencing,
+这叫:自适应式程序
+
+which is one form of personalization.
+个性化算法的形式之一
+
+But, our example is still just dealing with data from one student.
+但我们的例子只是一个学生的数据
+
+Internet-connected educational apps or sites
+现在有 App 或网站
+
+now allow teachers and researchers the ability
+让教师和研究人员 收集上百万学习者的数据
+
+to collect data from millions of learners.
+让教师和研究人员 收集上百万学习者的数据
+
+From that data, we can discover things like common pitfalls and where students get frustrated.
+从数据中可以发现常见错误\N 一般哪里难倒学生
+
+Beyond student responses to questions,
+除了学生的回答,还可以看回答前暂停了多久
+
+this can be done by looking at how long they pause
+除了学生的回答,还可以看回答前暂停了多久
+
+before entering an answer, where they speed up a video,
+哪个部分加速视频,
+
+and how they interact with other students on discussion forums.
+以及学生如何在论坛和其他人互动
+
+This field is called Educational Data Mining,
+这个领域叫 "教育数据挖掘"
+
+and it has the ability to use all those face palms and "ah ha" moments
+它能用上学生所有的"捂脸"和"啊哈"时刻
+
+to help improve personalized learning in the future.
+帮助改善未来的个性化学习
+
+Speaking of the future, educational technologists have often
+谈到未来,教育技术人员经常从科幻小说中获得灵感
+
+drawn inspiration for their innovations from science fiction.
+谈到未来,教育技术人员经常从科幻小说中获得灵感
+
+In particular, many researchers were inspired by the future envisioned in the book
+具体来说,Neal Stephenson 的"钻石时代"这本书\N 激励了很多研究人员
+
+"The Diamond Age" by Neal Stephenson.
+具体来说,Neal Stephenson 的"钻石时代"这本书\N 激励了很多研究人员
+
+It describes a young girl who learns from a book
+里面说一个年轻女孩从书中学习
+
+that has a set of virtual agents who interact with her
+书中有一些虚拟助手会和她互动,教她知识
+
+in natural language acting as coaches, teachers,
+书中有一些虚拟助手会和她互动,教她知识
+
+and mentors who grow and change with her as she grows up.
+这些助手和她一起成长
+
+They can detect what she knows and how’s she’s feeling,
+直到她学会了什么,以及感觉如何,
+
+and give just the right feedback and support to help her learn.
+给她正确的反馈和支持,帮助她学习
+
+Today, there are non-science-fiction researchers, such as Justine Cassell,
+如今 有非科幻小说研究者,比如 贾斯汀卡塞尔,
+
+crafting pedagogical virtual agents
+在制作虚拟教学助手
+
+that can "exhibit the verbal and bodily behaviors found in
+助手可以"像人类一样沟通 有人类一样的行为
+
+conversation among humans, and in doing so, build trust,
+在陪伴过程中和学习者建立信任,
+
+rapport and even friendship with their human students."
+相处融洽,甚至和人类学生成为朋友"
+
+Maybe Crash Course in 2040 will have a little John Green A.I. that lives on your iPhone 30.
+2040年的"速成课" \N 可能会有一个 John Green AI,活在你的 iPhone 30 上
+
+Educational technology and devices are now moving off of laptop and desktop computers,
+教育科技和设备 \N如今在逐渐扩展到笔记本和台式电脑之外
+
+onto huge tabletop surfaces, where students can collaborate in groups,
+比如巨大桌面设备,让学生可以团队合作
+
+and also tiny mobile devices, where students can learn on the go.
+以及小型移动设备,让学生路上也能学习
+
+Virtual reality and augmented reality are also getting people excited
+"虚拟现实"和"增强现实"也让人们兴奋不已
+
+and enabling new educational experiences for learners –
+它们可以为学习者提供全新的体验 -
+
+diving deep under the oceans, exploring outer space,
+深潜海洋,探索太空,
+
+traveling through the human body, or interacting with cultures
+漫游人体,或是和现实中难以遇见的生物互动
+
+they might never encounter in their real lives.
+漫游人体,或是和现实中难以遇见的生物互动
+
+If we look far into the future, educational interfaces might disappear entirely,
+如果猜想遥远的未来,教育可能会完全消失,
+
+and instead happen through direct brain learning,
+直接在大脑层面进行
+
+where people can be uploaded with new skills, directly into their brains.
+把新技能直接下载到大脑
+
+This might seem really far fetched,
+这看起来可能很遥远,
+
+but scientists are making inroads already - such as detecting
+但科学家们已经在摸索 - 比如
+
+whether someone knows something just from their brain signals.
+仅仅通过检测大脑信号,得知某人是否知道什么
+
+That leads to an interesting question:
+这带来了一个有趣的问题:
+
+if we can download things INTO our brains,
+如果我们可以把东西下载到大脑里
+
+could we also upload the contents of our brains?
+我们能不能上传大脑里的东西?
+
+We’ll explore that in our series finale next week about the far future of computing.
+下周的最后一集,我们会讨论计算的未来
+
+I'll see you then.
+到时见
+
diff --git a/(字幕)全40集中英字幕文本/4. 二进制-Representing Numbers and Letters with Binary.ass.txt b/(字幕)全40集中英字幕文本/4. 二进制-Representing Numbers and Letters with Binary.ass.txt
new file mode 100644
index 0000000..15afbfc
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/4. 二进制-Representing Numbers and Letters with Binary.ass.txt
@@ -0,0 +1,549 @@
+Hi I'm Carrie Anne, this is Crash Course Computer Science
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+and today we're going to talk about how computers store and represent numerical data.
+今天,我们讲计算机如何存储和表示数字
+
+Which means we've got to talk about Math!
+所以会有一些数学
+
+But don't worry.
+不过别担心
+
+Every single one of you already knows exactly what you need to know to follow along.
+你们的数学水平绝对够用了
+
+So, last episode we talked about how transistors can be used to build logic gates,
+上集我们讲了,怎么用晶体管做逻辑门
+
+which can evaluate boolean statements.
+逻辑门可以判断布尔语句
+
+And in boolean algebra, there are only two, binary values: true and false.
+布尔代数只有两个值:True 和 False
+
+But if we only have two values,
+但如果只有两个值,我们怎么表达更多东西?
+
+how in the world do we represent information beyond just these two values?
+但如果只有两个值,我们怎么表达更多东西?
+
+That's where the Math comes in.
+这就需要数学了
+
+So, as we mentioned last episode, a single binary value can be used to represent a number.
+上集提到,1 个二进制值可以代表 1 个数
+
+Instead of true and false, we can call these two states 1 and 0 which is actually incredibly useful.
+我们可以把真和假 ,当做 1 和 0
+
+And if we want to represent larger things we just need to add more binary digits.
+如果想表示更多东西,加位数就行了
+
+This works exactly the same way as the decimal numbers that we're all familiar with.
+和我们熟悉的十进制一样
+
+With decimal numbers there are "only" 10 possible values a single digit can be; 0 through 9,
+十进制只有 10 个数(0到9)
+
+and to get numbers larger than 9 we just start adding more digits to the front.
+要表示大于 9 的数,加位数就行了
+
+We can do the same with binary.
+二进制也可以这样玩
+
+For example, let's take the number two hundred and sixty three.
+拿 263 举例
+
+What does this number actually represent?
+这个数字 "实际" 代表什么?
+
+Well, it means we've got 2 one-hundreds, 6 tens, and 3 ones.
+2 个 100 \N6 个 10 \N 3 个 1
+
+If you add those all together, we've got 263.
+加在一起,就是 263
+
+Notice how each column has a different multiplier.
+注意每列有不同的乘数
+
+In this case, it's 100, 10, and 1.
+100, 10, 1
+
+Each multiplier is ten times larger than the one to the right.
+每个乘数都比右边大十倍
+
+That's because each column has ten possible digits to work with, 0 through 9,
+因为每列有 10 个可能的数字(0到9)
+
+after which you have to carry one to the next column.
+如果超过 9,要在下一列进 1.
+
+For this reason, it's called base-ten notation, also called decimal since deci means ten.
+因此叫 "基于十的表示法" 或十进制
+
+AND Binary works exactly the same way, it's just base-two.
+二进制也一样,只不过是基于 2 而已
+
+That's because there are only two possible digits in binary - 1 and 0.
+因为二进制只有两个可能的数, 1 和 0
+
+This means that each multiplier has to be two times larger than the column to its right.
+意味着每个乘数必须是右侧乘数的两倍
+
+Instead of hundreds, tens, and ones, we now have fours, twos and ones.
+就不是之前的 100, 10, 1 \N 而是 4, 2, 1
+
+Take for example the binary number: 101.
+拿二进制数 101 举例
+
+This means we have 1 four, 0 twos, and 1 one.
+意味着有\N 1个 "4" \N 0个 "2" \N 1个 "1"
+
+Add those all together and we've got the number 5 in base ten.
+加在一起,得到十进制的 5
+
+But to represent larger numbers, binary needs a lot more digits.
+为了表示更大的数字,二进制需要更多位数
+
+Take this number in binary 10110111.
+拿二进制数 10110111 举例
+
+We can convert it to decimal in the same way.
+我们可以用相同的方法转成十进制
+
+We have 1 x 128, 0 x 64, 1 x 32, 1 x 16, 0 x 8, 1 x 4, 1 x 2, and 1 x 1.
+1 x 128 ,0 x 64 ,1 x 32 ,1 x 16 \N 0 x 8 ,1 x 4 ,1 x 2 ,1 x 1
+
+Which all adds up to 183.
+加起来等于 183
+
+Math with binary numbers isn't hard either.
+二进制数的计算也不难
+
+Take for example decimal addition of 183 plus 19.
+以十进制数 183 加 19 举例
+
+First we add 3 + 9, that's 12, so we put 2 as the sum and carry 1 to the ten's column.
+首先 3 + 9,得到 12,然后位数记作 2,向前进 1
+
+Now we add 8 plus 1 plus the 1 we carried, thats 10, so the sum is 0 carry 1.
+现在算 8+1+1=10,所以位数记作0,再向前进 1
+
+Finally we add 1 plus the 1 we carried, which equals 2.
+最后 1+1=2,位数记作2
+
+So the total sum is 202.
+所以和是202
+
+Here's the same sum but in binary.
+二进制也一样
+
+Just as before, we start with the ones column.
+和之前一样,从个位开始
+
+Adding 1+1 results in 2, even in binary.
+1+1=2,在二进制中也是如此
+
+But, there is no symbol "2" so we use 10 and put 0 as our sum and carry the 1.
+但二进制中没有 2,所以位数记作 0 ,进 1
+
+Just like in our decimal example.
+就像十进制的例子一样
+
+1 plus 1, plus the 1 carried,
+1+1,再加上进位的1
+
+equals 3 or 11 in binary,
+等于 3,用二进制表示是 11
+
+so we put the sum as 1 and we carry 1 again, and so on.
+所以位数记作 1,再进 1,以此类推
+
+We end up with this number, which is the same as the number 202 in base ten.
+最后得到这个数字,跟十进制 202 是一样的
+
+Each of these binary digits, 1 or 0, is called a "bit".
+二进制中,一个 1 或 0 叫一"位"
+
+So in these last few examples, we were using 8-bit numbers with their lowest value of zero
+上个例子我们用了 8 位 , 8 位能表示的最小数是 0, 8位都是0
+
+and highest value is 255, which requires all 8 bits to be set to 1.
+最大数是 255,8 位都是 1
+
+Thats 256 different values, or 2 to the 8th power.
+能表示 256 个不同的值,2 的 8 次方
+
+You might have heard of 8-bit computers, or 8-bit graphics or audio.
+你可能听过 8 位机,8 位图像,8 位音乐
+
+These were computers that did most of their operations in chunks of 8 bits.
+意思是计算机里\N 大部分操作都是 8 位 8 位这样处理的
+
+But 256 different values isn't a lot to work with, so it meant things like 8-bit games
+但 256 个值不算多,意味着 8位游戏只能用 256 种颜色
+
+were limited to 256 different colors for their graphics.
+但 256 个值不算多,意味着 8位游戏只能用 256 种颜色
+
+And 8-bits is such a common size in computing, it has a special word: a byte.
+8 位是如此常见,以至于有专门的名字:字节
+
+A byte is 8 bits.
+1 字节 = 8 位 \N 1 bytes = 8 bits
+
+If you've got 10 bytes, it means you've really got 80 bits.
+如果有 10 个字节,意味着有 80 位
+
+You've heard of kilobytes, megabytes, gigabytes and so on.
+你听过 千字节(kb)兆字节(mb)千兆字节(gb)
+
+These prefixes denote different scales of data.
+不同前缀代表不同数量级
+
+Just like one kilogram is a thousand grams,
+就像 1 千克 = 1000 克,1 千字节 = 1000 字节
+
+1 kilobyte is a thousand bytes.
+就像 1 千克 = 1000 克,1 千字节 = 1000 字节
+
+or really 8000 bits.
+或 8000 位
+
+Mega is a million bytes (MB), and giga is a billion bytes (GB).
+Mega 是百万字节(MB), Giga 是十亿字节(GB)
+
+Today you might even have a hard drive that has 1 terabyte (TB) of storage.
+如今你可能有 1 TB 的硬盘
+
+That's 8 trillion ones and zeros.
+8 万亿个1和0
+
+But hold on!
+等等,我们有另一种计算方法
+
+That's not always true.
+等等,我们有另一种计算方法
+
+In binary, a kilobyte has two to the power of 10 bytes, or 1024.
+二进制里,1 千字节 = 2的10次方 = 1024 字节
+
+1000 is also right when talking about kilobytes,
+1000 也是千字节(KB)的正确单位
+
+but we should acknowledge it isn't the only correct definition.
+1000 和 1024 都对
+
+You've probably also heard the term 32-bit or 64-bit computers
+你可能听过 32 位 或 64 位计算机
+
+C you're almost certainly using one right now.
+你现在用的电脑肯定是其中一种
+
+What this means is that they operate in chunks of 32 or 64 bits.
+意思是一块块处理数据,每块是 32 位或 64 位
+
+That's a lot of bits!
+这可是很多位
+
+The largest number you can represent with 32 bits is just under 4.3 billion.
+32 位能表示的最大数,是 43 亿左右
+
+Which is thirty-two 1's in binary.
+也就是 32 个 1
+
+This is why our Instagram photos are so smooth and pretty
+所以 Instagram 照片很清晰
+
+- they are composed of millions of colors,
+- 它们有上百万种颜色
+
+because computers today use 32-bit color graphics
+因为如今都用 32 位颜色
+
+Of course, not everything is a positive number
+当然,不是所有数字都是正数
+
+- like my bank account in college.
+比如我上大学时的银行账户 T_T
+
+So we need a way to represent positive and negative numbers.
+我们需要有方法表示正数和负数
+
+Most computers use the first bit for the sign:
+大部分计算机用第一位表示正负:
+
+1 for negative, 0 for positive numbers,
+1 是负,0 是正
+
+and then use the remaining 31 bits for the number itself.
+用剩下 31 位来表示数字
+
+That gives us a range of roughly plus or minus two billion.
+能表示的数字范围是 正 20 亿到负 20 亿
+
+While this is a pretty big range of numbers, it's not enough for many tasks.
+虽然是很大的数,但有时还不够用
+
+There are 7 billion people on the earth, and the US national debt is almost 20 trillion dollars after all.
+全球有 70 亿人口,美国国债近 20 万亿美元
+
+This is why 64-bit numbers are useful.
+所以 64 位数很有用
+
+The largest value a 64-bit number can represent is around 9.2 quintillion!
+64 位能表达最大数是 9.2x10
+
+That's a lot of possible numbers and will hopefully stay above the US national debt for a while!
+希望美国国债在一段时间内不会超过这个数!
+
+Most importantly, as we'll discuss in a later episode,
+重要的是(我们之后的视频会深入讲)
+
+computers must label locations in their memory,
+计算机必须给内存中每一个位置,做一个 "标记"
+
+known as addresses, in order to store and retrieve values.
+这个标记叫 "位址", 目的是为了方便存取数据
+
+As computer memory has grown to gigabytes and terabytes - that's trillions of bytes
+如今硬盘已经增长到 GB 和 TB,上万亿个字节!
+
+it was necessary to have 64-bit memory addresses as well.
+内存地址也应该有 64 位
+
+In addition to negative and positive numbers,
+除了负数和正数,计算机也要处理非整数
+
+computers must deal with numbers that are not whole numbers,
+除了负数和正数,计算机也要处理非整数
+
+like 12.7 and 3.14, or maybe even stardate: 43989.1.
+比如 12.7 和 3.14,或"星历 43989.1"
+
+These are called "floating point" numbers,
+这叫 浮点数
+
+because the decimal point can float around in the middle of number.
+因为小数点可以在数字间浮动
+
+Several methods have been developed to represent floating point numbers.
+有好几种方法 表示浮点数
+
+The most common of which is the IEEE 754 standard.
+最常见的是 IEEE 754 标准
+
+And you thought historians were the only people bad at naming things!
+你以为只有历史学家取名很烂吗?
+
+In essence, this standard stores decimal values sort of like scientific notation.
+它用类似科学计数法的方法,来存十进制值
+
+For example, 625.9 can be written as 0.6259 x 10^3.
+例如,625.9 可以写成 0.6259×10 ^ 3
+
+There are two important numbers here: the .6259 is called the significand.
+这里有两个重要数字:.6259 叫 "有效位数" , 3 是指数
+
+And 3 is the exponent.
+这里有两个重要数字:.6259 叫 "有效位数" , 3 是指数
+
+In a 32-bit floating point number,
+在 32 位浮点数中
+
+the first bit is used for the sign of the number -- positive or negative.
+第 1 位表示数字的正负
+
+The next 8 bits are used to store the exponent
+接下来 8 位存指数
+
+and the remaining 23 bits are used to store the significand.
+剩下 23 位存有效位数
+
+Ok, we've talked a lot about numbers, but your name is probably composed of letters,
+好了,聊够数字了,但你的名字是字母组成的
+
+so it's really useful for computers to also have a way to represent text.
+所以我们也要表示文字
+
+However, rather than have a special form of storage for letters,
+与其用特殊方式来表示字母 \N 计算机可以用数字表示字母
+
+computers simply use numbers to represent letters.
+与其用特殊方式来表示字母 \N 计算机可以用数字表示字母
+
+The most straightforward approach might be to simply number the letters of the alphabet:
+最直接的方法是给字母编号:
+
+A being 1, B being 2, C 3, and so on.
+A是1,B是2,C是3,以此类推
+
+In fact, Francis Bacon, the famous English writer,
+著名英国作家 弗朗西斯·培根(Francis Bacon)
+
+used five-bit sequences to encode all 26 letters of the English alphabet
+曾用 5位序列 来编码英文的 26 个字母
+
+to send secret messages back in the 1600s.
+在十六世纪传递机密信件
+
+And five bits can store 32 possible values - so that's enough for the 26 letters,
+五位(bit)可以存 32 个可能值(2^5) - 这对26个字母够了
+
+but not enough for punctuation, digits, and upper and lower case letters.
+但不能表示 标点符号,数字和大小写字母
+
+Enter ASCII, the American Standard Code for Information Interchange.
+ASCII,美国信息交换标准代码
+
+Invented in 1963, ASCII was a 7-bit code, enough to store 128 different values.
+发明于 1963 年,ASCII 是 7 位代码,足够存 128 个不同值
+
+With this expanded range, it could encode capital letters, lowercase letters,
+范围扩大之后,可以表示大写字母,小写字母,
+
+digits 0 through 9, and symbols like the @ sign and punctuation marks.
+数字 0 到 9, @ 这样的符号, 以及标点符号
+
+For example, a lowercase 'a' is represented by the number 97, while a capital 'A' is 65.
+举例,小写字母 a 用数字 97 表示,大写字母 A 是 65
+
+A colon is 58 and a closed parenthesis is 41.
+: 是58 \n ) 是41
+
+ASCII even had a selection of special command codes,
+ASCII 甚至有特殊命令符号
+
+such as a newline character to tell the computer where to wrap a line to the next row.
+比如换行符,用来告诉计算机换行
+
+In older computer systems,
+在老计算机系统中
+
+the line of text would literally continue off the edge of the screen if you didn't include a new line character!
+如果没换行符,文字会超出屏幕
+
+Because ASCII was such an early standard,
+因为 ASCII 是个很早的标准
+
+it became widely used,
+所以它被广泛使用
+
+and critically, allowed different computers built by different companies to exchange data.
+让不同公司制作的计算机,能互相交换数据
+
+This ability to universally exchange information is called "interoperability".
+这种通用交换信息的能力叫 "互用性"
+
+However, it did have a major limitation: it was really only designed for English.
+但有个限制:它是为英语设计的
+
+Fortunately, there are 8 bits in a byte, not 7,
+幸运的是,一个字节有8位,而不是7位
+
+and it soon became popular to use codes 128 through 255,
+128 到 255 的字符渐渐变得常用
+
+previously unused, for "national" characters.
+这些字符以前是空的,是给各个国家自己 "保留使用的"
+
+In the US, those extra numbers were largely used to encode additional symbols,
+在美国,这些额外的数字主要用于编码附加符号
+
+like mathematical notation, graphical elements, and common accented characters.
+比如数学符号,图形元素和常用的重音字符
+
+On the other hand, while the Latin characters were used universally,
+另一方面,虽然拉丁字符被普遍使用
+
+Russian computers used the extra codes to encode Cyrillic characters,
+在俄罗斯,他们用这些额外的字符表示西里尔字符
+
+and Greek computers, Greek letters, and so on.
+而希腊电脑用希腊字母,等等
+
+And national character codes worked pretty well for most countries.
+这些保留下来给每个国家自己安排的空位,\N 对大部分国家都够用
+
+The problem was,
+问题是
+
+if you opened an email written in Latvian on a Turkish computer,
+如果在 土耳其 电脑上打开 拉脱维亚语 写的电子邮件
+
+the result was completely incomprehensible.
+会显示乱码
+
+And things totally broke with the rise of computing in Asia,
+随着计算机在亚洲兴起,这种做法彻底失效了
+
+as languages like Chinese and Japanese have thousands of characters.
+中文和日文这样的语言有数千个字符
+
+There was no way to encode all those characters in 8-bits!
+根本没办法用 8 位来表示所有字符!
+
+In response, each country invented multi-byte encoding schemes,
+为了解决这个问题,每个国家都发明了多字节编码方案
+
+all of which were mutually incompatible.
+但不相互兼容
+
+The Japanese were so familiar with this encoding problem that they had a special name for it:
+日本人总是碰到编码问题,以至于专门有词来称呼:
+
+"mojibake", which means "scrambled text".
+"mojibake" 意思是 乱码
+
+And so it was born - Unicode - one format to rule them all.
+所以 Unicode 诞生了 - 统一所有编码的标准
+
+Devised in 1992 to finally do away with all of the different international schemes
+设计于 1992 年,解决了不同国家不同标准的问题
+
+it replaced them with one universal encoding scheme.
+Unicode 用一个统一编码方案
+
+The most common version of Unicode uses 16 bits with space for over a million codes -
+最常见的 Unicode 是 16 位的,有超过一百万个位置 -
+
+enough for every single character from every language ever used
+对所有语言的每个字符都够了
+
+more than 120,000 of them in over 100 types of script
+100 多种字母表加起来占了 12 万个位置。
+
+plus space for mathematical symbols and even graphical characters like Emoji.
+还有位置放数学符号,甚至 Emoji
+
+And in the same way that ASCII defines a scheme for encoding letters as binary numbers,
+就像 ASCII 用二进制来表示字母一样
+
+other file formats - like MP3s or GIFs -
+其他格式 - 比如 MP3 或 GIF -
+
+use binary numbers to encode sounds or colors of a pixel in our photos, movies, and music.
+用二进制编码声音/颜色,表示照片,电影,音乐
+
+Most importantly, under the hood it all comes down to long sequences of bits.
+重要的是,这些标准归根到底是一长串位
+
+Text messages, this YouTube video, every webpage on the internet,
+短信,这个 YouTube 视频,互联网上的每个网页
+
+and even your computer's operating system, are nothing but long sequences of 1s and 0s.
+甚至操作系统,只不过是一长串 1 和 0
+
+So next week,
+下周
+
+we'll start talking about how your computer starts manipulating those binary sequences,
+我们会聊计算机怎么操作二进制
+
+for our first true taste of computation.
+初尝"计算"的滋味
+
+Thanks for watching. See you next week.
+感谢观看,下周见
+
diff --git a/(字幕)全40集中英字幕文本/40. 奇点,天网,计算机的未来-The Singularity, Skynet, and the Future of Computing.ass.txt b/(字幕)全40集中英字幕文本/40. 奇点,天网,计算机的未来-The Singularity, Skynet, and the Future of Computing.ass.txt
new file mode 100644
index 0000000..ef6256a
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/40. 奇点,天网,计算机的未来-The Singularity, Skynet, and the Future of Computing.ass.txt
@@ -0,0 +1,702 @@
+Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne \N 欢迎收看计算机科学速成课!
+
+We’re here: the final episode!
+我们到了 最后一集!
+
+If you’ve watched the whole series,
+如果你看了整个系列,
+
+hopefully you’ve developed a newfound appreciation
+希望你对计算机影响的深度和广度 \N 有全新的认知和欣赏
+
+for the incredible breadth of computing applications and topics.
+希望你对计算机影响的深度和广度 \N 有全新的认知和欣赏
+
+It’s hard to believe we’ve worked up from mere transistors and logic gates,
+难以相信 我们从简单的晶体管和逻辑门开始
+
+all the way to computer vision, machine learning, robotics and beyond.
+一直到计算机视觉,机器学习,机器人以及更多
+
+We’ve stood on the shoulders of giants
+我们站在巨人的肩膀上
+
+like Babbage and Lovelace, Hollerith and Turing,
+Charles Babbage \N Ada Lovelac \N Herman Hollerith \N Alan Turing
+
+Eckert and Hopper, Sutherland and Engelbart,
+J. Presper Eckert \N Grace Hopper \N Ivan Sutherland \N Douglas Engelbart
+
+Bush and Berners Lee, Gates and the Woz,
+Vannevar Bush (Memex) \N Berners-Lee (万维网) \N Bill Gates (微软)\N Steve Wozniak (苹果)
+
+and many other computing pioneers.
+和许多其他先驱
+
+My biggest hope is that these episodes have inspired you to
+我最大的希望是 这些视频能激励你 \N 去了解这些东西如何影响你的人生
+
+learn more about how these subjects affect your life.
+我最大的希望是 这些视频能激励你 \N 去了解这些东西如何影响你的人生
+
+Maybe you’ll even pick up programming or choose a career in computing.
+甚至开始学编程,或找一份计算机职业
+
+It’s awesome!
+这很棒!
+
+It’s also a skill of the future.
+这是未来的技能
+
+I said in the very first episode that computer science isn’t magic, but it sort of is!
+我在第一集说过,计算机科学不是魔法\N 但它有点像魔法
+
+Knowing how to use and program computers is sorcery of the 21st century.
+学习使用电脑和编程,是21世纪的巫术
+
+Instead of incantations and spells, it’s scripts and code.
+只不过用的不是咒语 而是代码
+
+Those who know how to wield that tremendous power will be able to craft great things,
+懂得运用的人,能创造出伟大的东西
+
+not just to improve their own lives, but also their communities and humanity at large.
+不仅改善自己的生活,还有当地社区乃至整体人类
+
+Computing is also going to be literally everywhere –
+计算机会随处可见 -
+
+not just the computers we see today, sitting on desks and countertops,
+不仅是放在桌上 带在包里
+
+and carried in pockets and bags – but inside every object imaginable.
+而是在所有可想象的东西里
+
+Inside all your kitchen appliances, embedded in your walls, nanotagged in your food,
+厨房用具里,墙里,食物里
+
+woven into your clothes, and floating around inside your body.
+编织进衣服里,在你的血液里
+
+This is the vision of the field of Ubiquitous Computing.
+这是"普适计算"的愿景
+
+In some ways, it’s already here, and in other ways, we’ve got many decades to go.
+从某种角度来讲 它已经来临了\N 而换一个角度 还要几十年
+
+Some might view this eventuality as dystopian,
+有些人把这种未来看成 反乌托邦
+
+with computers everywhere surveilling us and competing for our attention.
+到处都有监视器,有无数东西想吸引我们的注意力
+
+But the late Mark Weiser, who articulated this idea in the 1990s,
+但 1990 年代提出这个想法的 马克·维泽尔
+
+saw the potential very differently:
+看到了非常不同的潜力:
+
+"For [fifty] years, most interface design, and most computer design,
+"[五十]年来,大多数界面和计算机设计,
+
+has been headed down the path of the "dramatic" machine.
+都是朝"戏剧性"方向前进
+
+Its highest idea is to make a computer so exciting, so wonderful,
+想把计算机做得超好,让人一刻也不想离开
+
+so interesting, that we never want to be without it.
+想把计算机做得超好,让人一刻也不想离开
+
+A less-traveled path I call the "invisible";
+另一条少有人走的路 是"无形"的
+
+its highest idea is to make a computer so imbedded, so fitting,
+把计算机整合到所有东西里 \N 用的时候很自然 完全注意不到
+
+so natural, that we use it without even thinking about it …
+把计算机整合到所有东西里 \N 用的时候很自然 完全注意不到
+
+The most profound technologies are those that disappear.
+最厉害的科技是看不见的科技
+
+They weave themselves into the fabric of everyday life
+它们融入到日常生活的每一部分 直到无法区分"
+
+until they are indistinguishable from it."
+它们融入到日常生活的每一部分 直到无法区分"
+
+That doesn’t describe computing of today
+如今我们还没达到这样
+
+– where people sit for hours upon end in front of computer monitors,
+- 人们在电脑前连续坐好几小时
+
+and social media notifications interrupt us at dinner.
+吃晚餐被手机推送通知打扰
+
+But, it could describe computing of the future, our final topic.
+但它可以描述计算的未来 \N 本系列最后一个主题
+
+When people think of computing in the future,
+人们思考计算机的未来时 经常会直接想到人工智能
+
+they often jump right to Artificial Intelligence.
+人们思考计算机的未来时 经常会直接想到人工智能
+
+No doubt there will be tremendous strides made in AI in the coming years,
+毫无疑问,接下来几十年人工智能会有巨大进步
+
+but not everything will be, or need to be, AI-powered.
+但不是所有东西都要做成 AI ,或需要 AI
+
+Your car might have an AI to self-drive, but the door locks
+车有自动驾驶AI,但门锁依然会很简单
+
+might continue to be powered by what are essentially if-statements.
+车有自动驾驶AI,但门锁依然会很简单
+
+AI technology is just as likely to enhance existing devices,
+人工智能可能只是增强现有设备
+
+like cars, as it is to open up entirely new product categories.
+比如汽车,AI 带来了一个全新的产品种类
+
+The exact same thing happened with the advent of electrical power – lightbulbs replaced candles.
+刚出现电力时也是这样,灯泡取代了蜡烛.
+
+But electrification also led to the creation of hundreds of new electrically-powered gadgets.
+但电气化也导致上百种新的电动小工具诞生
+
+And of course, we still have candles today.
+当然 我们如今仍然有蜡烛
+
+It’s most likely that AI will be yet another tool
+最可能的情况是 AI 变成 \N 计算机科学家手中的另一门新工具
+
+that computer scientists can draw upon to tackle problems.
+最可能的情况是 AI 变成 \N 计算机科学家手中的另一门新工具
+
+What really gets people thinking, and sometimes sweating,
+但真正让人深思和担忧的是
+
+is whether Artificial Intelligence will surpass human intelligence.
+人工智能是否会超越人类智能?
+
+This is a really tricky question for a multitude of reasons,
+这个问题很难 有多方面原因
+
+including most immediately: "what is intelligence?"
+比如 "智能的准确定义是什么?"
+
+On one hand, we have computers that can drive cars,
+一方面,有会开车的计算机
+
+recognize songs with only a few seconds of audio,
+几秒就能识别歌的 App
+
+translate dozens of languages, and totally dominate at games like chess, Jeopardy, and Go.
+翻译几十种语言,\N 还称霸了一些游戏,比如象棋,知识竞答和围棋
+
+That sounds pretty smart!
+听起来很聪明!
+
+But on the other hand, computers fail at some basic tasks,
+但另一方面,计算机连一些简单事情都做不了
+
+like walking up steps, folding laundry,
+比如走楼梯,叠衣服,
+
+understanding speech at a cocktail party, and feeding themselves.
+在鸡尾酒派对和人聊天,喂饱自己
+
+We’re a long way from Artificial Intelligence that’s as general purpose and capable as a human.
+人工智能成长到和人类一样通用,还有很长的路
+
+With intelligence being somewhat hard to quantify,
+因为"智能"是难以量化的指标
+
+people prefer to characterize computers and creatures
+人们更喜欢用处理能力来区分
+
+by their processing power instead,
+人们更喜欢用处理能力来区分
+
+but that’s a pretty computing-centric view of intelligence.
+但这种衡量智能的方法比较"以计算为中心"
+
+Nonetheless, if we do this exercise,
+但如果把视频中出现过的电脑和处理器 画张图
+
+plotting computers and processors we’ve talked about in this series,
+但如果把视频中出现过的电脑和处理器 画张图
+
+we find that computing today has very roughly equivalence in calculating
+可以看到 如今的计算能力粗略等同于一只老鼠
+
+power to that of a mouse...
+可以看到 如今的计算能力粗略等同于一只老鼠
+
+which, to be fair, also can’t fold laundry, although that would be super cute!
+公平点说,老鼠也不会叠衣服\N 但如果真的会叠 就太可爱了
+
+Human calculating power is up here, another 10 to the 5,
+人类的计算能力在这儿,多10的5次方
+
+or 100,000 times more powerful than computers today.
+也就是比如今电脑强10万倍
+
+That sounds like a big gap, but with the rate of change in computing technologies,
+听起来差距很大,但按如今的发展速度,
+
+we might meet that point in as early as a decade,
+也许十几年就可以赶上了
+
+even though processor speeds are no longer following Moore’s Law,
+虽然现在处理器的速度 不再按摩尔定律增长了
+
+like we discussed in Episode 17.
+我们在第17集讨论过
+
+If this trend continues, computers would have more processing power/intelligence,
+假设趋势继续保持下去,在本世纪结束前
+
+than the sum total of all human brains combined before the end of this century.
+计算机的处理能力/智能 会比全人类加起来还多
+
+And this could snowball as such systems need less human input,
+然后人的参与会越来越少,人工超级智能会开始改造自己
+
+with an artificial superintelligence designing and training new versions of itself.
+然后人的参与会越来越少,人工超级智能会开始改造自己
+
+This runaway technological growth, especially with respect to an intelligence explosion,
+智能科技的失控性发展叫 "奇点"
+
+is called the singularity.
+智能科技的失控性发展叫 "奇点"
+
+The term was first used by our old friend from Episode 10,
+第10集 约翰·冯·诺伊曼 最早用这个词
+
+John von Neumann, who said:
+他说:
+
+"The accelerating progress of technology and changes in the mode of human life,
+"越来越快的技术发展速度和人类生活方式的改变,
+
+give the appearance of approaching some essential singularity
+看起来会接近人类历史中某些重要的奇点
+
+in the history of the race beyond which human affairs,
+看起来会接近人类历史中某些重要的奇点
+
+as we know them, could not continue."
+这个势头不会永远继续下去"
+
+And Von Neumann suggested this back in the 1950s,
+冯诺依曼在 1950 年代说的这话.
+
+when computers were trillions of times slower than they are today.
+那时计算机比现在慢得多
+
+Sixty years later, though, the singularity is
+六十年后的今天,奇点仍然在遥远的地平线上
+
+still just a possibility on the horizon.
+六十年后的今天,奇点仍然在遥远的地平线上
+
+Some experts believe this progress is going to level off,
+一些专家认为 发展趋势会更平缓一些
+
+and be more of an S curve than an exponential one,
+更像是S型,而不是指数型
+
+where as complexity increases, it becomes more difficult to make additional progress.
+而随着复杂度增加,进步会越来越难
+
+Microsoft co-founder Paul Allen calls it a "complexity brake".
+微软联合创始人 保罗·艾伦 叫这个"复杂度刹车"
+
+But, as a thought experiment,
+但当作思维练习
+
+let’s just say that superintelligent computers will emerge.
+我们假设 超智能计算机会出现。
+
+What that would mean for humanity is a hotly debated topic.
+这对人类意味着什么,是个讨论激烈的话题
+
+There are people who eagerly await it,
+有些人迫不及待
+
+and those who are already working to stop it from happening.
+有些人则努力阻止它
+
+Probably the most immediate effect would be technological unemployment,
+最直接的影响可能是"技术性失业"
+
+where workers in many job sectors are rendered obsolete
+很多工作被计算机,比如AI和机器人,给代替掉了
+
+by computers – like AIs and Robots –
+很多工作被计算机,比如AI和机器人,给代替掉了
+
+that can do their work better and for less pay.
+它们的效率更高,成本更低
+
+Although computers are new, this effect is not.
+虽然计算机出现没多久,但"技术性失业"不是新事
+
+Remember Jacquard's Loom from Episode 10?
+还记得第10集里 雅卡尔的织布机 吗?
+
+That automated the task of skilled textile workers back in the 1800s, which led to riots.
+它让1800年代的纺织工人失业,导致了骚乱
+
+Also, back then, most of the population of the US and Europe were farmers.
+当时美国和欧洲 大部分人都是农民
+
+That’s dropped to under 5% today,
+如今农民占人口比例<5%
+
+due to advances like synthetic fertilizers and tractors.
+因为有合成肥料和拖拉机等等技术
+
+More modern examples include telephone switchboard operators
+时间更近一些的例子是"电话接线员"
+
+being replaced with automatic switchboards in 1960,
+在1960年被自动接线板代替了
+
+and robotic arms replacing human painters in car factories in the 1980s.
+还有1980年代的"机器喷漆臂"替代了人工喷漆
+
+And the list goes on and on.
+这样的例子还有很多.
+
+On one hand, these were jobs lost to automation.
+一方面,因为自动化失去了工作
+
+And on the other hand, clothes, food, bicycles, toys,
+另一方面,我们有大量产品,\N 衣服,食物,自行车,玩具等
+
+and a myriad of other products are all plentiful today
+另一方面,我们有大量产品,\N 衣服,食物,自行车,玩具等
+
+because they can be cheaply produced thanks to computing.
+因为可以廉价生产
+
+But, experts argue that AI, robots and computing technologies in general,
+但专家认为人工智能,机器人 以及更广义的计算
+
+are going to be even more disruptive than these historical examples.
+比之前更有破坏性
+
+Jobs, at a very high level, can be summarized along two dimensions.
+工作可以用两个维度概括
+
+First, jobs can be either more manual – like assembling toys
+首先,手工型工作,比如组装玩具
+
+– or more cognitive – like picking stocks.
+- 或思维型工作 - 比如选股票
+
+These jobs can also be routine – the same tasks over and over again
+还有重复性工作,一遍遍做相同的事
+
+or non-routine, where tasks vary and workers need to problem solve and be creative.
+或非重复性,需要创造性的解决问题
+
+We already know that routine-manual jobs can be automated by machines.
+我们知道 重复性手工工作,可以让机器自动化
+
+It has already happened for some jobs and is happening right now for others.
+现在有些已经替代了,剩下的在逐渐替代
+
+What’s getting people worried is that non-routine manual jobs,
+让人担心的是"非重复性手工型工作"
+
+like cooks, waiters and security guards, may get automated too.
+比如厨师,服务员,保安。
+
+And the same goes for routine cognitive work,
+思维型工作也一样
+
+like customer service agents, cashiers, bank tellers, and office assistants.
+比如客服,收银员,银行柜员和办公室助理
+
+That leaves us with just one quadrant that might be safe,
+剩下一个暂时比较安全的象限
+
+at least for a little while:
+剩下一个暂时比较安全的象限
+
+non-routine cognitive work,
+非重复性思维型工作
+
+which includes professions like teachers and artists,
+包括教师和艺术家,
+
+novelists and lawyers, and doctors and scientists.
+小说家和律师,医生和科学家
+
+These types of jobs encompass roughly 40% of the US workforce.
+这类工作占美国劳动力大概40%
+
+That leaves 60% of jobs vulnerable to automation.
+意味着剩下60%工作容易受自动化影响
+
+People argue that technological unemployment at this scale
+有人认为这种规模的技术失业
+
+would be unprecedented and catastrophic,
+是前所未有的,会导致灾难性的后果,
+
+with most people losing their jobs.
+大部分人会失业
+
+Others argue that this will be great,
+其他人则认为很好,
+
+freeing people from less interesting jobs to pursue better ones,
+让人们从无聊工作解脱,去做更好的工作,
+
+all while enjoying a higher standard of living with the bounty of food and products
+同时享受更高生活水平,有更多食物和物品
+
+that will result from computers and robots doing most of the hard work.
+都是计算机和机器人生产的.
+
+No one really knows how this is going to shake out,
+没人知道未来到底会怎样
+
+but if history is any guide, it’ll probably be ok in the long run.
+但如果历史有指导意义,长远看 一切会归于平静
+
+Afterall, no one is advocating that 90% of people
+毕竟,现在没人嚷嚷着让90%的人 回归耕田和纺织
+
+go back to farming and weaving textiles by hand.
+毕竟,现在没人嚷嚷着让90%的人 回归耕田和纺织
+
+The tough question, which politicians are now discussing,
+政界在讨论的棘手问题是
+
+is how to handle hopefully-short-term economic disruption,
+怎么处理数百万人突然失业 \N 造成的短期经济混乱
+
+for millions of people that might be suddenly out of a job.
+怎么处理数百万人突然失业 \N 造成的短期经济混乱
+
+Beyond the workplace, computers are also very likely to change our bodies.
+除了工作,计算机很可能会改变我们的身体
+
+For example, futurist Ray Kurzweil believes that
+举个例子, 未来学家 Ray Kurzweil 认为
+
+"The Singularity will allow us to transcend
+"奇点会让我们超越 肉体和大脑的局限性
+
+[the] limitations of our biological bodies and brains.
+"奇点会让我们超越 肉体和大脑的局限性
+
+We will gain power over our fates.
+我们能掌控自己的命运
+
+... We will be able to live as long as we want.
+可以想活多久活多久 我们能完全理解并扩展大脑思维
+
+We will fully understand human thinking and will vastly extend and expand its reach."
+可以想活多久活多久 我们能完全理解并扩展大脑思维
+
+Transhumanists see this happening in the form of cyborgs,
+超人类主义者认为会出现"改造人"
+
+where humans and technology merge, enhancing our intellect and physiology.
+人类和科技融合在一起,增强智力和身体
+
+There are already brain computer interfaces in use today.
+如今已经有脑电接口了
+
+And wearable computers, like Google Glass and Microsoft Hololens,
+而 Google Glass 和 微软 Hololens \N 这样的穿戴式计算机 也在模糊这条界线
+
+are starting to blur the line too.
+而 Google Glass 和 微软 Hololens \N 这样的穿戴式计算机 也在模糊这条界线
+
+There are also people who foresee "Digital Ascension",
+也有人预见到"数字永生"
+
+which, in the words of Jaron Lanier,
+Jaron Lanier 的说法是
+
+"would involve people dying in the flesh and being uploaded into a computer and remaining conscious".
+"人类的肉体死去,意识上传到计算机"
+
+This transition from biological to digital beings
+从生物体变成数字体 可能是下一次进化跨越
+
+might end up being our next evolutionary step...
+从生物体变成数字体 可能是下一次进化跨越
+
+and a new level of abstraction.
+一层新的抽象
+
+Others predict humans staying largely human,
+其他人则预测 人类大体会保持原样
+
+but with superintelligent computers as a benevolent force,
+但超智能电脑会照顾我们,帮我们管农场
+
+emerging as a caretaker for humanity – running all the farms,
+但超智能电脑会照顾我们,帮我们管农场
+
+curing diseases, directing robots to pick-up trash,
+治病,指挥机器人收垃圾,
+
+building new homes and many other functions.
+建房子 以及很多其他事情
+
+This would allow us to simply enjoy our time on this lovely pale blue dot.
+让我们在这个可爱蓝点上(地球) 好好享受
+
+Still others view AI with more suspicion –
+另一些人对 AI 持怀疑态度 -
+
+why would a superintelligent AI waste its time taking care of us?
+为什么超级人工智能 会费时间照顾我们?
+
+It’s not like we’ve taken on the role of being the benevolent caretaker of ants.
+人类不也没照顾蚂蚁吗?
+
+So maybe this play out like so many Sci-Fi movies
+也许会像许多科幻电影一样,和计算机开战
+
+where we’re at war with computers, our own creation having turned on us.
+也许会像许多科幻电影一样,和计算机开战
+
+It’s impossible to know what the future holds,
+我们无法知道未来到底会怎样
+
+but it’s great that this discussion and debate is already happening,
+但现在已经有相关讨论了,这非常好
+
+so as these technologies emerge, we can plan and react intelligently.
+所以等这些技术出现后,我们可以更好地计划
+
+What’s much more likely, regardless of whether you see computers as future friend or foe,
+不论你把计算机视为未来的朋友或敌人
+
+is that they will outlive humanity.
+更有可能的是,它们的存在时间会超过人类
+
+Many futurists and science fiction writers have speculated
+许多未来学家和科幻作家猜测
+
+that computers will head out into space and colonize the galaxy,
+机器人会去太空殖民
+
+ambivalent to time scales, radiation,
+无视时间,辐射 \N 以及一些其他让人类难以长时间太空旅行的因素.
+
+and all that other stuff that makes
+无视时间,辐射 \N 以及一些其他让人类难以长时间太空旅行的因素.
+
+long-distance space travel difficult for us humans.
+无视时间,辐射 \N 以及一些其他让人类难以长时间太空旅行的因素.
+
+And when the sun is burned up and the Earth is space dust,
+亿万年后太阳燃尽 地球成为星尘 \N 也许我们的机器人孩子 会继续努力探索宇宙每一个角落
+
+maybe our technological children will be hard at work
+亿万年后太阳燃尽 地球成为星尘 \N 也许我们的机器人孩子 会继续努力探索宇宙每一个角落
+
+exploring every nook and cranny of the universe,
+亿万年后太阳燃尽 地球成为星尘 \N 也许我们的机器人孩子 会继续努力探索宇宙每一个角落
+
+hopefully in honor of their parents’ tradition to build knowledge,
+以纪念它们的父母,同时让宇宙变得更好,
+
+improve the state of the universe,
+以纪念它们的父母,同时让宇宙变得更好,
+
+and to boldly go where no one has gone before!
+大胆探索无人深空
+
+In the meantime, computers have a long way to go,
+与此同时,计算机还有很长的路要走
+
+and computer scientists are hard at work advancing
+计算机科学家们在努力推进 过去40集谈到的话题
+
+all of the topics we talked about over the past forty episodes.
+计算机科学家们在努力推进 过去40集谈到的话题
+
+In the next decade or so,
+在接下来的十几年
+
+we’ll likely see technologies like virtual and augmented reality,
+VR 和 AR,无人驾驶车,无人机,可穿戴计算机,
+
+self-driving vehicles, drones, wearable computers,
+VR 和 AR,无人驾驶车,无人机,可穿戴计算机,
+
+and service robots go mainstream.
+和服务型机器人 会变得主流
+
+The internet will continue to evolve new services,
+互联网会继续诞生新服务
+
+stream new media, and connect people in different ways.
+在线看新媒体. 用新方式连接人们
+
+New programming languages and paradigms will be developed
+会出现新的编程语言和范例,帮助创造令人惊叹的新软件
+
+to facilitate the creation of new and amazing software.
+会出现新的编程语言和范例,帮助创造令人惊叹的新软件
+
+And new hardware will make complex operations blazingly fast,
+而新硬件能让复杂运算快如闪电 \N 比如神经网络和3D图形
+
+like neural networks and 3D graphics.
+而新硬件能让复杂运算快如闪电 \N 比如神经网络和3D图形
+
+Personal computers are also ripe for innovation,
+个人电脑也会创新
+
+perhaps shedding their forty-year old desktop metaphor
+不像过去40年着重宣传 "桌面" 电脑
+
+and being reborn as omnipresent and lifelong virtual assistants.
+而是变成无处不在的虚拟助手
+
+And there’s so much we didn’t get to talk about in this series,
+这个系列 我们还有很多话题没谈
+
+like cryptocurrencies, wireless communication,
+比如加密货币,无线通讯,3D打印,生物信息学和量子计算
+
+3D printing, bioinformatics, and quantum computing.
+比如加密货币,无线通讯,3D打印,生物信息学和量子计算
+
+We’re in a golden age of computing
+我们正处于计算机的黄金时代
+
+and there’s so much going on, it’s impossible to summarize.
+有很多事情在发生,全部总结是不可能的
+
+But most importantly, you can be a part of this amazing transformation and challenge,
+但最重要的是 你可以学习计算机 \N 成为这个惊人转型的一部分
+
+by learning about computing, and taking what’s arguably humanity’s greatest invention,
+但最重要的是 你可以学习计算机 \N 成为这个惊人转型的一部分
+
+to make the world a better place.
+把世界变得更好
+
+Thanks for watching.
+感谢收看
+
diff --git a/(字幕)全40集中英字幕文本/5. 算术逻辑单元-How Computers Calculate-the ALU.ass.txt b/(字幕)全40集中英字幕文本/5. 算术逻辑单元-How Computers Calculate-the ALU.ass.txt
new file mode 100644
index 0000000..d49291b
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/5. 算术逻辑单元-How Computers Calculate-the ALU.ass.txt
@@ -0,0 +1,578 @@
+Hi, I'm Carrie Ann and this is Crash Course Computer Science.
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课
+
+So last episode, we talked about how numbers can be represented in binary.
+上集,我们谈了如何用二进制表示数字
+
+Representing Like, 00101010 is 42 in decimal.
+比如二进制 00101010 是十进制的 42
+
+Representing and storing numbers is an important function of a computer,
+表示和存储数字是计算机的重要功能
+
+but the real goal is computation, or manipulating numbers in a structured and purposeful way,
+但真正的目标是计算,有意义的处理数字
+
+like adding two numbers together.
+比如把两个数字相加
+
+These operations are handled by a computer's Arithmetic and Logic Unit,
+这些操作由计算机的 "算术逻辑单元 "处理
+
+but most people call it by its street name:
+但大家会简称:ALU
+
+the ALU.
+但大家会简称:ALU
+
+The ALU is the mathematical brain of a computer.
+ALU 是计算机的数学大脑
+
+When you understand an ALU's design and function,
+等你理解了 ALU 的设计和功能之后
+
+you'll understand a fundamental part of modern computers.
+你就理解了现代计算机的基石
+
+It is THE thing that does all of the computation in a computer,
+ALU *就是* 计算机里负责运算的组件\N 基本其他所有部件都用到了它
+
+so basically everything uses it.
+ALU *就是* 计算机里负责运算的组件\N 基本其他所有部件都用到了它
+
+First though, look at this beauty.
+先来看看这个美人
+
+This is perhaps the most famous ALU ever, the Intel 74181.
+这可能是最著名的 ALU,英特尔 74181
+
+When it was released in 1970,
+1970 年发布时,它是第一个封装在单个芯片内的完整 ALU
+
+it was It was the first complete ALU that fit entirely inside of a single chip -
+1970 年发布时,它是第一个封装在单个芯片内的完整 ALU
+
+Which was a huge engineering feat at the time.
+这在当时是惊人的工程壮举
+
+So today we're going to take those Boolean logic gates we learned about last week
+今天我们用上周学的布尔逻辑门
+
+to build a simple ALU circuit with much of the same functionality as the 74181.
+做一个简单的 ALU 电路,功能和 74181 一样
+
+And over the next few episodes we'll use this to construct a computer from scratch.
+然后接下来几集,用它从头做出一台电脑
+
+So it's going to get a little bit complicated,
+所以会有点复杂
+
+but I think you guys can handle it.
+但我觉得你们搞的定
+
+An ALU is really two units in one
+ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元
+
+-- there's an arithmetic unit and a logic unit.
+ALU 有 2 个单元,1 个算术单元和 1 个逻辑单元
+
+Let's start with the arithmetic unit,
+我们先讲"算术单元",它负责计算机里的所有数字操作
+
+which is responsible for handling all numerical operations in a computer,
+我们先讲"算术单元",它负责计算机里的所有数字操作
+
+like addition and subtraction.
+比如加减法
+
+It also does a bunch of other simple things like add one to a number,
+它还做很多其他事情,比如给某个数字+1
+
+which is called an increment operation, but we'll talk about those later.
+这叫增量运算,我们之后会说
+
+Today, we're going to focus on the piece of rsistance, the crme de la crme of operations
+今天的重点是一切的根本 - "把两个数字相加"
+
+that underlies almost everything else a computer does - adding two numbers together.
+今天的重点是一切的根本 - "把两个数字相加"
+
+We could build this circuit entirely out of individual transistors,
+我们可以用单个晶体管一个个拼,把这个电路做出来,\N 但很快就会复杂的难以理解
+
+but that would get confusing really fast.
+我们可以用单个晶体管一个个拼,把这个电路做出来,\N 但很快就会复杂的难以理解
+
+So instead as we talked about in Episode 3
+所以与其用晶体管,我们会像第 3 集
+
+- we can use a high-level of abstraction and build our components out of logic gates,
+- 用更高层的抽象,用逻辑门来做
+
+in this case: AND, OR, NOT and XOR gates.
+我们会用到 AND,OR,NOT 和 XOR 逻辑门
+
+The simplest adding circuit that we can build takes two binary digits, and adds them together.
+最简单的加法电路, \N 是拿 2 个 bit 加在一起(bit 是 0 或 1)
+
+So we have two inputs, A and B, and one output, which is the sum of those two digits.
+有 2 个输入:A 和 B, 1 个输出:就是两个数字的和
+
+Just to clarify: A, B and the output are all single bits.
+需要注意的是:A, B, 输出,这3个都是单个 Bit ( 0 或 1 )
+
+There are only four possible input combinations.
+输入只有四种可能
+
+The first three are: 0+0 = 0
+前三个是\N 0 + 0 = 0 \N 1 + 0 = 1 \N 0 + 1 = 1
+
+1+0 = 1 0+1 = 1
+前三个是\N 0 + 0 = 0 \N 1 + 0 = 1 \N 0 + 1 = 1
+
+Remember that in binary, 1 is the same as true, and 0 is the same as false.
+记住二进制里,1 与 true 相同,0 与 false 相同
+
+So this set of inputs exactly matches the boolean logic of an XOR gate,
+这组输入和输出,和 XOR 门的逻辑完全一样
+
+and we can use it as our 1-bit adder.
+所以我们可以把 XOR 用作 1 位加法器(adder)
+
+But the fourth input combination, 1 + 1, is a special case. 1 + 1 is 2 (obviously)
+但第四个输入组合,1+1,是个特例 \N 1+1=2(显然)
+
+but there's no 2 digit in binary,
+但二进制里没有 2
+
+so as we talked about last episode, the result is 0 and the 1 is carried to the next column.
+上集说过,二进制 1+1 的结果是0,1进到下一位
+
+So the sum is really 10 in binary.
+和是 10 (二进制)
+
+Now, the output of our XOR gate is partially correct - 1 plus 1, outputs 0.
+XOR 门的输出,只对了一部分, 1+1 输出 0
+
+But, we need an extra output wire for that carry bit.
+但我们需要一根额外的线代表 "进位"
+
+The carry bit is only "true" when the inputs are 1 AND 1,
+只有输入是 1 和 1 时,进位才是 "true"
+
+because that's the only time when the result (two) is bigger than 1 bit can store
+因为算出来的结果用 1 个 bit 存不下
+
+and conveniently we have a gate for that!
+方便的是,我们刚好有个逻辑门能做这个事!
+
+It's not that complicated - just two logic gates -
+没那么复杂 - 就两个逻辑门而已
+
+but let's abstract away even this level of detail
+让我们抽象化
+
+and encapsulate our newly minted half adder as its own component,
+把 "半加器" 封装成一个单独组件
+
+with two inputs - bits A and B - and two outputs, the sum and the carry bits.
+两个输入 A 和 B 都是 1 位 \N 两个输出 "总和" 与 "进位"
+
+This takes us to another level of abstraction
+这进入了另一层抽象
+
+heh I feel like I say that a lot.
+我好像说了很多次,说不定会变成一个梗
+
+I wonder if this is going to become a thing.
+我好像说了很多次,说不定会变成一个梗
+
+Anyway, If you want to add more than 1 + 1
+如果想处理超过 1+1 的运算,我们需要"全加器"
+
+we're going to need a "Full Adder."
+如果想处理超过 1+1 的运算,我们需要"全加器"
+
+That half-adder left us with a carry bit as output.
+半加器 输出了进位
+
+That means that when we move on to the next column in a multi-column addition,
+意味着,我们算下一列的时候
+
+and every column after that, we are going to have to add three bits together, no two.
+还有之后的每一列,我们得加 3 个位在一起,并不是 2 个
+
+A full adder is a bit more complicated
+全加器复杂了一点点
+
+全加器表格
+
+- it takes three bits as inputs: A, B and C.
+有 3 个输入:A, B, C (都是 1 个 bit)
+
+So the maximum possible input is 1 + 1 + 1,
+所以最大的可能是 1 + 1 + 1
+
+which equals 1 carry out 1, so we still only need two output wires: sum and carry.
+"总和"1 "进位"1 \N 所以要两条输出线: "总和"和"进位"
+
+We can build a full adder using half adders.
+我们可以用 半加器 做 全加器
+
+To do this, we use a half adder to add A plus B
+我们先用半加器将 A 和 B 相加
+
+just like before - but then feed that result and input C into a second half adder.
+然后把 C 输入到第二个半加器
+
+Lastly, we need a OR gate to check if either one of the carry bits was true.
+最后用一个 OR 门检查进位是不是 true
+
+That's it, we just made a full adder!
+这样就做出了一个全加器!
+
+Again,we can go up a level of abstraction and wrap up this full adder as its own component.
+我们可以再提升一层抽象,把全加器作为独立组件
+
+It takes three inputs, adds them, and outputs the sum and the carry, if there is one.
+全加器会把 A,B,C 三个输入加起来 \N 输出 "总和" 和 "进位"
+
+Armed with our new components, we can now build a circuit that takes two, 8-bit numbers
+现在有了新组件,我们可以相加两个 8 位数字
+
+Let's call them A and B and adds them together.
+叫两个数字叫 A 和 B 好了
+
+Let's start with the very first bit of A and B,
+我们从 A 和 B 的第一位开始
+
+which we'll call A0 and B0.
+叫 A0 和 B0 好了
+
+At this point, there is no carry bit to deal with,
+现在不用处理任何进位,因为是第一次加法
+
+because this is our first addition.
+现在不用处理任何进位,因为是第一次加法
+
+So we can use our half adder to add these two bits together.
+所以我们可以用半加器,来加这2个数字
+
+The output is sum0.
+输出叫 sum0
+
+Now we want to add A1 and B1 together.
+现在加 A1 和 B1
+
+It's possible there was a carry from the previous addition of A0 and B0,
+因为 A0 和 B0 的结果有可能进位
+
+so this time we need to use a full adder that also inputs the carry bit.
+所以这次要用全加器,除了 A1 和 B1,还要连上进位
+
+We output this result as sum1.
+输出叫 sum1
+
+Then, we take any carry from this full adder,
+然后,把这个全加器的进位 \N 连到下个全加器的输入,处理 A2 和 B2
+
+and run it into the next full adder that handles A2 and B2.
+然后,把这个全加器的进位 \N 连到下个全加器的输入,处理 A2 和 B2
+
+And we just keep doing this in a big chain until all 8 bits have been added.
+以此类推,把 8 个 bit 都搞定
+
+Notice how the carry bits ripple forward to each subsequent adder.
+注意每个进位是怎么连到下一个全加器的
+
+For this reason, this is called an 8-bit ripple carry adder.
+所以叫 "8位行波进位加法器"
+
+Notice how our last full adder has a carry out.
+注意最后一个全加器有 "进位" 的输出
+
+If there is a carry into the 9th bit, it means the sum of the two numbers is too large to fit into 8-bits.
+如果第 9 位有进位,代表着 2 个数字的和太大了,超过了 8 位
+
+This is called an overflow.
+这叫 "溢出" (overflow)
+
+In general, an overflow occurs when the result of an addition is too large
+一般来说 "溢出" 的意思是, 两个数字的和太大了
+
+to be represented by the number of bits you are using.
+超过了用来表示的位数
+
+This can usually cause errors and unexpected behavior.
+这会导致错误和不可预期的结果
+
+Famously, the original PacMan arcade game used 8 bits to keep track of what level you were on.
+著名的例子是,吃豆人用 8 位存当前关卡数
+
+This meant that if you made it past level 255 - the largest number storablein 8 bits - to level 256,
+如果你玩到了第 256 关( 8 位 bit 最大表示 255)
+
+the ALU overflowed.
+ALU 会溢出
+
+This caused a bunch of errors and glitches making the level unbeatable.
+造成一连串错误和乱码,使得该关卡无法进行
+
+The bug became a rite of passage for the greatest PacMan players.
+这个 bug 成了厉害吃豆人玩家的代表
+
+So if we want to avoid overflows,
+如果想避免溢出
+
+we can extend our circuit with more full adders, allowing us to add 16 or 32 bit numbers.
+我们可以加更多全加器,可以操作 16 或 32 位数字
+
+This makes overflows less likely to happen, but at the expense of more gates.
+让溢出更难发生,但代价是更多逻辑门
+
+An additional downside is that it takes a little bit of time for each of the carries to ripple forward.
+另外一个缺点是,每次进位都要一点时间
+
+Admittedly, not very much time, electrons move pretty fast,
+当然时间不久,因为电子移动的很快
+
+so we're talking about billionths of a second,
+但如今的量级是每秒几十亿次运算,所以会造成影响
+
+but that's enough to make a difference in today's fast computers.
+但如今的量级是每秒几十亿次运算,所以会造成影响
+
+For this reason, modern computers use a slightly different adding circuit
+所以,现代计算机用的加法电路有点不同
+
+called a 'carry-look-ahead' adder
+叫 "超前进位加法器"
+
+which is faster, but ultimately does exactly the same thing
+它更快,做的事情是一样的 - 把二进制数相加
+
+-- adds binary numbers.
+它更快,做的事情是一样的 - 把二进制数相加
+
+The ALU's arithmetic unit also has circuits for other math operations
+ALU 的算术单元,也能做一些其他数学运算
+
+and in general these 8 operations are always supported.
+一般支持这 8 个操作
+
+And like our adder, these other operations are built from individual logic gates.
+就像加法器一样,这些操作也是由逻辑门构成的
+
+Interestingly, you may have noticed that there are no multiply and divide operations.
+有趣的是,你可能注意到没有乘法和除法
+
+That's because simple ALUs don't have a circuit for this,
+因为简单的 ALU 没有专门的电路来处理
+
+and instead just perform a series of additions.
+而是把乘法用多次加法来实现
+
+Let's say you want to multiply 12 by 5.
+假设想算 12x5
+
+That's the same thing as adding 12 to itself 5 times.
+这和把 "12" 加 5 次是一样的
+
+So it would take 5 passes through the ALU to do this one multiplication.
+所以要 5 次 ALU 操作来实现这个乘法
+
+And this is how many simple processors,
+很多简单处理器都是这样做的
+
+like those in your thermostat, TV remote, and microwave, do multiplication.
+比如恒温器,电视遥控器和微波炉
+
+It's slow, but it gets the job done.
+慢是慢,但是搞的定
+
+However, fancier processors, like those in your laptop or smartphone,
+然而笔记本和手机有更好的处理器
+
+have arithmetic units with dedicated circuits for multiplication.
+有专门做乘法的算术单元
+
+And as you might expect, the circuit is more complicated than addition
+你可能猜到了,乘法电路比加法复杂
+
+-- there's no magic, it just takes a lot more logic gates
+- 没什么魔法,只是更多逻辑门
+
+which is why less expensive processors don't have this feature.
+所以便宜的处理器没有.
+
+Ok, let's move on to the other half of the ALU:
+好了,我们现在讲 ALU 的另一半:逻辑单元
+
+the Logic Unit.
+好了,我们现在讲 ALU 的另一半:逻辑单元
+
+Instead of arithmetic operations, the Logic Unit performs well...
+逻辑单元执行逻辑操作
+
+logical operations, like AND, OR and NOT, which we've talked about previously.
+比如之前讨论过的 AND,OR 和 NOT 操作
+
+It also performs simple numerical tests,
+它也能做简单的数值测试
+
+like checking if a number is negative.
+比如一个数字是不是负数
+
+For example, here's a circuit that tests if the output of the ALU is zero.
+例如,这是检查 ALU 输出是否为 0 的电路
+
+It does this using a bunch of OR gates to see if any of the bits are 1.
+它用一堆 OR 门检查其中一位是否为 1
+
+Even if one single bit is 1,
+哪怕只有一个 Bit (位) 是1,
+
+we know the number can't be zero and then we use a final NOT gate to flip this input
+我们就知道那个数字肯定不是 0,然后用一个 NOT 门取反
+
+so the output is 1 only if the input number is 0.
+所以只有输入的数字是 0,输出才为 1
+
+So that's a high level overview of what makes up an ALU.
+以上就是 ALU 的一个高层次概括
+
+We even built several of the main components from scratch, like our ripple adder.
+我们甚至从零做了几个主要组件,比如行波进位加法器
+
+As you saw, it's just a big bunch of logic gates connected in clever ways.
+它们只是一大堆逻辑门巧妙的连在一起而已.
+
+Which brings us back to that ALU you admired so much at the beginning of the episode.
+让我们回到视频开始时的 ALU,英特尔 74181
+
+The Intel 74181.
+让我们回到视频开始时的 ALU,英特尔 74181
+
+Unlike the 8-bit ALU we made today, the 74181 could only handle 4-bit inputs,
+和我们刚刚做的 8 位 ALU 不同,74181 只能处理 4 位输入
+
+which means
+也就是说
+
+YOU BUILT AN ALU THAT'S LIKE TWICE AS GOOD AS THAT SUPER FAMOUS ONE. WITH YOUR MIND!
+你刚做了一个比英特尔 74181 还好的 ALU !
+
+Well.. sort of.
+其实 差不多啦..
+
+We didn't build the whole thing
+我们虽然没有全部造出来
+
+but you get the idea.
+但你理解了整体概念
+
+The 74181 used about 70 logic gates, and it couldn't multiply or divide.
+74181 用了大概 70 个逻辑门,但不能执行乘除.
+
+But it was a huge step forward in miniaturization,
+但它向小型化迈出了一大步
+
+opening the doors to more capable and less expensive computers.
+让计算机可以更强大更便宜
+
+This 4-bit ALU circuit is already a lot to take in,
+4 位 ALU 已经要很多逻辑门了
+
+but our 8-bit ALU would require hundreds of logic gates to fully build
+但我们的 8 位 ALU 会需要数百个逻辑门
+
+and engineers don't want to see all that complexity when using an ALU,
+工程师不想在用 ALU 时去想那些事情,
+
+so they came up with a special symbol to wrap it all up, which looks like a big V'.
+所以想了一个特殊符号来代表它,看起来像一个大 "V"
+
+Just another level of abstraction!
+又一层抽象!
+
+Our 8-bit ALU has two inputs, A and B, each with 8 bits.
+我们的 8 位 ALU 有两个输入,A和B,都是 8 位 (bits)
+
+We also need a way to specify what operation the ALU should perform,
+我们还需要告诉 ALU 执行什么操作
+
+for example, addition or subtraction.
+例如加法或减法
+
+For that, we use a 4-bit operation code.
+所以我们用 4 位的操作代码
+
+We'll talk about this more in a later episode,
+我们之后的视频会再细说
+
+but in brief, 1000 might be the command to add, while 1100 is the command for subtract.
+简言之,"1000"可能代表加法命令 \N "1100"代表减法命令
+
+Basically, the operation code tells the ALU what operation to perform.
+操作代码告诉 ALU 执行什么操作
+
+And the result of that operation on inputs A and B is an 8-bit output.
+输出结果是 8 位的
+
+ALUs also output a series of Flags,
+ALU 还会输出一堆标志(Flag)
+
+which are 1-bit outputs for particular states and statuses.
+"标志"是1位的,代表特定状态.
+
+For example, if we subtract two numbers, and the result is 0,
+比如相减两个数字,结果为 0
+
+our zero-testing circuit, the one we made earlier, sets the Zero Flag to True (1).
+我们的零测试电路(前面做的)\N 会将零标志设为 True(1)
+
+This is useful if we are trying to determine if two numbers are are equal.
+如果想知道两个数字是否相等,这个非常有用
+
+If we wanted to test if A was less than B,
+如果想知道: A 是否小于 B
+
+we can use the ALU to calculate A subtract B and look to see if the Negative Flag was set to true.
+可以用 ALU 来算 A 减 B,看负标志是否为 true
+
+If it was, we know that A was smaller than B.
+如果是 true,我们就知道 A 小于 B
+
+And finally, there's also a wire attached to the carry out on the adder we built,
+最后,还有一条线连到加法器的进位
+
+so if there is an overflow, we'll know about it.
+如果有溢出,我们就知道
+
+This is called the Overflow Flag.
+这叫溢出标志
+
+Fancier ALUs will have more flags,
+高级 ALU 有更多标志
+
+but these three flags are universal and frequently used.
+但这 3 个标志是 ALU 普遍用的
+
+In fact, we'll be using them soon in a future episode.
+其实,我们之后的视频会用到它们
+
+So now you know how your computer does all its basic mathematical operations digitally
+现在你知道了\N 计算机是怎样在没有齿轮或杠杆的情况下 进行运算
+
+with no gears or levers required.
+现在你知道了\N 计算机是怎样在没有齿轮或杠杆的情况下 进行运算
+
+We're going to use this ALU when we construct our CPU two episodes from now.
+接下来两集 我们会用 ALU 做 CPU
+
+But before that, our computer is going to need some memory!
+但在此之前,计算机需要一些 "记忆" !
+
+We'll talk about that next week.
+我们下周会讲
+
diff --git a/(字幕)全40集中英字幕文本/6. 寄存器 & 内存-Registers and RAM.ass.txt b/(字幕)全40集中英字幕文本/6. 寄存器 & 内存-Registers and RAM.ass.txt
new file mode 100644
index 0000000..a75925d
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/6. 寄存器 & 内存-Registers and RAM.ass.txt
@@ -0,0 +1,620 @@
+Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课
+
+So last episode, using just logic gates, we built a simple ALU,
+上集,我们用逻辑门做了个简单 ALU
+
+which performs arithmetic and logic operations, hence the 'A' and the 'L'.
+它能执行算术(Arithmetic)和逻辑(Logic)运算 \N ALU 里的 A 和 L 因此得名
+
+But of course, there's not much point in calculating a result only to throw it away
+当然,算出来之后如果扔掉就没什么意义了
+
+- it would be useful to store that value somehow,
+得找个方法存起来
+
+and maybe even run several operations in a row.
+可能还要进行多个连续操作
+
+That's where computer memory comes in!
+这就用到计算机内存了
+
+If you've ever been in the middle of a long RPG campaign on your console,
+如果你在主机上打过一场长时间的对局
+
+or slogging through a difficult level on Minesweeper on your desktop,
+或玩困难模式的 "扫雷"
+
+and your dog came by, tripped and pulled the power cord out of the wall,
+然后狗跑过来,被电源线绊倒,把插头拔了出来
+
+you know the agony of losing all your progress.
+你知道失去进度的痛苦
+
+Condolences.
+真同情你 :(
+
+But the reason for your loss is that your console, your laptop and your computers
+你损失数据的原因是 \N 电脑用的是"随机存取存储器",简称"RAM"
+
+make use of Random Access Memory, or RAM,
+你损失数据的原因是 \N 电脑用的是"随机存取存储器",简称"RAM"
+
+which stores things like game state - as long as the power stays on.
+它只能在有电的情况下存储东西,比如游戏状态
+
+Another type of memory, called persistent memory, can survive without power,
+另一种存储 (memory) 叫持久存储,电源关闭时数据也不会丢失
+
+and it's used for different things;
+它用来存其他东西.
+
+We'll talk about the persistence of memory in a later episode.
+我们之后会讨论存储 (memory) 的持久性问题
+
+Today, we're going to start small
+今天我们从简单开始
+
+- literally by building a circuit that can store one.. single.. bit of information.
+- 做只能存储 1 位的电路
+
+After that, we'll scale up, and build our very own memory module,
+之后再扩大,做出我们的内存模块
+
+and we'll combine it with our ALU next time, when we finally build our very own CPU!
+下次和 ALU 结合起来,做出 CPU!
+
+All of the logic circuits we've discussed so far go in one direction
+我们至今说过的电路都是单向的
+
+- always flowing forward.
+- 总是向前流动
+
+like our 8-bit ripple adder from last episode.
+比如上集的 8 位 "脉动进位加法器"
+
+But we can also create circuits that loop back on themselves.
+但也可以做回向电路,把输出连回输入
+
+Let's try taking an ordinary OR gate, and feed the output back into one of its inputs
+我们拿一个 OR 门试试,把输出连回输入
+
+and see what happens.
+看看会发生什么
+
+First, let's set both inputs to 0.
+首先,两个输入都设为 0
+
+So 0 OR 0 is 0, and so this circuit always outputs 0.
+"0 OR 0" 是 0,所以电路输出0
+
+If we were to flip input A to 1.
+如果将 A 变成1
+
+1 OR 0 is 1, so now the output of the OR gate is 1.
+"1 OR 0" 为 1,所以输出 1
+
+A fraction of a second later, that loops back around into input B,
+一转眼的功夫,输出回到 B
+
+so the OR gate sees that both of its inputs are now 1.
+OR 门看到两个输入都是 1
+
+1 OR 1 is still 1, so there is no change in output.
+"1 OR 1" 仍然为1,所以输出不变
+
+If we flip input A back to 0, the OR gate still outputs 1.
+如果将 A 变成 0,OR 门依然输出 1
+
+So now we've got a circuit that records a "1" for us.
+现在我们有个电路能记录 "1"
+
+Except, we've got a teensy tiny problem - this change is permanent!
+然而有个小问题:这是永久的!
+
+No matter how hard we try, there's no way to get this circuit to flip back from a 1 to a 0.
+无论怎么试,都没法从 1 变回 0
+
+Now let's look at this same circuit, but with an AND gate instead.
+我们换成 AND 门看看会怎样
+
+We'll start inputs A and B both at 1.
+开始时,A 和 B 都设 1
+
+1 AND 1 outputs 1 forever.
+"1 AND 1" 永远输出 1
+
+But, if we then flip input A to 0, because it's an AND gate, the output will go to 0.
+如果之后 A 设为 0,由于是 AND 门,输出会变成 0
+
+So this circuit records a 0, the opposite of our other circuit.
+这个电路能记录 0,和之前那个相反
+
+Like before, no matter what input we apply to input A afterwards, the circuit will always output 0.
+就像之前,无论 A 设什么值,电路始终输出 0
+
+Now we've got circuits that can record both 0s and 1s.
+现在有了能存 0 和 1 的电路
+
+The key to making this a useful piece of memory is to combine our two circuits into what is
+为了做出有用的存储 (memory) \N 我们把两个电路结合起来
+
+called the AND-OR Latch.
+这叫 "AND-OR 锁存器"
+
+It has two inputs, a "set" input, which sets the output to a 1,\Ncalled the AND-OR Latch.
+It has two inputs, a "set" input, which sets the output to a 1,
+它有两个输入\N "设置"输入, 把输出变成 1\N "复位"输入, 把输出变成 0
+
+and a "reset" input, which resets the output to a 0.
+它有两个输入\N "设置"输入, 把输出变成 1\N "复位"输入, 把输出变成 0
+
+If set and reset are both 0, the circuit just outputs whatever was last put in it.
+如果"设置"和"复位"都是 0,电路会输出最后放入的内容
+
+In other words, it remembers a single bit of information!
+也就是说,它存住了 1 位的信息!
+
+Memory!
+存储!
+
+This is called a "latch" because it "latches onto" a particular value and stays that way.
+这叫"锁存", 因为它"锁定"了一个值
+
+The action of putting data into memory is called writing, whereas getting the data out is called reading.
+放入数据的动作叫 "写入" ,拿出数据的动作叫 "读取"
+
+Ok, so we've got a way to store a single bit of information!
+现在我们终于有办法存一个位了!
+
+Great!
+超棒!
+
+Unfortunately, having two different wires for input - set and reset - is a bit confusing.
+麻烦的是, 用两条线 "设置"和"复位" 来输入, 有点难理解
+
+To make this a little easier to use, we really want a single wire to input data,
+为了更容易用,我们希望只有一条输入线
+
+that we can set to either 0 or 1 to store the value.
+将它设为 0 或 1 来存储值
+
+Additionally, we are going to need a wire that enables the memory
+还需要一根线来"启用"内存
+
+to be either available for writing or "locked" down
+启用时允许写入,没启用时就 "锁定"
+
+- which is called the write enable line.
+- 这条线叫 "允许写入线"
+
+By adding a few extra logic gates, we can build this circuit,
+加一些额外逻辑门,可以做出这个电路
+
+which is called a Gated Latch since the "gate" can be opened or closed.
+这叫"门锁",因为门可以打开和关上
+
+Now this circuit is starting to get a little complicated.
+现在有点复杂了
+
+We don't want to have to deal with all the individual logic gates...
+我们不想关心单独的逻辑门
+
+so as before, we're going to bump up a level of abstraction,
+所以我们提升一层抽象
+
+and put our whole Gated Latch circuit in a box -- a box that stores one bit.
+把 "门锁" 放到盒子里 - 这个盒子能存一个 bit
+
+Let's test out our new component!
+我们来测一下新组件!
+
+Let's start everything at 0.
+一切从 0 开始
+
+If we toggle the Data wire from 0 to 1 or 1 to 0,
+数据输入从0换到1, 从1换到0
+
+nothing happens - the output stays at 0.
+什么也不会发生 - 输出依然是 0
+
+That's because the write enable wire is off, which prevents any change to the memory.
+因为 "允许写入线" 是关闭的,所以内容不会变化
+
+So we need to "open" the "gate" by turning the write enable wire to 1.
+所以要给 "允许写入线" 输入 1, "打开" 门
+
+Now we can put a 1 on the data line to save the value 1 to our latch.
+现在往 "数据线" 放 1,1 就能存起来了
+
+Notice how the output is now 1.\NNow we can put a 1 on the data line to save the value 1 to our latch.
+Notice how the output is now 1.
+注意输出现在是 1 了
+
+Success!
+成功!
+
+We can turn off the enable line and the output stays as 1.
+现在可以关掉 "允许写入线" ,输出会保持 1
+
+Once again, we can toggle the value on the data line all we want,
+现在不管给 "数据线" 什么值
+
+but the output will stay the same.
+输出都不会变
+
+The value is saved in memory.
+值存起来了
+
+Now let's turn the enable line on again use our data line to set the latch to 0.
+现在又打开 "允许写入线" \N "数据线" 设为0
+
+Done.
+完成
+
+Enable line off, and the output is 0.
+"允许写入线" 关闭,输出 0
+
+And it works!
+成功了!
+
+Now, of course, computer memory that only stores one bit of information isn't very useful
+当然,只能存 1 bit 没什么大用
+
+-- definitely not enough to run Frogger.
+- 肯定玩不了游戏
+
+Or anything, really.
+或做其它事情
+
+But we're not limited to using only one latch.
+但我们没限制只能用一个锁存器
+
+If we put 8 latches side-by-side, we can store 8 bits of information like an 8-bit number.
+如果我们并排放 8 个锁存器,\N 可以存 8 位信息,比如一个 8 bit 数字
+
+A group of latches operating like this is called a register,
+一组这样的锁存器叫 "寄存器"
+
+which holds a single number, and the number of bits in a register is called its width.
+寄存器能存一个数字,这个数字有多少位,叫"位宽"
+
+Early computers had 8-bit registers, then 16, 32,
+早期电脑用 8 位寄存器,然后是 16 位,32 位
+
+and today, many computers have registers that are 64-bits wide.
+如今许多计算机都有 64 位宽的寄存器
+
+To write to our register, we first have to enable all of the latches.
+写入寄存器前,要先启用里面所有锁存器
+
+We can do this with a single wire that connects to all of their enable inputs, which we set to 1.
+我们可以用一根线连接所有 "允许输入线", 把它设为 1
+
+We then send our data in using the 8 data wires, and then set enable back to 0,
+然后用 8 条数据线发数据,然后将 "允许写入线" 设回 0
+
+and the 8 bit value is now saved in memory.
+现在 8 位的值就存起来了
+
+Putting latches side-by-side works ok for a small-ish number of bits.
+如果只有很少的位(bits),把锁存器并排放置,也勉强够用了.
+
+A 64-bit register would need 64 wires running to the data pins, and 64 wires running to the outputs.
+64 位寄存器要 64 根数据线,64 根连到输出端
+
+Luckily we only need 1 wire to enable all the latches, but that's still 129 wires.
+幸运的是,我们只要 1 根线启用所有锁存器 \N 但加起来也有 129 条线了
+
+For 256 bits, we end up with 513 wires!
+如果存 256 位要 513 条线!
+
+The solution is a matrix!
+解决方法是矩阵!
+
+In this matrix, we don't arrange our latches in a row,
+在矩阵中,我们不并列排放锁存器
+
+we put them in a grid.
+而是做成网格
+
+For 256 bits, we need a 16 by 16 grid of latches with 16 rows and columns of wires.
+存 256 位,我们用 16x16 网格的锁存器,有 16 行 16 列
+
+To activate any one latch, we must turn on the corresponding row AND column wire.
+要启用某个锁存器,就打开相应的 行线 和 列线
+
+Let's zoom in and see how this works.
+放大看看怎么做的
+
+We only want the latch at the intersection of the two active wires to be enabled,
+我们只想打开交叉处 锁存器的 "允许写入线"
+
+but all of the other latches should stay disabled.
+所有其他锁存器,保持关闭
+
+For this, we can use our trusty AND gate!
+我们可以用 AND 门!
+
+The AND gate will output a 1 only if the row and the column wires are both 1.
+只有 行线和列线 均为 1 ,AND 门才输出 1
+
+So we can use this signal to uniquely select a single latch.
+所以可以用选择单个锁存器
+
+This row/column setup connects all our latches with a single, shared, write enable wire.
+这种行/列排列法,用一根 "允许写入线" 连所有锁存器
+
+In order for a latch to become write enabled,
+为了让锁存器变成 "允许写入"
+
+the row wire, the column wire, and the write enable wire must all be 1.
+行线,列线和 "允许写入线" 都必须是 1
+
+That should only ever be true for one single latch at any given time.
+每次只有 1 个锁存器会这样
+
+This means we can use a single, shared wire for data.
+代表我们可以只用一根 "数据线" \N 连所有锁存器来传数据
+
+Because only one latch will ever be write enabled, only one will ever save the data
+因为只有一个锁存器会启用,只有那个会存数据
+
+-- the rest of the latches will simply ignore values on the data wire because they are not write enabled.
+其他锁存器会忽略数据线上的值,因为没有 "允许写入"
+
+We can use the same trick with a read enable wire to read the data later,
+我们可以用类似的技巧, 做"允许读取线"来读数据
+
+to get the data out of one specific latch.
+从一个指定的锁存器,读取数据
+
+This means in total, for 256 bits of memory,
+所以对于 256 位的存储
+
+we only need 35 wires - 1 data wire, 1 write enable wire, 1 read enable wire,
+只要 35 条线 \N1条"数据线", 1条"允许写入线", 1条"允许读取线"
+
+and 16 rows and columns for the selection.
+还有16行16列的线用于选择锁存器 \N (16+16=32, 32+3=35)
+
+That's significant wire savings!
+这省了好多线!
+
+But we need a way to uniquely specify each intersection.
+但我们需要某种方法来 唯一指定 交叉路口
+
+We can think of this like a city,
+我们可以想成城市
+
+where you might want to meet someone at 12th avenue and 8th street
+你可能想和别人 在第 12 大道和第 8 街的交界碰面
+
+-- that's an address that defines an intersection.
+- 这是一个交叉点的地址
+
+The latch we just saved our one bit into has an address of row 12 and column 8.
+我们刚刚存了一位的地址是 "12行 8列"
+
+Since there is a maximum of 16 rows, we store the row address in a 4 bit number.
+由于最多 16 行, 用 4 位就够了
+
+12 is 1100 in binary.
+12 用二进制表示为 1100
+
+We can do the same for the column address: 8 is 1000 in binary.
+列地址也可以这样: 8 用二进制表示为 1000
+
+So the address for the particular latch we just used can be written as 11001000.
+刚才说的"12行 8列"可以写成 11001000
+
+To convert from an address into something that selects the right row or column,
+为了将地址转成 行和列
+
+we need a special component called a multiplexer
+我们需要 "多路复用器"
+
+-- which is the computer component with a pretty cool name at least compared to the ALU.
+- 这个名字起码比 ALU 酷一点
+
+Multiplexers come in all different sizes,
+多路复用器有不同大小
+
+but because we have 16 rows, we need a 1 to 16 multiplexer.
+因为有 16 行,我们需要 1 到 16 多路复用器
+
+It works like this.
+工作方式是
+
+You feed it a 4 bit number, and it connects the input line to a corresponding output line.
+输入一个 4 位数字,它会把那根线,连到相应的输出线
+
+So if we pass in 0000, it will select the very first column for us.
+如果输入 0000,它会选择第一列
+
+If we pass in 0001, the next column is selected, and so on.
+如果输入 0001,会选择下一列,依此类推
+
+We need one multiplexer to handle our rows and another multiplexer to handle the columns.
+一个多路复用器处理行(row) \N 另一个多路复用器处理列(column)
+
+Ok, it's starting to get complicated again,
+好吧,开始有点复杂了
+
+so let's make our 256-bit memory its own component.
+那么把 256 位内存当成一个整体好了
+
+Once again a new level of abstraction!
+又提升了一层抽象!
+
+It takes an 8-bit address for input - the 4 bits for the column and 4 for the row.
+它输入一个 8 位地址:4 位代表列,4 位代表行
+
+We also need write and read enable wires.
+我们还需要 "允许写入线" 和 "允许读取线"
+
+And finally, we need just one data wire, which can be used to read or write data.
+最后,还需要一条数据线,用于读/写数据
+
+Unfortunately, even 256-bits of memory isn't enough to run much of anything,
+不幸的是, 256 位的内存也没法做什么事
+
+so we need to scale up even more!
+所以还要扩大规模
+
+We're going to put them in a row.
+把它们并排放置
+
+Just like with the registers.
+就像寄存器一样
+
+We'll make a row of 8 of them, so we can store an 8 bit number - also known as a byte.
+一行8个,可以存一个 8 位数字 \N 8 位也叫一个字节(byte)
+
+To do this, we feed the exact same address into all 8 of our 256-bit memory components at the same time,
+为了存一个 8 位数字,我们同时给 8 个 256 位内存一样的地址
+
+and each one saves one bit of the number.
+每个地址存 1 位
+
+That means the component we just made can store 256 bytes at 256 different addresses.
+意味着这里总共能存 256 个字节 (byte)
+
+Again, to keep things simple, we want to leave behind this inner complexity.
+再次,为了简单,我们不管内部
+
+Instead of thinking of this as a series of individual memory modules and circuits,
+不看作是一堆独立的存储模块和电路
+
+we'll think of it as a uniform bank of addressable memory.
+而是看成一个整体的可寻址内存
+
+We have 256 addresses,
+我们有 256 个地址
+
+and at each address, we can read or write an 8-bit value.
+每个地址能读或写一个 8 位值
+
+We're going to use this memory component next episode when we build our CPU.
+我们下集做 CPU 时会用到这个内存
+
+The way that modern computers scale to megabytes and gigabytes of memory
+现代计算机的内存 \N 扩展到上兆字节(MB)和千兆字节(GB)的方式
+
+is by doing the same thing we've been doing here
+和我们这里做的一样
+
+-- keep packaging up little bundles of memory into larger, and larger, and larger arrangements.
+不断把内存打包到更大规模
+
+As the number of memory locations grow, our addresses have to grow as well.
+随着内存地址增多,内存地址也必须增长
+
+8 bits hold enough numbers to provide addresses for 256 bytes of our memory,
+8 位最多能代表 256 个内存地址 \N(1111 1111 是255,0~255 一共 256 个数字)
+
+but that's all.
+只有这么多
+
+To address a gigabyte - or a billion bytes of memory - we need 32-bit addresses.
+要给千兆或十亿字节的内存寻址,需要 32 位的地址
+
+An important property of this memory is that we can access any memory location, at any time, and in a random order.
+内存的一个重要特性是:可以随时访问任何位置
+
+For this reason, it's called Random-Access Memory or RAM.
+因此叫 "随机存取存储器" ,简称 RAM
+
+When you hear people talking about how much RAM a computer has
+当你听到有人说 RAM 有多大
+
+- that's the computer's memory.
+他的意思是内存有多大
+
+RAM is like a human's short term or working memory,
+RAM 就像人类的短期记忆
+
+where you keep track of things going on right now
+记录当前在做什么事
+
+- like whether or not you had lunch or paid your phone bill.
+比如吃了午饭没,或有没有交电话费
+
+Here's an actual stick of RAM - with 8 memory modules soldered onto the board.
+这是一条真的内存,上面焊了 8 个内存模块
+
+If we carefully opened up one of these modules and zoomed in,
+如果打开其中一个,然后放大
+
+The first thing you would see are 32 squares of memory.
+会看到 32 个内存方块
+
+Zoom into one of those squares, and we can see each one is comprised of 4 smaller blocks.
+放大其中一个方块,可以看到有 4 个小块
+
+If we zoom in again, we get down to the matrix of individual bits.
+如果再放大,可以看到存一个"位"的矩阵
+
+This is a matrix of 128 by 64 bits.
+这个矩阵是 128 位 x 64 位
+
+That's 8192 bits in total.
+总共 8192 位
+
+Each of our 32 squares has 4 matrices, so that's 32 thousand, 7 hundred and 68 bits.
+每个方格 4 个矩阵 \N 所以一个方格有 32768 个位 (8192 x 4 = 32768)
+
+And there are 32 squares in total.
+而一共 32 个方格
+
+So all in all, that's roughly 1 million bits of memory in each chip.
+总而言之,1 个芯片大约存 100 万位
+
+Our RAM stick has 8 of these chips, so in total, this RAM can store 8 millions bits,
+RAM 有 8 个芯片,所以总共 800 万位
+
+otherwise known as 1 megabyte.
+也就是 1 兆字节(1 MB)
+
+That's not a lot of memory these days -- this is a RAM module from the 1980's.
+1 MB 如今不算大 - 这是 1980 年代的 RAM
+
+Today you can buy RAM that has a gigabyte or more of memory
+如今你可以买到千兆字节(GB)的 RAM
+
+- that's billions of bytes of memory.
+那可是数十亿字节的内存
+
+So, today, we built a piece of SRAM - Static Random-Access Memory - which uses latches.
+今天,我们用锁存器做了一块 SRAM(静态随机存取存储器)
+
+There are other types of RAM, such as DRAM, Flash memory, and NVRAM.
+还有其他类型的 RAM,如 DRAM,闪存和 NVRAM
+
+These are very similar in function to SRAM,
+它们在功能上与 SRAM 相似
+
+but use different circuits to store the individual bits
+但用不同的电路存单个位
+
+- for example, using different logic gates, capacitors, charge traps, or memristors.
+- 比如用不同的逻辑门,电容器,电荷捕获或忆阻器
+
+But fundamentally, all of these technologies store bits of information
+但根本上 这些技术都是矩阵层层嵌套,来存储大量信息
+
+in massively nested matrices of memory cells.
+但根本上 这些技术都是矩阵层层嵌套,来存储大量信息
+
+Like many things in computing, the fundamental operation is relatively simple.
+就像计算机中的很多事情,底层其实都很简单
+
+it's the layers and layers of abstraction that's mind blowing
+让人难以理解的,是一层层精妙的抽象
+
+-- like a russian doll that keeps getting smaller and smaller and smaller.
+像一个越来越小的俄罗斯套娃
+
+I'll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/7. 中央处理器-The Central Processing Unit(CPU).ass.txt b/(字幕)全40集中英字幕文本/7. 中央处理器-The Central Processing Unit(CPU).ass.txt
new file mode 100644
index 0000000..388b8e4
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/7. 中央处理器-The Central Processing Unit(CPU).ass.txt
@@ -0,0 +1,608 @@
+Hi, I'm Carrie Anne, this is Crash Course Computer Science
+嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+and today, we're talking about processors.
+今天我们讲 处理器
+
+Just a warning though - this is probably the most complicated episode in the series.
+提示下 - 这集可能是最难的一集
+
+So once you get this, you're golden.
+所以一旦你理解了,就会变得超厉害der~
+
+We've already made a Arithmetic and Logic Unit,
+我们已经做了一个算术逻辑单元(ALU)
+
+which takes in binary numbers and performs calculations,
+输入二进制,它会执行计算
+
+and we've made two types of computer memory:
+我们还做了两种内存:
+
+Registers -- small, linear chunks of memory, useful for storing a single value
+寄存器 - 很小的一块内存,能存一个值
+
+and then we scaled up, and made some RAM,
+之后我们增大做出了 RAM
+
+a larger bank of memory that can store a lot of numbers located at different addresses.
+RAM 是一大块内存,能在不同地址存大量数字
+
+Now it's time to put it all together and build ourselves the heart of any computer,
+现在是时候把这些放在一起,组建计算机的 "心脏" 了
+
+but without any of the emotional baggage that comes with human hearts.
+但这个 "心脏" 不会有任何包袱,比如人类情感.
+
+For computers, this is the Central Processing Unit, most commonly called the CPU.
+计算机的心脏是"中央处理单元",简称 "CPU"
+
+A CPU's job is to execute programs.
+CPU 负责执行程序
+
+Programs, like Microsoft Office, Safari, or your beloved copy of Half Life: 2,
+比如 Office,Safari 浏览器,你最爱的 《半条命2》
+
+are made up of a series of individual operations,
+程序由一个个操作组成
+
+called instructions, because they "instruct" the computer what to do.
+这些操作叫"指令"(Instruction) \N 因为它们"指示"计算机要做什么
+
+If these are mathematical instructions, like add or subtract,
+如果是数学指令,比如加/减
+
+the CPU will configure its ALU to do the mathematical operation.
+CPU 会让 ALU 进行数学运算
+
+Or it might be a memory instruction,
+也可能是内存指令,CPU 会和内存通信,然后读/写值
+
+in which case the CPU will talk with memory to read and write values.
+也可能是内存指令,CPU 会和内存通信,然后读/写值
+
+There are a lot of parts in a CPU,
+CPU 里有很多组件.
+
+so we're going to lay it out piece by piece, building up as we go.
+所以我们一边说一边建
+
+We'll focus on functional blocks, rather than showing every single wire.
+我们把重点放在功能,而不是一根根线具体怎么连
+
+When we do connect two components with a line,
+当我们用一条线连接两个组件时
+
+this is an abstraction for all of the necessary wires.
+这条线只是所有必须线路的一个抽象
+
+This high level view is called the microarchitecture.
+这种高层次视角叫 "微体系架构"
+
+OK, first, we're going to need some memory.
+好,我们首先要一些内存,把上集做的 RAM 拿来就行
+
+Lets drop in the RAM module we created last episode.
+好,我们首先要一些内存,把上集做的 RAM 拿来就行
+
+To keep things simple, we'll assume it only has 16 memory locations, each containing 8 bits.
+为了保持简单,假设它只有 16 个位置,每个位置存 8 位
+
+Let's also give our processor four, 8-bit memory registers, labeled A, B, C and D
+再来四个 8 位寄存器,叫 A,B,C,D
+
+which will be used to temporarily store and manipulate values.
+寄存器用来 临时存数据 和 操作数据
+
+We already know that data can be stored in memory as binary values
+我们已经知道数据 是以二进制值存在内存里
+
+and programs can be stored in memory too.
+程序也可以存在内存里
+
+We can assign an ID to each instruction supported by our CPU.
+我们可以给 CPU 支持的所有指令,分配一个 ID
+
+指令表
+
+指令
+
+描述
+
+4位操作码
+
+地址或寄存器
+
+In our hypothetical example, we use the first four bits to store the "operation code",
+在这个假设的例子 \N 我们用前四位存 "操作代码" (operation code)
+
+or opcode for short.
+简称 "操作码" (opcode)
+
+The final four bits specify where the data for that operation should come from -
+后四位代表数据来自哪里
+
+this could be registers or an address in memory.
+- 可以是寄存器或内存地址
+
+We also need two more registers to complete our CPU.
+我们还需要两个寄存器,来完成 CPU.
+
+First, we need a register to keep track of where we are in a program.
+1. 一个寄存器追踪程序运行到哪里了,我们叫它 "指令地址寄存器"
+
+For this, we use an instruction address register,
+1. 一个寄存器追踪程序运行到哪里了,我们叫它 "指令地址寄存器"
+
+which as the name suggests, stores the memory address of the current instruction.
+顾名思义,存当前指令的内存地址
+
+And then we need the other register to store the current instruction,
+2. 另一个寄存器存当前指令,叫 "指令寄存器"
+
+which we'll call the instruction register.
+2. 另一个寄存器存当前指令,叫 "指令寄存器"
+
+When we first boot up our computer, all of our registers start at 0.
+当启动计算机时,所有寄存器从 0 开始
+
+As an example, we've initialized our RAM with a simple computer program that we'll to through today.
+为了举例,我们在 RAM 里放了一个程序,我们今天会过一遍
+
+The first phase of a CPU's operation is called the fetch phase.
+CPU 的第一个阶段叫 "取指令阶段"
+
+This is where we retrieve our first instruction.
+负责拿到指令
+
+First, we wire our Instruction Address Register to our RAM module.
+首先,将 "指令地址寄存器" 连到 RAM
+
+The register's value is 0, so the RAM returns whatever value is stored in address 0.
+寄存器的值为 0,因此 RAM 返回地址 0 的值
+
+In this case, 0010 1110.
+0010 1110 会复制到 "指令寄存器" 里
+
+Then this value is copied into our instruction register.
+0010 1110 会复制到 "指令寄存器" 里
+
+Now that we've fetched an instruction from memory,
+现在指令拿到了
+
+we need to figure out what that instruction is
+要弄清是什么指令,才能执行(execute)
+
+so we can execute it.
+要弄清是什么指令,才能执行(execute)
+
+That is run it.
+而不是杀死(kill)它
+
+Not kill it.
+而不是杀死(kill)它
+
+This is called the decode phase.
+这是 "解码阶段"
+
+指令表
+
+指令
+
+描述
+
+4位操作码
+
+地址或寄存器
+
+In this case the opcode, which is the first four bits, is: 0010.
+前 4 位 0010 是 LOAD A 指令
+
+This opcode corresponds to the "LOAD A" instruction,
+前 4 位 0010 是 LOAD A 指令
+
+which loads a value from RAM into Register A.
+意思是,把 RAM 的值放入寄存器 A
+
+The RAM address is the last four bits of our instruction which are 1110, or 14 in decimal.
+后 4 位 1110 是 RAM 的地址, 转成十进制是 14
+
+Next, instructions are decoded and interpreted by a Control Unit.
+接下来,指令由 "控制单元" 进行解码
+
+Like everything else we've built, it too is made out of logic gates.
+就像之前的所有东西 \N "控制单元" 也是逻辑门组成的
+
+For example, to recognize a LOAD A instruction,
+比如,为了识别 "LOAD A" 指令
+
+we need a circuit that checks if the opcode matches 0010
+需要一个电路,检查操作码是不是 0010
+
+which we can do with a handful of logic gates.
+我们可以用很少的逻辑门来实现.
+
+Now that we know what instruction we're dealing with,
+现在知道了是什么指令
+
+we can go ahead and perform that instruction which is the beginning of the execute phase!
+就可以开始执行了,开始 "执行阶段"
+
+Using the output of our LOAD_A checking circuit,
+用 "检查是否 LOAD_A 指令的电路"
+
+we can turn on the RAM's read enable line and send in address 14.
+可以打开 RAM 的 "允许读取线", 把地址 14 传过去
+
+The RAM retrieves the value at that address, which is 00000011, or 3 in decimal.
+RAM 拿到值,0000 0011,十进制的 3
+
+Now, because this is a LOAD_A instruction,
+因为是 LOAD_A 指令 \N 我们想把这个值只放到寄存器 A,其他寄存器不受影响
+
+we want that value to only be saved into Register A and not any of the other registers.
+因为是 LOAD_A 指令 \N 我们想把这个值只放到寄存器 A,其他寄存器不受影响
+
+So if we connect the RAM's data wires to our four data registers,
+所以需要一根线,把 RAM 连到 4 个寄存器
+
+we can use our LOAD_A check circuit to enable the write enable only for Register A.
+用 "检查是否 LOAD_A 指令的电路" \N 启用寄存器 A 的 "允许写入线"
+
+And there you have it
+这就成功了
+
+-- we've successfully loaded the value at RAM address 14 into Register A.
+- 把 RAM 地址 14 的值,放到了寄存器 A.
+
+We've completed the instruction, so we can turn all of our wires off,
+既然指令完成了,我们可以关掉所有线路
+
+and we are ready to fetch the next instruction in memory.
+去拿下一条指令
+
+To do this, we increment the Instruction Address Register by 1 which completes the execute phase.
+我们把 "指令地址寄存器"+1,"执行阶段"就此结束.
+
+LOAD_A is just one of several possible instructions that our CPU can execute.
+LOAD_A 只是 CPU 可以执行的各种指令之一
+
+Different instructions are decoded by different logic circuits,
+不同指令由不同逻辑电路解码
+
+which configure the CPU's components to perform that action.
+这些逻辑电路会配置 CPU 内的组件来执行对应操作
+
+Looking at all those individual decode circuits is too much detail,
+具体分析这些解码电路太繁琐了
+
+so since we looked at one example,
+既然已经看了 1 个例子,
+
+we're going to go head and package them all up as a single Control Unit to keep things simple.
+干脆把 "控制单元 "包成一个整体,简洁一些.
+
+That's right a new level of abstraction.
+没错,一层新抽象
+
+The Control Unit is comparable to the conductor of an orchestra,
+控制单元就像管弦乐队的指挥
+
+directing all of the different parts of the CPU.
+"指挥" CPU 的所有组件
+
+Having completed one full fetch/decode/execute cycle,
+"取指令→解码→执行" 完成后
+
+we're ready to start all over again, beginning with the fetch phase.
+现在可以再来一次,从 "取指令" 开始
+
+The Instruction Address Register now has the value 1 in it,
+"指令地址寄存器" 现在的值是 1
+
+so the RAM gives us the value stored at address 1, which is 0001 1111.
+所以 RAM 返回地址 1 里的值:0001 1111
+
+On to the decode phase!
+到 "解码" 阶段!
+
+0001 is the "LOAD B" instruction, which moves a value from RAM into Register B.
+0001 是 LOAD B 指令 \N 从 RAM 里把一个值复制到寄存器 B
+
+The memory location this time is 1111, which is 15 in decimal.
+这次内存地址是 1111,十进制的 15
+
+Now to the execute phase!
+现在到 "执行阶段"!
+
+The Control Unit configures the RAM to read address 15 and configures Register B to receive the data.
+"控制单元" 叫 RAM 读地址 15,并配置寄存器 B 接收数据
+
+Bingo, we just saved the value 00001110, or the number 14 in decimal, into Register B.
+成功,我们把值 0000 1110 \N 也就是十进制的 14 存到了寄存器 B
+
+Last thing to do is increment our instruction address register by 1,
+最后一件事是 "指令地址寄存器" +1
+
+and we're done with another cycle.
+我们又完成了一个循环
+
+Our next instruction is a bit different.
+下一条指令有点不同
+
+Let's fetch it.
+来取它吧
+
+1000 0100.
+1000 0100
+
+That opcode 1000 is an ADD instruction.
+1000 是 ADD 指令
+
+Instead of an 4-bit RAM address, this instruction uses two sets of 2 bits.
+这次后面的 4 位不是 RAM 地址,\N 而是 2 位 2 位分别代表 2 个寄存器
+
+Remember that 2 bits can encode 4 values,
+2 位可以表示 4 个值
+
+so 2 bits is enough to select any one of our 4 registers.
+所以足够表示 4 个寄存器
+
+The first set of 2 bits is 01, which in this case corresponds to Register B,
+第一个地址是 01, 代表寄存器B
+
+and 00, which is Register A.
+第二个地址是 00, 代表寄存器A
+
+So "1000 01 00" is the instruction for adding the value in Register B into the value in register A.
+因此,1000 0100,代表把寄存器 B 的值,加到寄存器 A 里
+
+So to execute this instruction, we need to integrate the ALU we made in Episode 5 into our CPU.
+为了执行这个指令,我们要整合第 5 集的 ALU
+
+The Control Unit is responsible for selecting the right registers to pass in as inputs,
+"控制单元" 负责选择正确的寄存器作为输入
+
+and configuring the ALU to perform the right operation.
+并配置 ALU 执行正确的操作
+
+For this ADD instruction, the Control Unit enables Register B
+对于 "ADD" 指令, "控制单元" 会
+
+and feeds its value into the first input of the ALU.
+启用寄存器 B,作为 ALU 的第一个输入
+
+It also enables Register A and feeds it into the second ALU input.
+还启用寄存器 A,作为 ALU 的第二个输入
+
+As we already discussed, the ALU itself can perform several different operations,
+之前说过,ALU 可以执行不同操作
+
+so the Control Unit must configure it to perform an ADD operation by passing in the ADD opcode.
+所以控制单元必须传递 ADD 操作码告诉它要做什么
+
+Finally, the output should be saved into Register A.
+最后,结果应该存到寄存器 A
+
+But it can't be written directly
+但不能直接写入寄存器 A
+
+because the new value would ripple back into the ALU and then keep adding to itself.
+这样新值会进入 ALU ,不断和自己相加
+
+So the Control Unit uses an internal register to temporarily save the output,
+因此,控制单元用一个自己的寄存器暂时保存结果
+
+turn off the ALU, and then write the value into the proper destination register.
+关闭 ALU,然后把值写入正确的寄存器
+
+In this case, our inputs were 3 and 14, and so the sum is 17, or 00010001 in binary,
+这里 3+14=17,二进制是 0001 0001
+
+which is now sitting in Register A.
+现在存到了寄存器 A
+
+As before, the last thing to do is increment our instruction address by 1,
+和之前一样,最后一件事是把指令地址 + 1
+
+and another cycle is complete.
+这个循环就完成了
+
+Okay, so let's fetch one last instruction: 0100 1101.
+好,来看最后一个指令:0100 1101
+
+When we decode it we see that 0100 is a STORE_A instruction, with a RAM address of 13.
+解码得知是 STORE A 指令(把寄存器 A 的值放入内存) \N RAM 地址 13
+
+As usual, we pass the address to the RAM module,
+接下来,把地址传给 RAM
+
+but instead of read-enabling the memory, we write-enable it.
+但这次不是 "允许读取" ,而是 "允许写入"
+
+At the same time, we read-enable Register A.
+同时,打开寄存器 A 的 "允许读取"
+
+This allows us to use the data line to pass in the value stored in register A.
+这样就可以把寄存器 A 里的值,传给 RAM
+
+Congrats, we just ran our first computer program!
+恭喜,我们刚运行了第一个电脑程序!
+
+It loaded two values from memory, added them together,
+它从内存中加载两个值,相加,然后把结果放回内存
+
+and then saved that sum back into memory.
+它从内存中加载两个值,相加,然后把结果放回内存
+
+Of course, by me talking you through the individual steps,
+刚刚是我一步步来讲的,
+
+I was manually transitioning the CPU through its fetch, decode and execute phases.
+我们人工切换 CPU 的状态 "取指令→解码→执行"
+
+But there isn't a mini Carrie Anne inside of every computer.
+但不是每台电脑里都有一个迷你 Carrie Anne
+
+So the responsibility of keeping the CPU ticking along falls to a component called the clock.
+其实是 "时钟" 来负责管理 CPU 的节奏
+
+As it's name suggests, the clock triggers an electrical signal at a precise and regular interval.
+时钟以精确的间隔 触发电信号
+
+Its signal is used by the Control Unit to advance the internal operation of the CPU,
+控制单元会用这个信号,推进 CPU 的内部操作
+
+keeping everything in lock-step
+确保一切按步骤进行
+
+- like the dude on a Roman galley drumming rhythmically at the front,
+- 就像罗马帆船的船头,有一个人负责按节奏的击鼓,
+
+keeping all the rowers synchronized... or a metronome.
+让所有划船的人同步... 就像节拍器一样
+
+Of course you can't go too fast,
+节奏不能太快
+
+because even electricity takes some time to travel down wires and for the signal to settle.
+因为就算是电也要一定时间来传输
+
+The speed at which a CPU can carry out each step of the fetch-decode-execute cycle
+CPU "取指令→解码→执行" 的速度叫 "时钟速度"
+
+is called its Clock Speed.
+CPU "取指令→解码→执行" 的速度叫 "时钟速度"
+
+This speed is measured in Hertz - a unit of frequency.
+单位是赫兹 - 赫兹是用来表示频率的单位
+
+One Hertz means one cycle per second.
+1 赫兹代表一秒 1 个周期
+
+Given that it took me about 6 minutes to talk you through 4 instructions
+因为我花了大概 6 分钟,给你讲了 4 条指令
+
+LOAD, LOAD, ADD and STORE
+读取→读取→相加→存储
+
+that means I have an effective clock speed of roughly .03 Hertz.
+所以我的时钟速度大概是 0.03 赫兹
+
+Admittedly, I'm not a great computer
+我承认我算数不快
+
+but even someone handy with math might only be able to do one calculation in their head every second or 1 Hertz.
+但哪怕有人算数很快,最多也就是一秒一次,或 1 赫兹
+
+The very first, single-chip CPU was the Intel 4004, a 4-bit CPU released in 1971.
+第一个单芯片 CPU 是 "英特尔 4004" \N 1971 年发布的 4 位CPU
+
+It's microarchitecture is actually pretty similar to our example CPU.
+它的微架构 很像我们之前说的 CPU
+
+Despite being the first processor of its kind,
+虽然是第一个单芯片的处理器
+
+it had a mind-blowing clock speed of 740 Kilohertz
+但它的时钟速度达到了 740 千赫兹 - 每秒 74 万次
+
+-- that's 740 thousand cycles per second.
+但它的时钟速度达到了 740 千赫兹 - 每秒 74 万次
+
+You might think that's fast,
+你可能觉得很快
+
+but it's nothing compared to the processors that we use today.
+但和如今的处理器相比不值一提
+
+One megahertz is one million clock cycles per second,
+一兆赫兹是 1 秒 1 百万个时钟周期
+
+and the computer or even phone that you are watching this video on right now is no doubt a few gigahertz
+你现在看视频的电脑或手机,肯定有几千兆赫兹
+
+-- that's BILLIONs of CPU cycles every single... second.
+- 1 秒 10 亿次时钟周期
+
+Also, you may have heard of people overclocking their computers.
+你可能听过有人会把计算机超频
+
+This is when you modify the clock to speed up the tempo of the CPU
+意思是修改时钟速度,加快 CPU 的速度
+
+-- like when the drummer speeds up when the Roman Galley needs to ram another ship.
+- 就像罗马帆船要撞另一艘船时,鼓手会加快敲鼓速度
+
+Chip makers often design CPUs with enough tolerance to handle a little bit of overclocking,
+芯片制造商经常给 CPU 留一点余地,可以接受一点超频
+
+but too much can either overheat the CPU,
+但超频太多会让 CPU 过热
+
+or produce gobbledygook as the signals fall behind the clock.
+或产生乱码,因为信号跟不上时钟
+
+And although you don't hear very much about underclocking,
+你可能很少听说降频
+
+it's actually super useful.
+但降频其实很有用
+
+Sometimes it's not necessary to run the processor at full speed...
+有时没必要让处理器全速运行
+
+maybe the user has stepped away, or just not running a particularly demanding program.
+可能用户走开了,或者在跑一个性能要求较低的程序
+
+By slowing the CPU down, you can save a lot of power,
+把 CPU 的速度降下来,可以省很多电
+
+which is important for computers that run on batteries, like laptops and smartphones.
+省电对用电池的设备很重要,比如笔记本和手机
+
+To meet these needs,
+为了尽可能省电
+
+many modern processors can increase or decrease their clock speed based on demand,
+很多现代处理器可以按需求 加快或减慢时钟速度
+
+which is called dynamic frequency scaling.
+这叫 "动态调整频率"
+
+So, with the addition of a clock, our CPU is complete.
+加上时钟后,CPU 才是完整的.
+
+We can now put a box around it, and make it its own component.
+现在可以放到盒子里,变成一个独立组件
+
+Yup.
+对
+
+A new level of abstraction!
+一层新的抽象!
+
+RAM, as I showed you last episode,
+RAM,上集说过,是在 CPU 外面的独立组件
+
+lies outside the CPU as its own component,
+RAM,上集说过,是在 CPU 外面的独立组件
+
+and they communicate with each other using address, data and enable wires.
+CPU 和 RAM 之间 \N 用 "地址线" "数据线" 和 "允许读/写线" 进行通信
+
+Although the CPU we designed today is a simplified example,
+虽然今天我们设计的 CPU 是简化版的,
+
+many of the basic mechanics we discussed are still found in modern processors.
+但我们提到的很多机制,依然存在于现代处理器里
+
+Next episode, we're going to beef up our CPU,
+下一集,我们要加强 CPU,给它扩展更多指令.
+
+extending it with more instructions as we take our first baby steps into software.
+同时开始讲软件.
+
+I'll see you next week.
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/8. 指令和程序-Instructions & Programs.ass.txt b/(字幕)全40集中英字幕文本/8. 指令和程序-Instructions & Programs.ass.txt
new file mode 100644
index 0000000..8a6ac57
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/8. 指令和程序-Instructions & Programs.ass.txt
@@ -0,0 +1,537 @@
+Hi, I’m Carrie Anne and this is Crash Course Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+Last episode, we combined an ALU, control unit, some memory, and a clock together to
+上集我们把 ALU, 控制单元, RAM, 时钟 结合在一起
+
+make a basic, but functional Central Processing Unit – or CPU
+做了个基本,但可用的"中央处理单元", 简称 CPU
+
+– the beating, ticking heart of a computer.
+它是计算机的核心
+
+We’ve done all the hard work of building many of these components from the electronic
+我们已经用电路做了很多组件.
+
+circuits up, and now it’s time to give our CPU some actual instructions to process!
+这次我们给 CPU 一些指令来运行!
+
+The thing that makes a CPU powerful is the fact that it is programmable –
+CPU 之所以强大,是因为它是可编程的 -
+
+if you write a different sequence of instructions, then the CPU will perform a different task.
+如果写入不同指令,就会执行不同任务
+
+So the CPU is a piece of hardware which is controlled by easy-to-modify software!
+CPU 是一块硬件,可以被软件控制!
+
+Let’s quickly revisit the simple program that we stepped through last episode.
+我们重新看一下上集的简单程序
+
+The computer memory looked like this.
+内存里有这些值
+
+Each address contained 8 bits of data.
+每个地址可以存 8 位数据
+
+For our hypothetical CPU, the first four bits specified the operation code, or opcode, and
+因为我们的 CPU 是假设的,这里前4位是"操作码"
+
+the second set of four bits specified an address or registers.
+后4位指定一个内存地址,或寄存器.
+
+In memory address zero we have 0010 1110.
+内存地址 0 是 0010 1110
+
+Again, those first four bits are our opcode which corresponds to a "LOAD_A" instruction.
+前 4 位代表 LOAD_A 指令
+
+This instruction reads data from a location of memory specified in those last four bits
+意思是:把后 4 位指定的内存地址的值,放入寄存器 A
+
+of the instruction and saves it into Register A. In this case, 1110, or 14 in decimal.
+后 4 位是 1110,十进制的 14
+
+So let’s not think of this of memory address 0 as "0010 1110", but rather as the instruction
+我们来把 0010 1110 看成 "LOAD_A 14" 指令
+
+"LOAD_A 14".
+我们来把 0010 1110 看成 "LOAD_A 14" 指令
+
+That’s much easier to read and understand!
+这样更好理解!
+
+And for me to say!
+也更方便说清楚
+
+And we can do the same thing for the rest of the data in memory.
+可以对内存里剩下的数也这样转换.
+
+In this case, our program is just four instructions long,
+这里,我们的程序只有4个指令
+
+and we’ve put some numbers into memory too, 3 and 14.
+还有数字 3 和 14
+
+So now let’s step through this program:
+现在一步步看
+
+First is LOAD_A 14, which takes the value in address 14, which is the number 3,
+"LOAD_A 14" 是从地址 14 中拿到数字3,放入寄存器A
+
+and stores it into Register A.
+"LOAD_A 14" 是从地址 14 中拿到数字3,放入寄存器A
+
+Then we have a "LOAD_B 15" instruction, which takes the value in memory location 15,
+"LOAD_B 15" 是从地址 15 中拿到数字14,放入寄存器B
+
+which is the number 14, and saves it into Register B.
+"LOAD_B 15" 是从地址 15 中拿到数字14,放入寄存器B
+
+Okay.
+好.
+
+Easy enough.
+挺简单的!
+
+But now we have an "ADD" instruction.
+下一个是 ADD 指令
+
+This tells the processor to use the ALU to add two registers together,
+"ADD B A" 告诉 ALU \N 把寄存器 B 和寄存器 A 里的数字加起来
+
+in this case, B and A are specified.
+"ADD B A" 告诉 ALU \N 把寄存器 B 和寄存器 A 里的数字加起来
+
+The ordering is important, because the resulting sum is saved into the second register that’s specified.
+(B和A的)顺序很重要,因为结果会存在第二个寄存器
+
+So in this case, the resulting sum is saved into Register A.
+也就是寄存器 A
+
+And finally, our last instruction is "STORE_A 13", which instructs the CPU to write whatever
+最后一条指令是 "STORE_A 13" \N 把寄存器 A 的值存入内存地址 13
+
+value is in Register A into memory location 13.
+最后一条指令是 "STORE_A 13" \N 把寄存器 A 的值存入内存地址 13
+
+Yesss!
+好棒!
+
+Our program adds two numbers together.
+我们把 2 个数加在了一起!
+
+That’s about as exciting as it gets when we only have four instructions to play with.
+毕竟只有4个指令,也只能做这个了.
+
+So let’s add some more!
+加多一些指令吧!
+
+Now we’ve got a subtract function, which like ADD, specifies two registers to operate on.
+SUB 是减法,和 ADD 一样也要 2 个寄存器来操作.
+
+We’ve also got a fancy new instruction called JUMP.
+还有 JUMP(跳转)
+
+As the name implies, this causes the program to "jump" to a new location.
+让程序跳转到新位置
+
+This is useful if we want to change the order of instructions, or choose to skip some instructions.
+如果想改变指令顺序,或跳过一些指令,这个很实用
+
+For example, a JUMP 0, would cause the program to go back to the beginning.
+举例, JUMP 0 可以跳回开头
+
+At a low level, this is done by writing the value specified in the last four bits into
+JUMP 在底层的实现方式是 \N 把指令后 4 位代表的内存地址的值
+
+the instruction address register, overwriting the current value.
+覆盖掉 "指令地址寄存器" 里的值
+
+We’ve also added a special version of JUMP called JUMP_NEGATIVE.
+还有一个特别版的 JUMP 叫 JUMP_NEGATIVE
+
+"This only jumps the program if the ALU’s negative flag is set to true.
+它只在 ALU 的 "负数标志" 为真时,进行 JUMP
+
+As we talked about in Episode 5, the negative flag is only set
+第5集讲过,算数结果为负,"负数标志"才是真
+
+when the result of an arithmetic operation is negative.
+第5集讲过,算数结果为负,"负数标志"才是真
+
+If the result of the arithmetic was zero or positive, the negative flag would not be set.
+结果不是负数时, "负数标志"为假
+
+So the JUMP NEGATIVE won’t jump anywhere, and the CPU will just continue on to the next instruction.
+如果是假,JUMP_NEGATIVE 就不会执行 \N 程序照常进行
+
+Our previous program really should have looked like this to be correct,
+我们之前的例子程序,其实应该是这样,才能正确工作.
+
+otherwise the CPU would have just continued on after the STORE instruction, processing all those 0’s.
+否则跑完 STORE_A 13 之后,\N CPU 会不停运行下去,处理后面的 0
+
+But there is no instruction with an opcode of 0, and so the computer would have crashed!
+因为 0 不是操作码,所以电脑会崩掉!
+
+It’s important to point out here that we’re storing
+我还想指出一点,指令和数据都是存在同一个内存里的.
+
+both instructions and data in the same memory.
+我还想指出一点,指令和数据都是存在同一个内存里的.
+
+There is no difference fundamentally -- it’s all just binary numbers.
+它们在根本层面上毫无区别 - 都是二进制数
+
+So the HALT instruction is really important because it allows us to separate the two.
+HALT 很重要,能区分指令和数据
+
+Okay, so let’s make our program a bit more interesting, by adding a JUMP.
+好,现在用 JUMP 让程序更有趣一些.
+
+We’ll also modify our two starting values in memory to 1 and 1.
+我们还把内存中 3 和 14 两个数字,改成 1 和 1
+
+Lets step through this program just as our CPU would.
+现在来从 CPU 的视角走一遍程序
+
+First, LOAD_A 14 loads the value 1 into Register A.
+首先 LOAD_A 14,把 1 存入寄存器A \N(因为地址 14 里的值是 1)
+
+Next, LOAD_B 15 loads the value 1 into Register B.
+然后 LOAD_B 15,把 1 存入寄存器B\N(因为地址 15 里的值也是 1)
+
+As before, we ADD registers B and A together, with the sum going into Register A. 1+1 = 2,
+然后 ADD B A 把寄存器 B 和 A 相加 \N 结果放到寄存器 A 里
+
+so now Register A has the value 2 in it (stored in binary of course)
+现在寄存器 A 的值是 2 \N (当然是以二进制存的)
+
+Then the STORE instruction saves that into memory location 13.
+然后 STORE_A 13 指令,把寄存器 A 的值存入内存地址 13
+
+Now we hit a "JUMP 2" instruction.
+现在遇到 JUMP 2 指令
+
+This causes the processor to overwrite the value in the instruction address register,
+CPU 会把"指令地址寄存器"的值,现在是 4,改成 2
+
+which is currently 4, with the new value, 2.
+CPU 会把"指令地址寄存器"的值,现在是 4,改成 2
+
+Now, on the processor’s next fetch cycle, we don’t fetch HALT,
+因此下一步不再是 HALT
+
+instead we fetch the instruction at memory location 2, which is ADD B A.
+而是读内存地址 2 里的指令,也就是 ADD B A
+
+We’ve jumped!
+我们跳转了!
+
+Register A contains the value 2, and register B contains the value 1.
+寄存器 A 里是 2,寄存器 B 里是 1
+
+So 1+2 = 3, so now Register A has the value 3.
+1+2=3,寄存器 A 变成 3
+
+We store that into memory.
+存入内存
+
+And we’ve hit the JUMP again, back to ADD B A.
+又碰到 JUMP 2,又回到 ADD B A.
+
+1+3=4
+1+3=4
+
+So now register A has the value 4.
+现在寄存器 A 是 4
+
+See what's happening here?
+发现了吗?
+
+Every loop, we’re adding one.
+每次循环都+1
+
+Its counting up!
+不断增多
+
+Cooooool.
+酷
+
+But notice there’s no way to ever escape.
+但没法结束啊
+
+We’re never.. ever.. going to get to that halt instruction,
+永远不会碰到 HALT
+
+because we’re always going to hit that JUMP.
+总是会碰到 JUMP
+
+This is called an infinite loop – a program that runs forever… ever… ever… ever…
+这叫无限循环 - 这个程序会永远跑下去.. 下去.. 下去.. 下去
+
+ever
+下去
+
+To break the loop, we need a conditional jump.
+为了停下来,我们需要有条件的 JUMP
+
+A jump that only happens if a certain condition is met.
+只有特定条件满足了,才执行 JUMP.
+
+Our JUMP_NEGATIVE is one example of a conditional jump,
+比如 JUMP NEGATIVE 就是条件跳转的一个例子
+
+but computers have other types too - like JUMP IF EQUAL and JUMP IF GREATER.
+还有其他类型的条件跳转,比如\N JUMP IF EQUAL(如果相等)\N JUMP IF GREATER(如果更大)
+
+So let’s make our code a little fancier and step through it.
+现在把代码弄花哨一点,再过一遍代码
+
+Like before, the program starts by loading values from memory into registers A and B.
+就像之前,程序先把内存值放入寄存器 A 和 B.
+
+In this example, the number 11 gets loaded into Register A, and 5 gets loaded into Register B.
+寄存器 A 是 11,寄存器 B 是 5
+
+Now we subtract register B from register A. That’s 11 minus 5, which is 6,
+SUB B A,用 A 减 B,11-5=6
+
+and so 6 gets saved into Register A.
+6 存入寄存器 A
+
+Now we hit our JUMP NEGATIVE.
+JUMP NEGATIVE 出场
+
+The last ALU result was 6.
+上一次 ALU 运算的结果是 6
+
+That’s a positive number, so the the negative flag is false.
+是正数,所以 "负数标志" 是假
+
+That means the processor does not jump.
+因此处理器不会执行 JUMP
+
+So we continue on to the next instruction...
+继续下一条指令
+
+...which is a JUMP 2.
+JUMP 2
+
+No conditional on this one, so we jump to instruction 2 no matter what.
+JUMP 2 没有条件,直接执行!
+
+Ok, so we’re back at our SUBTRACT Register B from Register A. 6 minus 5 equals 1.
+又回到寄存器 A-B,6-5=1
+
+So 1 gets saved into register A.
+A 变成 1
+
+Next instruction.
+下一条指令
+
+We’re back again at our JUMP NEGATIVE.
+又是 JUMP NEGATIVE
+
+1 is also a positive number, so the CPU continues on to the JUMP 2, looping back around again
+因为 1 还是正数,因此 JUMP NEGATIVE 不会执行 \N 来到下一条指令,JUMP 2
+
+to the SUBTRACT instruction.
+又来减一次
+
+This time is different though.
+这次就不一样了
+
+1 minus 5 is negative 4.
+1-5=-4
+
+And so the ALU sets its negative flag to true for the first time.
+这次ALU的 "负数标志" 是真
+
+Now, when we advance to the next instruction,
+现在下一条指令
+
+JUMP_NEGATIVE 5, the CPU executes the jump to memory location 5.
+JUMP NEGATIVE 5, CPU 的执行跳到内存地址 5
+
+We’re out of the infinite loop!
+跳出了无限循环!
+
+Now we have a ADD B to A. Negative 4 plus 5, is positive 1, and we save that into Register A.
+现在的指令是 ADD B A,-4+5=1,1 存入寄存器 A
+
+Next we have a STORE instruction that saves Register A into memory address 13.
+下一条指令 STORE_A 13,把 A 的值存入内存地址 13
+
+Lastly, we hit our HALT instruction and the computer rests.
+最后碰到 HALT 指令,停下来.
+
+So even though this program is only 7 instructions long, the CPU ended up executing 13 instructions,
+虽然程序只有 7 个指令,但 CPU 执行了 13 个指令,
+
+and that's because it looped twice internally.
+因为在内部循环了 2 次.
+
+This code calculated the remainder if we divide 5 into 11, which is one.
+这些代码其实是算余数的,11除5余1
+
+With a few extra lines of code, we could also keep track of how many loops we did, the count
+如果加多几行指令,我们还可以跟踪循环了多少次
+
+of which would be how many times 5 went into 11… we did two loops, so that means 5 goes
+11除5,循环2次
+
+into 11 two times... with a remainder of 1.
+余1
+
+And of course this code could work for any two numbers, which we can just change in memory
+当然,我们可以用任意2个数,7和81,18和54,什么都行
+
+to whatever we want: 7 and 81, 18 and 54, it doesn’t matter
+当然,我们可以用任意2个数,7和81,18和54,什么都行
+
+-- that’s the power of software!
+这就是软件的强大之处
+
+Software also allowed us to do something our hardware could not.
+软件还让我们做到硬件做不到的事
+
+Remember, our ALU didn’t have the functionality to divide two numbers,
+ALU 可没有除法功能
+
+instead it’s the program we made that gave us that functionality.
+是程序给了我们这个功能.
+
+And then other programs can use our divide program to do even fancier things.
+别的程序也可以用我们的除法程序,来做其他事情
+
+And you know what that means.
+这意味着 一层新抽象!
+
+New levels of abstraction!
+这意味着 一层新抽象!
+
+So, our hypothetical CPU is very basic – all of its instructions are 8 bits long,
+我们这里假设的 CPU 很基础,所有指令都是 8 位,
+
+with the opcode occupying only the first four bits.
+操作码只占了前面 4 位
+
+So even if we used every combination of 4 bits, our CPU would only be able to support
+即便用尽 4 位,也只能代表 16 个指令
+
+a maximum of 16 different instructions.
+即便用尽 4 位,也只能代表 16 个指令
+
+On top of that, several of our instructions used the last 4 bits to specify a memory location.
+而且我们有几条指令,是用后 4 位来指定内存地址
+
+But again, 4 bits can only encode 16 different values,
+因为 4 位最多只能表示 16 个值,
+
+meaning we can address a maximum of 16 memory locations - that’s not a lot to work with.
+所以我们只能操作 16 个地址,这可不多.
+
+For example, we couldn’t even JUMP to location 17,
+我们甚至不能 JUMP 17
+
+because we literally can’t fit the number 17 into 4 bits.
+因为 4 位二进制无法表示数字 17
+
+For this reason, real, modern CPUs use two strategies.
+因此,真正的现代 CPU 用两种策略
+
+The most straightforward approach is just to have bigger instructions, with more bits,
+最直接的方法是用更多位来代表指令,比如 32 位或 64 位
+
+like 32 or 64 bits.
+最直接的方法是用更多位来代表指令,比如 32 位或 64 位
+
+This is called the instruction length.
+这叫 指令长度
+
+Unsurprisingly.
+毫不意外
+
+The second approach is to use variable length instructions.
+第二个策略是 "可变指令长度"
+
+For example, imagine a CPU that uses 8 bit opcodes.
+举个例子,比如某个 CPU 用 8 位长度的操作码
+
+When the CPU sees an instruction that needs no extra values, like the HALT instruction,
+如果看到 HALT 指令,HALT 不需要额外数据
+
+it can just execute it immediately.
+那么会马上执行.
+
+However, if it sees something like a JUMP instruction, it knows it must also fetch
+如果看到 JUMP,它得知道位置值
+
+the address to jump to, which is saved immediately behind the JUMP instruction in memory.
+这个值在 JUMP 的后面
+
+This is called, logically enough, an Immediate Value.
+这叫 "立即值"
+
+In such processor designs, instructions can be any number of bytes long,
+这样设计,指令可以是任意长度
+
+which makes the fetch cycle of the CPU a tad more complicated.
+但会让读取阶段复杂一点点
+
+Now, our example CPU and instruction set is hypothetical,
+要说明的是,我们拿来举例的 CPU 和指令集都是假设的,
+
+designed to illustrate key working principles.
+是为了展示核心原理
+
+So I want to leave you with a real CPU example.
+所以我们来看个真的 CPU 例子.
+
+In 1971, Intel released the 4004 processor.
+1971年,英特尔发布了 4004 处理器.
+
+It was the first CPU put all into a single chip
+这是第一次把 CPU 做成一个芯片 \N 给后来的英特尔处理器打下了基础
+
+and paved the path to the intel processors we know and love today.
+这是第一次把 CPU 做成一个芯片 \N 给后来的英特尔处理器打下了基础
+
+It supported 46 instructions, shown here.
+它支持 46 个指令
+
+Which was enough to build an entire working computer.
+足够做一台能用的电脑
+
+And it used many of the instructions we’ve talked about like JUMP ADD SUBTRACT and LOAD.
+它用了很多我们说过的指令,比如 JUMP ADD SUB LOAD
+
+It also uses 8-bit immediate values, like we just talked about, for things like JUMPs,
+它也用 8 位的"立即值"来执行 JUMP, 以表示更多内存地址.
+
+in order to address more memory.
+它也用 8 位的"立即值"来执行 JUMP, 以表示更多内存地址.
+
+And processors have come a long way since 1971.
+处理器从 1971 年到现在发展巨大.
+
+A modern computer processor, like an Intel Core i7, has thousands of different instructions
+现代 CPU, 比如英特尔酷睿 i7, 有上千个指令和指令变种
+
+and instruction variants, ranging from one to fifteen bytes long.
+长度从1到15个字节.
+
+For example, there’s over a dozens different opcodes just for variants of ADD!
+举例,光 ADD 指令就有很多变种!
+
+And this huge growth in instruction set size is due in large part to extra bells and whistles
+指令越来越多,是因为给 CPU 设计了越来越多功能
+
+that have been added to processor designs overtime, which we’ll talk about next episode.
+下集我们会讲
+
+See you next week!
+下周见
+
diff --git a/(字幕)全40集中英字幕文本/9. 高级CPU设计-Advanced CPU Designs.ass.txt b/(字幕)全40集中英字幕文本/9. 高级CPU设计-Advanced CPU Designs.ass.txt
new file mode 100644
index 0000000..16d0537
--- /dev/null
+++ b/(字幕)全40集中英字幕文本/9. 高级CPU设计-Advanced CPU Designs.ass.txt
@@ -0,0 +1,609 @@
+Hi, I’m Carrie Anne and welcome to CrashCourse Computer Science!
+(。・∀・)ノ゙嗨,我是 Carrie Anne,欢迎收看计算机科学速成课!
+
+As we’ve discussed throughout the series, computers have come a long way from mechanical devices
+随着本系列进展,我们知道计算机进步巨大
+
+capable of maybe one calculation per second,
+从 1 秒 1 次运算,到现在有千赫甚至兆赫的CPU
+
+to CPUs running at kilohertz and megahertz speeds.
+从 1 秒 1 次运算,到现在有千赫甚至兆赫的CPU
+
+The device you’re watching this video on right now is almost certainly running at Gigahertz speeds
+你现在看视频的设备八成也有 GHz 速度
+
+- that’s billions of instructions executed every second.
+1 秒十亿条指令
+
+Which, trust me, is a lot of computation!
+这是很大的计算量!
+
+In the early days of electronic computing, processors were typically made faster by
+早期计算机的提速方式是 减少晶体管的切换时间.
+
+improving the switching time of the transistors inside the chip
+早期计算机的提速方式是 减少晶体管的切换时间.
+
+- the ones that make up all the logic gates, ALUs
+晶体管组成了逻辑门,ALU 以及前几集的其他组件
+
+and other stuff we’ve talked about over the past few episodes.
+晶体管组成了逻辑门,ALU 以及前几集的其他组件
+
+But just making transistors faster and more efficient only went so far, so processor designers
+但这种提速方法最终会碰到瓶颈,所以处理器厂商
+
+have developed various techniques to boost performance allowing not only simple instructions
+发明各种新技术来提升性能,不但让简单指令运行更快
+
+to run fast, but also performing much more sophisticated operations.
+也让它能进行更复杂的运算
+
+Last episode, we created a small program for our CPU that allowed us to divide two numbers.
+上集我们写了个做除法的程序,给 CPU 执行
+
+We did this by doing many subtractions in a row... so, for example, 16 divided by 4
+方法是做一连串减法,比如16除4 会变成
+
+could be broken down into the smaller problem of 16 minus 4, minus 4, minus 4, minus 4.
+16-4 -4 -4 -4
+
+When we hit zero, or a negative number, we knew that we we’re done.
+碰到 0 或负数才停下.
+
+But this approach gobbles up a lot of clock cycles, and isn’t particularly efficient.
+但这种方法要多个时钟周期,很低效
+
+So most computer processors today have divide as one of the instructions
+所以现代 CPU 直接在硬件层面设计了除法 \N 可以直接给 ALU 除法指令
+
+that the ALU can perform in hardware.
+所以现代 CPU 直接在硬件层面设计了除法 \N 可以直接给 ALU 除法指令
+
+Of course, this extra circuitry makes the ALU bigger and more complicated to design,
+这让 ALU 更大也更复杂一些
+
+but also more capable - a complexity-for-speed tradeoff that
+但也更厉害 - \N 复杂度 vs 速度 的平衡在计算机发展史上经常出现
+
+has been made many times in computing history.
+但也更厉害 - \N 复杂度 vs 速度 的平衡在计算机发展史上经常出现
+
+For instance, modern computer processors now have special circuits for things like
+举例,现代处理器有专门电路来处理 \N 图形操作, 解码压缩视频, 加密文档 等等
+
+graphics operations, decoding compressed video, and encrypting files
+举例,现代处理器有专门电路来处理 \N 图形操作, 解码压缩视频, 加密文档 等等
+
+all of which are operations that would take many many many clock cycles to perform with standard operations.
+如果用标准操作来实现,要很多个时钟周期.
+
+You may have even heard of processors with MMX, 3DNow!, or SSE.
+你可能听过某些处理器有 MMX, 3DNOW, SEE
+
+These are processors with additional, fancy circuits that allow them to
+它们有额外电路做更复杂的操作
+
+execute additional fancy instructions - for things like gaming and encryption.
+用于游戏和加密等场景
+
+These extensions to the instruction set have grown, and grown over time, and once people
+指令不断增加,人们一旦习惯了它的便利就很难删掉
+
+have written programs to take advantage of them, it’s hard to remove them.
+指令不断增加,人们一旦习惯了它的便利就很难删掉
+
+So instruction sets tend to keep getting larger and larger keeping all the old opcodes around for backwards compatibility.
+所以为了兼容旧指令集,指令数量越来越多
+
+The Intel 4004, the first truly integrated CPU, had 46 instructions
+英特尔 4004,第一个集成CPU,有 46 条指令
+
+- which was enough to build a fully functional computer.
+足够做一台能用的计算机
+
+But a modern computer processor has thousands of different instructions,
+但现代处理器有上千条指令,有各种巧妙复杂的电路
+
+which utilize all sorts of clever and complex internal circuitry.
+但现代处理器有上千条指令,有各种巧妙复杂的电路
+
+Now, high clock speeds and fancy instruction sets lead to another problem
+超高的时钟速度带来另一个问题
+
+- getting data in and out of the CPU quickly enough.
+- 如何快速传递数据给 CPU
+
+It’s like having a powerful steam locomotive, but no way to shovel in coal fast enough.
+就像有强大的蒸汽机 但无法快速加煤
+
+In this case, the bottleneck is RAM.
+RAM 成了瓶颈
+
+RAM is typically a memory module that lies outside the CPU.
+RAM 是 CPU 之外的独立组件
+
+This means that data has to be transmitted to and from RAM along sets of data wires,
+意味着数据要用线来传递,叫"总线"
+
+called a bus.
+意味着数据要用线来传递,叫"总线"
+
+This bus might only be a few centimeters long,
+总线可能只有几厘米
+
+and remember those electrical signals are traveling near the speed of light,
+别忘了电信号的传输接近光速
+
+but when you are operating at gigahertz speeds
+但 CPU 每秒可以处理上亿条指令
+
+– that’s billionths of a second – even this small delay starts to become problematic.
+很小的延迟也会造成问题
+
+It also takes time for RAM itself to lookup the address, retrieve the data
+RAM 还需要时间找地址 \N 取数据,配置,输出数据
+
+and configure itself for output.
+RAM 还需要时间找地址 \N 取数据,配置,输出数据
+
+So a “load from RAM” instruction might take dozens of clock cycles to complete, and during
+一条"从内存读数据"的指令可能要多个时钟周期
+
+this time the processor is just sitting there idly waiting for the data.
+CPU 空等数据
+
+One solution is to put a little piece of RAM right on the CPU -- called a cache.
+解决延迟的方法之一是 \N 给 CPU 加一点 RAM - 叫"缓存"
+
+There isn’t a lot of space on a processor’s chip,
+因为处理器里空间不大,所以缓存一般只有 KB 或 MB
+
+so most caches are just kilobytes or maybe megabytes in size,
+因为处理器里空间不大,所以缓存一般只有 KB 或 MB
+
+where RAM is usually gigabytes.
+而 RAM 都是 GB 起步
+
+Having a cache speeds things up in a clever way.
+缓存提高了速度
+
+When the CPU requests a memory location from RAM, the RAM can transmit
+CPU 从 RAM 拿数据时 \N RAM 不用传一个,可以传一批
+
+not just one single value, but a whole block of data.
+CPU 从 RAM 拿数据时 \N RAM 不用传一个,可以传一批
+
+This takes only a little bit more time,
+虽然花的时间久一点,但数据可以存在缓存
+
+but it allows this data block to be saved into the cache.
+虽然花的时间久一点,但数据可以存在缓存
+
+This tends to be really useful because computer data is often arranged and processed sequentially.
+这很实用,因为数据常常是一个个按顺序处理
+
+For example, let say the processor is totalling up daily sales for a restaurant.
+举个例子,算餐厅的当日收入
+
+It starts by fetching the first transaction from RAM at memory location 100.
+先取 RAM 地址 100 的交易额
+
+The RAM, instead of sending back just that one value, sends a block of data, from memory
+RAM 与其只给1个值,直接给一批值
+
+location 100 through 200, which are then all copied into the cache.
+把地址100到200都复制到缓存
+
+Now, when the processor requests the next transaction to add to its running total, the
+当处理器要下一个交易额时
+
+value at address 101, the cache will say “Oh, I’ve already got that value right here,
+地址 101,缓存会说:"我已经有了,现在就给你"
+
+so I can give it to you right away!”
+地址 101,缓存会说:"我已经有了,现在就给你"
+
+And there’s no need to go all the way to RAM.
+不用去 RAM 取数据
+
+Because the cache is so close to the processor,
+因为缓存离 CPU 近, 一个时钟周期就能给数据 - CPU 不用空等!
+
+it can typically provide the data in a single clock cycle -- no waiting required.
+因为缓存离 CPU 近, 一个时钟周期就能给数据 - CPU 不用空等!
+
+This speeds things up tremendously over having to go back and forth to RAM every single time.
+比反复去 RAM 拿数据快得多
+
+When data requested in RAM is already stored in the cache like this it’s called a
+如果想要的数据已经在缓存,叫 缓存命中
+
+cache hit,
+如果想要的数据已经在缓存,叫 缓存命中
+
+and if the data requested isn’t in the cache, so you have to go to RAM, it’s a called
+如果想要的数据不在缓存,叫 缓存未命中
+
+a cache miss.
+如果想要的数据不在缓存,叫 缓存未命中
+
+The cache can also be used like a scratch space,
+缓存也可以当临时空间,存一些中间值,适合长/复杂的运算
+
+storing intermediate values when performing a longer, or more complicated calculation.
+缓存也可以当临时空间,存一些中间值,适合长/复杂的运算
+
+Continuing our restaurant example, let’s say the processor has finished totalling up
+继续餐馆的例子,假设 CPU 算完了一天的销售额
+
+all of the sales for the day, and wants to store the result in memory address 150.
+想把结果存到地址 150
+
+Like before, instead of going back all the way to RAM to save that value,
+就像之前,数据不是直接存到 RAM
+
+it can be stored in cached copy, which is faster to save to,
+而是存在缓存,这样不但存起来快一些
+
+and also faster to access later if more calculations are needed.
+如果还要接着算,取值也快一些
+
+But this introduces an interesting problem -
+但这样带来了一个有趣的问题
+
+- the cache’s copy of the data is now different to the real version stored in RAM.
+缓存和 RAM 不一致了.
+
+This mismatch has to be recorded, so that at some point everything can get synced up.
+这种不一致必须记录下来,之后要同步
+
+For this purpose, the cache has a special flag for each block of memory it stores, called
+因此缓存里每块空间 有一个特殊标记
+
+the dirty bit
+叫 "脏位"
+
+-- which might just be the best term computer scientists have ever invented.
+- 这可能是计算机科学家取的最贴切的名字
+
+Most often this synchronization happens when the cache is full,
+同步一般发生在 当缓存满了而 CPU 又要缓存时
+
+but a new block of memory is being requested by the processor.
+同步一般发生在 当缓存满了而 CPU 又要缓存时
+
+Before the cache erases the old block to free up space, it checks its dirty bit,
+在清理缓存腾出空间之前,会先检查 "脏位"
+
+and if it’s dirty, the old block of data is written back to RAM before loading in the new block.
+如果是"脏"的, 在加载新内容之前, 会把数据写回 RAM
+
+Another trick to boost cpu performance is called instruction pipelining.
+另一种提升性能的方法叫 "指令流水线"
+
+Imagine you have to wash an entire hotel’s worth of sheets,
+想象下你要洗一整个酒店的床单
+
+but you’ve only got one washing machine and one dryer.
+但只有 1 个洗衣机, 1 个干燥机
+
+One option is to do it all sequentially: put a batch of sheets in the washer
+选择1:按顺序来,放洗衣机等 30 分钟洗完
+
+and wait 30 minutes for it to finish.
+选择1:按顺序来,放洗衣机等 30 分钟洗完
+
+Then take the wet sheets out and put them in the dryer and wait another 30 minutes for that to finish.
+然后拿出湿床单,放进干燥机等 30 分钟烘干
+
+This allows you to do one batch of sheets every hour.
+这样1小时洗一批
+
+Side note: if you have a dryer that can dry a load of laundry in 30 minutes,
+另外一说:如果你有 30 分钟就能烘干的干燥机
+
+Please tell me the brand and model in the comments, because I’m living with 90 minute dry times, minimum.
+请留言告诉我是什么牌子,我的至少要 90 分钟.
+
+But, even with this magic clothes dryer,
+即使有这样的神奇干燥机, \N 我们可以用"并行处理"进一步提高效率
+
+you can speed things up even more if you parallelize your operation.
+即使有这样的神奇干燥机, \N 我们可以用"并行处理"进一步提高效率
+
+As before, you start off putting one batch of sheets in the washer.
+就像之前,先放一批床单到洗衣机
+
+You wait 30 minutes for it to finish.
+等 30 分钟洗完
+
+Then you take the wet sheets out and put them in the dryer.
+然后把湿床单放进干燥机
+
+But this time, instead of just waiting 30 minutes for the dryer to finish,
+但这次,与其干等 30 分钟烘干,\N 可以放另一批进洗衣机
+
+you simultaneously start another load in the washing machine.
+但这次,与其干等 30 分钟烘干,\N 可以放另一批进洗衣机
+
+Now you’ve got both machines going at once.
+让两台机器同时工作
+
+Wait 30 minutes, and one batch is now done, one batch is half done,
+30 分钟后,一批床单完成, 另一批完成一半
+
+and another is ready to go in.
+另一批准备开始
+
+This effectively doubles your throughput.
+效率x2!
+
+Processor designs can apply the same idea.
+处理器也可以这样设计
+
+In episode 7, our example processor performed the fetch-decode-execute cycle sequentially
+第7集,我们演示了 CPU 按序处理
+
+and in a continuous loop: Fetch-decode-execute, fetch-decode-execute, fetch-decode-execute, and so on
+取指 → 解码 → 执行, 不断重复
+
+This meant our design required three clock cycles to execute one instruction.
+这种设计,三个时钟周期执行 1 条指令
+
+But each of these stages uses a different part of the CPU,
+但因为每个阶段用的是 CPU 的不同部分
+
+meaning there is an opportunity to parallelize!
+意味着可以并行处理!
+
+While one instruction is getting executed, the next instruction could be getting decoded,
+"执行"一个指令时,同时"解码"下一个指令
+
+and the instruction beyond that fetched from memory.
+"读取"下下个指令
+
+All of these separate processes can overlap
+不同任务重叠进行,同时用上 CPU 里所有部分.
+
+so that all parts of the CPU are active at any given time.
+不同任务重叠进行,同时用上 CPU 里所有部分.
+
+In this pipelined design, an instruction is executed every single clock cycle
+这样的流水线 每个时钟周期执行1个指令
+
+which triples the throughput.
+吞吐量 x 3
+
+But just like with caching this can lead to some tricky problems.
+和缓存一样,这也会带来一些问题
+
+A big hazard is a dependency in the instructions.
+第一个问题是 指令之间的依赖关系
+
+For example, you might fetch something that the currently executing instruction is just about to modify,
+举个例子,你在读某个数据 \N 而正在执行的指令会改这个数据
+
+which means you’ll end up with the old value in the pipeline.
+也就是说拿的是旧数据
+
+To compensate for this, pipelined processors have to look ahead for data dependencies,
+因此流水线处理器 要先弄清数据依赖性
+
+and if necessary, stall their pipelines to avoid problems.
+必要时停止流水线,避免出问题
+
+High end processors, like those found in laptops and smartphones,
+高端 CPU,比如笔记本和手机里那种
+
+go one step further and can dynamically reorder instructions with dependencies
+会更进一步,动态排序 有依赖关系的指令
+
+in order to minimize stalls and keep the pipeline moving,
+最小化流水线的停工时间
+
+which is called out-of-order execution.
+这叫 "乱序执行"
+
+As you might imagine, the circuits that figure this all out are incredibly complicated.
+和你猜的一样,这种电路非常复杂
+
+Nonetheless, pipelining is tremendously effective and almost all processors implement it today.
+但因为非常高效,几乎所有现代处理器都有流水线
+
+Another big hazard are conditional jump instructions -- we talked about one example, a JUMP NEGATIVE,last episode.
+第二个问题是 "条件跳转",比如上集的 JUMP NEGATIVE
+
+These instructions can change the execution flow of a program depending on a value.
+这些指令会改变程序的执行流
+
+A simple pipelined processor will perform a long stall when it sees a jump instruction,
+简单的流水线处理器,看到 JUMP 指令会停一会儿 \N 等待条件值确定下来
+
+waiting for the value to be finalized.
+简单的流水线处理器,看到 JUMP 指令会停一会儿 \N 等待条件值确定下来
+
+Only once the jump outcome is known, does the processor start refilling its pipeline.
+一旦 JUMP 的结果出了,处理器就继续流水线
+
+But, this can produce long delays, so high-end processors have some tricks to deal with this problem too.
+因为空等会造成延迟,所以高端处理器会用一些技巧
+
+Imagine an upcoming jump instruction as a fork in a road - a branch.
+可以把 JUMP 想成是 "岔路口"
+
+Advanced CPUs guess which way they are going to go, and start filling their pipeline with
+高端 CPU 会猜哪条路的可能性大一些
+
+instructions based off that guess – a technique called speculative execution.
+然后提前把指令放进流水线,这叫 "推测执行"
+
+When the jump instruction is finally resolved, if the CPU guessed correctly,
+当 JUMP 的结果出了,如果 CPU 猜对了
+
+then the pipeline is already full of the correct instructions and it can motor along without delay.
+流水线已经塞满正确指令,可以马上运行
+
+However, if the CPU guessed wrong, it has to discard all its speculative results and
+如果 CPU 猜错了,就要清空流水线
+
+perform a pipeline flush - sort of like when you miss a turn and have to do a u-turn to
+就像走错路掉头
+
+get back on route, and stop your GPS’s insistent shouting.
+让 GPS 不要再!叫!了!
+
+To minimize the effects of these flushes, CPU manufacturers have developed sophisticated
+为了尽可能减少清空流水线的次数,CPU 厂商开发了复杂的方法
+
+ways to guess which way branches will go, called branch prediction.
+来猜测哪条分支更有可能,叫"分支预测"
+
+Instead of being a 50/50 guess, today’s processors can often guess with over 90% accuracy!
+现代 CPU 的正确率超过 90%
+
+In an ideal case, pipelining lets you complete one instruction every single clock cycle,
+理想情况下,流水线一个时钟周期完成 1 个指令
+
+but then superscalar processors came along
+然后"超标量处理器"出现了,一个时钟周期完成多个指令
+
+which can execute more than one instruction per clock cycle.
+然后"超标量处理器"出现了,一个时钟周期完成多个指令
+
+During the execute phase even in a pipelined design,
+即便有流水线设计,在指令执行阶段
+
+whole areas of the processor might be totally idle.
+处理器里有些区域还是可能会空闲
+
+For example, while executing an instruction that fetches a value from memory,
+比如,执行一个 "从内存取值" 指令期间
+
+the ALU is just going to be sitting there, not doing a thing.
+ALU 会闲置
+
+So why not fetch-and-decode several instructions at once, and whenever possible, execute instructions
+所以一次性处理多条指令(取指令+解码) 会更好.
+
+that require different parts of the CPU all at the same time
+如果多条指令要 ALU 的不同部分,就多条同时执行
+
+But we can take this one step further and add duplicate circuitry
+我们可以再进一步,加多几个相同的电路 \N 执行出现频次很高的指令
+
+for popular instructions.
+我们可以再进一步,加多几个相同的电路 \N 执行出现频次很高的指令
+
+For example, many processors will have four, eight or more identical ALUs,
+举例,很多 CPU 有四个, 八个甚至更多 完全相同的ALU
+
+so they can execute many mathematical instructions all in parallel!
+可以同时执行多个数学运算
+
+Ok, the techniques we’ve discussed so far primarily optimize the execution throughput
+好了,目前说过的方法,都是优化 1 个指令流的吞吐量
+
+of a single stream of instructions,
+好了,目前说过的方法,都是优化 1 个指令流的吞吐量
+
+but another way to increase performance is to run several streams of instructions at once
+另一个提升性能的方法是 同时运行多个指令流
+
+with multi-core processors.
+用多核处理器
+
+You might have heard of dual core or quad core processors.
+你应该听过双核或四核处理器
+
+This means there are multiple independent processing units inside of a single CPU chip.
+意思是一个 CPU 芯片里,有多个独立处理单元
+
+In many ways, this is very much like having multiple separate CPUs,
+很像是有多个独立 CPU
+
+but because they’re tightly integrated, they can share some resources,
+但因为它们整合紧密,可以共享一些资源
+
+like cache, allowing the cores to work together on shared computations.
+比如缓存,使得多核可以合作运算
+
+But, when more cores just isn’t enough, you can build computers with multiple independent CPUs!
+但多核不够时,可以用多个 CPU
+
+High end computers, like the servers streaming this video from YouTube’s datacenter, often
+高端计算机,比如现在给你传视频的 Youtube 服务器
+
+need the extra horsepower to keep it silky smooth for the hundreds of people watching simultaneously.
+需要更多马力,让上百人能同时流畅观看
+
+Two- and four-processor configuration are the most common right now,
+2个或4个CPU是最常见的
+
+but every now and again even that much processing power isn’t enough.
+但有时人们有更高的性能要求
+
+So we humans get extra ambitious and build ourselves a supercomputer!
+所以造了超级计算机!
+
+If you’re looking to do some really monster calculations
+如果要做怪兽级运算
+
+– like simulating the formation of the universe - you’ll need some pretty serious compute power.
+比如模拟宇宙形成,你需要强大的计算能力
+
+A few extra processors in a desktop computer just isn’t going to cut it.
+给普通台式机加几个 CPU 没什么用
+
+You’re going to need a lot of processors.
+你需要很多处理器!
+
+No.. no... even more than that.
+不…不…还要更多
+
+A lot more!
+更多
+
+When this video was made, the world’s fastest computer was located in
+截止至视频发布,世上最快的计算机在
+
+The National Supercomputing Center in Wuxi, China.
+中国无锡的国家超算中心
+
+The Sunway TaihuLight contains a brain-melting 40,960 CPUs, each with 256 cores!
+神威·太湖之光有 40960 个CPU,每个 CPU 有 256 个核心
+
+Thats over ten million cores in total... and each one of those cores runs at 1.45 gigahertz.
+总共超过1千万个核心,每个核心的频率是 1.45GHz
+
+In total, this machine can process 93 Quadrillion -- that’s 93 million-billions
+每秒可以进行 9.3 亿亿次浮点数运算
+
+floating point math operations per second, knows as FLOPS.
+也叫 每秒浮点运算次数 (FLOPS)
+
+And trust me, that’s a lot of FLOPS!!
+相信我 这个速度很可怕
+
+No word on whether it can run Crysis at max settings, but I suspect it might.
+没人试过跑最高画质的《孤岛危机》但我估计没问题
+
+So long story short, not only have computer processors gotten a lot faster over the years,
+长话短说,这些年处理器不但大大提高了速度
+
+but also a lot more sophisticated, employing all sorts of clever tricks to squeeze out
+而且也变得更复杂,用各种技巧
+
+more and more computation per clock cycle.
+榨干每个时钟周期 做尽可能多运算
+
+Our job is to wield that incredible processing power to do cool and useful things.
+我们的任务是利用这些运算能力,做又酷又实用的事
+
+That’s the essence of programming, which we’ll start discussing next episode.
+编程就是为了这个,我们下集说
+
+See you next week.
+下周见
+
diff --git a/.DS_Store b/.DS_Store
index 784cf34..a5bf57a 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/README-about-subtitle.md b/README-about-subtitle.md
new file mode 100644
index 0000000..e1c1292
--- /dev/null
+++ b/README-about-subtitle.md
@@ -0,0 +1 @@
+## 关于字幕文件公开的一些说明
diff --git a/README.md b/README.md
index 3576691..9fe658f 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,18 @@
-## 计算机科学速成课 :fire: 40集完结撒花
+## 计算机科学速成课 :fire: 2018年5月1号 - 全40集完结撒花
-### 精校版(推荐):
+### 精校版(推荐):
https://www.bilibili.com/video/av21376839/
![bilibili](/image/cs40.jpg)
+### 字幕
+为了方便大家学习,我们把字幕也放出来了
+1. 字幕片头的总结放到了 README 的底部,方便搜索和翻阅
+2. 而40集的中英字幕我们做了2个版本,一个版本把所有字幕都放到了一个文件里: [(字幕) 全40集中英字幕文本.txt]("./(字幕)全40集中英字幕文本.txt"), 另一个则是分成了40个文件 [(字幕)全40集中英字幕文本](./(字幕)全40集中英字幕文本)
+
### 1. 感谢所有翻译人员!
* 不想膨胀的小R - [Github](https://github.com/coolralf), [微博](https://weibo.com/u/2207493917), [B站](https://space.bilibili.com/5385034#!/video)
* 糖醋陈皮 - [Github](https://github.com/1c7), [微博](https://weibo.com/2004104451), [博客](http://1c7.me/)
-* ZireHao - [B站](http://space.bilibili.com/27167876/)
+* ZireHao - [B站](http://space.bilibili.com/27167876/)
* gilot - [B站](https://space.bilibili.com/43595622/)
* 晴空
* Crazycat
@@ -95,7 +100,7 @@ https://www.bilibili.com/video/av21376839/
## 第 1 集:计算机早期历史
提到的设备:算盘 → 步进计算器 → 差分机 → 分析机 → 打孔卡片制表机
提到的人名:Charles Babbage, Ada Lovelace
-
+
02:27 最早的计算设备是算盘,举例如何使用
04:31 Computer 从指代职业变成指代机器
04:57 机器里有名的是:步进计算器。第一个可以做加减乘除的机器
@@ -103,11 +108,11 @@ https://www.bilibili.com/video/av21376839/
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 次开关
@@ -118,81 +123,81 @@ https://www.bilibili.com/video/av21376839/
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 16x16 的矩阵存 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)
重点
1. 拼个 CPU 出来
2. CPU 怎么执行命令
-
+
01:00 RAM + 寄存器 + ALU 做个 CPU
04:00 解释 "取指令→解释→执行" 这个循环
08:00 时钟是什么, 时钟速度和赫兹
10:00 超频提升性能, 降频省电
-
-
+
+
## 第 8 集:指令和程序
本集重点:一步步带你运行一遍程序
-
+
00:45 回顾上集的例子程序,一步步讲解。介绍”指令集”的概念
LOAD_A,LOAD_B,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 专门的除法电路 + 其他电路来做复杂操作,比如游戏,视频解码
@@ -207,12 +212,12 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
09:54 多核 (Core)
10:11 多个独立 CPU
10:52 超级计算机,中国的"神威 太湖之光"
-
-
+
+
## 第 10 集:早期的编程方式
本集重点:早期计算机如何编程
打孔纸卡 → 插线板 → 面板拨开关
-
+
00:00 开头说本集重点:程序如何进入计算机
00:53 拿纺织业举例,给机器编程的需求远在计算机出现前就有了
01:41 打孔纸卡 - Punched card
@@ -222,11 +227,11 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
07:29 第一款取得商业成功的家用计算机: Altair 8800
08:15 编程依然很困难,人们需要更友好更简单的方式编程
08:44 下周主题:编程语言
-
-
+
+
## 第 11 集:编程语言发展史
编程:二进制 → 助记符(汇编器)→ A-0(编译器)→ FORTRAIN
-
+
01:45 二进制写程序,先纸上写伪代码,手工转二进制,很快就烦了
02:28 用 "助记符” 写代码(LOAD_A 14)为了把助记符转二进制,汇编器诞生 (Assembler)
04:32 葛丽丝·霍普 (Grace Hopper) - 哈佛1号计算机首批程序员, 海军军官
@@ -240,8 +245,8 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
1970 年代:Pascal,C,Smalltalk
1980 年代:C++,Objective-C,Perl
1990 年代:Python,Ruby,Java
-
-
+
+
## 第 12 集:编程基础 - 语句和函数
00:50 变量, 赋值语句
02:08 Grace Hopper 拍虫子游戏
@@ -250,15 +255,15 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
05:48 for 循环
07:00 函数
11:11 下集介绍算法
-
-
+
+
## 第 13 集:算法入门
03:00 选择排序 - Selection sort
03:52 大 O 表示法 - Big O notation
04:31 归并排序 - Merge sort
08:03 Dijkstra 算法
-
-
+
+
## 第 14 集:数据结构
00:39 数组 - Array
02:06 字符串 - String
@@ -273,8 +278,8 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
08:01 二叉树 - Binary Tree
08:26 图 - Graph
08:50 没时间讲红黑树和堆, 不同数据结构适用不同场景
-
-
+
+
## 第 15 集:阿兰·图灵
00:33 介绍图灵
00:52 可判定性问题
@@ -285,8 +290,8 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
10:40 图灵测试
11:18 图灵的个人生活
12:07 图灵奖
-
-
+
+
## 第 16 集:软件工程
01:31 对象 Object
02:39 面向对象编程 Object Oriented Programming.
@@ -298,11 +303,11 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
07:33 版本控制 Version control
08:50 质量控制 Quality Assurance testing,QA
09:21 Beta, Alpha
-
-
+
+
## 第 17 集:集成电路与摩尔定律
本集重点:晶圆的制作流程:光刻 (04:21~07:42)
-
+
00:51 分立元件 Discrete components
01:09 数字暴政 Tyranny of Numbers - 是 1960 年代工程师碰到的问题
意思是如果想加强电脑性能,就要更多部件,这导致更多线路,更复杂。所以很难做
@@ -315,8 +320,8 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
09:38 英特尔 Intel
10:20 晶体管数量大幅度增长, 1980年三万个,1990年一百万个,2000年三千万个,2010年十亿个
11:44 进一步小型化会碰到 2 个问题 1. 光的波长不足以制作更精细的设计 2. 量子隧穿效应
-
-
+
+
## 第 18 集:操作系统
00:48 操作系统 Operating systems
01:34 批处理 Batch processing
@@ -332,11 +337,11 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
09:32 Unix
11:02 MS-DOS
12:09 下集是内存&存储介质
-
-
+
+
## 第 19 集:内存&储存介质
本集重点:存储技术的发展
-
+
01:01 纸卡 Paper punch cards
02:01 延迟线存储器 Delay Line Memory
04:06 磁芯 Magnetic Core Memory
@@ -347,8 +352,8 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
09:36 软盘 Floppy Disk
10:09 光盘 Compact Disk
10:51 固态硬盘 Solid State Drives
-
-
+
+
## 第 20 集:文件系统
00:47 文件格式:可以随便存文件数据,但按格式存会更方便
01:00 TXT 文本文件:ASCII
@@ -356,19 +361,19 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
02:47 BMP 图片文件:像素的红绿蓝 RGB 值
04:43 文件系统:很早期时空间小,整个存储器就像一整个文件。后来随容量增长,多文件非常必要
05:37 目录文件:用来解决多文件问题,存其他文件的信息,比如开头,结尾,创建时间等
-
+
06:39 平面文件系统 - Flat File System:文件都在同一个层次,早期空间小,只有十几个文件,平面系统够用
-
+
06:57 如果文件紧密的一个个前后排序会造成问题,所以文件系统会: 1. 把空间划分成一块块 2. 文件拆分存在多个块里
-
+
08:30 文件的增删改查会不可避免的造成文件散落在各个块里,
如果是磁带这样的存储介质就会造成问题,所以做碎片整理
-
+
09:46 分层文件系统 - Hierarchical File System:有不同文件夹,文件夹可以层层嵌套
-
+
第21集讲压缩
-
-
+
+
## 第 21 集:压缩
00:26 压缩的好处是能存更多文件,传输也更快
01:52 游程编码 Run-Length Encoding
@@ -380,18 +385,18 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
08:09 有损压缩 jpeg 格式
09:39 时间冗余 Temporal redundancy
10:30 MPEG-4 视频编码
-
-
+
+
## 第 22 集:命令行界面
本集重点:计算机早期同时输入程序和数据(用纸卡/纸带)
运行开始直到结束,中间没有人类进行操作,
原因是计算机很贵,不能等人类慢慢输入,执行完结果打印到纸上 (02:34)
-
+
到1950年代,计算机足够便宜+快,人类和计算机交互式操作变得可行
为了让人类输入到计算机,改造之前就有的打字机,变成电传打字机 (02:44~05:38)
-
+
到1970年代末,屏幕成本足够低,屏幕代替电传打字机,屏幕成为标配 (07:24)
-
+
00:32 人机交互 Human-Computer Interaction
00:50 早期输出数据是打印到纸上,而输入是用纸卡/纸带一次性把程序和数据都给进去
03:00 QWERTY 打字机的发展,克里斯托弗·莱瑟姆·肖尔斯 发明于 1868 年
@@ -400,45 +405,45 @@ LOAD_A,LOAD_B,SUB,JUMP,ADD,HALT 等指令
06:38 ls 命令
08:22 早期文字游戏 Zork (1977年)
08:47 cd 命令
-
-
+
+
## 第 23 集:屏幕与 2D 图形显示
00:05 PDP-1 计算机。键盘和显示器分开,屏幕显示临时值
01:14 阴极射线管 Cathode Ray Tube (CRT)
01:38 CRT 有两种绘图方式:
矢量扫描 Vector Scanning
光栅扫描 Raster Scanning
-
+
02:14 液晶显示器 Liquid Crystal Displays (LCD),像素 (Pixel)
03:32 字符生成器 Character generator
03:45 屏幕缓冲区 Screen buffer
05:09 矢量命令画图
06:34 Sketchpad, 光笔 (Light pen)
09:00 函数画线,矩形
-
-
+
+
## 第 24 集:冷战和消费主义
本集重点:冷战导致美国往计算机领域投入大量资源 (00:00~01:43)
-
+
范内瓦·布什 预见了计算机的潜力,提出假想机器 Memex
帮助建立 国家科学基金会,给科学研究提供资金 (01:43~03:43)
-
+
1950 年代消费者开始买晶体管设备,收音机大卖
日本取得晶体管授权后,索尼做了晶体管收音机,为日本半导体行业崛起埋下种子 (03:43~04:29)
-
+
苏联 1961 年把宇航员加加林送上太空,导致美国提出登月
NASA 预算大大增加,用集成电路来制作登月计算机 (04:29~06:27)
-
+
集成电路的发展实际上是由军事应用大大推进的,阿波罗登月毕竟只有 17 次
美国造超级计算机进一步推进集成电路 (04:29~07:11)
-
+
美国半导体行业一开始靠政府高利润合同活着,忽略消费者市场,1970年代冷战渐消,行业开始衰败
很多公司倒闭,英特尔转型处理器 (07:11~08:23)
-
+
末尾总结:政府和消费者推动了计算机的发展
早期靠政府资金,让技术发展到足够商用,然后消费者购买商用产品继续推动产品发展 (08:23~10:41)
-
-
+
+
## 第 25 集:个人计算机革命
本集:全是历史故事
00:18 1970年代初成本下降,个人计算机变得可行
@@ -447,16 +452,16 @@ NASA 预算大大增加,用集成电路来制作登月计算机 (04:29~06:27)
03:45 乔布斯提议卖组装好的计算机,Apple-I 诞生
04:40 1977年出现3款开箱即用计算机:
"Apple-II","TRS-80 Model I","Commodore PET 2001"
-
+
06:26 IBM 意识到个人计算机市场
IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM 兼容)
生态系统产生雪球效应:
因为用户多,软硬件开发人员更愿意花精力在这个平台
因为软硬件多,用户也更乐意买 "IBM 兼容" 的计算机
-
+
08:44 苹果选封闭架构,一切都自己来,只有苹果在非 "IBM 兼容" 下保持了足够市场份额
-
-
+
+
## 第 26 集:图形用户界面 (GUI)
01:10 图形界面先驱:道格拉斯·恩格尔巴特(Douglas Engelbart)
03:20 1970年成立 帕洛阿尔托研究中心(Palo Alto Research Center)
@@ -470,8 +475,8 @@ IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM
10:12 1985年推出 Windows 1.0,之后出到 3.1
10:43 1995年推出 Windows 95 提供图形界面
11:08 1995年微软做失败的 Microsoft Bob
-
-
+
+
## 第 27 集:3D 图形
01:15 线框渲染 Wireframe Rendering
01:39 正交投影 Orthographic Projection
@@ -489,8 +494,8 @@ IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM
09:43 高洛德着色 Gouraud shading, 冯氏着色 Phong Shading
10:06 纹理映射 Texture Mapping
11:24 图形处理单元 GPU, Graphics Processing Unit
-
-
+
+
## 第 28 集:计算机网络
02:05 局域网 Local Area Networks - LAN
02:36 媒体访问控制地址 Media Access Control address - MAC
@@ -500,8 +505,8 @@ IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM
07:08 电路交换 Circuit Switching
07:36 报文交换 Message Switching
10:20 分组交换 Packet Switching
-
-
+
+
## 第 29 集:互联网
02:23 IP - 互联网协议 - Internet Protocol
03:00 UDP - 用户数据报协议 - User Datagram Protocol
@@ -509,8 +514,8 @@ IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM
05:26 TCP - 传输控制协议 - Transmission Control Protocol
08:21 DNS - 域名系统 - Domain Name System
10:47 OSI - 开放式系统互联通信参考模型 - Open System Interconnection
-
-
+
+
## 第 30 集:万维网
01:01 超链接 Hyperlinks
02:20 URL - 统一资源定位器 - Uniform Resource Locator
@@ -524,23 +529,23 @@ IBM PC 发布,采用开放架构,兼容的机器都叫 IBM Compatible (IBM
07:52 搜索引擎 JumpStation
09:07 搜索引擎 Google
09:20 网络中立性
-
-
+
+
## 第 31 集:计算机安全
01:00 Secrecy, Integrity, Availability
保密性, 完整性, 可用性
01:49 Threat Model 威胁模型
-
+
03:14 身份验证 (Authentication) 的三种方式:
What you know, 你知道什么
What you have, 你有什么
What you are, 你是什么
-
+
07:34 访问控制 Access Control
08:48 Bell LaPadula model 不能向上读取,不能向下写入
11:00 隔离 Isolation, 沙盒 Sandbox
-
-
+
+
## 第 32 集:黑客与攻击
01:28 社会工程学 Social Engineering
01:38 钓鱼 Phishing
@@ -555,8 +560,8 @@ What you are, 你是什么
09:53 计算机蠕虫 Worms
09:58 僵尸网络 Botnet
10:11 拒绝服务攻击 DDoS
-
-
+
+
## 第 33 集:加密
00:16 多层防御 Defence in depth
01:00 加密 - Encryption,解密 - Decryption
@@ -572,8 +577,8 @@ What you are, 你是什么
08:24 迪菲-赫尔曼密钥交换 - Diffie-Hellman Key Exchange
10:18 非对称加密 - Asymmetric encryption
11:22 非对称加密算法 RSA
-
-
+
+
## 第 34 集:机器学习与人工智能
01:23 分类 Classification
01:25 分类器 Classifier
@@ -589,8 +594,8 @@ What you are, 你是什么
09:21 弱AI, 窄AI Weak AI, Narrow AI
09:43 强AI Strong AI
10:42 强化学习 Reinforcement Learning
-
-
+
+
## 第 35 集:计算机视觉
02:41 检测垂直边缘的算法
03:26 核/过滤器 kernel or filter
@@ -600,8 +605,8 @@ What you are, 你是什么
05:35 卷积神经网络 Convolutional Neural Networks
07:33 识别出脸之后,可以进一步用其他算法定位面部标志,如眼睛和眉毛具体位置,从而判断心情等信息
08:52 跟踪全身的标记点,如肩部,手臂等
-
-
+
+
## 第 36 集:自然语言处理
01:50 词性 Parts of speech
02:15 短语结构规则 Phrase structure rules
@@ -611,8 +616,8 @@ What you are, 你是什么
07:44 快速傅立叶变换 Fast Fourier Transform
08:42 音素 Phonemes
09:29 语音合成 Speech Synthesis
-
-
+
+
## 第 37 集:机器人
02:08 法国吃饭鸭 - Digesting Duck, Canard Digerateur
02:23 土耳其行棋傀儡, 下国际象棋
@@ -622,8 +627,8 @@ What you are, 你是什么
04:08 负反馈回路 negative feedback loop
05:17 比例-积分-微分控制器 Proportional–Integral–Derivative controller PID 控制器
10:48 机器人三定律 Three Laws of Robotics
-
-
+
+
## 第 38 集:计算机心理学
00:45 我们需要了解人类心理学,做出更好的计算机
01:12 易用度 - Usability
@@ -635,8 +640,8 @@ What you are, 你是什么
08:40 用软件修正注视位置。让视频通话时看起来像盯着对方,而不是盯着下方
09:58 把机器人做的像人,恐怖谷理论
11:35 有很多开放式的问题,心理学帮助我们明白不同选择可能带来的影响
-
-
+
+
## 第 39 集:教育科技
02:15 通过调速,暂停等技巧,加强学习效率
03:15 大型开放式在线课程 - Massive Open Online Courses (MOOC)
@@ -649,13 +654,10 @@ What you are, 你是什么
3. 失误的概率
4. 做题过程中学会的概率
09:27 教育数据挖掘 Educational Data Mining
-
-
+
+
## (完结)第 40 集:奇点,天网,计算机的未来
01:21 普适计算 Ubiquitous Computing
04:55 奇点 Singularity
06:51 把工作分为4个象限,讨论自动化带来的影响
10:15 机器人的存在时间可能长过人类,可以长时间探索宇宙
-
-
-
diff --git a/extract_from_ass_subtitle/3. extract_ass_to_txt.js b/extract_from_ass_subtitle/3. extract_ass_to_txt.js
index 4396e3f..e732b7f 100644
--- a/extract_from_ass_subtitle/3. extract_ass_to_txt.js
+++ b/extract_from_ass_subtitle/3. extract_ass_to_txt.js
@@ -46,12 +46,15 @@ function extract_main_point(file, number){
}
// 写文件
- fs.writeFile(file+'.txt', result, function(err) {
- if(err) {
- return console.log(err);
- }
- console.log("The file was saved!");
- });
+ // if (number == 40){
+ fs.writeFile(file+'.txt', result, function(err) {
+ if(err) {
+ return console.log(err);
+ }
+ console.log("The file was saved!");
+ });
+ // }
+
result = '';
}