[背景噪音] 它的工作原理? PATRICK REBESCHINI:我们可以上手。 好。 大。 让我们开始吧。 所以这是我最大的乐趣 今天在这里欢迎大家 第一个讲座 的,好了,介绍 以计算和编程。 又称CS50或井水,CPSC 100正式在耶鲁。 所以,我们不能更兴奋 在这里欢迎各位。 我的名字是帕特里克Rebeschini。 我的头教练的类。 我在这里代表一组 约60名工作人员 这将与您合作 整个学期。 这个数字几乎是60我们。 沿着尚未非凡 承诺的水平 我们投入这个 类,使CS50类 在耶鲁大学,提供 支持的最大级别 献给你们所有人。 而且我们不能更自豪 在这里再次提供这一类。 事实上,你很快就会体验到, CS50比类得多。 这是一个社区。 而你将是一部分 很快这个社区。 这是第二年 耶鲁大学是提供此类。 我们正在建设的极端 去年的成功,在那里 首次, 在这里这所大学, 本科学习助手 在课堂上获得通过。 这一切都始于 这个类的最后一年。 所以,如你所知,这个类是教 会同哈佛大学。 教这门课 我们relying--我们可以 指望伟大的专长 大卫·马兰和哈佛团队。 大卫一直教学 CS50的好了,现在10年。 每一年他一直 推动边界 和改善课堂体验。 同样,我们不能更高兴 与他们继续这种合作。 的事实上,人们 最有趣的部分, 我会说,现在运行这个类的, 无论是在哈佛和这里在耶鲁, 是真是不可思议 异体受精 理念,旨在提高 学习经历对你的所有。 因此,作为这一广泛的结果 两者之间的协作 大学,CS50是自豪地 今年发布的新版本 有明显的变化。 大卫都会告诉我们他们现在。 所以please--这之中 说,请和我一起 欢迎给一个 热烈的掌声 欢迎大卫和 哈佛大学专家小组在耶鲁。 [掌声] DAVID MALAN:谢谢。 谢谢。 这是CS50,哈佛大学 和耶鲁大学的介绍 到智能 计算机科学的企业 和艺术节目。 而这是什么意思的是,这门课程 最后,是关于解决问题。 事实上,许多人可能 已走出高中 或已经在过去的几年中 想知道你的朋友们 去年做或其他类。 然而,现实 是,不管我们 在这个类做在一天结束时, 这将是关于解决问题。 正因为如此,或许取 一些安慰的事实 的学生有73%的 借此类,都在这里 在耶鲁大学和哈佛大学, 以前从未采取了CS类。 所以,如果你坐在这里 今天观众疑惑 你为什么坐在这里 在今天的听众, 或者,也许你只是跟着 以及一些朋友, 或者你已经是一个 有点好奇,以什么 计算机科学与 编程,实现 大部分同学对 左和向你的权利 在相同的人口非常多。 事实上,如果我们看一下 在去年的统计数据 CS50的学生身上,无论是在 在这里和在哈佛,学生的58% 形容自己不太舒服。 9%是比较舒适的。 然后,33%则介于两者之间。 而且也没有正式的定义 这些桶是什么意思。 你那种知道你 如果你不太舒服。 你感觉有点不安 与类说不定正在。 你不是如果一台计算机很确定 科普类的,最终你, 并意识到你 在非常好的公司。 事实上分级, 和评估, 和反馈,以及所有的那 支撑结构中的类 最终是非常个性化。 更何况比大多数的 其他类设计。 事实上,最终什么 事项该类不 这么多,你结束 达相对于其他, 但如果你在11周或最后, 而相对于自己在一周 0在这里我们的第一个。 那么,是什么意思呢? 那么,这意味着那些73% 学生去年从来没有采取 一个CS课前,由 启动学期他们 在语言涉足了 所谓的划痕,这是我们自己 今天在这里看到。 并通过了结束 学期如果他们走了 通过这个挑战整个列表。 用语言名为c开始。 实施,有什么 乍看之下,去 是有点的挑战 一些,但还算喜人,一旦你 获得超级马里奥弹跳 上下金字塔 实施,虽然,只有 一些所谓的ASCII艺术。 实施最后year--什么 学生去年则 没有以后才实现其 自己的凯撒密码和V @ genere加密。 所以加密算法 与您可以 加密信息,然后解读 信息发送秘密信息。 15游戏。 如果你还记得,从 童年或一些党员的青睐, 那个小塑料的游戏,你移动 的数字上,下,左,右 要尽量让他们按顺序 实际执行的那场比赛 和解决需要有逻辑。 然后我们涉足 取证的最后一年。 因此,通过学期中旬, 学生谁从未 用自己的键盘 为此目的之前, 在编写软件 恢复,可以这么说, JPEG文件或照片 我们有意外 从数字删除 从相机存储卡。 恢复秘密信息 从位图图像的内部, 和其它这种类型的 显卡为好。 然后我们转移到给 全班同学的字典。 只是一个非常大的文本文件 15万英语单词。 每个人都被质疑 以某种方式读取,可以这么说, 这些话到内存中。 到计算机的内存中。 然后回答问题 的形式下,这是一个字? 这是一个词? 这是一个词? 真的只是实施 拼写检查。 然后每个挑战 另外一个大board-- 一个领导委员会,看看谁能够 使用的内存量最少, 在时间到最少 实际上拼写检查大型文档。 我们从过渡再到 那些实现自己的Web服务器。 所以,在没有语言制作网页 像HTML和CSS,如果你熟悉。 但实际执行 该服务器 侦听在互联网上 从浏览器的请求 再响应这些请求。 然后实现我们自己 电子贸易网站一样,在那里 学生可以购买和出售股票。 在绘制近实时 股票报价从雅虎财务。 并让学生看 他们的投资组合如何发展。 然后最后一个混搭 谷歌新闻和谷歌 地图即学生 通过计算最终期限 不得不点击的能力,以及 圆形,和搜索谷歌地图上。 再看看所有的 新闻文章, 是靠近这些特定区域。 因此,要真正实现从零到60。 而一路上有我们有什么 去年叫,黑客补充。 这提高标准 进一步,对于那些你 谁很可能会有着良好的 经验量在9%是 更舒适。 因此,认识到有 一个非常高的天花板 即使在那些 对学生的挑战 来自不同背景的。 因为在年底 那天,我们最终 很简单集中于此。 但是,这是否 意思是说,问题的解决? 因此,让我们提议 我们提炼像这样。 因此,解决问题的能力实在是 正是这种画面。 所以,你得投入到一些问题, 东西你真的想解决的问题。 的目标是获得输出, 解决这一问题的。 然后在中间 我们会打电话给一个黑盒子。 你不一定知道,甚至 不在乎那是什么黑盒子里面。 所有你知道的是,当 你给输入进去, 你希望得到的输出 或从它的溶液。 虽然今天我们来看看 无论是在输入和输出, 我们将长期的,并通过 整个学期的课程, 重点放在盒子里有什么。 并在其中会说谎 所谓算法。 由步说明 其实解决一些问题。 但是,什么是一些输入的例子吗? 所以,也许在一个简单的事情 开始每学年,有人 可能要好好听讲。 因此,我们可以做一,二, 三,四,五,六, 我怎么会养 轨道的信息。 我可能只是去一,二, 三,四,五,六。 而只使用排序个位数。 或者,我可以实际记录 这个长一点的术语。 以及如何我代表全体 在这个房间里的人? 好吧,我可能会做这样的事情,OK。 我看到一个人。 好吧。 我看到另一个人,一个 第三人,等等。 但是,没有人计算人喜欢这个。 所以,从字面上看,我们大多数人,如果我们 甚至将不惜一切画什么, 很可能要去 一二三四, 也许会有点花哨,五,六, 七,八,九,十等。 而这实际上是一个 系统,称为一元。 宇野,像UNO暗示之一,你在哪里 只是有一个字母。 你刚刚得到这个哈希标志。 而我,求效益,只是画 这些散列标记,最终 为直线。 不过,我可以得出他们 作为小棍子数字。 凡代表 一个人,一个输入, 我只画一棒 图或哈希标记。 但是,这是不是所有的表现力。 如果我只有这些哈希 商标,别说简笔画, 我怎么可能代表 像数字15? 或15人在房间里? 我可能会做这样的事情1, 2,3,4,5,6,7,8,9,10,11,12,13, 14,15。 它只是没有很好地进行缩放。 由于投入得到大,我们 需要比这更好的系统。 而且事实证明, 系统计算机使用 是不是所有的不同 你和我知道的。 事实上,大多数人在这个房间里, 即使你是在那些较少 舒适,不一定知道 如何在Mac或PC还真管用, 你可能至少听说过,那 罩下方为0和1的。 的所谓的二元系统。 因此,我们确实,电脑已超过 只是他们的词汇哈希标记, 但不及的一个 词汇表我们人类。 事实上,我们人类不使用二进制。 毕意2,0和1。 但是小数,DECA 这意味着10,0到9。 因此,我们有更多的表现 能力在我们正常人的世界。 但我认为,这些系统中, 二进制,十进制和,和一切 之间和超越,是 其实所有相当熟悉了。 例如,考虑 这里这个例子中,123。 所以,这确实是的,当然, 一些我们所知道的123。 但我只是画只是这个 符号的图案,雕文可以这么说。 排序在粉笔板形状。 但是,为什么我们立即和 直观地掌握这123? 好吧,如果你是象 我在小学的时候, 你可能知道,这是 1秒列,这是10秒列, 这是数百列。 为什么会这样有用吗? 那么,它现在是简单的算术你 执行从符号的方式来获得 到了一些我们直观地理解。 是什么,100次1,然后 10次​​2和1次3, 这当然仅仅是100和 这是20,这是三。 所以,如果我们增加这些together--啊。 所以潜藏的那种推理 为什么这组符号后面 意味着什么真正的和数值。 那么,电脑做同样的事情, 但他们只能算高达之一。 而我能 数高达三种。 而事实上,如果我坚持下来了,我可以 走高达在这个系统九岁。 计算机只有零点 和那些在他们的字母表。 那么,是什么意思呢? 那么,它只是意味着,如果一台计算机 希望代表,说数字0, 也许用三个characters-- 3 英文字母可以这么说, 这是一个计算机如何表示0。 所以,不是所有的吓人为止。 这正是我们人类会做。 而事实上,我们大多数人只是 忽略前导零反正。 一台电脑,如果它想 来存储数字1, 原来是要做到这一点。 和一个计算机存储 数字2是不 打算做一元体系, 我前面提到。 它实际上是要做到这一点。 而这可能是 ,该模式启动 成为大多数人不太明显。 这是2,这是3。 奇怪的是,这是现在4。 而现在它确实 似乎是可能隐蔽, 但它不是,如果我们考虑 什么二进制的真正含义。 这意味着你有两个 你的英文字母。 所以,两种可能的字符 每一个占位符。 所以这实际上意味着我们要去 需要一个1秒的地方,或2秒的地方, 一个4S店的地方,然后 8,和16,32和64。 这有什么区别呢? 像这些都是1,2,4,8,16,32,64。 而我们有110个,10万级,万级之前。 有什么相似呢? 又有什么格局? 是啊。 学生:2权力 而不是10的幂。 DAVID MALAN:是的。 2的幂而不是10的幂。 所以如果我想继续 去,8,16和等等forth-- 但是现在,如果你有这种 线索的,现在的双星系统 其实很简单。 为什么是0的这种模式 电脑0的世界呢? 就是因为它的4倍0,2 次0,1次0,你会得到0。 为什么这是1号? 同样的道理,但现在我们 在1列中有1。 这是为什么2? 我们在闪柱有一个1。 怎么然后做我代表 就是说,在二进制数字7? 说的更响亮。 学生:三1秒。 DAVID MALAN:三1秒。 所以,1,1,1,因为我们只需要 4加2加1给了我7。 好吧。 因此,从那里我们怎么样 代表8 3占位符? 是啊。 学生:1,0,0,0。 DAVID MALAN:是1,0,0,0。 然而,也许,我种 技术上需要 另一个占位符添加到董事会。 如果我想适合我确实 需要做这样的事情。 所以其实我现在需要使用 在8S列,这很好。 但在计算好奇的是 这是要花费我们的东西。 您可以在您的电脑现在需要更多的内存。 你需要更多的内存 因为你需要的东西 物理机到存储 另外一点,可以这么说。 二进制数字。 事实上所有发生的事情 这里,象十进制系统中, 如果我们不断增加的数字上升,达到 和起来,我们去5到6到7〜8 它就像背着1,从字面上。 然后一切 追溯到下降到零。 但是,我们如何实际上代表 这些东西在物理计算机? 井,在一天结束时,仅 物理输入进入我的电脑 下面是这个电源线,所以 电力或从墙壁电子。 所以,如何从得到的东西 物理这样的实际 代表这样一个想法来代替。 那么,我们能做什么呢? 我们可以认为,所有的权利, 也许,如果电力流动 我可以储存它,抓住它。 如果我持有 一些电力, 这只是打算 擅自代表1。 如果我拔插头 而且也什么都没有, 你知道,只是将 擅自代表0。 所以,如果有什么地方有,1。 如果什么都没有,0。 或者你可以让这个 多一点的视觉享受。 这里是一个0。 没有什么有趣的持续 在我的手机的背面。 但是,如果我让一个小 用电位流, 即使这是一个有点光明 在这里,我的手电筒继续。 所以我储存电荷,ERGO, 这款手机现在代表1。 所以0 1。 因此,与1 iPhone有多高我 算上使用这种方法? 我的意思是1。 这还不是所有的引人注目。 那么还有什么我们可以做什么? 那么让我们来看看,有没有人对他们的 手机现在,我可以借用? 任何人谁拥有手机 用手电筒内置? 可以借我吗? 我并不需要它解锁。 好吧。 谢谢。 让我借这个。 好吧。 所以,如果我现在向上滚动,并在这里, 那我现在代表? 是啊。 所以这是一个三,因为这是在 1秒柱,这是在2秒列。 因此,1加2是3。 然后,如果我们试图让 真的creative--哦,谢谢你。 非常先发制人。 好吧。 我现在有三个部iPhone。 好吧。 现在this--我不会 做任何比这更进一步。 那我现在代表? 七人制刚。 但我需要身体 多个存储器在这种情况下。 但是,这一切是。 你可以认为这是怎么回事on--的 感谢你 - 你的手机里面 因为只是作为一个开关,是 被打开和关闭。 如果你听说过 字晶体管。 或者,如果你听说过 营销里面说话英特尔, 这是讲的那种硬件 这是你的电脑里面。 英特尔的CPU做, 中央处理单元, 这就像大脑 里面您的计算机。 而这些CPU和 事情他们连 有很多很多的小开​​关。 千万,上亿的开关 这可以是打开或关闭。 于是电脑,幸运的是, 像我们的Mac和PC, 可以指望比7或8一路走高 因为他们有这样三个以上 或4位。 办法比的,相当于多 我们刚刚有三个手电筒。 但是,现在这个开始得到 颇为无趣很快。 如果我现在想真正能够 做一些更有趣的, 我希望能够跳 到这样的事情。 所以ASCII,它不是一个真正的有用 的缩写,但美国标准代码 信息交换。 这只是意味着,有些年份 以前我们人类决定, 你知道吗,我们希望能够做到 更多的电脑不仅仅是数字。 我们不希望他们只是 是昂贵的计算器, 我们希望能够做的事情一样 文字处理,虽然很简单。 后来我们有了电子邮件和其他媒体上。 这样一来,世界决定有些年头 前,根据本系统的ASCII, 你知道吗? 在某些类型的 程序任何时候你 看到号码的等效 65,如比特的图案。 而我们能做的 数学这里在黑板上。 代表65位的格局。 不要把它想成十进制65。 把它看成是任意的,但 全球范围内,一直作为首都 一个。 再世 决定了,你知道吗? 让我们位的另一种模式。 如果我们曾经看到的 66号,我们只 假定是这样的 资本B.快进至H 而我,如果你看到72或73,即 应分别为H和I,。 因此,只要在整个 世界上同意在此。 所以,当你收到一封电子邮件,或 你会得到一个文件在USB记忆棒, 或类似的东西that--时 你看到的位的模式, 你知道,它应该是这个 信件或其他一些信件。 但它的具体情况下,正确的。 电子邮件程序可能将 这些东西的字符, 但图形计算器或 计算器可能代表或解释 这些事情,当然,如字母。 因此,与中说,小巧的审查。 这也许是一个三字符 这就是被发送给我的电子邮件。 在底层这一切都在 0和1,但我们不在乎。 我们将开始抽象 上面的0和1的信件。 如果我看到0和1组成的图案 真正代表72,提示,暗示,73, 然后33,有什么消息? 学生:[听不清] DAVID MALAN:所以,如果你想 回到刚才,HI 是我试图消息 沟通在这里,因为H是72, 我是73,现在33--你不会 事先一定知道这一点, 但事实证明,如果你真的 看到更多的图表和系统的 人类商定年 以前,它只是一个感叹号。 事实上,有一种模式 符号和数字为每个字符 你可能有你的键盘上。 好吧。 让我们进一步抽象。 如果我们不希望只是有 之类的数字和字母, 实际上我们要实现的图形。 好吧,如果你曾经 听到的缩写RGB。 它现在那种过时,但 它仍然是一种存在。 RGB是红,绿,蓝。 它只是一个系统 他说,你知道吗, 让我们用三套位。 一组8位,另一组8 位,和另一组的8位的。 让我们使用这些位 存储多少我们红 希望我们的屏幕,多少对 绿色的,我们希望我们的屏幕上, 多少蓝,我们希望我们的屏幕上。 而这只是意味着,如果你 有lot--一个巨大的数字为红色, 这意味着给了我很多的红色。 如果你有一个大数目 绿色,给了我很多的绿色。 如果你有只是一点点 的蓝色或少数像33, 给我蓝色的一点点。 如果你碰巧这些结合起来 3大小,可以这么说, 你this--你几乎可以看到 这里的投影机,但这种阴暗 黄色或棕色阴影。 但是,这是说,使用该 8 + 8 +的模式加8- 的24比特模式 是一台电脑怎么会 存储黄色遮阳一 小点在屏幕上的一个像素。 所以我们从0和1为十进制不见了 号码的英文字母。 或者更有意思,彩色圆点。 嗯,当然什么然后是下一个? 那么,什么是一个形象,你 看到Facebook或在一封电子邮件中得到什么? 还是怎么样? 的定义是什么 技术上的图像? 是啊。 是什么,如果你组成的图像 看起来非常接近你的屏幕? 是啊。 这只是一大堆像素。 事实上,如果你把你的 笔记本电脑也许以后, 并期待真正密切 在它 - 这取决于 如何昂贵的笔记本电脑是和 如何高品质的画面, 你很可能会看到所有的 屏幕上的小圆点。 而这些点或像素, 这意味着有 表示在每个像素24位 照片,你在Facebook上看到, 或者说你刚拍 在您的iPhone最近。 所以这就是我们如何获得 喜欢的东西图形。 那么,什么是视频? 视频只是一套图形 由画面再次飞 一次又一次。 所以影片真的,只是图案 代表格,行位 和点列, 通过屏幕图像飞行, 经过图像,图像后,又名 动作照片。 所以这是它的输入和输出。 所有我们现在已经是一个 假设,你 知道吗,如果我们想要一台电脑 来表示信息, 我们有这样做的系统。 我们可以从0做到这一点, 1秒在一天结束。 但是,我们可以抽象,所以 可以说,最重要的是 以便表示更 有趣的东西。 这里就出在CS50,并在 计算机科学更普遍, 我们现在站在肩膀上 所有的人谁 来到了我们面前谁想通了这一点。 而现在只是假设电脑 可以表示输入和输出。 但现在,让我们实际 做他们的东西。 因此,一个算法只是一套 指示,一步一步, 为解决一些问题。 并且可能一个这样的问题是什么。 所以这是一个老同学 技术,电话簿。 和内部的电话簿是一个 一大堆的名称和号码。 而这些名字一般都是 按字母顺序排序。 所以,如果我想要找人 这电话簿像迈克·史密斯, 什么是一个典型的人怎么办呢? 嗯,你可以只需打开 它,看第一页。 我没有看到迈克·史密斯。 翻到第二页, 我没有看到迈克·史密斯。 而就一直走下去,去。 这是一步一步的做法是否正确? 是啊。 这是一种愚蠢的,对吧。 这是低效的,正确的。 因为它要采取永远 去迈克,但它是正确的。 因为如果麦克是在这里 我的确会找到他的。 那么,什么是一个稍 理智的人怎么办呢? 他们可能仍然开到前点, 并通过电话簿也许飞 两页一次。 二,四,六,八。 我不能真正 身体做非常好。 但在理论上,这应该是 快两倍,一次两页。 这是算法是否正确? 学生:[听不清] DAVID MALAN:不一定。 好。 为什么会警告? 学生:因为他可以在一个 那你跳过页面。 DAVID MALAN:是的。 所以,即使我越走越近。 如果他只是不小心,坏 运气好的话,夹在两个页面之间 我正在飞过来? 因此,我们需要为这个修复。 实际上,我们需要 然后说,等一下, 也许,如果我们走得太远,也许 如果我们打的T形截面, 对于T·史密斯之后来临,那么我们应该 至少两倍于至少一个页面。 这样可固定,但有 有条件的问题在那里。 所以这是快两倍,但你可能 必须原路折回只是一点点。 但是,没有人在自己的房间,就算你 真的不使用电话本了, 会在开始启动。 你会怎样做 找迈克·史密斯? 你会去约到S的。 或者,如果你真的没有 纸上的小抄, 你会至少要 大致中间。 当然不 书的前面。 你要往下看。 和数学上你可能 将会看到M个部分,该部分 大致在中间。 然后,你要 实现的,什么是真的吗? 哪里是迈克? 学生:[听不清] DAVID MALAN:是的。 于是,他结束了在这一侧。 所以你可以做什么? 那么,这两个比喻和字面 你可以撕成两半的问题一次? 然后知道,你可以扔掉 这个问题的一半的路程。 而现在我们只剩下根本 同样的问题,但它的一半大。 所以现在有什么 指令集? 什么是算法 寻找迈克·史密斯? 这是完全一样的东西。 现在,这恰好是并购 部,这是在Z部分, 但根本 式仍然是相同的。 去大致中间, 往下看,哦,实在可恨。 现在我在T节, 太远了,我走了。 但在这里也可以,你 应用该相同的逻辑。 问题的一半扔 走,现在我们 留下了这是一个问题 的四分之一的尺寸。 我们可以重复的,我们可以重复, 我们可以重复,直到理论上 这里只有一个页面上留下 该麦克要么是或不是。 那么什么是如此强大这个想法? 我的意思是毕竟,这是非常直观的。 没有人会在开始 开始电话簿 和翻转1,000页找到迈克·史密斯。 大多数人都在这个房间是怎么回事 做大致那种算法 保存撕裂。 所以我们为什么这样做呢? 那么,考虑效率。 只是考虑如何更好地此 算法是由它分解 成其组成部分。 所以,我怎么先做? 我拿起电话簿。 和计算机科学家, 和程序员, 更普遍的事实证明,是怎么回事 为从0开始计数的一切。 为什么? 嗯,这是一个有点怪 我们人类算,一般, 从1开始。 因为什么是最小的数 我们可以清楚地表示基于 即使是在我们的老小学数学吗? 嗯,这是0,无论是 它的十进制或二进制。 所以你会在世界上看到 计算和编程的, 具体而言,我们开始 从0开始计数的一切。 于是我拿起电话簿一步0。 我要开到 电话簿的中间。 而这的确是一个 我所做的表达。 然后第二步是看名字。 第三步是一个小 不同的概念。 我问自己一个问题。 如果史密斯是名中, 我将做出决定。 如果他的名字之一, 然后我会打电话给迈克。 而且我会做出决定 根据该资料片。 然而,如果不是,如果史密斯 早先在书的左侧, 我要开到中间 的书的左半部。 然后这里的聪明, 我要回去第二步。 我要去的排序 站在我自己的肩膀 而只是重复过去的工作,我做到了。 但是,我已经离开了工作 以下,更小,和更小。 但它仍然去上班。 但是,如果迈克,反而是后来 在书的权利, 我要开到中间 书的右半部, 然后回到第二步。 但其实还有第四个场景。 迈克的任一位置, 或在此,或在此,or-- 学生:不存在。 DAVID MALAN:不存在。 事实上,如果我们不预期 这第四个和最后一个场景 我们的节目可能是越野车 或以某种方式存在缺陷。 否则,退出的情况下 我们还没有发现麦克的。 事实上,如果你曾经注意到 你的电脑挂,或所有 突然字或某些其它的 节目刚刚意外退出, 有时你的错误 消息是从字面上说。 该程序意外退出。 它可以是任何数量的原因。 但有时它的 事情如此简单。 人类的程序员 谁写的软件 没有意识到,哦,还有一个 第四件事,实际上可以发生。 如果你不写代码 捕捉第四种情况, 这的确是意外有时 什么电脑实际上可能做到。 现在让我们请出了 一些这些东西。 因此,在黄色这里,我 突出条款 从今以后,我们只是 要调用的函数。 在世界功能 编程就像动作, 对措施的说明。 所以回暖,开放的,看 在,打电话,开,开,退出。 这是一个函数,程序, 一个动作,任何数量的同义词 也行。 现在什么黄色现在这些东西? 如果其他人,如果别的,如果 否则,这些是什么 我们要呼吁 在规划的条件下, 或分公司,决策 指出,如果你愿意。 但是,你怎么知道哪个叉 在路上拿,可以这么说? 我们需要强调 术语向右 还有,这是这些 是的,没有什么问题。 这些真实的假问题。 名中史密斯? 史密斯此前在书吗? 史密斯后来在书吗? 这些都是问题 其中有一个是或否, 或者等价真的,还是假的,或 等价地,一或零的答案。 而与此同时有 只是一个最后一块。 这在这里有什么样的效果? 不管是不是你的程序 之前,你会如何 描述一下步 七10在做什么? 你说什么? 学生:一个递归步骤。 DAVID MALAN:递归的一步。 是的,本质上。 这是技术上反复 在这里,如果你熟悉的。 但是,我们会回来这一点。 但它清楚地做一些事情。 再次,它的诱导 循环,一个循环,正确的。 你从字面上去 回一些早期的一步。 所以事实上,这是怎么回事 执行某种循环。 但你不会得到 卡在这不休,正确的。 因为如果你经常检查是 麦克此处,或向左,或不在这里, 最终,他不会在那里。 而且你可以完全退出 根据最后一行。 所以这是它的词汇。 这就是我们会 一般称之为伪代码。 这不是一个实际的语言。 这只是很简短的英文, 但它通信的点。 这里没有正式的结构。 你只需要使用它的几 话,但清晰的话 因为你可以传达你的想法。 现在怎么好是算法 是多少比较好? 好了,我们不必进入 数字或任何具体的 像那样。 但是,我们可以看看 塑造这个解决方案。 所以,如果我们只是得到一些XY坐标图 这里这里横轴。 我们只需要调用这个问题的规模。 和一个计算机科学家会 通常使用n作为这里的变量。 所以n页,或n人在房间里,或 不管它是你想计数。 然后上的垂直轴 离开,这将是解决的时候。 那么有多少秒做它 带我找迈克·史密斯? 或多少步没有考虑? 多少翻页没有考虑? 所以,这要花多少钱 我的时间来解决问题。 我们可以绘制的第一个 算法坡,如果你愿意, 在红色仅此一条直线。 我会N通话了。 为什么N' 为什么是仅此一 一个关系? 那么,如果Verizon公司或 无论电话公司 增添了一分页面, 电话簿明年 这可能会推迈克·1 更一步接近年底, 不同的地方是页面。 这样一来,效果可能只是 是增加一个第二。 或者一个更翻页。 一个一比一的比例。 相比之下,第二算法。 如何更快的是直觉? 我在哪里去了一次两页? 是啊。 学生:[听不清] DAVID MALAN:是的。 所以,这将是快两倍。 我们将利用在这里 取决于规模。 它仍然是一条直线, 但比红线低。 因为对于一些数 的页,如果花费 你这许多步骤, 第一算法, 它会带你一半 许多步骤与第二。 这样一来,黄线 描述第二算法 只是要低于它。 但是,什么是真正强大的是 想想第三和最后, 而令人惊奇的最直观 算法,具有此形状。 从技术上讲,我们会打电话 此对数曲线。 在这种情况下登录的n基座2。 但是,这并不重要。 什么事情真的是根本 不同的形状,它有。 你可以考虑是如何 更短的这条线真的 是长远之计。 它的不断增加。 它不会变平完美。 但它更慢以往长得多 因为这个问题变得越来越大。 你可以把它想象这 如果方式 - Verizon的不只是 添加一个页面明年,但双打 的电话簿中的页数, 第一种算法可能 需要两倍多的步骤。 如果是1000这个页面 今年2000明年页面, 迈克可能是要远得多。 所以这是1000额外的步骤来找到他。 第二算法 可能只有500多 步骤,因为再次找到他, 我通过它每次两个飞行。 但是关于第三个算法呢? 如果Verizon的两倍 电话簿的大小 明年从1000到2000年 页,多少更多的步骤 我的第三个算法将采取? 是的,这只是一个。 这就是强大的主意。 你可以把1000页咬 指出问题的一次。 现在,如果你考虑 一个愚蠢的情况下, 但那种说话的 这种intuition--的力量 如果电话簿了,像四十亿 页面,感觉就像一个真正的大问题。 事实上,它可能 拿我四张十亿页 周折找到迈克·史密斯在 情况下与所述第一算法。 但是,有多少步骤将它 参加第三算法 找到迈克四位, 十亿纸片? 于是四十亿你撕成两半。 你得到两个十亿。 后来有十亿,那么500万元, 2.5亿美元,125 million--但 感觉这是 将需要一段时间。 我可能需要32的手指 以计数那么高。 但它确实为 少至32页的眼泪。 您可以从四个去 十亿一个页面划分 原数 在页半32倍 直到你留下了 只是单页。 现在,当然,我在这里作弊。 这并不是说,我们只是被排序 完全与前两个愚蠢的 算法。 我作弊在某种意义上,或 真的,我利用一个假设。 什么是关于电话本真 在其最初的形式是允许 我甚至使用第三算法? 是吗? 听众:它是按字母顺序排列。 DAVID MALAN:它是按字母顺序排列,对不对? 如果只是随机 秩序,这是一种浪费 的时候,这整个谈话。 我要看看每 如果是按随机顺序页面 我以前找迈克·史密斯 可以断定他的存在与否。 这样一来,我们的角落 削减的是,我有 假设有人在别人 这种情况下所做的工作对我来说。 因此,最终邀请 这个问题,好,等一会儿。 你如何排序1000 姓名和号码的页面? 这实际上是一个不同的 问题,东西 我们会回来的未来。 但是,当你想想网站 像Facebook和谷歌Gmail的 事情就是这样谷歌的 自己的搜索索引, 当你拥有数百万或数十亿 数据块存储这些天, sea​​rching--别说 排序那些problems-- 最终本身就是一个挑战。 事实上,这便是 只是那些挑战之一 我们会关注。 现在让我们花点时间 而看一看CS50 本身并给你的感觉 什么是在商店这个学期。 事实上,如果你还没有, 你看看这个网址。 正如帕特里克暗示 到,今年我们 作出显著全部投资 在使用过程中的支持越多 结构中的TA的条款 和CAS,办公时间, 部分可用性和 数字资料在网上,也是如此。 确实,在使用过程中的计 讲座中,我们今天在这里。 而这种预期 今年正式课程 都参加到今天,课程的 最后一节课,和课程 大约在学期中间 每讲座之间 可用一般 在星期五下午 在网上,无论是耶鲁的学生 今年哈佛学生。 事实上,所述一个 根本的变化是 我们正在采取在 哈佛大学的一个范例非常 像我们在这里做最后的 和今年至今, 这样同样,我们还是电影最 课程在剑桥大学演讲 但让他们更早提供 比我们在过去 使那些你 - 如果你 想,例如, 得到的材料先拔头筹 在第一个周末,而 比第二个周末,你将有 获得这些类型的材料, 可搜索,可嵌入,hyperlinkable 到相关资源的所有早期。 在主题方面,给你 课程的trajectory--感 而一些这可能是行话 现在,但时间不长,放心。 我们会从今天开始,最终, 有在看一个编程 语言称为划痕。 我们将随后过渡 下周的东西称为C 然后看着其他建筑 解决问题的块, 事情称为阵列和算法, 我们如何使用内存来我们的优势 和劣势,以及 之类的东西的数据结构, 然后朝的尾端 一流的看着机器学习 看着另一 语言Python的叫, 网络是如何工作的,怎么上网更 一般的作品,协议如HTTP, 像数据库语言 SQL,JavaScript进行网页, 并最终追平 所有这些在一起。 因此实际上,在 一天结束时,你 在这个类划痕不会学 或C或Python或SQL或JavaScript。 实际上,您将更加普遍学习 计算机科学与基础 它们,会让你 学习如何编程 在任何数量的这些 沿途的语言。 因此,我们确实,目标之一 到底课程 是采取了所有课程的中 训练车轮被那些最后几个星期 所以在这之后,你可以 回到自己的fields-- 这是否是或 没有计算机科学 或工程,在自然 科学,艺术,人文,或beyond-- 并把一些本 当然的想法和这个领域的 理念和实践 技能你自己的域名 为了解决在其中的问题。 我们会在这里做的同时 在今天之后最星期四 与课程的负责人领先 我们就这么叫演练 的过程中的习题集。 因此,每个星期,当我们 有一个问题集,我们会 在某个地址中穿行 这样的过程中所面临的挑战, 为您提供一些提示和 技巧和设计技术。 但是,如果你不能 使那些亲临现场, 实现这些相同 资源将嵌入 由课程的之一 助教 在这个问题集本身,也是如此。 这个问题在今年集,不像 去年,根据反馈, 仍然会在周五公布。 但是,而不是因 随后的周五, 从而使你只有七天 将有效是由于10天后。 事实上,这将意味着 他们会用一个周末重叠。 但是,我们希望今年 尤其是这会 让学生更好地适应 低潮和在他们的日程安排流程, 无论是学者还是 课外活动或体育 或中期的季节。 您可以前载或背面负载 根据您一周重点CS50 对自己本周的实际课业负担。 这个问题本身设置 将涵盖一系列的语言, 虽然我们将重点 主要是早期基于C 之前,我们以后关注更高 的水平,更多的以网络为中心的语言。 然后几个常见问题的这里 - 你应该像CS50类 作为第一年的? 所以绝对。 事实上,这不是 必然的东西 你应该推迟,直到你砍 你对其他类型的类牙齿。 而是考虑 对于很多学生来说, 包括我自己早在一天, 这是一个非常不熟悉的领域, 特别是如果你 从来没有采取AP CSA 或者类似的东西在高中。 但要意识到早期, 无论是这门课程 或其他一些入门课程, 现在确实是最好的时候, 我想,找一些新的路径或 一些新的学术兴趣,以及。 再与其他courses--服用 因此,这里的主要区别之一 与哈佛,只有我们 每学期四门课程 在哈佛的某些原因。 而你们居然拉 关共约36场 在你四年的过程中, 这通常是指四个或五个 类。 而且我认为这是相当公平地说, 并放弃CS50,在设计上,是 可能不是类的类型 你通常应该 采取与其他四个 课程一共有五个 因为pset中被 设计相当密集。 事实上,我也学会了 这在当天返回。 我不会形容CS50和 计算机科学,程序设计 因为有太多很难,因为它 仅仅是费时。 它不是那种东西 其中,晚餐后,你 可以回到你的宿舍 房间,坐下,并开始 专注于处理器集 想着,没事的, 我要爆炸了这一点 今晚再招 在我的下一个问题的第二天。 有时你只是碰了壁。 你在你的代码中的错误。 你不一定知道 如何解决某些问题。 和的一个主要特点 编程为自己这一天 是您刚才那种需要采取 退一步有时,睡在上面 还是觉得它在路线 慢跑或其他一些活动, 然后回来新鲜。 而你只是需要时间这些窗口。 事实上,这就是为什么我们 加长的时间量 可用于问题集 今年也是,每那个URL 我把先前为 有什么新的这个学期, 修剪的习题集,使 他们根本没有那么严格, 和外卖店也毫不逊色,但 有少了很多正面的事情, 你需要一个少很多跑腿 在做每一个问题集的面前, 如你所见,你才可以 实际上潜入它的肉。 因此,认识到这些问题和其他 变化是在地平线上 为更好地适应学生, 但最终,以确保 该外卖店 的确尽可能高。 因此,尽管比它更多的工作 可能是在一个典型的类, 我们也希望回报 你和你的外卖 而技能和思想 与退出 如结果更加引人注目。 并让你那里 - 这 是关键外卖店之一, 帕特里克先前已经提到的 课程的支撑结构。 所以不仅CS50具有之一 全校最大的当然员工。 它也有一 大多数本科生。 事实上,CS50去年 是一流的 有一个本科教学人员。 并证明了这一成功现在要做的 耶鲁CS中的许多其他课程 有,也是如此。 而对于学生,具体而言, 将这些助教,当然助理 是支持一个整体 支持的人脉资源, 这些部门之间或 朗诵,每周机会 有更亲密的讨论 和材料的审查针对性 对于不同的轨道,为学生 不太舒服,更舒适, 或者介于两者之间。 这些将遵循的可用性 讲座由每个每周都有几天 在星期一和星期二。 然后办公室hours-- 单对单的机会 从课程CA和助教的帮助 将在周三和周四 并在多个周日 倍,所有这些都 将在课程的网站上公布, 比去年还要多,也是如此。 但是,什么是关键CS50,如果 不是诚然有点不寻常, 是当然的文化 我们试图培养, 无论在剑桥多年 现在最近在纽黑文。 而事实上,走到这 周六,如果你还没有听说过, 是CS50益智日,其中有 无关计算机科学 但设计完全发 一条消息,计算机科学 有关问题的解决。 事实上,如果你想合作伙伴 与一个或​​两个或三个朋友 并形成一个团队,为CS50 益智日,一起来看看 在那些对出路的广告。 三个小时的比萨饼和 困惑和奖品等待着。 事实上,对于 今年第一次, 它不会与哈佛大学联合举办。 这将独立地在耶鲁。 因此,保持留意 这些如果你还没有。 几乎每个周五在学期 我们试图让一个大班里 感到自己的渺小和带来一些50名学生 同场的工作人员的午餐, 与校友,朋友 从行业讲 关于什么生活就像一后 像类和CS50在夏天 毕业后。 因此,保持留意 邀请了这一点。 首次 以往,今年我们将 举办​​首届CS50编码 比赛中,可选的选入的机会 期中,毕竟我们有过 一些六,七个星期编程 下裤头C到竞争, 如果你这样会再次choose-- 在teams--试图 作为解决诸多挑战 你可以在编程 侵害他人你们的朋友。 朝学期的尾巴 我们将一些包租公交车, 实际上花费一些时间 在剑桥,如果你愿意 想加入我们,为 所谓CS50编程马拉松。 晚上7点,我们将开始。 晚上9点左右,我们将有比萨饼。 大约凌晨1:00,我们将有卷饼。 任何人都还醒着的 乘坐巴士回家周围5:00, 我们将停止关闭煎饼 在IHOP的方式home-- 12小时的机会沉浸 自己与同学和工作人员 在使用过程中的最后一个项目, 这是一个机会 远远超越了 当然的问题集 设计和实施最 您感兴趣的话, 这最终将 这里展示的下议院。 有史以来第一次CS50公平的最后 今年,一个结束学期的展览 什么大家或庆祝 在类已经完成, 尤其是,再次,从谁去 从无到有,从零到60, 有没有事先背景 和展示,最终, 东西为整个校园, 如果在网上,让全世界都看到,以及。 现在,这些人,只是少数的 助教中科院,使CS50可能。 请允许我邀请任何 这些工作人员 谁在这里来在舞台上, 以及课程的负责人, 提供的一些话 灵感,也是如此。 ANDI:嗨,伙计们。 你们能听到我吗? 感谢您对这个加入我们的行列 可爱,阴雨周四下午。 我的名字是安迪。 我在大学伯克利分校的大三学生。 并随着斯泰利奥斯夏季, 我们将是您三目教学 助理这个即将到来的一年。 所以,我想,都显示 hands--你们有多少人 没有成为一名CS意向 主要也不是真的深潜水 进入计算机科学作为一个主要的吗? 真棒。 这是辉煌的。 所以我其实是一个全球事务 与认知科学专业。 我从字面上来 耶鲁大学的意图 从来不需要看一眼 在我的生活以后再数。 当我来到耶鲁大学,这是 这在过去是从来没有在我的雷达。 我想了解诗歌。 我想了解 国际事务。 我想了解 水彩图画。 是的,我们提供了一个类 上水彩图画。 但我从来没有真正感兴趣 在任何STEM相关。 但随后的长大,我 得了,我越意识到 每场确实有些 感觉采用计算机科学, 或者,如果没有计算机科学,计算。 事实上,我的世界 事务顶点项目, 我们使用的数据分析 分析恐怖袭击 对于博科圣地在尼日利亚。 所以你可以看到,无论 什么专业,​​你最终追求 或者你的利益在这里在耶鲁 是,编程和基础 任何的技能是超级有用。 而CS50还真是装备精良,以 那种借了大量的资源, 给你,不管 怎么舒服你 或如何有兴趣的你 在追求一流。 夏天要谈一点 关于你们是什么位 要了解这一年。 夏季:嗨,大家好。 我是夏武。 我在莫尔斯的大三学生。 实际上我开始了 作为CS50学生自己。 所以,三年前,我在一个缺口的一年。 我从来没有采取CS 类高中, 但我认为,在我的空闲时间, 它会是很酷学习如何代码。 所以,我做了一个快速谷歌搜索, 寻找什么是可在网上, 而看到这个视频布偶 和DJ和凉爽的网站。 我当时想,我想 学习如何做到这一点。 于是我带着的过程中,我 只是爱上它。 不过,我记得是嫉妒的 孩子谁可以参加的编程马拉松, 参加益智日,参加办公室 小时,从助教得到帮助的人。 所以,我从来没有想过 我会得到机会 在这里涉及 首先拿到课程 我感兴趣的计算机 科学之所以 我今天计算机科学专业。 所以我会提醒你,这个类 是要伸展你。 这将挑战你。 但它也将 教你如何做的事情 你从来没有想过你能。 斯泰利奥斯:嗨,大家好。 我的名字叫斯泰利奥斯。 我在布兰福德初中 学院和CS专业。 我也是从希腊雅典。 我真的很期待 满足大家, 跟你聊天的部分,在 办公时间,在周五的午餐。 我真的很兴奋,因为 我们已经把这么多的努力 为创造一个独一无二的支持 结构各位 使你的经验 过程中最好的。 我也希望,虽然大部分 你可能没有采取CS 当然之前,我希望这是CS50 对你来说是什么样的火花兴趣 以进一步推行电脑 科学在未来, 因为它已经有那么做 许多人过去。 所以,谢谢您的 在这里,高兴看到你。 贾森·赫塞豪恩。 JASON赫塞豪恩:嗨,大家好。 我的名字是贾森·赫塞豪恩。 我住在西利曼。 和我去哈佛大学作为一个本科生 而主修社会学 在计算机科学辅修。 我的主要角色,一个在这里 是支持这个奇妙的工作人员 他们支持你的所有。 其实,这是不是所有的人。 有55个本科生, 毕业生在这里支持你所有。 我敢说数一数二 适合你的课程部分 所有的越来越一起工作 他们,去了解他们, 让看到他们,无论是在CS50 和CS50外本学期 并为许多学期的到来。 所以希望你拿 当然,因为你希望 获取与互动 奇妙的工作人员,我们有在舞台上。 演讲嘉宾:嗯,让我完成 说这会很有趣。 DAVID MALAN:嗯, 感谢我们整个团队。 请允许我调暗灯光, 让更多我们的团队, 无论是从剑桥和纽黑文, 打招呼因为这些家伙的文件了。 在这之后,我们将过渡到 第一我们的节目交战 用这种语言称为划痕。 所以,感谢团队。 让我们调暗灯光, 从其他几个人听见。 [掌声] [视频回放] CS50的-The使命就是让你 更舒适的全新方式 的思想,这种计算的心态。 - 它取得计算机科学 有趣的,这 是我并没有真正实现 是可能的,直到我把这个类。 - 我当时想,哇。 我真的翻译我的想法 到计算机现在。 - 即使如果你没有任何背景做 在计算机科学或任何经验, 这其实是对你的类。 - 所以我肯定要 我的学生,只是 感到兴奋的计算机科学。 不只是编程,但 想着像计算机科学家 真的是我想做的 试教我大一。 -CS50是很难和奖励。 -体验。 -Extravaganza。 - 它是带给我们一个新的水平。 [音乐] -The转录因子是的,我想, 命脉当然。 - 我高兴能有 我的学生,我帮 有惊喜的时刻实现 他们实际上是想 这样做,找出如何做一个PSET。 -CS50绝对是一个艰难历程。 但不同于其他任何 当然,真正在耶鲁, 它有这样一个伟大的, 支持的社区。 - 你万万不 需要知道什么 关于编码,以便能够 参加的课程。 - 它是惊人的看多远 人进来一个学期。 - 你并不孤单坐在 你的房间学习代码, 但它不仅仅是一个类的更多。 这是一个经验。 学习概念 - 最佳方式 处理这些是教别人。 - 什么是电话分流? [音乐] - 和这是CS50。 [音乐] - 这是CS50。 -Got有问题吗? 撕裂成两半。 [音乐] 把它扔掉。 DAVID MALAN:好的。 因此,让我们在一个小tackle-- 位,顺便说一句,这是 是这个传统, 由于某些原因10年 服务蛋糕在 启动和CS50的结束。 所以,等待你的结尾 今天,除了教学大纲, 将一些蛋糕,以及, 课程的工作人员打招呼。 但现在,让我们过渡到 首先我们的语言,其中的 我们只是一个星期,一个人真正花 问题在这个领域,集从零开始。 你会发现,如果你已经 前编程,很多 的思路和 可能性是熟悉。 但是你会发现, 它是沿途乐趣 要弄清楚到底怎么翻译 一些你已经知道的想法 这个特定环境 真正打动你的家人 和你的工作的朋友,它可以 网上去,如果你选择,后来。 如果你没有 以往的经验,并 多数之间 学生不舒服, 意识到很多的想法,我们 只是探索与reality--东西 喜欢这款手机的书和出席 所以forth--翻译 相当好听到计算机, 但如果你使用, 最初,这样的语言。 因此,这是写的程序 在一个叫做C.语言 我们会花相当多的 时间在C,最终。 但赔率是,这看起来有点 神秘的给你的第一眼。 事实上,有很多奇奇怪怪的 语法,括号,尖括号, 大括号,报价和分号。 事实上,如果你潜入 编程首次 寻找并试图创造的东西 像这样的,说实话,你总是这么深陷 所以经常只是愚蠢 细节是没有什么 理智有趣了。 但想象一下,如果你可以创建 同样program--其中, 正如你可能有种推断,可能是 打印“你好,世界”好歹。 我们可以提炼出同样的想法成 只有两个拼图,如果你愿意。 事实上,划痕很有趣 因为它是这个图形语言。 你可以拖放这些 拼图,只有联锁 如果它使逻辑意义这样做。 所以,在划痕, 我们很快就会看到,这是 你将如何实现相同的 程序中,只有两个拼图 这几乎是他们说的去做。 但是我们会在短短的一瞬间看到,一些 我们提到的积木 更早,几个都认为 最终要构成 我们的一些早期的项目。 我们将有事情 像functions--刚 该做些什么动作, 好比说你好,世界。 我们将有循环, 事情引起循环 一遍又一遍,就像我们 做了刚才与搜索 麦克·史密斯。 变量,如代数,如果你 包含X或Y,可以存储一个数字。 那么,在一个程序,可以实际 存储不仅仅是数字更多。 您可以存储的单词和句子 和图形和其他东西还在。 布尔表达式,只是 questions-- yes或no,true或false。 条件,作出决定 基于这些是/否的答案。 然后发烧友之类的东西 阵列和线程和事件 和任何数量的其他 的功能,但所有这些都 非常漂亮映射到非常 友好块这样。 这将是一个函数,一个 紫一块拼图,只是说: 它的名字在这种情况下is--,说。 然后经常有 白盒,你 可以键入或拖动某个值成。 这就是一般的 所谓的参数或参数。 它的改变的方式 一个谜的默认行为 片或一个功能以便它 定制的东西对你好像说, 你好,世界还是你好,安迪还是你好, 杰森或其他一些句子来代替。 如果你想说,一个 lot--字面上forever-- 你可以采取另一种 所谓永远的一块拼图 ,只是夹在 两者相加是这样的。 和循环,作为图像显示, 意味着只是说你好,世界永远 一遍又一遍又一遍。 或者,如果你只想做它 有限次,如50次, 还有的将是另一个谜 一块为that--重复50次。 同时,如果你想 具有可变 在这门语言我们 约一起玩, 你可以用这样的橙色块。 而这个变量我随意 叫我为整数。 而我只是将它设置为0。 所以也许我,在这 case--这个变量 - 代表在一场比赛中一个人的得分。 您从零开始,每一次你 作出这样的一个目标什么的, 你会得到一个额外的点。 你可以问划痕的问题。 如果我们拖放谜 条这样的时刻, 你可以问这样的问题, 好了,我是小于50? 也许你需要50分夺冠。 因此,这将是 你问的问题。 或者,更一般地,你 可以说,为x小于y, 那里的两个变量为何? 现在,这个人是一个很大 更大的第一眼, 但真的没有那么复杂。 这仅仅是一个组合 条件和变量 和布尔表达式问 3 questions--比Y X少? 如果是这样,这么说。 分析称,X小于y。 否则,如果x大于 Y,否则x必须等于y。 和而用迈克·史密斯, 有四种情况,在这里 在数字世界中,x是 小于,大于或等于。 我们所有的都在三路叉。 然后还有票友 拼图这样的 对于像数组,在那里我们 要能够存储信息。 我们要看到块,使 我们执行多个线程, 另一个特点,我们将使用和 然后还要所谓的事件。 但是,在我们获得该 点,创造出, 最终,我们自己的自定义 拼图,让我们 实际打开的程序本身。 因此,这是划痕。 它可在scratch.mit.edu。 并欢迎您打 现在或以后,也是如此。 这恰好是离线版本。 对于人谁不 一定有伟大的互联网, 你可以下载 相同的软件,以及。 还有的真的只有三 组件此软件。 上的顶部左上角 屏幕是那种舞台 即刮,默认情况下谁 看起来像一只猫,住进去。 他能向上,下,左,右 做任何数量的其他事情, 并可以看基于任何数量的方式 在分配给他的服饰。 但是,这就是我们会打电话给一个 精灵,一种性格。 你可以有多个 人物,因为我们很快就会看到。 在中间现在所有这些拼图 件,这些类别或托盘 其。 所以现在,我点击了运动。 所以,我看到所有的 运动相关的拼图或块, 使有功能 做往上走, 向下,向左或向右或 一些其它操作。 但是,如果我点击长相,你 可以看到的东西像说块 我们看到刚才。 如果我点击控制,你会看到 之类的东西重复和永远 而如果块 我们看到刚才。 所以,你会发现 我们将只划伤 的一些表面 拼图在一起, 但是这一切都非常直观 和指向和点击。 事实上,划痕设计 对于年轻的学生 以帮助给他们一个出口 创造性思维。 然而奇妙的,它的 一个美妙的垫脚石 恰好我们要想法 探索用C和Python和JavaScript, 为好。 在右侧,终于在这里, 是这样的,即所谓的脚本区域。 而这仅仅是空白的石板用 你开始写程序。 我会这一点。 现在,我碰巧知道东西在哪里 因为我这个做了几次。 但我知道,在 事件类别, 有此块这里 - 当绿旗点击。 同时注意,如果我缩小, 早在在这里的舞台上, 从无到有生活在这个 长方形的小世界, 顶上是绿色的 国旗和一个红色的停车标志。 所以,去阻止,分别。 还等什么做我想做的事 当绿旗被点击? 好了,让我去,看起来类别。 让我先走 和拖放这一点。 并注意一旦它得到 密切,他们是那种磁性。 所以,如果我现在放开,其卡 一起漂亮和干净。 而且我要继续前进, 这样说你好,世界 两秒钟。 让我缩小,现在的点击 绿旗,说,你好,世界。 好吧。 所以这是一切优秀和良好。 不是所有的精彩。 让我们把它一点点可爱。 我知道,在 提前,发生刮擦 来像这样一些可爱的东西。 所以玩喵喵的声音,直到完成。 因此,让我们做到这一点。 [喵] 噢,那是可爱。 如果我点击它again-- [喵] 然后再次。 [喵] 但我一直有重新加进划伤。 但我可以做的比这更好。 为什么不让我只需拖动这三个。 而现在它的三倍可爱。 [喵喵叫] OK,其实,这是一个有点让人毛骨悚然。 因此,我们需要在两者之间有什么。 如果我去控制,它看起来像 其实有一个等待块。 所以请注意,如果我将鼠标悬停在那里 - 让我赚这点大。 如果我悬停,这是怎么回事 以卡入到位。 所以,等待一秒钟,等待一秒钟。 让我们再次打绿旗。 [喵喵叫] OK,多了几分自然, 但不是非常有效的。 因此,这是正确的,如果我的程序的 目标是喵三次。 但它不是非常精心设计的。 我有点削减一些角落。 我有点懒。 什么感觉like--什么我似乎 都做不好,你会说什么? 是吗? 是的,在中间。 听众:多用 内存比你需要 因为你使用 这么多不同的路线。 DAVID MALAN:是的,所以更多的线路。 它不一定是存储器, 虽然它可以被看作是这样的。 但它的definitely-- 有冗余。 而且我真的有种拖 和丢弃的同样的事情。 如果你有种extrapolate--如果 这不是很明显这里 - 好,怎么会 我喵30倍? 我会拖放一样, 30多对拼图。 ,肯定有一个更好的办法。 我们已经看到一个更好的办法。 什么直观地将 是更好的办法? 是啊,只要使用一个循环。 没有复制和粘贴。 事实上,这种随时随地 学期如果你开始 发现自己拖放, 还是真的复制和粘贴, 危险习惯进入,因为 这仅仅是不是很维护。 举例来说,如果我想改变 声音到别的东西, 我现在去改变它在三个 位置,而不只是一个。 因为事实上,如果我 打破这种away--我 只是要脱钩会这样。 让我抢了重复块,和 然后单击三,型三种, 抛出一些这些 程刚放手。 然后发现它 看起来并不像它适合, 但磁性,这是怎么回事 不仅入到位 但长到适合的形状。 所以这是很好的。 而现在,如果我点击播放。 [喵喵叫] 非常好。 好吧。 现在它很容易 改变,也因为我可以 在一个地方更改一个数字。 但是,这也并不 那么有趣。 让我们实际上有 刮不喵的,但移动。 让我去运动和移动的10个步骤 of--哎呦里面,让我解决这个问题。 让我把它移到10 steps-- 其实,我们不要做重复。 让我抢一个控制块, 做永远以下。 永远,移动10步。 并单击播放。 好。 所以,值得庆幸的是,他停止。 否则,孩子会很心烦 当他们那种失去他们的猫。 但至少我可以拖动 他回到屏幕。 但是,这是不是所有的 大的游戏或动画。 这将是很好,如果可能 他弹开的边缘。 那么我们该怎么办? 什么结构我们需要有 SCRATCH决定反弹,你认为, 即使你从来没有 见过划痕? 是啊,在后面。 听众:您需要一个 如果块或IF-THEN。 DAVID MALAN:是的,所以一些 那种if块或IF-THEN。 所以实际上,我们这里的其中之一。 所以if--所以让我拿 摆脱运动。 让我放大,所以这是更大的。 那么这个怎么样。 永远,如果Sensing-- 我们还没有见过这个。 我需要一个布尔表达式。 而事实证明,如果摸什么? 如果触及边缘, 我想要做什么? 好吧,如果我回去运动, 原来,哦,我可以转身。 我这里拖这一点。 我为什么不继续前进, 转身180度? 现在,让我动弹结束。 我可以把在运动 的开始或结束。 但在逻辑上,每次我动,我 要检查,我在接触的边缘? 难道我接触的边缘? 难道我接触的边缘? 因此,逻辑上我如果这样转身。 因此,让我们点击播放。 好。 所以这是稍微车,可以这么说。 而一个错误仅仅是一个错误 在一个计算机程序。 但至少它的工作。 而事实上,我可以在这里犹豫。 而让我在这不是10个步骤 时间,但是这是所有动画。 这是所有卡通 甚至电影。 让我移动20步在同一时间。 因此,20倍,许多事情正在发生 一次,或两倍多,在这种情况下。 而且他的移动速度更快。 让我更改为30。 100。 1000。 而且它会非常快。 而这is--是啊,OK。 所以,现在我们只是用它搞乱。 好了,马车。 但是,我们可以把他拖出来,这里的道路。 但是我们可以让更多的乐趣,这也算。 如何this--他的倒挂。 但事实证明,Scratch-- 实际上有, 我不得不放弃,没有学术 价值是什么,我将做。 但是,如果我打开麦克风,让我们 阻止他这样做。 哎哟! [笑] 这是可爱的。 谢谢。 现在,这是我的声音 看起来,当我大叫哎哟等。 我不认为我们抓住了你的笑声。 没关系。 让我这个保存为“哎哟”。 让我们将这个保存为“哎哟”。 现在,我们将回到脚本。 现在我need--让我们来看看,声音。 哦,播放声音哎哟。 所以,如果我碰的边缘,让我 第一次玩哎哟,然后转身。 现在,让我们把他夹在中间。 [说:“哎哟”] 快两倍。 好。 但它的字面 做我在说什么。 所以它实际上是正确的,它是 只是有点讨厌快。 因此,让我们添加的东西 更有趣了这一点。 让我真正打通 一个我提前做, 形象地称为宠物的 猫,才会这样。 这里的脚本在这里。 这是什么打算 在英语方面呢? 这是什么目的呢? 是啊,让我们去some--是吗? 听众:当你 宠物猫,它叫声。 DAVID MALAN:是的,所以当你 宠物猫,它会喵喵叫。 因此,换句话说,有现在 一个永远循环的是,合并 带条件,组合 用布尔表达式, 再加上一对夫妇 的功能,其效果 其中,有一次我玩 这个程序,是什么 反应,直到我移动光标 密切和更​​密切的还有 - [喵] 然后,它像抚摸一只猫。 [喵] 只有当你真正 将光标移到他。 现在,我也掀起了不宠 猫,而做到这一点,而不是。 [喵喵叫] 所以他只是不断地喵喵叫。 [喵喵叫] 但是,如果我太close-- [喵喵叫] [怒吼] 那么如何工作的呢? 现在,我只是有一个 两路岔路。 如果触摸鼠标指针, 然后播放狮子的声音。 否则只是玩喵声, 然后等待三秒钟,这样 它是一种做 很平静。 好吧。 所以这是结合 一些更多的想法依然。 让我们来看看这个例子 我刮起了所谓的线程。 而这一次是根本 在它利用不同 众多的功能 所谓的编程语言 线程,程序到能力 从字面上同时做两件事情。 事实上,这些天,如果你使用 谷歌文档或Microsoft Word, 和你的文档的不断被 拼写检查,即使你类型 - 或者你 点击Command-P或Control-P 和打印的东西, 它的打印,而你继续输入。 今天的节目的确可以做多 齐头并进,就像在刮 这里。 所以在这里,我有两个精灵 现在,一只鸟和一只猫。 如果我点击每个 这些字符一次一个, 我现在看到的鸟的 脚本在右上角。 现在我看到猫的。 鸟,猫的。 所以,他们每个人都有自己的脚本。 但通知,什么一块拼图 ?他们都与开始的? 当绿旗点击。 和鸟类,当绿旗点击。 所以,当我按一下绿色旗帜, 这两个脚本或程序 要并行运行。 你会发现,鸟 只是盲目地反弹的边缘。 猫显然被编程 具有战略优势。 和 - [怒吼] 好吧。 所以猫夹在这种情况下,鸟。 这是为什么? 好了,先通知我们只是有 鸟只是盲目地去 这个最初的位置, 然后永远, 如果不接触猫,正义之举。 如果你是在边缘,反弹。 和正义之举。 如果你是在边缘,反弹。 但猫,同时, 有一些附加的逻辑 上面写着this--第一,就这样 这不是完全偏 对鸟,注意到我 使用绿色拼图有 实际上选取一个随机数。 许多语言的一个特点是给 你随机或伪随机数。 因此,在这种情况下,猫最初 选择之间,如一个随机数, 90度和180 度,基本上,这样 这有偏差一点点。 然后永远,如果感人 鸟,玩狮子的声音。 否则,只需朝鸟点。 朝鸟点。 点朝向鸟,这是一个 拼图本身就是在这种情况下。 好了,我们可以在这里做的一件事。 让我在这里开辟活动计划。 在这里,我们再次有两个精灵, 这看起来像在这里这两个傀儡。 而有趣的是这里这个。 橙色的家伙有这 一套拼图在这里。 永远做following-- 如果按下空格键, 然后说,马可,和 再播事件。 而与此同时,蓝色的家伙在这里有 当您收到事件this--, 说马球。 因此,原来的划痕 和其它语言, 有两个节目的方式 或两个脚本,在这种情况下, 要互通,这样,当我 敲空格键,他说马可。 而另一听见,所以 说话,和Polo说,在响应。 所以,你可以编写程序 实际上以这种方式进行交互。 如果我做这一块,而不是, 我甚至可以添加变量, 只是用在这种情况下,一个精灵。 这一次是特别烦人。 [SEAL BARKING] 现在,右侧的通知,我们已经得到了 在这里一些额外的逻辑。 如何从吠叫制止这种密封? [SEAL BARKING] 它看起来像在右手 一边是正在播放的声音。 但它只是一个打 声若什么是真的吗? 如果一个变量 - 橙色 block--静音为零。 如何更改静音为1, 意思是真实的,使这个静音? 显然,其他的剧本,我可以 按下空格键,现在他停止。 因此,我们可以有这样的互通 跨脚本,以及, 只需共享变量 在两个这样的。 现在,这是不是所有的有趣。 让我们继续前进,这样做并结合 很多这些想法与此程序 这里。 之前我们这样做,不过, 怎么样一名志愿者? 让我以压断 我,因为我实际上并不 玩这个游戏。 让我们的人,我们 以前没有见过的。 你必须要舒适到来 在舞台上这里,在镜头前。 好了,上来吧。 很勇敢。 你叫什么名字? 伊德里斯:伊德里斯。 DAVID MALAN:对不起? 伊德里斯:伊德里斯。 DAVID MALAN:伊德里斯,很高兴见到你。 上来吧。 而现在,在你自己的移动 手机,你玩口袋妖怪去? 伊德里斯:否 DAVID MALAN:真的吗? 伊德里斯:是的。 DAVID MALAN:OK。 好吧。 很高兴见到你。 你过来吧。 我也不会。 因此,我们将一起找出如何 玩这个,其实它的人 去和划痕实施 通过改变猫基本上 不同的人物都在一起。 如果我全屏 这在这里,我们要 看看下面一起游戏。 仍在加载,加载还在。 来吧。 让我做到这一点。 来吧。 这场比赛是如此之大,它坠毁。 支持。 试试这一次。 来吧。 好吧。 在那里,我们走了。 好。 绿旗。 所以在这里我们去。 [音乐] 在此选择中等水平。 点击蓝色的家伙在那里。 好吧。 你也可以使用箭头 keys--上,下,左,右。 现在,让我们考虑一下,因为我们做this-- 再有字符后去了。 是的。 现在,点击他的鼠标。 哦耶。 移动。 哪来的箭? 干得好。 所以点击那里。 是啊。 好吧。 所以,现在,我听说你有一个戳球, 如果点击它,它会做到这一点。 很好。 在练了今天,我 发现这个版本的游戏的 其实并不难。 所以,如果你想在这里又来了, 走这一捅球。 然后去右转。 试着点击就可以了。 呵呵,其实,这是 商店,显然。 OK,很接近。 在此之前从来没有做过。 也许去到这个东西在这里。 哦,你去那里。 等等,还有一那边。 哦,还有另一种。 好。 下。 是啊,请单击。 OK,这是非常可爱。 OK,非常出色。 这个游戏是不是很辛苦。 好。 恭喜。 在这里,我们有一个CS50 压力球给你。 但考虑一会儿就好了什么 一些外卖店都在那里。 不是真正的游戏更轻松,显然。 但这一切,我们应该继续 在这里是一个字符 这可能有某种 环的与它相关联。 这不是一只猫。 正是这种性格吧。 而这循环只是不断地 他说,如果向上箭头按下, 如果向下的箭头按下,如果 左箭头按下或向右 按下箭头,上移 或向下或向左或向右移动。 或者,如果有另一块拼图有 上面写着接触到另一个精灵的时候, 触摸的人物之一时, 要捅球,如果触摸, 然后做到这一点。 因此,所有的我们已经思想 一直使用至今真的 可以只在该特定应用 上下文玩这个游戏,以及。 让我继续前进,拉 最多一个其他在这里,在事实。 让我继续前进,拉 起来,让我们说,这。 这是我们重新混音。 通过一种使我们 学生在剑桥, 然后我经历了和改变 哈佛的几乎每一个实例 耶鲁这个时候。 会有人喜欢 抗衡常春藤 这里的另一累积 所有这些想法? 下来吧,是的。 你叫什么名字? DINA:迪娜。 DAVID MALAN:阿迪娜? DINA:迪娜。 DAVID MALAN:迪娜,下来吧。 好吧,迪娜。 因此本场比赛变得更难, 更难,因为在这场比赛中, 有被用作油井变量 这是不断跟踪 什么水平你是在游戏中。 很高兴认识你。 这里过来。 所以,这里的目标排序 的让你的方式,通过一个迷宫 这个学生实施。 而刚刚设置的舞台​​,每 在屏幕上,这些照片 是它自己的精灵,它自己的特点。 所以,这些都是默认的猫, 但学生改变了他们 这里的各种常春藤徽标。 然后你会看到,只是 通过使用条件和循环 和功能多,你得到这个。 [音乐] [MUSIC - 哈默,“U不能碰  这个”] 是啊,OK。 是的,继续前进。 第一级是很容易。 你刚刚去那边。 但同样考虑,这仅仅是一个 循环监听箭头keys-- 上下左右。 而现在一个感应块。 非常好。 [MUSIC - 哈默,“U不能碰  这个”] 非常好。 [MUSIC - 哈默,“U不能碰  这个”] 非常好。 很简单,深红。 好吧。 呃几层哦。 [MUSIC - 哈默,“U不能碰  这个”] 再次,在这些 3哈佛波峰, 你只需要逻辑 如果边缘,反弹说。 [MUSIC - 哈默,“U不能碰  这个”] OK,你在做什么 为什么不是更有趣。 非常好。 非常好。 嗯,哦。 [MUSIC - 哈默,“U不能碰  这个”] 我认为你必须牺牲自己。 [MUSIC - 哈默,“U不能碰  这个”] 快! [MUSIC - 哈默,“U不能碰  这个”] 尼斯。 没关系。 你会得到它。 是的是的! 非常好。 [欢呼声] [MUSIC - 哈默,“U不能碰  这个”] 太好了! [MUSIC - 哈默,“U不能碰  这个”] 得到它了。 来吧! 倒数第二的水平。 [MUSIC - 哈默,“U不能碰  这个”] 好吧。 [MUSIC - 哈默,“U不能碰  这个”] 是。 良好的使用变量在这里。 [MUSIC - 哈默,“U不能碰  这个”] 是。 [MUSIC - 哈默,“U不能碰  这个”] 尼斯。 [MUSIC - 哈默,“U不能碰  这个”] 没关系。 我们一定要到达终点。 那里。 哦! [MUSIC - 哈默,“U不能碰  这个”] 可能会遇到今天晚了,但 这会是值得的。 [MUSIC - 哈默,“U不能碰  这个”] 你能行的! 是啊! [欢呼声] [MUSIC - 哈默,“U不能碰  这个”] 这一次真的很难。 [MUSIC - 哈默,“U不能碰  这个”] 我们会给你们两个更多的生命。 你可以做到吗? [MUSIC - 哈默,“U不能碰  这个”] 好吧。 如何又大又圆 掌声不过。 你得倒数第二级。 谢谢。 [掌声] 所以,这只是说多少你 可以用这些各种各样的事情要做。 并实现,那就是,当 拼图不exist-- 而事实上,这是打算当 与第一问题的权力 集和beyond--是 实际创建你自己的。 而这仅仅是一个片段 的例子之一 你就可以玩 在线,其中 如果你没有内置划痕 像咳嗽一块拼图, 实际上你可以自己做到这一点。 所以,这一切,更等待着。 而刚刚画最后 确实有什么图片 未来在商店为类的你, 根据来自同学的一些照片 过去,请允许我昏暗的灯光 最后一次,告诉你CS50。 [音乐] 好吧。 以上就是CS50。 蛋糕现在担任。 [音乐]