[Powered by Google Translate] [ROCK MUSIC] [MUSIC - “HAPPY TOGETHER”的龟] DAVID马兰:今天,我们开始探索 计算机科学的基本原理,并推出了我们, 现在,本领域的编程,其中,即 只是其中的一个例子。 但在同样的解决问题的,要知道 CS50的传统益智明天是星期几。 如果你还没有RSVPed此事件,你可以去 cs50.net/rsvp。 你可以把两个或三个或四个队。 你的挑战的问题,像你看到的 那里开始。 所有新的问题,如果你今年partook去年, 将有机会赢得一些奖品。 其中,Wii和一些礼品证书和类似的, 所有,而与CS50的学生和同学出去玩 和比萨饼和Facebook。 所以,明天,如果你想。 这是CS50,对于那些你加入我们的 第一次。 知道这当然是决心要得到 通过本课程的最终结束,此时你 将不仅理解这些 计算机科学基础,但你将有 这个非常实用的技能,然后你可以带回去给 你自己的部门,无论是工程科学, 应用数学,物理科学,自然 科学,或等。 事实上,如此令人兴奋的关于计算机科学这些 天,它仅仅是适用于 各种领域。 即使今天,我们只会表面的划伤 非常传统的编程语言为C,我们将 名为scratch的东西,而不是看的东西 该cookie实现你的一个爱情故事 前辈在过去的几年中,讲故事,创建游戏, 创建互动艺术,并真正开始包装 一些心中周围的基本结构, 基础编程,但在上下文中,你会看到,这是 要少得多可怕的,这是神秘的要少得多,你会看到 前长。 和实现,也为那些你刚加入我们这个 学期截至周三的演讲,短语, 它是不是那么重要,你在哪里结束相对于你的 在这个类中的同学,但你,学期结束 在第11周,结束了自己这一天。 因此,事不宜迟,这也是值得注意的是, 那些不太舒服,那些介于两者之间, 同时,通过本课程的设计,没有任何缺点 面对面那些更舒适 未来这一类。 正如你将看到,未来几周内,我们有不同的 轨道后面的背景不同,这些章节 不太舒服,更舒适,那些某处 在两者之间。 正如你将看到本周末和下周,有两个版本 标准和黑客版,所以大多数问题集 ,你都可以自我选择的路径与您 是最舒服的。 所以,今天,我们深入到这种编程 语言从头开始。 这是一个图形化的编程语言,但它有 一些较高层次的语言,我们会相同的功能 后面的学期,其中C JavaScript和PHP。 但是这将让我们的杂念,以避免一些 早期的语法,比如分号,括号内的事情, 和其他神秘的细节,乍看之下,只是没有 在所有智力有趣的,往往会得到 的方式,从一些基本的了解。 现在前面的支撑结构方面,认识到这一点 工具,CS50讨论,这将是在球场上的链接 网站后的今天,网上论坛 这你就可以问对方的问题和 工作人员,这也是一个工具,我们将在下周看, 我们将使用相当综合 办公时间为好。 事实上,办公时间(星期一)开始,坦率地说,第一 一周的办公时间是相当低调。 我不认为你会发现全部刮开了不可访问的。 这是相当不言自明的,正如我们将看到的,所以什么 今天,我们将使用它是提取一定的 基本的想法,然后,坚持在整个 其余的学期。 但是,从周一开始,8:00 PM 11:00 PM将 安嫩伯格对大脑休息的办公时间。 切片将开始在这个晚上,所以在这个 周末,去cs50.net/section,,你会 问了一些问题。 其中,你会如何描述你的 今天的舒适度? 有没有坚硬,快速的规则,谁在这桶。 这仅仅是诸如此类的事情,你可能知道,如果你 是那些不太舒服或以其他方式之一。 目前,演练。 本周,包括标准问题集规范 黑客版的一致好评,是在cs50.net在线的现在。 你会看到,这些版本, 标准版,是伴随着每个星期的东西,我们 调用一个代码演练,一个会议领导下的 课程的教学研究员来指导您完成, 提示,让你下来时,一个特定的路径 启动这些问题集。 因此,这些问题的设置,如果你曾经想要 自己我在哪里开始,你就开始与这些 演练。 而事实上,让我给你介绍Zamyla陈 将带领每一年的教学研究员 这些演练。 Zamyla? [掌声] ZAMYLA陈:哦,嗨,大家。 我的名字Zamyla。 我是一个初中就读工程的Winthrop楼。 但我尝试和适应尽可能多的计算机科学课程,因为我 可以,这就是为什么我很高兴能领导这个 今年的演练。 演练,对我来说,是一个重要组成部分,我的CS50 经验。 在演练中,每一个P-SET,我们将通过 一起设置的问题,看问题,种 它们划分成可管理的叮咬。 我给你的技巧,技术,获得 通过和开始。 我希望能看到你所有的演练。 如果你不能做它的人,然后 请不要在网上调。 DAVID马兰:非常好。 谢谢你,Zamyla。 因此,认识到演练,事实上,在一个星期五 下午,但是这是故意设计,使 即使你不想在一个星期五的上课 下午,影片将是更迅速, 本周末。 因此,认识到的cs50.net将所有的Zamyla, 演练。 而这是今天的日期和时间,3:00 PM, 厅,104 Harberd。 一些教学研究员也准备了 一些为你的缺席给你多一点 角度,以他们的经验和 走出去CS50是怎样的。 因此,如果我们能够昏暗的灯光,只是一瞬间,我给你 一些CS50的工作人员。 杰克逊施泰因坎普:我把CS50去年的一个大一新生 下降,和它绝对吹我的脑海里。 我从来没有采取任何编程班前, 从来没有在任何计算机科学 在所有的经验。 只是,我听到的嗡嗡声的类和 决定把它。 JULIA参考Mitelman:它真的很有趣,真的很搞。 我的是,这一天 - 我刚刚看到我有软盘,大卫给我们 我们第一天的演讲。 我已经把它挂在墙上。 这可能是一个小书呆子,但我挂在我的 墙在课堂上作为提醒的是如何的酷。 TRAVIS DOWNS:它是如此的尴尬。 JACKSON施泰因坎普:计算机科学是你 应尽量即使你不是一个用于 传统的科学。 这是自身的经验,和CS50将确保你 支持通过它的转录因子,其真正的军队。 ALI的Nahm:我把它作为一个新生,所以我做了很多 新朋友。 我也引入了这整个的浓度和 整个工程的学校,所以我高度推荐 欢迎您的我们的CS50家庭。 的Yaniv YACOBY:,CS50只是教你如何使用工具 普及。 你只需要一台笔记本电脑,你需要一个网页浏览器,你 需要学习编写一些代码,你可以真正建立 整洁的事物。 KAREN肖:这是如此的酷,能够使一些 和人们使用它,让人们看到它,这就是 我真的很喜欢它。 TIM MCLAUGHLIN: - 一种社区的感觉,我觉得,在这 当然到目前为止,我已经采取了比任何其他课程。 你不只是以另一种 - 你没有填充其他要求。 你不只是去听课,要部分。 但是,你在做什么吨的东西,是所有有关 设计和所有有关的技术,但它不 真的觉得自己像一类的大部分时间。 TRAVIS DOWNS的第一天,他们分发了蛋糕,和 我立即就被卖了。 JACOB百特免费糖果和比萨饼。 ZAMYLA陈: - 无论你的利率水平,我觉得 ,CS50,你将有乐趣,你会智力 刺激。 MARK GROZEN-SMITH:总是一个党在课堂上,这是一个 党的每天晚上都工作在P-SET。 JACKSON施泰因坎普:每次完成一个问题集,你 会觉得你已经完成了一个项目。 MELISSA牛:这是一年级以后,我完成购物。 我有我的四个班准备好了,我在安尼伯格。 我碰到一个朋友,他说,嘿,我在买东西 这个类称为CS50,你应该跟我来。 结束了那年秋天,这个类后,我 想,也许我要轻微的CS。 但在这里,我,三年后,仍然学习计算机 科学和实际做它作为一个主要的,我喜欢每 一刻。 ROB BOWDEN:我不知道。 ALI的Nahm:让我们来看看。 MELISSA牛:疯狂。 主讲人1:我觉得像我是很俗套。 我只是说,喜欢,真棒。 的Yaniv YACOBY:辅助。 JACOB百特免费糖果和比萨饼。 TRAVIS起伏:一类无法打开,拿出蛋糕。 TIM MCLAUGHLIN:精力充沛。 VIPUL谢卡瓦特必不可少的。 ROB BOWDEN:让我想起了一个答案。 我觉得我得到的东西。 哦,天啊。 是啊,我叫罗布·波顿,这是CS50。 [掌声] DAVID马兰:好吧,让我们开始画一幅画 的方向,使我们可以走了,让我们来介绍 这个概念在这里被称为伪代码。 所以伪代码是不是一种编程 你们自己的语言。 这是什么技术本身,但它只是一个 一般的方式表达自己相当精确, 相当算法,公平的程序,但不 不必担心你的语言表达 自己英寸 这是某些型号的英语和编程语言 你碰巧是熟悉的,所以我们可以开始 写这样的事情,因为我们去。 而事实上,约瑟夫,我能借用你在舞台上是 文士在这里? 我已经先行一步在这里提前忘了把 袜子的今天,这将是我们更 可笑的例子。 现在,我需要你在这里。 我会做袜子的一部分。 所以,在这里,我们有一个小的便笺。 这是从字面上只是TEXTEDIT在Mac。 我们要编写一个可运行的程序,但 我们只是要开始画出来的伪代码基于 劝你到我这里提供的一些。 因此,这里是我的一堆袜子在家里。 当我在早上醒来时,我没有袜子,我们现在 需要写一个程序,各种各样的算法, 在我脚上这双袜子。 前进的道路上,让我们来看看,如果我们绊倒,或遇到, 一些的想法,你会不得不开始 想更认真地进行编程时, 否则你的程序不表现得相当打算。 所以,我坐在这里。 我已经得到了我一堆袜子。 的第一件事情,一个合理的人会是什么 做时,我们的目标是把一双袜子吗? 有人给我一个步骤,只有一个步骤。 是吗? 观众:弯下来。 DAVID马兰:弯腰,好了。 步骤2。 步骤2。 观众:拿起你的袜子。 DAVID马兰:拿起你的袜子。 好了,如此轻微的模糊性,这是第一个 我们应该刻意的绊脚石 在这里遇上。 这是一个有点暧昧,所以拿起你的袜子。 好吧,我会拿这个,但一台电脑,在短短的实现 位,是不会有那样的人的本能,只是 挑最近的一个。 我们将不得不开始不久,表达 我们更准确。 好,那么第二步是拿起你的袜子。 我们会接受它。 步骤三。 在后面。 观众:找到一个匹配的一对。 DAVID马兰:找到匹配的一对。 好了,所以这是很好的。 我不得不选择这种袜子。 因此,我们的目标是找到一个匹配的袜子,现在,但什么 什么意思呢? 一个合理的人,就像上周三时,我只是 知道如何找到麦克·史密斯在电话簿中,只种 去与他们的本能。 但在这里,它显然袜子在这里,但计算机的 不会是这样的本能。 一台电脑要位的集合,我们 上周三讨论,而这些都是 组织以某种方式在内存中。 但问题是,只有一台计算机有能力 看一次的事情,而事实上,即使我们 人类 - 即使它感觉就像我低头和分裂 第二次以后,我知道的袜子在哪里,我的大脑,我的眼睛 大概是做了一个快速脱脂的那些袜子,然后锁存 中的一个问题。 因此,如果我们现在更故意一台电脑, 我怎么找到这个匹配的对吗? 好了,我们要循环。 我们也许在这个乱七八糟的袜子上环 它捡起地板FOR EACH袜子,让我这样说, ,及其IF相同的形状和大小作为另外一个,THEN 点,点,点,我们将继续这个故事。 因此,对于每一个袜子,所以我挑了这一个。 我检查,这是等于这一个。 这不是,所以我抛开一边。 然后,我再次重复。 这是一个平等的吗? 不,它不是,所以我把它放在一边。 这是人吗? 号 这本吗? 否,等等。 然后终于有希望,我会遇到这样的袜子在这里。 因此,如果是相同的形状,大小,把它。 而现在,将是我们下一步的工作吗? 是吗? 观众:由左,右确定。 DAVID马兰:好吧,确定左,右,所以 幸运的是,这样的作品。 一个小对称的,或者我只是穿他们的方式。 好了,所以我已经确定了正确的。 而现在,在我们继续之前,请让我指出约瑟夫 在这里做一个精通编程的排序。 所以,再一次,有没有人这样做的方式,但除此之外, 编号的线路,约瑟夫已经开始这样做, 排序缩进。 事实上,这是一个非常常见的编程惯例, 据此,当你做一些反复,循环的风格, 我们的英文短语“对于每一个暗示 袜子“,该公约在伪代码中,我们会看到, 正常的编程语言,是缩进。 命中了几次空格键,按下Tab键等, 使嵌套下方的“FOR EACH袜子”是块 的东西,你需要做的,循环的结果。 因此,所有的输送语义。 同时,现在的“,如果它是具有相同形状和大小的,” 事实上,“要”进一步被缩进只是意味着 这是你唯一应该做的,如果这一条件, 在该分支,即岔路口,在事实上也确实如此。 所以,现在在这里,我们是在第四步,确定左,右。 我已经确定。 给我5步。 在技​​术上,我们真的可以调用 的FOR EACH事情 - 您应该列出所有的行,如果 我们将做到这一点。 约瑟夫:[听不清] DAVID MALAN:[听不清]? 好,好,没事的,我们将做您的方式。 好了,所以第五步,我们怎么做正确的袜子? 我们该如​​何进行下一步,在这里? 是吗? 观众:抬起右腿。 DAVID马兰抬起右腿,好吧。 第六步? 快速。 是啊。 观众:找到一个开放的袜子。 DAVID马兰:好吧,袜子的开口端。 那么好。 所以在这里,说实话,一个非常普遍的本能是 穿上合适的袜子,但同样是相当模糊的。 除非计算机或人知道到底是什么意思, 它不会被执行,所以在这里,我已经 开幕的股票。 第七步? 观众:触摸你的脚趾。 DAVID马兰:触摸脚趾。 好了,现在我们去 - 好吧,我要在这里需要一些自由。 谢谢。 第八步? 放在袜子。 好了,现在我认为我们非常接近,几乎排序的需要 此人在家。 所有的权利,所以这上升。 我会采取一些自由,这是什么意思,真的。 把袜子。 好了,现在第九步? 观众:将脚放下。 DAVID马兰:谢谢你。 步骤九,将脚放下,而现在,我们可以重复。 因此推测,我们现在可以进入第10步,说确定 离开袜子,但想必已经做了。 这样的话,我可以排序的重复这些步骤。 但是,这种回避的问题。 在此之前,最后一次,我们想重复一些东西,我们 这样做,是反复,一遍又一遍, Each循环,可以这么说。 难道是有意义的使用循环,以同时处理 的左侧和右侧的袜子? 因为感觉这样的操作是相当多 相同的,除了一个事实,就是在这里,一个开始 从这里开始吗? 我们循环,或者说我们只是一味地写入步骤 10和11和12? 观众:循环。 DAVID马兰:好吧,如此循环。 其实,我可能会说,只要继续前进。 那么,为什么出现这样的情况呢? 那么,这实际上是第一个非明显 设计决定,而事实上,其中的度量之一 我们将开始评估,为自己和你, 是如何精心设计的,它是一个程序的质量。 你做了最少量的必要工作, 完成这项工作的最迅速,无论是在条款的 你的时间或在计算机的运行时间? 多少操作的时间才可以执行? 因此,可以说,这是一个机会,一个循环,因为 只要我开始复制和粘贴,正如约瑟有效 在某一时刻开始做,你是种浪费你的 时间,你是双重的表现。 但同时,这些都是真的只是两个特殊的 的情况下,左,右。 而在此之前,我可能有10个或20个或更多的袜子 一堆,但它肯定是有道理的有50行 代码说检查袜子,然后下一个, 然后下一个。 在这里,这是一个不太明显的一点,我会提出 我们可以去任何一种方式。 我们既可以有该循环中,尽管它只是循环 两次,或者我们可以简单地复制和粘贴只是一点点 在这里,以获得完成工作。 但这种方案是不稳定的,可以这么说。 所以它可能有一些失误,错误或角落的情况下, 讲,我们并没有真正预期。 没事就去错了时间,但什么可能出错 在执行这个程序? 观众:你没有任何的袜子。 DAVID马兰:那么,有可能是没有袜子有任何责任。 因此,让我们来看看,角落的情况。 因此,如果我们可以滚动返回到步骤1,步骤1是 向下弯曲,使检查出来。 第二步,拿起你的袜子,然后找到匹配的袜子, 确定正确的。 样的,我们做了一大堆的假设,这就是, 坦率地说,为什么程序有时会崩溃。 如果你作为程序员,取得了一定的假设,如 一定要袜子肯定有去 留在电脑中的内存,当然有是怎么回事 硬盘驱动器上的磁盘剩余空间 - 好吧,如果你让这些假设,那就是不, 其实,现实,谁知道有时什么电脑 怎么办呢? 有时,当你得到的纺纱沙滩球或 冷冻Windows或等,正是因为一些 程序员没有预料到那些所谓的角落的情况下。 还有什么能已经错了这个项目? 是吗? 观众:你没有右腿和左腿。 DAVID马兰:好吧,可能没有一个正确的腿和 左腿,因此这个方案可能不会成为普遍 适用。 其他人吗? 观众:你可能已经拿起一个孤儿的袜子。 DAVID马兰:我可能会纷纷拿起一个孤儿的袜子,所以 不匹配的袜子,有没有兄弟姐妹,因为我已经 失去了它,它的撕裂,这是在洗,或等。 这样,也没有真正被处理。 是吗? 观众:你可能已经有袜子。 DAVID马兰:我可能已经有袜子。 我其实没有检查。 如果您没有袜子,然后继续做 线1和2。 而这可能发生。 你睡着了你的袜子和喜欢,所以 这件事情,是非常合理的角落的情况。 或许有其他吗? 观众:袜子里面。 DAVID马兰:那么袜子里面,所以我们也没有错误 检查,在短。 我们没有检查,如果国家的世界是我们期望的。 如果我们真的找到了我们要找的,我们没有检查。 尽管这是一个荒谬的例子 涉及的袜子,在一天结束的时候,这正是 样的心态,你需要有编写程序时, 即使在Scratch以及在C,在JavaScript中,在PHP中, 因为否则,你的程序将展出 相当于,纺纱沙滩球或产生 结果不准确。 因此,许多的感谢我们的抄写员约瑟夫。 [掌声] DAVID马兰:好,那么是什么, 事实上,计算机程序? 好了,让我们快速浏览一个 代表在这里。 所以这是一个在语言编写的程序称为C,C是 很老的这些天,但许多新的语言建 在它的上面。 事实上,PHP,一个以网络为中心的语言,我们会 向学期的结束,本身就具有所谓的一个 解释器,程序,C语言编写的,但更多的 在从现在开始的几个星期。 但这种方案,这是什么意思写了 程序,虽然是一个很简单的一个。 我们这里有一些相当神秘的语法,但你可以 可能已经猜到了,即使你从来没有编程之前, 这个程序。 事实上,我不知道printf是什么,但打印肯定 让人想起了打印的东西的想法。 所以,是的,这个方案最终要打印出来 的话:“你好,世界”。 现在,无论你使用的是Mac或PC或Linux计算机上,赔率 是的,至少如果你下载了一些自由 可用的软件,你可以编写程序上 自己的笔记本电脑很长一段时间了。 在Mac OS,例如,有这样的程序称为 终端配备了一台Mac,这通常是在您的 实用工具“文件夹中,它通常会打开一个黑色的和 白色或类白色与黑色的窗口,在你有一个 提示,你可以键入命令。 因此,这其实是让人联想起什么样的电脑 之前的图形用户 接口,图形用户界面,走了过来。 现在,在Windows中,有一个类似的机构的形式 在命令提示符下。 但我要在这里做的是打开了,让我们说, 文字编辑再次,相同的程序我们使用的 伪代码刚才,我要继续前进,并 我写的第一个程序。 包括stdio.h中,这意味着什么,INT主 无效,这意味着什么,然后在中间这里, printf的(“你好,世界”)。然后密切的报价, 关闭括号,分号。 现在,我要继续前进,刚打命令的-S。我要去 继续前进,保存为hello.c的,所以该公约 C语言编程的世界是文件命名为点C。 我只是把在约翰·哈佛的主目录, 在这里,请单击“保存”,现在我会去到这 终端窗口,这又是这个黑和白的提示 我在哪里可以执行命令。 我可以运行程序输入他们的名字,而不是由 在通常意义上双击图标。 但是,事情是关于C是一门语言,如C第一 这种形式,一些所谓的源代码。 的东西,看起来有点像英语,但 绝对不喜欢英语约瑟夫的伪一 刚才。 这是多了几分神秘的。 它似乎遵循一定的模式或规则。 事实上,我花括号,分号,引号, 尖括号,给人的感觉就像一台计算机想出了这个 类的语言。 但是,如果我走了,现在,这个终端窗口,我可以运行 命令要转换的源代码 一些所谓的目标代码。 这是要转换到零的类似英语的语法 的,同样类型的零和的,我们 谈到周三。 现在,我要运行一个命令叫铛。 在这个问题上的几个星期来,但它是一个程序, 我可以把hello.c的成一大堆 0和1。 现在,我已经运行此命令。 我已经运行铛,然后我说自己对这个文件运行 名为hello.c的,这是我刚才的 似乎什么都没有发生。 不过说实在的,如果我周围戳我的主目录,我会看到 这愚蠢的命名程序a.out,现在存在的。 在写作时,这仅仅是一个程序的默认名称 我们可以覆盖这个最终的,但a.out是 该程序的名称,我只是转换成零和一。 而现在,它的零和一,我的Mac,在这种情况下,或 您的Windows的PC,可以理解的位,这些 0和1。 因此,当我按下回车键,我看到“你好,世界!” 但它是一个有点马车。 我没太说:“你好,世界!:空气: - jharvard。”空气是 我的电脑的名称。 Jharvard的帐户名称,所以什么我很清楚 省略的程序? 一些种换行。 我没有打相当于Enter键或回车, 这是,再次证明了一个事实,即计算机可以 只有你告诉他们做什么。 而事实上,我并没有告诉电脑移动 光标移动到下一行 - 好了,它肯定不是要做到这一点 擅自对我来说。 所以,如果我回到我的程序,和我说\ n - 因此,\ n,我们很快就会看到,就是这样, 奇怪的事情,比如新行字符,事情 的结果,否则将 打回车键。 但现在,只知道打的回车键 只是让我们的代码看起来很奇怪,所以决定世界,你知道 什么,让事情变得更漂亮,保持在同一行,让我们 只是说,\ n表示一个新行。 让我重新保存文件,返回到终端窗口, 重新运行a.out,回车。 还是不稳定的,但为什么呢? 观众:[听不清] 马兰DAVID:是啊,所以我需要重新编译内核。 因此,编译程序将其从源 代码到目标代码,源代码,零和的。 现在,这一事实,我打这个文字编辑保存在 这些零和的,因为我首先需要 告诉铛哎,我已经改变了这些代码行, 源代码。 您需要重新生成的a.out。 什么也没有发生,但在一台电脑, 在命令行,可以这么说,当什么也没发生, 这通常意味着一切都很好。 这意味着,当任何事情发生, 你搞砸了,一般。 现在让我们去a.out的,而事实上,我现在有“你好, 世界“。 而现在,这些零和的吗? 在哪里,其实有那些? 好了,我真的不能只是打个招呼周围很 有效。 让我打开文字编辑。 这里的a.out格式。 让我先打开,这显然是我的 程序的外观。 所以,我打开了,不hello.c的,但a.out的。 但其实,这是不是真的是我的计划。 显然,这是某种形式的字母字符。 我没有看到零和的,但这是 因为a.out是一个程序。 零和的 - 但文字编辑,顾名思义,它是 就像在Windows的“记事本”,仅仅是一个文本编辑器,所以它的 混淆所有的这些零和的 虽然他们是什么? ASCII字符。 所以,记得上周三,我们只是想出了这个 任意映射的数字,或位,字母 字母和标点符号等。 所以,它是一个文本编辑器的文字编辑,曲解 这些模式应该是零和一 印刷的话,如“你好,世界”。它显示 ASCII,这就是为什么它看起来有点乱。 现在,在这里有一些提示的正确性。 请注意,如果我突出,有一种淡淡的实际“你好, 世界“,所以在该程序中的某个地方 我写的句子。 但是,让我们继续前进,现在看到一个不同的程序。 这是不是我们会经常使用它,但它也与 一台Mac,将里面的CS50设备。 让我先打开一个程序,称为XXD。 早在一天,大多数程序被命名为相当神秘, 这样的趋势仍在继续。 但是,b表示为二进制吐这项计划。 不要运行它。 显示我作为零和的,这是C 节目中,我们只写了。 现在,我一个人在这里,我真的不知道是什么 这些不同的模式,零和的代表。 早在一天,我与我的打孔卡或类似的, 其实看一下这些不同的模式 01111000,实际上代表。 更糟糕的是,我需要做的冲孔或创造 这些模式的零和一。 但现在,信仰,CPU,英特尔在里面,所以 说,我们的电脑里面的这些天,知道 如何解释这些零和一。 一些零和的意思是打印的。 一些零和一的意思是播放声音。 一些0和1的意思是接受用户输入的键盘。 有各种不同的模式,但我们幸运的是, 作为人类,一般只需要担心编程 这个相当高的水平。 和其他CS类,你可以深入陷,并期待 在这些零和一类的东西,或尚未 还是其他的东西。 现在让我们将这个。 让我们非常迅速地从C和移动的东西 更令人欣慰的一点,多了几分令人兴奋的,因为 我们可以回到我们的动画和声音,在这样的 显然已经逃脱了,我们在这 相当原始的接口。 因此,这可以表示,现在在同样的程序在C 编程语言刮如下。 这是相当于这个Hello World程序编写 这一块拼图式的语言,称为划痕。 所以,让我继续前进,打开了这个程序。 它再次从头开始。 它是免费提供的,这是同样的事情,我们 从今天开始。 所以在这里从头开始,和它分成几个 不同的部分。 在最顶端的权利,我们有所谓的阶段, 的确,这就是饼干 只是有点前执行。 舞台上的东西叫精灵,人物,或 对象,或实体。 这其实并不重要,你是怎么想的,但他们 是可编程的,可移动的东西,并在这种情况下,这 我们的学生写的程序,有一对夫妇的姜饼 饼干,一对夫妇的圆形饼干,一大堆 心,一​​大堆的眼镜。 因为这一点,他或她能够编程每个人 单个字符分开。 现在,这是什么意思编写这些人物呢? 那么,让我继续前进,点击此左手饼干 滚动到左上角。 现在我的屏幕的左上角是 所谓的脚本区域。 这是一个空白的石板上,最初,我可以 拖放,坦率地说,这样做的拼图 正是他们在说什么。 在拼图这个堆栈的顶部是字 当绿旗时,如果你没有注意到的, 该cookie歌曲的方式,我开始点击,从字面上看, 绿色标志。 所以,在左上角的一块拼图,是指当 人点击绿色标志,继续做 下面的东西。 现在,他们的cookie继续做吗? 我真的不知道如何解释这一点,但 操作部份显然其凹槽设置到零,然后,它等待 三秒钟,然后它改变其组为1,那么它 等待一秒钟,然后它改变了它 槽减少到一个。 然后,这实际上看起来像一个位的错误,不应该 必须改变其槽一遍又一遍,除非它是 其他地方被改变,但这一系列的步骤是什么 口述这个特定的cookie的行为。 因此,让我们实际向后滚动,而不是看的东西 这么复杂。 让我继续前进,去到文件,新建, 并得到一个干净的石板。 所以现在,我确实有一个空的脚本区域,空荡荡的舞台, 我们默认的精灵划痕,并在左上角 在我的屏幕上我有他们所有的托盘 可用的拼图。 我们不会通过,这些东西很多 再次,因为今天,大多数是不言自明的,但我们会 尝试对其进行分类,并指出的相似 这些未来的语言,我们将潜水。 在左上角是第一次当绿旗点击, 所以让我拖在这里,放大了一下。 如果我点击绿色旗帜,没有什么发生,因为 我,不附加任何逻辑,任何声明说,以 ,绿色的标志,所以让我上去的 在这里类别。 我目前在控制类。 相反,我会去色类, 这里有一大堆的东西,说的说, 认为,改变颜色,交换机服装。 所以,你可以做愚蠢的事情的服装, 声音和等。 让我继续前进,只是说,说了,现在看到我拖 删除这一块拼图,它会要锁存 成相应的形状。 所以,当我去,让我的鼠标,他们锁定 在一起,而现在,如果我在这里,点击绿色旗帜, 猫其实打个招呼,因为这里面是什么 这种白盒。 我们很快就会看到,这是所谓的白盒 参数或参数。 这是一种方法下改变的行为,在这种情况下,一个 一块拼图,但如果我想说的就是我说的 之前,打个招呼,世界,我现在可以回去在这里, 点击播放“,”你好,世界“是什么的说。 因此,我们从字面上编程。 这还不是全部,引人注目的一个程序,但至少 这是一个更引人注目的一点东西,看起来, 乍看之下,是这样的。 我们可以很快地得到更多的表现 因为在Scratch,像在其他语言中,有所有 各种报表,而不是只说或打印的东西,但 你可以做这样的事情在等待,正如我们刚才看到的 的cookie,一些秒数。 您可以播放声音在从零开始的环境, 就像你可以在一个正常的计算机程序播放声音。 您可以检查被称为布尔表达式。 所以,现在,让我们开始添加到我们的工具包的一些术语 例如,约瑟夫和我一样,实际上涉及到 这里的袜子。 因此,声明仅是事实的陈述。 做到这一点。 一个指令的精灵,还是我的人,做一些事情。 布尔表达式是具有价值的东西, 所谓的真值,这是零或一,虚假或 真实的,或关闭,或者是没有。 你是怎么想的其实并不重要,但它是一个 二进制状态。 内特讨论在星期三的视频, 不同的事情。 因此,在Scratch中,布尔表达式发生看 类似这里这些蓝色对象,在这种情况下,问题 标志意味着你问的问题。 是猫,或精灵,触摸鼠标吗? 因此,这仅是一个例子的擦除块会 让我们检查“是”或“否”,是触摸鼠标 精灵在屏幕上? 而这可能是有用的,如果你真的想要做的事情 用你的鼠标。 除了布尔表达式,我们有事情 就像是按下鼠标,这样你就可以检测到该种 的问题以及。 如果你真的想要,我们可以做数学,并有 其实更引人注目的不仅仅是纯粹的用途 算术,正如我们将看到的。 伪随机性,使你的程序似乎认为 或不同的表现,根据一些看似随机的值, 然后我们有布尔表达式,如喜欢的东西。 所以,如果你真的想要检查两个值,我们可以看到在 我们可以从头开始实际测试,如果这是 ,这是真的。 例如,在我的袜子的情况下,我已经在 非常年底提出这样的问题,如果左袜子是正确的袜子 是,退出。 大功告成的一天,所以这将是一个 是的机会。 因此,让我们继续前进,试图拼凑一些这些加在一起 进入一对夫妇的例子 引人注目的不是这一个。 因此,让我继续在这里和开放的一些例子 ,将永远是课程的网站上,并 打开hello2。 因此,在hello2在这里,我们有一个程序,做了几 的东西,但它不这样做,因为我们可能一样有效。 所以在这里它说:“你好,世界”一秒钟,然后等待 一秒钟。 然后它再次,然后它再次。 所以,如果我点击绿色旗帜,划痕说:“你好,世界。 你好,世界。 你好,世界“。而这显然是候选人现在 改善。 什么是边际改善,希望我们能 现在,如果SCRATCH支持的概念吗? 有些类型的循环。 某种重复,现在,将是很好,所以让我 实际尝试。 让我去移动这。 因此,通知,可以分离块容易,你可以添加到 将它们连接。 让我去“控制”下,向下滚动这里,事实上, 这里有这样的一块拼图,“重复”和“永远和 永远的如果。 所以这是一个以多种方式表达循环结构 在从头开始。 我可能要在这里不下去,因为我只 希望这种情况发生了三次,但可能重复。 因此,让我拖在这里重复,拖放, 现在不是说:“你好,世界”三个不同的时代, 在这里,让我拖这一块拼图。 即使它似乎并不适合,该程序是智能 足以实现将增长到填满,所以它的 形状的问题,而不是绝对的大小。 让我改变重复3,现在让我去 并拖动等待一秒钟,以及在那里。 这是怎么回事以及折断,所以现在我要拖 这些家伙在这里,只是因为我扔掉 不需要他们了。 让我缩小,点击绿色旗帜现在,我们有 相同的程序,但我之前预测的,更好的 设计多么糟糕,因为你能想象这个程序 将得到的,肯定是美观,如果你有 开始复制和粘贴,复制和粘贴,或 一遍又一遍相同的该死的东西拖放。 现在,简单地说,打印到屏幕上的东西 屏幕,真正是令人兴奋的,所以让我们打开一个 第三方差在这里。 而现在,你会看到,这很快就会招人烦 - [MEOW] DAVID马兰 - 但它也是一种可爱。 [MEOW] DAVID马兰:好吧,那么要好,而我们当然可以使用, 同样的过渡,分块成一个循环 结构,但让我们使它更有趣的是。 让我去进取,不断开拓的第四个方差在这里,我在那里 走一步算一步进一步。 因此,根据这一点,傻虽然这是第一 一目了然,这是什么程序怎么办呢? 这将喵一次。 为什么呢? 那么,一个是,据我所知,总是小于2。 这里有没有概念的随机性。 我已经字面上硬编码的一和二,但是这是一个 例如,现在实际使用的布尔表达式。 就像约瑟夫在他的伪代码,压痕IF 你找到匹配的袜子,然后执行以下操作,在这里,我们有 表达式IF一个是小于两个THEN - 而事实上,我们甚至有一点点缩进, 紫色稍微向右缩进 - 那么你要播放声音喵。 现在,在这种情况下,1始终是小于2,所以这 是种浪费了条件。 但我们,正如我们所看到的,就可以将其他的事情 这些占位符,其中一,二。 现在让我们提前到5这几个例子 打着招呼看看这是什么程序会做。 所以,现在,在一个英语句子,请问这是 程序的行为呢? 听众:猫叫声一半的时间。 DAVID马兰:喵半的时间,所以这是一种 传达一个非常简单的想法。 尽管我们碰巧使用这里的几个不等式 在一些数字,这真的只是一个程序化 方式,精确的方式,说如果硬币出现正面的,去 和喵。 或者反过来说,如果硬币来了尾巴,不喵。 而在这种情况下,怎么表达呢? 我们将选择一个随机数从1到10,如果 数小于6,继续前进,喵。 这究竟是怎么进来的? 好了,发现只是拖放和 事情锁定到位。 所以,现在让我们来看看如果这种随机性的工作。 让我继续前进,点击绿色旗帜。 [MEOW] DAVID马兰:好吧。 [MEOW] DAVID马兰:好吧。 好了,好了,所以我们得到了头,头,尾,有效。 尾巴。 [MEOW] DAVID马兰头。 [MEOW] DAVID马兰:非常好。 它总是很尴尬时,只统计你得到一个坏 运行,它的头,程序实际上是不 工作如你所愿。 但是,这一次,它的工作,我们似乎有,如果我们这样做 这是一个无限的数量的时候,50%的胜算。 再次,现在不是所有的,有趣的,只是使猫 喵喵,让我们看看如果我们不能进一步推动这一点, 在第六版。 所以,现在,我们有真的很恼人版本 - [猫叫声每隔几秒钟] DAVID马兰: - 这是所谓的,一般情况下,作为 无限循环。 如此无限循环,在这种情况下,感觉不错。 它肯定会开始听起来坏,但无限 循环并非总是坏事。 你能想到的情况下在计算机程序中在那里你会 其实想要一个无限循环? 是吗? 观众:当你要检查的条件。 DAVID马兰:好吧,当你要检查的条件吗? 像什么? 观众:[听不清] DAVID马兰:好,好,所以如果你有一些计划,一些 家庭自动化的事情,你要不断的种 显示器是什么的情况下。 上的灯吗? 的灯光,因为也许你有一个计时器, 你希望他们去,你可能需要做的事情 一遍又一遍。 言而事实上,定时器,任何人已 您的计算机或数字手表上的时钟,这是一个 无限循环。 它的不断更新的时间,因为它是不断 检查和检查,检查的时间变化, 如果是这样,哦,我的上帝。 终于在时钟的改变。 它需要向您显示该值。 因此而大多数的时间无限循环的一个错误, 或者至少是一个糟糕的设计决定,有时他们 有其价值。 好吧,让我们,进一步推进这里hello7。 所以,现在的程序将获得多一点互动。 让我在这里,再次放大,这是很好 关于从头开始。 我们将用它来清晰,划痕,就在今天和成 下周的设置问题。 但在周一,我们潜入C.在这个程序中,确实如此, 永远,下面的。 如果触摸鼠标指针 - 现在,谁是 上下文在这里? 好了,请注意,谁在底部的选择 右边是猫,雪碧,所以这些脚本,这 程序,适用于专门给他。 所以,如果猫接触的鼠标指针,那么它会 玩这个下来,等待2秒钟,和 然后重复广告nauseum。 所以,让我们继续打比赛。 什么也没有发生,但如果我想宠 猫现在,我可以简单的。 [MEOW] DAVID马兰:可爱的。 [MEOW] DAVID马兰:好了,不那么讨厌,但也变得平淡, 所以,让我们继续前进,看看如果我们不能注入 多一点逻辑。 这是例7。 在这里,例如八个,我们要 引入ELSE的条件。 所以很像一个文字的岔路口,你可以去 你可以向左或向右走,在一个编程的条件 语言一样从头开始,我们将看到C,可以让你 通过在一个方向或另一个IF ELSE结构。 因此,毫不夸张地说,如果触摸鼠标指针, 会玩一些声音,否则它要玩这个 声,喵喵。 现在,如果你可以推断出这些声音的名称,你可以 大概已经猜到这个计划的目的是想起了 的想法。 这猫咪咪声快乐。 [MEOW] DAVID马兰:令人高兴的,但并不 很喜欢被感动。 [河东狮] DAVID马兰:所以,现在我们有一只猫,他们会骂你的。 好吧,最后一个例子。这里的猫,和 让我们打开这里的这个版本9。 所以,现在,我们有一个最恼人的声音,我可以 找到,所以我们有一个海象海狮在这里谁去 按照下面的方法做。 [SEAL BARK] DAVID马兰:好吧,那么,这将继续下去,直到你找出如何 这个程序的工作原理。 所以这个时候,这种动物有两个脚本,什么 有趣的是,这些脚本将要执行 平行。 所以,因为他们都开始一个绿色的标志点击, 像这样的,这两个程序开始运行后 一次,即使他们永远循环。 因此,在上面的脚本中,我有一些逻辑。 什么功能,提供了吗? [SEAL BARK] 观众:[听不清] DAVID马兰:如果它是什么? [SEAL BARK] 观众:如果静音为零,它要继续玩 的声音。 [SEAL BARK] DAVID马兰:好,好。 因此,如果处于静音状态,无论是什么,这个橙色的是零, 然后播放海狮的声音,想:“噢, 嗨,“两秒钟。 现在,我不知道什么是静音的,但零让人想起了 虚假或关闭的想法。 因此,如果静音是假的,所以如果不是静音, 播放声音。 好吧,怎么做,我们禁用这个事情呢? 那么,让我们来看看在那里的第二个脚本。 第二个脚本设置静音为零。 请注意,它也是橙色的,所以什么划痕是什么颜色 在相同的色调块,如果它的排序 的逻辑关系。 因此,正如静音往上顶是橙色,所以在这里是静音 橙块中提到的。 但是,这是一个变量赋值,所以就像在 代数,您有x,y和z,在编程的 变量,但他们一般 - 让我们暂停了一会儿,数字如何 停止乱叫。 我该怎么做呢? [SEAL BARK] DAVID马兰:好吧。 它停了下来。好吧。 因此,正如在代数你有变量x,y,和z,但在 编程时,如x,y和z变量一般是 令人难以接受的,因为他们不是在所有的表现。 他们没有任何语义含义,因此,在大多数 编程语言中,变量可以有充分的 成熟的名称或单词或短语,喜欢静音,说 他们做了什么。 因此,这第二个脚本也听,永远和它说 如果该键,键盘的键空间, 按下问号。 因此,有一个条件,这是一个布尔表达式 要回答一个问题,无论是真实或虚假的, 然后我里面有它,如果按下空格键 如果处于静音状态是零,一个设置静音,否则设置静音零。 因此,这岔路口,请注意我是如何 嵌套的两个IF条件,是检查的一种方式是 按下空格键,因为如果是这样,我可以想去 这样或那样的方式方法。 我怎么反转静音的价值吗? 我要检查是零吗? 如果是这样,做它一,否则为零,因此切换 它的两个国家。 好,那么我们有那么一些这些基本 结构。 我们有布尔表达式,并且认识到,太,这是 不是所有的陌生。 事实上,这里有一个快速的哈佛核心课程的CS50的屏幕截图 购物工具,任何网站有复选框 下拉菜单真的,这段时间,一直在使用 布尔表达式。 在这种情况下,在这里,如果您按一下旁边的复选框 当然大于或等于4.5,或者相同的旁边 教员,你要指定一个布尔表达式。 我该表达式为true的课程。 或向右,不与我的课程发生冲突 服用,如果被检查,那么,你要检查 该条件,否则你要忽略它。 因此,布尔表达式是一种周围的一切,但是当 我们把他们的条件下,无论是IF条件,IF 偷别人,或者我们甚至可以模拟更深 水平,IF ELSE IF ELSE - 因此,这是一种三元状态。 你可以去这样或这样或这样。 我们可以保持嵌套的东西去不同的方向。 因此,从无到有这些循环,永远。 它具有这些功能,如重复10, 有限的次数。 现在我们有能力来设置变量,所以在这种情况下, 我已经声明,例如,一个变量的所谓的袜子。 我初始化为0,而另一个方向 我们可以在这里与约瑟同在,也许我 只是跟踪我有多少袜子和终止 该程序时,该变量的值是2。 这将是另一种方式的排序,概括, 的问题,一次又一次地做一些事情。 好吧,让我们继续前进,现在介绍一些新的东西。 所以,你与以前的编程经验 我知道很多语言的数组,向量或 列表,事实上,从无到有这样的事情,太。 因此,让我们来看看,如果我们不能拿东西到一个新的水平。 如果我有能力,现在,这些拼图 添加东西,如一个词或数字,一个变量,我可以 开始积累事情。 这实际上是相当中肯的东西,如游戏, 你走动的角色扮演游戏 一些幻想世界中收集的东西,捡东西了, 收入点,或类似物。 您可能想要跟踪的某种库存, 的确,这就是,我们以前的学生在这里做 一些所谓的Fruitcraft RPG。 因此,让我去进取,不断开拓的东西在这里,并在 Fruitcraft,我们这个世界的顶端。 因此,让我继续前进,点击绿色旗帜。 在左上方的通知是某种形式的库存。 这是从头开始实施,我们会打电话给一个数组或 的名单,​​现在我们有这样的小动画。 因此,正如我们起步比较早,这个cookie的爱情故事, 然后我们先进的猫和海狮,现在我们可以有 更互动的东西。 而这个蓝色的小家伙,我就可以开始走动,他的 这里的小家。 因此,它看起来像他有一个出口在这里,所以我使用 箭头键,向上,向下,左,右。 现在我在外面,所以让就是我来到这里的。 看起来像一个橙色的,而事实上,只要我触摸 橙色,它就会一屁股到我的库存。 如果我走了,这里的樱桃,现在我有一些 其他在我的库存。 这是所有漂亮的,可爱的,但想想如何,现在,这 实施。 好了,我们有这个概念的名单,而这显然是一个 一块拼图,你刚才说你想要添加到它, 橙,樱桃。 现在,这是什么蓝色的小家伙在做什么? 那么,他是一个精灵。 据推测,橙色和樱桃 - 他们自己单独的精灵。 和使用条件的布尔表达式, 学生可能是能够表达IF蓝色的家伙,是 接触樱桃,然后添加他的字樱桃 库存,然后也隐藏了樱花精灵。 因此,引擎盖下的,有可能仍然是一个樱桃 精灵。 我们只要告诉它有效地成为无形的。 现在,如果我继续走在这里,我们也可以这样做 近端的事情,在那里我可以去阅读的标志。 因此,如果蓝色的家伙触摸的标志,我们可以有这样的言论块 就像猫的话,对我们说话打招呼,所说,“有 一些水果吗? 把它带到水果的地方。“好吧,那么现在,显然, 我有我的方向。 我可以去这里的水果产地,行自己 与门。 现在,我在这里。 我可以上去的人,在柜台上。 他发现,我敢接近他,所以不必是 很相同的接触,我已经赢得了比赛。 因此,我们有Fruitcraft RPG。 所以,我们可以做的事情比这更先进。 我们可以添加声音。 我们可以添加的伪随机性。 我们可以增加复杂性。 让我继续在这里,而不是做我自己, 让我告诉你一个更复杂的意见书 我们去年从某一个名为布莱克的人。 我们有一个志愿者出现在舒适 摄像头和玩游戏吗? 如何在那里? 上来吧。 所有的权利,因此本场比赛,你刚才在不知不觉中 主动发挥 - [掌声] DAVID马兰: - 从昔日被称为是 “青蛙过河”。你叫什么名字? 任达:仁达。 DAVID MALAN:Redna? 任达:这是布伦达与B。 DAVID马兰:好吧,人大。 大卫。 认识你很高兴。 因此,在“青蛙过河”,如果我们能够提高音量 一点点,你这小 绿色青蛙在底部。 您可以使用左,右,上,下​​,和你的目标是 横穿马路,过河,触摸睡莲 在顶部。 胡。 一个T - 重做,好吗? 让我们的命中停止。 没有人看见。 [掌声] [掌声] DAVID马兰:是的。 非常好。 非常好,谢谢你。 因此,有青蛙过河。现在,你知道你做了什么 得到自己,多了一个不同的志愿者 另一名学生提交的游戏。 你要来吗? 你叫什么名字? 理查德:理查德。 DAVID马兰:理查德。 好吧,理查德,就到了。 [掌声] DAVID马兰:你有什么话听起来就会很 熟悉的很快,所以这里是你的指示。 因此,在某一时刻,一些拼图碎片会向上滚动 从屏幕上,看起来离开 或右向上或向下。 你会打箭头键以这样的方式 它对应于那些排队的拼图 在顶部的占位符。 所以,当你看到一个左箭头,它线与左 箭头,打左箭头。 你可以开始了。 [MUSIC - “强”KAYNE西] DAVID马兰:好了,又大又圆的掌声理查德。 [掌声] DAVID马兰:非常好。 谢谢。 [掌声] DAVID马兰:那么有趣,表面上看起来,排序 恐吓,因为它可能实现的东西作为 看似复杂的,实现学生 没有,只是写这一次。 相反,你可以打破一个看似复杂的问题, 成更小的碎片,而这,也同样是 将是一个主题。 写一个程序,在几乎任何你可以做的最糟糕的事情 语言是坐下来,兴奋得不得了,写 整个该死的东西,然后只是希望它的工作原理 当你完成写作。 相反,编程的过程中,一般应该 是非常谨慎的,迭代,这样你只 设置非常小的步骤,为自己,一口大小的块 你要咬,所以你有这些理智 检查,能满足你的小里程碑。 然后你建立这些上创造更多的 还是复杂的事情。 因此,举例来说,我们可以去 实施这样的比赛吗? 坦白地说,我一定会由刚开始 支持在一个时间的一个关键。 让我们只需要实现支持左箭头。 因此,学生必须以某种方式在Photoshop中创建的,或在 刮刮本身使用的小的图形化编辑器, 看起来像一个在顶部的箭头键离开了那里,只是 灰色的占位符。 然后,学生必须弄清楚什么x,y坐标 穿上它,把它放在窗口。 0,0,在这里,所以你必须要弄清楚的数量 像素或点,以抵消该箭头从 屏幕顶部。 ,然后一旦在地方的,你的程序不实际 做任何事情,所以你需要第二个精灵, 例如,一个绿色的箭头指向左边,和你 那么就需要开始编写一些脚本。 你看到的,也许,这些事情开始出现在 不同的速度,并分别在不同的颜色 位置,这是因为学生用了一下 伪随机性。 和伪随机性的,我的意思是选择一个号码 某物与某物的,因为你可以 地图的事情,开始的数量是一样,如果在一个 5,好了,让我们做的事情绿。 如果是6到10之间,让我们一块拼图 红色代替。 只要你有办法产生某种 随机性,你可以作出决定的基础上, 随机性。 我一直在说因为有一个伪随机 小肮脏的秘密。 计算机不能​​拿出随机数。 他们只能做他们被告知,因为 他们是人造的设备。 他们可以像我们人类不只是猜一个数字 觉得我们可以。 一台计算机做一些数学变出 数学数的错觉,有时使用 一天的时间作为当前的输入搞清楚什么 数返回,但更多的是另一次。 现在,只需要知道,我们可以生成伪随机性。 所以一旦我有能力为左箭头开始 出现在不同的时间,以不同的速度,然后 我可以回去,并添加一些这些IF条件。 如果此sprite接触到其他人,和左箭头 键被按下 - 所以在这种情况下,三个条件。 我可以使用,并阻止或许,在这种情况下 - 然后我想继续前进,增加的分数。 在上面,我们有一个分数,我们有真棒, 清凉,善,和Boo。 因此,有五个变量,显然这名学生 用于跟踪这些各种度量。 因此,在短,最终的结果是惊人的。 它的乐趣,它的乐趣发挥,它的参与,但这不是 当学生开始了。 他或她开始在一个更小的步骤。 那么,什么是其他一些积木,我们可以 织成这些程序? 嗯,有这等概念在大多数语言中, 刮开其中,被称为线程。 因此,一台计算机可以没有真正做多件事情在 时间,至少不是通常的。 相反,一台计算机通常具有只有一个CPU,甚至 虽然电脑是超级快,因此可以 创建做多件事情的错觉 - 检查您的邮件,让瞬间 信息,打印文件 - 真的,一台计算机跳跃从印刷到即时消息 收发电子邮件,背和提出如此之快,我们 慢机智的人,只是不知道,它实际上是 运行这些程序一点点的时间。 现在,这一点的白色谎言,因为如今这些天, 许多我们的电脑就是所谓的多核心,所以你 有一个CPU,但多个内核,这是一种像 具有多个CPU。 所以有时候,电脑可以真正做多件事情 在一段时间,但一般在一个程序中,程序 依靠这些东西叫做线程。 因此,一个线程是有点像一个微型的程序,可以 并存的另一个微型程序,可以运行 在平行的,或者至少是可以运行的误解,认为 他们同时运行。 因此,划痕支持这些东西叫做线程。 你可以有多个脚本执行一次,就像我们 与海狮,这让我们真正 有这些精灵之间的相互作用。 让我继续在这里拉起来,让我们说,线程, 发挥如下。 我们有两个精灵,每个人,我们会看到 只有一个脚本。 注意到,似乎有一些情报, 猫在这一个,因为他越来越近了 - [河东狮] DAVID MALAN: - 接近的小鸟。 鸟是怎样的操作? 好吧,让我们先来看看在鸟。 鸟脚本的绿色标志被点击时,去X 等于负115和,y等于150。 所以,我只是想通了,我想一个随机位置 鸟开始,我只是一屁股默认情况下,他在那里。 ,然后永远不接触猫,所以这是一个不同的 种循环结构,但同样的想法,这样做一遍,并 一遍又一遍。 所以,只要你不接触猫,将三个步骤, 如果你的边缘,弹跳,这是样的 反射中台球感。 所以这是如何的鸟,周围种 看似随意,但它只是因为它的反弹 在这种情况下的壁。 同时,现在的猫是一种欺骗。 的猫,当单击绿旗,是的,开始在 一些位置,一个随机的位置 - 至少在部分每回升 随机的绿色块 - 然后永远IF接触的鸟,玩狮子的声音, 然后停止脚本。 所以,当我说,终止或退出之前,有一个难题 在刮片,将只杀程序在该 点,因为它是一种逻辑上完成。 但除此之外,在这里,请注意会发生什么。 指向的鸟类和移动一步。 因此,这指向鸟种的优势猫 ,它的归位,我们可以在移动的鸟 现在使这个方案更有趣。 前进了一步,而不是在每个CPU周期的时间,每 罢工收费的钟声,可以这么说,让我继续前进, 移动,比方说,猫的五个步骤的时间。 单击“开始”,单击“运行”,现在他真的发现他迅速。 如果我们双击这10个步骤,种“ 适合他的。 现在,我们可以给鸟, 也许,一个位的优势。 让我们到的鸟类和移动三个步骤的,而不是说, 让我们继续前进了30步。 但他到底还是被抓住了。 所以在这里,我们有两个线程。 它关押在两个脚本和两个从头开始 精灵,但在其他语言中的想法是,你可以 写,从本质上讲,太多这样的程序,并有 他们真正的运行,或虚构,在平行。 现在,这个概念在编程中被称为 事件,这是东西,我们会看到在C, 被称为C.语言中,我们将看到对学期结束 在网络编程,当我们介绍了JavaScript和 建设的网页是动态的,交互的概念 与用户。 因此,在这种情况下,我们有一个非常简单的例子,两个 精灵,男孩和女孩,每个人都有各自的 线程,但不知何故,这两个是相互沟通的方式 一种叫做事件。 因此,让我继续在这里和放大男孩的脚本, 这看起来是这样的。 当绿色环保标志的点击,永远做到以下几点。 如果密钥空间,或按空格键被按下,说 马可两秒钟,这是纯粹的审美上的 屏幕,一点点的讲话泡沫,但随后播出。 因此,广播是另一个刮片,这是 代表一类的功能在编程 ,让不同的程序,不同的线程, 间的沟通,以某种方式发送 消息,一个到另一个。 通过一张纸,在课堂上是一种技术含量低 相同的。 所以广播事件。 我可以给这个消息,这个词事件 完全是任意的。 刮有时会出现下拉菜单,所以我就想出了 一个随机类​​似事件的话,因为现在,这个小男孩 当我按下最关键的是,他的广播事件。 如果我现在看女孩的脚本,她的剧本 超级简单的,因为她需要做的是不采取行动时, 点击绿旗。 她的目的是采取行动的时候,她收到了报价,享有的, “事件”,在这一点上,她在听,因此对 所谓事件,一遍又一遍。 当她收到这种情况下,她会喊 Polo为2秒。 所以你也许可以推断出这到底是什么 下一个结果将是。 让我点击绿色旗帜。 什么也没有发生,因为我需要做什么? 观众:空格键。 DAVID马兰:空格键。 男孩说女孩说马可,波罗。 但是,这不是硬编码本身。 这是跨脚本之间的通信,所以现在我们 有能力做出更复杂的程序, 这两个都以某种方式相互沟通。 因此,在我们可以采取什么样的方向吗? 好了,问题集,真的,目标是到 有乐趣的划痕。 黑客版,你会,而不是有一个更好玩的 先进的版本Scratch的BYOB建设 自己的块,但这个想法是一样的。 您就可以 - 是的,这是故意的。 它来自大学伯克利分校。 BYOB是黑客Edition版本,但两者 人口统计资料,标准版和黑客版的一致好评, 手头未来一周的目标是实际上只是潜水 深,自己动手编程,使 一些有趣的,互动的东西, 艺术的东西,好玩的东西,其实 展示,让周末,你将有一个项目, 不仅是你的第一个CS50的pset,但你将有一个 小东西,你可以炫耀在安嫩伯格 它上传到麻省理工学院的网站,朋友,甚至家庭。 所以当我在星期三说,我们预期90%之类的, 一般,做标准的版本。 实现对于那些你也有这个插座 否则可能会发现自己有点无聊的基础知识 真的想潜水和你已经制定一个愿景 与以前的背景,这更友好的 环境。 因此,让我拉了另外一个例子,我们的前 这里的学生,并通过歌曲告诉了一点东西。 同样,由于这个剧本,想想你如何去 实施这一计划正是这些相同 积木,一点点的伪随机性和 有点熟悉的歌曲。 如果我们能提高音量,只需要一点点吗? [MUSIC - “IT'S RAINING MEN”THE WEATHER GIRLS] DAVID马兰:这是它的CS50。 我们会看到你的周一。 [掌声]