[音乐播放] -Alright! - 这是CS50。 - 这是CS50。 - 这是CS50。 [音乐 - IGGY杜鹃,“花哨”] - 我的最爱内存从CS50 是我去的时候益智节。 -Probably只是时间 花了工作问题集 与我的朋友和人民谁沃尔德 最终成为我的blockmates。 从 - 我的最美好的记忆 CS50是Hackathon。 -The CS50 Hackathon。 -Hackathon。 -Hackathon。 -Hackathon。 -The Hackathon -Rob鲍登。 只是关于他的一切。 [音乐 - IGGY杜鹃,“花哨”] - 我的最爱内存是当我在 阶段,我打了久负盛名的作用 的节点[?在链接?] [?清单。 ?] - 当我们都得到免费的Dropbox空间 大卫像,看看在你的座位。 而且当时想,每个人的空间! [音乐 - IGGY杜鹃,“花哨”] 任何 - 我的建议 进来的学员会 是真正的工作 P-集合与朋友。 - 办公小时是很你的朋友。 -make你的大部分经历 并满足尽可能多的人就可以了。 - 不要害怕寻求帮助。 在本周初-start的P组。 - 我认为最重要的事情是要 采取的所有资源的优点 该CS50拥有。 - 进入本周初的办公时间。 -Definitely观看短裤。 - 不要拖延对你的P-集合。 - 确保你找到一个伟大的团队 人们上班的P-集合了。 你可以有很多的乐趣 并完成工作在一起。 - 不要害怕,强迫自己。 去有时黑客版。 之前在纸上-write事 你有没有碰你的电脑。 -CS50是真正伟大的 提供方式获得帮助。 - 我的一个建议就是睡觉。 有人说了吗? 睡眠,是肯定的。 这很容易不这样做,但 你要做到这一点,我想。 - 我会说,真正做好心理准备 因为你一定会喜欢它。 [音乐 - IGGY杜鹃,“花哨”] - 这是CS50。 - 这是CS50。 - 这是CS50。 [音乐 - IGGY杜鹃,“花哨”] - 这是CS50。 [掌声] 戴维·J·马兰:所以这是CS50 这是第0周的结束。 而这只是一些 CS50的工作人员是谁 等待你不仅在第 和办公时间,但是, 也,本周末 在CS50谜天。 这又是不 所有关于编程。 事实上,它的预期,你 不会有任何编程, 而是用解决问题 机智和朋友与你一起。 我们会被一些人加入 我们的朋友在Facebook-- 如果您注册这里 - 谁 在过去的几年中, 其实已经写 这些挑战我们。 因此,他们将是那些 最终运行的难题节。 所以,你将面临挑战 用精确的各种事情 和问题,在乡亲 Facebook的喜欢思考的问题。 所以这是明天。 在cs50.harvard.edu/register注册。 现在一对夫妇词 工作人员尤其如此。 这在这里是安塞尔·达夫, 究竟是谁是 这些二进制文件的共同作者 我们看到周三灯泡, 除了CS50自身丹·布拉德利。 安塞尔·达芙也是前 我的大一建议者3年前 他居然连建立了这个讲台。 他走了就做 工程科学等。 现在,在这里他的照片实际上是 安塞尔3年前在CS50 Hackathon 当他借了我们的一个 气球,把它粘到他的笔记本电脑, 并且,在接下来的12一些奇怪的 小时,集中在他最后的项目, 休息片刻,只开 糖果袋在Hackathon。 但他接着说,最近来 度过今年夏天我们, 因为CS50的员工,并 现在的学生本学期, 有它自己的三维打印机。 并概括地说一个3D打印机是 设备看起来很喜欢这个。 你用塑料线轴填充 被熔化的设备 与您共建的东西 从字面上什么。 就像喷墨打印机,你开始 随地吐痰的塑料小点 这种形式的合作, 形成整体的对象。 等安塞尔例如,较早 今年夏天,有一个iPhone 5 并决定他真想 支撑它挂在他的办公桌。 但他并不想 出去买东西 从Apple Store或类似的,所以他 坐了下来,开始画画的东西。 他拍了几张测试 至于有多厚 并有多宽他的iPhone是, 他画了这个形象在这里, 他决定,他希望 有一个75度倾斜 因为它是盯着 他在他的办公桌那里。 然后,他把这个用 软件,转换成3D CAD模型 这看起来有点 这样的事情。 然后他继续, 最终,实际创建它。 所以,事实上,如果你们在这里,也许 在一排,我可以抛出来,有 an--有我们的乡亲与iPhone 5,在这里我们有两个以上。 现在,不甘示弱,CS50自己 程功还成立了这个夏天 建立了不少的东西,, 事实上,其原因仍 目前还不清楚,已经慢慢 打印头大象的军队 以阐明武器和树干。 一对夫妇的,实际上在这里如果 现在任何人都将like--大象。 好吧,。但成也做了 对我们来说,他非常亲切地成立了一个摄像头 因为大象, 不管你信不信, 以约两个 半小时,以打印。 即使是iPhone的支架了 在一个半小时进行打印。 什么郑毅然不顾 成立于前面一个不错的摄像头 这款3D打印机,拍摄了一个小时 半为安塞尔的设计印刷。 我们覆盖一些性感 音乐给它,以便 给你这个看 如何3D打印作品。 即使这 实际上是在塑料, 认识到,如果这是一个区域 学术兴趣的你, 还有人,其中 他们詹妮弗·刘易斯在这里 在学校 工程,谁是真正 从事3D打印 塑料对象。 但是,即使越来越多, 生物材料来解决 生理问题的人。 但这里是一个小 一些来自CS50。 [响亮机械性干扰] 戴维·J·马兰:这听起来并不 像,在现实中什么, 但它更凉爽观看它 在这样的速度,和与该声音。 现在,在星期三,如何 没有我们首先来到这里的? 我们开始谈论电脑 科学和我们问那是什么。 它是关于一些东西, 有这么多不同的方向 您可以在其中头 后像CS50课程。 事实上,如果你捡到1 这些非官方的指南 到CS外,该小册子 我们提供的,无论你是 想着刚刚服用CS50, 或者是做中学, 或者甚至集中 在CS中,也翻阅了。 你会看到图 向端的 显示了许多不同的方向 在CS中,你可以走了。 但是今天,我们将关注,再次对 真正的根本的观点之一, 也许,在这里你有 输入问题, 你必须从输出 的问题,你有 与创建算法 这些产出从这些投入。 和一个这样的例子,是 当然,这款手机的书在这里。 与我们用作示例,以去 通过一种算法是正确的。 然后另一位是 正确的,但有点快。 然后另外一个,是一个小 更戏剧化,但是从根本上 快。 没错,这电话簿我们 声称有大约1000页。 和多少次我 撕电话簿一半 找一个像迈克·史密斯, 最大,1000页的书? 因此,10给予或采取。 所以一旦我在撕这个东西 上半年,或者简单地说,更成熟, 分成两半,这只是 10页出1000。 如果你浮想联翩,一点点 不切实际的电话本, 但如果电话簿中有一些4 十亿网页中,所以完全 笨重的身体,有多少 次你分4十亿 页电话簿的一半? 因此,它实际上是32,给予或采取。 只有如此,32倍,出 四十亿的网页,可以 你找一个像迈克·史密斯。 这就是效率。 这是一个很好的算法,敢说。 但是,我们从移动 尝试正规化了。 我提出这个伪代码。 伪代码是没有什么正式的。 这不是你记住的东西。 这是你表达的东西只是 相当直观地使用英语, 或任何语言真的,那 简洁地传达你的想法。 但是,什么是对的关键 伪代码是你 试图预测所有的 可能发生的可能情况。 事实上,在这个伪 码,真有3案件 每次我把电话簿。 麦克可能是到左边。 麦克可能是正确的。 或者,他可能是对的,我在网​​页上。 或第四角的情况下,可以这么说。 坏的情况可能是1 which--发生了什么? 迈克只是不 电话簿的。 而当节目crash--当苹果 和PC软件,你们跑 在你的电脑有时 挂起或意外退出, 这通常意味着,一些 程序员,像你这样的一些人很快, 刚刚搞砸了,并取得了一定的失误。 也许没有预料到的,也许有 没有迈克·史密斯在电话簿中。 如果你并没有真正写 代码来处理这样的情况下, 一般不可预测 事情都可能发生。 你的机器会冻结。 它可以重新启动。 该程序可以退出。 并且因此,所有的这些 愚蠢,你可以 在你实际所遇到 生命只是使用电脑, 将越来越多地只 通过这种直觉解释清楚 而这种理解是什么 究竟要在引擎盖下方。 现在,让我们尝试看看 在更普遍的问题。 而不是采取 出席在这样的地方 这一点,这将是相当缓慢 做一,二,三,四。 或者,也许二,四,六,八。 让我们关注,相反,对 我们如何正式 该过程由算法 我们可能需要出席。 而一路走来,让我们开始 运用一些术语 我们将在我们实际使用的今天 开始在语言编程。 所以,我给你了,一个四分钟的录像 我们把与我们的朋友 从TED的组织。 由此,我们提供的脚本, 他们带来了他们的动画师来承担, 居然创造了2D 动画什么的算法。 如果我们能够把灯光调暗。 [音乐播放] 旁白:什么是算法? 在计算机科学中, 一种算法是一组 指令解析 有些问题,一步一步的。 通常情况下,算法 由计算机执行的, 但是我们人类有算法为好。 举例来说,又怎么会 你去计算 人在一个房间里有多少? 好吧,如果你像我一样,你可能 在每个人一个点在一个时间 从零计数。 一个,两个,三个,四个,等等。 嗯,这是一种算法。 事实上,让我们试着来表达它 在伪代码位更正式。 英语的语法, 类似的编程语言。 设n等于0。 每个人在房间里, n设置等于n加1。 如何解释伪? 以及行一个声明, 可以这么说,一个变量 所谓n和初始化 其值设置为0这只是 意味着在 开始我们的算法, 东西与我们 计数为0的值。 毕竟,在我们开始之前计数 我们还没有算什么呢。 调用该变量 n是只是一个约定。 我可以把它叫做任何东西。 现在,两线demarks 一个循环的开始, 一系列的步骤,这将 重复的次数一定数目。 因此,在我们的例子中,一步我们 服用计数的人在房间里。 下面一行二是行 3,描述 究竟如何,我们会去计算。 压痕暗示 这是一行三人,将重复。 所以用伪代码 说的是,从0开始后, 每个人在 房间我们将增加1Ñ 现在是该算法正确吗? 好吧,让我们在这砰了一下。 它是否有工作 两个人在房间里? 让我们来看看。 在一行,我们初始化n至0。 对于这两种人, 我们再递增1Ñ。 因此,在通过第一个行程 循环中,我们更新N从0到1。 上通过该第二跳闸 同样的循环中,我们更新N从1到2。 因此,通过该算法的 端,n为2,这 确实符合数 人在房间里。 到目前为止,一切都很好。 怎么样一个角落的情况下,虽然? 假设有0人 在除了我的room--,谁的 做计数。 在一行中,我们重新初始化n至0。 不过这一次,行 3不执行在所有 因为没有一个人在房间里。 因此n仍然是0,这确实符合 的人在房间的数目。 很简单,对不对? 但人们计算一次 是非常低效的,也没有? 当然,我们可以做的更好。 为什么不能算两个人的时间, 而不是数一,二,三, 四,五,六,七, 8,等等。 为什么不指望二,四, 六,八等? 它甚至听起来更快。 它肯定是。 让我们来表达这种优化 在伪代码。 设n等于0。 对于每对人 房间里,将n设置等于n加2。 很简单的改变,对吗? 而不是指望人一次, 我们不是指望他们每次两个。 这个算法的,因此 快两倍的最后。 但它是正确的? 让我们来看看。 它是否有工作 两个人在房间里? 在线路之一,我们初始化n至0。 该1对人, 我们再由2递增ñ。 因此,该算法的 端,n是2,这 确实符合数 人在房间里。 假设下一个有 零人在房间里。 在一行,我们初始化n至0。 和以前一样,三号线 不执行这一切 因为没有任何对人 在房间里,并因此n保持为0。 这确实符合 人在房号。 但是,如果有 三个人在房间里? 请问这个算法的票价? 让我们来看看,在一行一个, 我们初始化n至0。 对于一对的那些人, 我们再由2递增ñ。 但是然后呢? 没有另一个满 对的人在房间里, 所以二线不再适用。 因此通过此算法结束时, 由于仍然是n 2,它是不正确的。 事实上,这种算法的,以说 是越野车,因为它有一个错误。 让我们用一些补救 新的伪代码。 设n等于0。 对于每对人 房间里,集合N等于n加2。 如果一个人仍然未成, 将N等于n加1。 为了解决这个问题,我们已经 符合四个条件介绍, 否则,所谓的 分支,即只执行 如果有一个人,我们 不能配对另一回事。 所以现在,无论是 有一或三个 或者人在房间的任何奇数, 该算法现在指望他们。 我们可以做的更好呢? 好了,我们可以在三分球数, 或四肢,甚至五元和十, 但除此之外,它会得到 一点点的困难点。 在一天结束时,是否 通过电脑或人执行, 算法只是 的一组指令 与解决问题。 这些都是只有三个。 有什么问题,你会 有一个算法解决? 戴维·J·马兰:那么刻意, 一个非常简单的程序, 一个很简单的算法, 为实现东西 很简单,计数 人在房号。 但是,让我们梳理出 一些代表性的 这里的特点是实际 去,即使是有用的 实施最 软件的复杂。 因此,例如,在该第一线, 我们有我们所说的变量, 从代数,你 使用X和Y一般熟悉 和z有时,等等。 但在编程中,变量 仍然,在一天结束时, 非常相似。 但是,这也许是简单的思考 一个变量只是一个容器。 并且,事实上,它是比特的一些数 在你的硬盘上莫名其妙地实施 或在您的计算机的内存, 但上,在未来更多。 这只是一个容器。 如果你说的东西 如令n等于0, 嗯,这就像调用这个玻璃 碗在这里N,只是一个任意名称, 并把没有在它最初。 因此,其值 碗,现在是零。 当然,如果你认为 在随后的行, 实际增加了一些行 代码,如在这里三线, 1,这等于是说有什么 n个电流值,它是0,加1, 把东西像 乒乓球在这里。 这个现在的价值 变量是很简单1。 而且你可以非常快速地推断, 但现在是2,现在是3,依此类推。 所以,这是所有的变量是。 这是一块存储到 实际存储一些数据。 现在它是一个乒乓球。 在那里,它是一个数字。 但它可能是一个字 字典,像拼写检查 我提到在周三的 一个去年的习题集。 现在,另一个关键的想法,那同样 很直观的,我主张, 是循环的。 并在此过程中的循环 计算每个人的 当然,在做同样的 再次件事,again--一方 在一两次的时间。 你也可以用英语表达这一点,或者 伪码的代码,在任何数量的方式, 但使用这个介词“为” 是这样做的一个很常见的方式。 每个人在房间里,做到这一点。 一遍又一遍。 而事实上,它的 缩进,一行三人, 只是意味着什么 你应该做的 是的缩进的东西 线下2本身。 只是一个人的约定, 但常见的一种 我们将在实际的高看 高级编程语言。 现在有点更有趣的是 当你在一个角落里的情况下得到的。 例如,一个角 情况是当有 三个人,或五,七年, 或者人在房间的任何奇数, 因为这样做,通过两两闸 最终,因为你去 错过一个人,无论是在 一开始或尽头 这取决于你怎么做。 所以,现在,我有这个分支,或 条件下,如果一个人保持, 然后继续前进,处理一个 寂寞的人谁没有得到 搭配了别人。 所以,这就是我们所说 的条件,或一个分支。 现在伪代码 更一般地可以是 写入解决任何数量的问题。 而我以为我们会 这里做的是花点时间 邀请我们应该说CS50的 自己抢鲍登在舞台上 由两名志愿者来参加, 谁不知道等待着。 一只手去了,只要我说的。 你怎么样的 结束了,上来吧。 又有怎样的更远 走,怎么样在后面的方法。 后排,加油了你的手。 好吧,和你叫什么名字? 梅艳芳:梅艳芳。 戴维·J·马兰:梅艳芳。 好吧,很高兴见到你。 让我来给你介绍罗布鲍登。 这是梅艳芳。 而你叫什么名字? KIERSTEN:Kiersten 戴维·J·马兰:Kiersten。 Kiersten,同比增长来吧, 满足罗布鲍登和安妮塔。 很高兴认识你。 KIERSTEN:很高兴见到你。 戴维·J·马兰:好吧,罗布。 罗伯鲍登:很高兴见到你。 戴维·J·马兰:梅艳芳。 KIERSTEN:梅艳芳嗨。 戴维·J·马兰:还有你 数百名同学。 所以,现在让我继续前进,拉 最多只是一个简单的程序在这里 在Mac OS是会让我 其实记一些笔记下来。 如果你们想每个取 在这些学校中有一个位置, 让我继续前进,开始一个列表 的伪代码,如果你愿意。 而我想在这里做, 最终的类型是适合你 一些指令,我们的 观众其实是 要背诵我们。 让我继续前进,只是 更改为编号列表 以匹配我们在那里做了。 而我什么都做 你的帮助,是写一个程序 伪代码,与 这些家伙会 实施花生 酱和果冻三明治。 因此,它可能是中肯的,以 展示一些东西你 可能已经看到在互联网上 对于只是一个短暂的恼人的时刻。 [音乐BUCKEWHEAT孩子们,“花生酱  果冻时代“] 戴维·J·马兰:确定。 这是够了。 所以在这里同时我有一个 对谷歌眼镜的 我们把对CS50自己抢鲍登 看世界,通过他的眼睛。 我们会尽全力在后 生产实际织 什么罗布的画面是看到 现在,这个实际的演讲 我们的两个视频 他身边的志愿者。 那么,我该怎么办 是,我是打字员。 我们这里的有目标 其实写程序 与制作,最终, 花生酱和果冻三明治, 但是这三个会做人 就好像它们是计算机。 和计算机,在一天结束时, 其实是非常愚蠢的设备。 他们是超级快,但他们只能 这样做,从字面上看,他们被告知的东西。 你不能只是说做一个花生 酱和果冻三明治。 你必须编写他们这样做。 你要告诉他们 精确要做什么, 少的东西去和可怕, 希望,可笑歪。 因此,随着中说,我们需要 一个电话,从观众 什么应该加强 1是,如果目标位置 为使花生 酱和果冻三明治。 是吗? 听众:面包[听不清]囊中。 戴维·J·马兰:打开面包袋。 因此,如果这三个选手会 想继续做的,从字面上。 打开面包袋。 [听众LAUGHING] 戴维·J·马兰:让我们工作了。 好吧。 所以第二步,how-- 让我们借此进一步。 是啊,在前面。 听众:[听不清]面包。 戴维·J·马兰:这是什么? 听众:取出面包。 戴维·J·马兰:取出面包。 同样简洁。 谢谢。 [掌声] 戴维·J·马兰:就这样? 好了,第二步是怎么回事 要取出面包。 好吧,有人要 给我们一个较长的句子? 别人? 多一点[听不清]。 没有,什么都没有了。 是吗? 听众:将两个 片彼此相邻。 戴维·J·马兰:将两 片彼此相邻。 [听众LAUGHING] 戴维·J·马兰:将两 片彼此相邻。 第四步。 是吗? 听众:你拿 手,将它轻轻地 在花生酱盖子的顶部。 [听众LAUGHING] 听众:[听不清] 旁边的花生酱。 戴维·J·马兰:什么? 再说一遍。 听众:拧开盖子,把 它轻轻地旁边的花生酱。 戴维·J·马兰:把它轻轻 旁边的花生酱。 好了,进步。 第五步。 优秀的。 是吗? 拿起刀子。 戴维·J·马兰:拿起刀子。 好吧,第六步。 是吗? 听众:通过手柄握住刀。 戴维·J·马兰:保持 刀的手柄。 用手柄握住刀。 第七步。 是吗? 听众:[听不清]刀花生 黄油和​​尽量少出[听不清]。 戴维·J·马兰:将刀in--í 听到“花生酱放刀 并采取尽量少出去越好。“ 顺便说一句,第一个将纸取出。 好吧,第九步。 第九步。 第九步。 我们还没有真正做一个三明治呢。 是吗? 听众:在花生酱使用刀, 适用于所述面包花生酱。 戴维·J·马兰:使用刀 花生酱,适用于花生酱 说面包。 [听众LAUGHING] 戴维·J·马兰:好步10。 步骤10。 是吗? 听众:花生味 黄油,以保证质量。 [听众LAUGHING] 戴维·J·马兰:步骤11。 第11步。 第11步。 来吧。 是吗? 就在那里。 听众:小心拿起果冻。 戴维·J·马兰:小心地拿起果冻。 单击确定,然后另一只手小涨。 后面你。 是啊,在蓝色的。 听众:好吧,取出 从[听不清],是盖子, 从果冻取出盖子。 [听众LAUGHING] 戴维·J·马兰:从果冻。 呵呵。 [听众LAUGHING] 戴维·J·马兰:然后呢? 听众:勉强 扫任[听不清]。 [听众LAUGHING] 听众:当然,在[听不清] 从果冻取出纸张。 戴维·J·马兰:从果冻取出纸张。 步骤14。 我们快到了。 是吗? 听众:反转果冻瓶 一切才掉下来。 戴维·J·马兰:反转果冻 果冻瓶之前掉下来。 第15步。 听众:盖上盖子。 戴维·J·马兰:更换上限。 步骤16。 是吗? 听众:[听不清] 戴维·J·马兰:再说了。 听众:取盖掉你的果冻。 戴维·J·马兰:关你的果冻。 所以really--哎呀。 来吧。 盖上盖子。 把cap--你说 从果冻取出帽。 感觉我们是在一个位一个循环。 步骤17。 是吗? 听众:[听不清] 戴维·J·马兰:再说了。 听众:[听不清] 戴维·J·马兰:回到step-- 听众:[听不清] 戴维·J·马兰:删除 盖从花生酱。 是吗? 听众:删除所有的 果冻在面包上。 戴维·J·马兰:删除所有 在面包的果冻。 戴维·J·马兰:我们快到了。 步骤19。 听众:去除多余的果冻。 戴维·J·马兰:哈哈,果冻。 [掌声] 戴维·J·马兰:你为什么不we-- 一个步骤把这个家。 多一个步骤,然后 我们会为三明治。 是吗? 听众:[听不清] 戴维·J·马兰:虽然任何三明治 remains--让我们缩进this--吃。 [听众笑声] 戴维·J·马兰:好的,谢谢 您在这里我们的志愿者。 [掌声} 戴维·J·马兰:我们有一些不错的 临别礼物,你们每一个人。 你自己的花生酱,果冻, 和面包带回家。 谢谢。 KIERSTEN:谢谢。 戴维·J·马兰:[听不清]欢迎。 [掌声] 戴维·J·马兰:所以,这是, 当然,一个可笑的例子。 对不对? 但它确实种揭示我们如何 人类只取清晰度是理所当然的。 而事实上我一直 与另一个人, 他或她只是知道你的意思。 电脑不会 要知道你的意思, 即使当使用作为 我们今天要做的事, 在划痕编程的东西,一拖 抗摔,拼图式的语言。 即使是专为年轻 孩子,你有 如此明确,所以用文字 你想你的程序做。 现在,最终,我们 将要编程 不是伪代码, 英语的语法, 但是代码,或更正确地,源代码。 源代码,仅仅是看中方式 描述你的代码实际上 用键盘的写 不是英文本身。 这是在C或Java或C + +或东西 这样,因为我们很快就会看到。 而事实上,只是为了吓唬 你们几个,乍一看, 这是写在一个语言的程序 所谓C.但联合国人吓你们几个, 你会完全 明白这是怎么回事 来吧下星期一时 谈到这样的事情。 坦率地说,这是一个较旧的语言。 这是相当神秘的, 但它是代表 大量的语言,这些天那 有很多的括号和大的 括号和引号和分号。 和很多这 语法的东西,是不是 在所有智力有趣。 事实上,它是一个完全分心 从最简单的想法 这都盯着我们的脸。 这个程序,你可能只是猜测, 打印到别人的电脑屏幕 单词“你好逗号的世界。” 就是这样。 所以很明显,有 很多东西,这 得到的方式 一些显而易见那里, 但它会很快溜走 程,完全直观。 事实上,我们要做的事情 今天是提炼这个相当复杂 看着节目,又你来 快速理解,但事 要简单得多。 远的不说,我们的意思。 让我们画的是什么,我们的意思是一张图片, 这些拼图这里的方式。 因此,这是一个编程 语称为划伤。 它是由麻省理工学院媒体实验室开发的。 什么,你会在看到问题的设置为零, 这将在稍后公布,今晚, 我们将让你去这个 这里scratch.mit.edu网址。 他们有一个网页 通过该界面 你会写你的第一个程序。 或者那些你事先 的经验,你的第二个项目, 但在一种环境,是 可能有点陌生,而 将推动你创造的东西 使用这种非常直观的环境。 现在,我要在这里做 为开拓程序本身。 它的存在不仅作为网页浏览器, 也可作为可下载的程序 这样就可以真正使用它 如果你没有上网。 而我要做到这一点 在这里,在桑德斯,只是 如果Wi-Fi的不 配合超好。 而我现在要做的就是点 这一计划的一些特点。 所以,要清楚,我只是双 点击桌面上的图标, 或者等价地去scratch.mit.edu, 而且它拉到这个窗口。 这是一个编程环境。 这是一个的软件, 我们的一些朋友在麻省理工学院 写道,让我们和你写 在语言课程叫划伤。 现在,这恰好是一个 猫谁也叫刮 这就是他的世界,他的生活。 这就是舞台,可以这么说,那 矩形的左上角。 他不必像一只猫。 你可以让他看看 像什么,你 可以有许多这样的子画面, 或字符,在一个程序中。 同时,在这里就远 没错,是一个很大的空白石板。 这是在哪里,在某一时刻, 我们要开始编程 通过拖放 这些图形拼图 这是对片 这里在中间。 还有的方式比更多的人 我们将在这里花时间在课堂上 因为你会发现, 他们都是相当直观。 再次,它的设计 为了孩子,但我们 用它来梳理出一些那些 的变量,循环的基本思路, 条件,而且,很快,事情 如函数和事件 和线程等花哨的东西,我们会 去之前就实际创建 东西从头开始。 双关语意。 现在,我要在这里做的是 点击不是运动,而是控制。 而这仅仅是一个 这里 - 的分类 我看到一个不同的 颜色设置块。 但是要注意的几个熟悉的字眼。 “如果”和“否则,如果”和“重复”。 而且你可能已经猜到 这让人想起了分公司, 或条件下,我们看见了, 即使是循环结构。 因此,我们有相似的块在这里。 但最有趣的 一个是这个人在这里。 当绿旗被点击, 这一点,对于那些事先编程 经验,相当于 一个主要功能。 但是,对于那些不熟悉的, 这是一块拼图 这将开始踢我们的整个程序。 它的字面意思是,当我走了,在这 程序,并单击绿色flag-- 你可以在这里看到了在 左上角的UI, 所以看到绿色标志 旁边的红色停止的迹象? 当我点击的是,我 程序将运行。 现在,我要做些什么 超级简单,划伤。 我要继续前进 然后转到面板外观 在这里,我在那里有一堆 紫色的拼图碎片, 而我要继续前进,做 一些超级简单的像,说。 和then--通知本 在白色框中的文本 是editable--我要说 “你好世界”,就像我们 在做文字 版本刚才。 而现在,如果我去,然后单击此 绿旗,我现在已经编程。 这不是一个特别 有趣的节目, 但我做电脑做一些事情。 我开始一个程序,它 做了什么,我告诉它做的事。 现在,我可以继续拖拽 越来越多的这些拼图 并且他们将互锁,但 让我们拍了一些术语这里 我们会看到重复的 在整个过程中, 真正在整个计算机科学 和编程更普遍。 这种“说”块,紫色,让我们 刚开始调用语句。 这就像对事实的陈述。 做到这一点。 所以,这是一个类别 说明你 可能养活一台电脑作为部分 的程序或算法。 并且要清楚,你 可能是理所当然的 你有你的计算机上的程序。 而且他们的一种算法,但 节目真的是一堆算法 有些人写的。 它们包装起来,并 他们把它卖了,所以你, 或者他们在网站上发布 供您下载。 因此,程序仅仅是一个 一大堆的零和一 ,不知何故,人类创造的。 而那些零的模式和 那些代表的东西,最终, 像“打招呼世界”或“戏 这样的音乐“或”播放此视频“ 或“发送电子邮件。” 但是,我们会回来的 方式更详细地什么 程序是,当你, 自己,写他们。 这里的另一个statement-- “等待一秒钟。” 我没有用这事,但是如果我想 我的计划暂停了一会儿 做一些事情,我可以告诉它这样做。 等待一秒钟。 现在,另外一个可能是“播放声音”。 所以,这是唯一的划痕,它 要播放声音的能力。 因此,声明我可能 用法是,在这里,“播放声音”。 与此同时,布尔表达式, 所以这是一个票友字 刚刚任命布尔先生一个人的名字命名的, 这是所有关于一个问题。 True或false--是鼠标按下? 布尔表达式就是 一定的英语表达 这是真或假。 无论是打开或关闭。 任一或零。 你可以把它 在任何数量的方式, 但它的真或 这个假的,最终。 因此,“鼠标按下问号” 这将是一个布尔表达式。 而你能想到别人,也许。 例如,“是左数 比对数量少吗?“ 这也将是 一个布尔表达式。 “比少”是一个布尔表达式。 这一次也一样,“感人的鼠标指针。” 我不知道他们为什么 称之为鼠标指针。 它只是意味着,是光标,是 箭头在屏幕上,触摸猫, 例如。 或屏幕的其他一些方面。 这是一个问题,又和 它表示一个布尔表达式。 一些你可能 要在条件使用。 所以我们得出这样在短短的一瞬间。 您可以在“和”的东西放在一起。 所以,如果你要检查,如果这 是这种情况,这是的情况下, 你可以使用这样一个“和”块。 而这里的这一条件。 注意到小开口部的形状 在此黄色拼图块的顶部, 这让人想起了形 我们刚刚看到了刚才。 每个布尔表达式的 必须指出这些边缘 在左侧和右侧。 那是因为麻省理工学院的人决定 通过视觉传达的形状, 种你能帮助的人, 学生和儿童的一致好评, 种以填补空白字面上。 现在puzzle--了 开放是小了点, 正如我们会在节目中看到的, 在刮,它会成长,以适应。 它会保持其形状,最终。 所以,一个条件让你决定 “我应该做的事没有?” 布尔表达式 是实际的问题 您使用的是决定我去 向左还是我去的权利 当我遇到这样的 所谓的岔路口? 你可以有两个分支。 如果事情是真的,做 这一点,否则走那条路, 或者你可以什么都不做 总之,由于此块暗示的保证。 同样,我们可以嵌套这些东西。 所以,如果你想增加两倍岔路口 路上,无论是干这干这干那, 你可以嵌套这些东西放在一起。 它开始变得有点 丑陋,最终肯定, 但逻辑仍然是相同的。 你可以从字面上读 这种从上到下 它说,它是指:如果这 是真实的,否则,如果其他人这样做。 一个循环没有得到划痕简单。 永远做到以下几点。 现在,你可能会想到你 可以做多,因为有没有 的顶部和之间的大的空间 这个拼图开放的底部。 但你会看到划痕是要 成长,以适应尽可能多的拼图 只要你想在那里临时抱佛脚。 另一个循环可能 表示有重复。 如果你事先知道,“我 想要做的事10次,“ 你可以告诉划痕 做某事10倍。 而且,与此同时,我们可以有变量。 因此,这里的的任意一个, 它是橙色在这种情况下, 这是一个旋风之旅。 同样地,你会发现这非常接近 一旦你开始指向和点击。 我叫我的变量n,但我 可以把它命名为任何我想要的, 而我设置在这里,在 这个任意的例子中,零。 现在看到这样一个程序打招呼 世界是不是所有的吸引力, 让我们真正开放的东西 一个以前的学生做。 让我去进取,不断开拓, 例如,这个人在这里, 为此,我会爱 有一个志愿者。 好吧,怎么about--让我们走的更远。 是的,上来吧。 你叫什么名字? ABBY:艾比。 戴维·J·马兰:艾比,上来吧。 所以,你有没有玩过 本场比赛之前? 女:第 戴维·J·马兰:好吧。 大卫,很高兴见到你。 你过来吧。 什么是你的编程 背景,如果有的话。 女:我已经学到了一些C + +。 戴维·J·马兰:你已经学到了一些C + +。 什么是你的游戏 打底色? 女:不是很多。 戴维·J·马兰:好了,我们就买那种。 因此,这里的游戏如何去上班。 我要继续前进, 点击绿色的标志, 就是在这里,在右上角。 现在,你在课堂上的前辈 曾在这里给你一些指导。 并在短短的一瞬间,它 说:“空间开始。” 所以,尽管打空格键。 电脑游戏:皮卡丘。 戴维·J·马兰:而且我们的目标是 捕捉食物,如描绘有 在左侧。 和[听不清] [游戏音乐播放] 戴维·J·马兰:噢,好吧, 感谢您的播放。 我们这里有一个小 临别礼物送给你。 我们有CS50压力球, 如果你想选择。 好了,好高兴见到你。 感谢您的光临和挑战。 因此,我们有更多的压力球,所以 让我们做一个例子来激励。 一名志愿者? 好吧,怎么样 这里在前面。 你叫什么名字? 辉立:菲利普。 戴维·J·马兰:菲利普。 上来吧,菲利普。 因此,菲利普将是 挑战与另一个游戏 你的前辈之一 写作为问题的一部分设置为零, 所谓的常春藤的最难的游戏。 我们将看到在短短的 此刻什么意思了。 菲利普,很高兴见到你。 你是什​​么背景? 辉立:做了很多编码。 做一个小游戏了。 戴维·J·马兰:确定。 有很多游戏了。 和你以前玩过这个游戏? 辉立:无 戴维·J·马兰:全部 对,所以在这里我们去。 我要继续前进 并点击绿色旗帜。 [游戏音乐] [音乐歌手哈默,“你无法触摸这个”] 辉立:[听不清] 戴维·J·马兰:[听不清] 辉立:[听不清] (笑) [音乐歌手哈默,“你无法触摸这个”] 戴维·J·马兰:[听不清] 犁过它。 辉立:[听不清] 戴维·J·马兰:来吧。 [音乐歌手哈默,“你无法触摸这个”] 戴维·J·马兰:好吧。 恭喜。 [掌声] 戴维·J·马兰:我们将 后,网上这么晚 您可以拖 用它。 普林斯顿来到旁边,在那之后。 所以,现在让我们来实际进行 从头开始, 可以这么说,真正建立之前, 我们可以梳理出其中的一些想法 并获得了一些连 由端更复杂。 我要在这里走,我要去 继续前进,创建一个新的文件。 如此反复,问题集将走 你通过一些步骤。 但是,我所做的就是去 在文件菜单中,我 说:“新的”,那么像微软 字,或类似的任何程序。 让我们继续now--我们 实施的“Hello world”刚才, 但让我们做的东西有点可爱。 我要上去事件。 而我要做的事情“的时候 绿旗点击。“ 然后我会用, 我们可以说,一个分支。 所以我想使用“如果”的状态。 并注意如何,只要我靠近 它,它要一起捕捉。 所以我放手咬合在一起。 现在我可以做一些有趣的事情。 如果我经过这里滚动,我要去 看到一大堆块。 如果我去的“数据” - 让我放大in-- 也有一些是关于变量。 如果我去“的议案,”你可以 显然扭转乾坤。 如果我去“经营者” - 哦,这是有趣的, 我可以选择一个随机数。 因此,让我做一些事情,只有 一定的概率,只是因为。 我要继续前进, 拖动这个拼图, 这是小于 块,所以它只是 “比那个这个数字少了?” 但我不希望有一个硬编码数 因为这是相当没有意义的。 所以,我要拖一段 在这里,并注意它是如何在捕捉, 现在让我继续说:“如果 这是随机挑选的号码 小于6,请执行以下操作“。 现在为什么不到半年? 什么概率这实际上是 去给我,只是凭直觉? 约50%的,对不对? 如果是这样的猜测随机数 在1和10之间的是小于6, 显然这是一,二, 三,四,五。 因此,这是怎么回事,给我一个 发生了什么50%的概率是多少? 好吧,让我们做这样的事情 对此,“播放声音喵。” 并请注意,同样, 一块拼图增长 适合的,只要该形状相匹配。 这就是很重要的。 让我走了过来划伤 在这里,点击“播放”。 什么也没有发生。 那是一个错误? 没有,没有必要的。 它可能只是一个 更大的数字被选中。 因此,让我们再做一次。 什么都没有。 [喵] 戴维·J·马兰:那不是。 [喵] 戴维·J·马兰:同样。 号 [喵喵叫] 戴维·J·马兰:所以如果你 打过当然是游戏, 那里的东西是随机发生的, 像坏人来不来 即将于到屏幕上,或 事情正在下降或不下降, 这只是因为一些超 简单的像这种情况的发生。 选择一个随机数,如果 这是低于某个值, 也许这样做也许做到这一点。 我们可以将 在进入状态。 让我们做不同的事情。 让我扔掉这些。 您可以通过甩掉的东西 只需将其拖动到左侧 和放手。 让我继续前进,做一个永远的块 并很快做一些讨厌。 让我继续前进, 说“播放声音喵。” 但我不希望这是太 讨厌,所以让我抓住这个区块, “等待一秒钟,”和通知 还有它没有更多的空间。 但是如果你去足够接近, 它想要去那里。 所以我放手,它会 成长以填充块。 所以,现在,这是一个循环。 [喵喵叫] 戴维·J·马兰:我 从字面上这样做下去。 一遍又一遍。 这是不自然的声音。 让我继续前进,改变这种 到不一秒,两秒 然后按Enter键。 这有什么好看约划伤 你可以进行编程交互。 做出改变,也许按Enter或播放 再次,它只会继续下去。 好了,现在我们为什么不这样做 东西有点可爱? 而不是从头开始做的一切, 让我去进取,不断开拓的进步 做了一个,我预焙, 所谓的“宠物猫。” 我们将发布所有 网上这些文件, 与问题设置为零会告诉你 如何访问它们,并打开它们。 并请注意,这是非常简单的。 但在前进,我似乎已经抓住了 一个“永远”块,所以我有一个循环。 然后我有一个“如果”的状态。 我有一个布尔表达式。 因此,在英语,只是看了一眼 这一点,特别是如果你从来没有 编程之前,只是凭直觉, 什么是该怎么办,这个方案? [听众颤振] 戴维·J·马兰:如果您的宠物猫, 猫会喵喵,对吧? 因为“永远取消选中”在 将鼠标指针接触的猫。 所以要清楚,我没有说 此之前,所有的这些难题 片和脚本 我们结合成, 可以这么说,脚本是同义词 计划,真的,就属于这种猫。 其原因is--因为通知 怎么在这里猫一样被高亮显示, 到这里,你可以创建一个 第二猫或狗或真 任何你想要的图形。 您可以导入一些 从Photoshop,或类似 和整合的东西,如果你 要使它成为一个项目。 而且你会发现, 最后,就是你 可以添加脚本,加入拼图 件,单个字符。 所以这些都属于 这个特别的猫。 所以,现在如果我继续玩游戏 这个程序,什么也没有发生。 但它正在运行。 该计划是在这永远的循环, 那种等待的情况发生呢? [听众颤振] 戴维·J·马兰:为宠物猫。 所以,如果我移动我的鼠标移向他 - [喵喵叫] 戴维·J·马兰:所以现在 我抚摸猫。 同时,我们可以有一个双分支。 让我继续前进,开 最多不宠猫。 我们会发布这个网上也。 这是一个多一点 复杂的,但不用说 你也许可以猜到 什么事情要发生。 [喵喵叫] 戴维·J·马兰:猫是 喵喵叫,盛大老的时候。 但这个方案当然是 所谓“没有宠猫” 这么清楚,我想给宠物猫。 [咆哮] 戴维·J·马兰:不要宠物猫。 现在,让我们一起来看看 在这里的另一个例子。 这人会被称为 “嗨,嗨,嗨,”原因 这将是明显的,因为 当我运行这个件事 - [SEAL吠] 戴维·J·马兰:很容易 写恼人的划痕程序。 [SEAL吠] 戴维·J·马兰:现在我们不会去 成非常详细的所有的这些, 但要注意有一个 几个在这里的新功能。 有一个变量,被称为“静音” 然后有一堆条件。 而现在,让我 只是逗你说 如果这个家伙变得太烦人, 我打了空格键,他停止。 由于角色所发挥 这两个脚本如下。 其中之一是做 叫声每隔几秒钟。 另一种是只等 对我来说,打空格键。 如果我做打空格键, 这将改变 这个变量的状态,则该值 这个变量,这显然是 所谓的“静音”,我没有打电话 这无聊的东西像N, 我把它叫做一个英文单词,“静音”。 从1到0或从0到1。 从真到假或假为真。 所以你其实可以 看到现在,你 可以有两个剧本,二 程序同时运行,则 两个人都可能坐 在一个循环中做一些事情。 等待的人做 像打空格键。 [SEAL吠] 戴维·J·马兰:现在 他对他的方式了。 [SEAL吠] 戴维·J·马兰:那么还有什么 也许我们做这些的例子吗? 好吧,让我们继续前进,做一个 例如用数羊。 我们将继续沿着这一线路在这里 of--让我们打开了羊的例子。 并请注意,很像之前,这一次, 值得庆幸的是,是有点不太讨厌。 有一次,我打玩这里 - 哦,不,这是烦人。 他要咩 以某种概率。 让我们再次玩这个。 [羊BLEETING] 戴维·J·马兰:唯一的区别是 我们已经改变了装束,可以这么说, 我们正在减少一半,并说 什么是实际数量。 好吧,让我们继续前进, 借此更进一步。 让我逗你 这里另外一个功能。 让我们继续前进,开拓 一个程序称为线程。 所以,就像你可以有一个 精灵,有多个剧本, 您可以有两个精灵,在鸟 一只猫,各有自己的脚本。 他们每个人都可以 同时操作。 如果你曾经听说过 单词“多线程” 一台电脑是“多线程”的意思 它可以同时做多件事情, 而事实上,这样会划伤。 而现在看到的鸟是种愚蠢的。 这只是做事随意, 反弹在屏幕上。 很明显,是猫被编程 那种有能力追求 以家中的鸟,因为 他总是指着他。 直到最后,他 抓住实际的鸟。 所以我不会在细节上纠缠 在这里,但你可以种 窥相同的形状,有些 “如果”的条件下,一些变量, 也许有些循环,是 最终做同样的事情。 现在让我继续前进,开 别的东西完全, 逗你们有些人,特别是 那些更舒适, 你其实可以用这个做的。 我要继续前进 在这里打开按钮。 这是一个超级 简单看似程序, 但看会发生什么 当我 - 看什么 发生在我打开这个版本吧, 这里,在浏览器中,scratch.mit.edu。 当我点击这个大红色 按钮,看到发生了什么。 所以,这是怎么回事吗? 实际上,有很多更复杂 正在进行的引擎盖下面, 即使我实现 这一点,或者坦白地说,丹·布拉德利 已经实现了这个如此简单。 他设计了一个自定义的划痕难题 片,被称为划痕延伸, 他把它称为切换。 什么拨动所做的就是把它发送 消息在互联网上。 而这消息本身 看起来有点神秘。 但是这也,你会 通过长期的明白到底。 他实际上发送消息 看起来有点像这样。 这只是文字。 隐秘。 你就会明白它的时候 我们得到的问题设置7。 这只是发送文本消息 在Internet上的服务器。 并且该服务器,最终, 谈到这个灯泡,其 有那些花哨的灯泡之一 在它的本身,是说 到了Wi-Fi网络中的位置, 其中本地设备下来这里 - ,最终,它实际上 转向光开和关。 但是,我们可以做更多 有趣的事情还在。 注意什么丹也为我们所做的。 他做了多精灵,每个 其中有一个脚本,等待点击。 如果我按一下红色的,这是不言而喻的红色。 如果我得到的蓝色,它会偏蓝。 绿色,黄色,橙色。 而这一切正在发生的事情了 要出路在互联网上, 这里回落到 灯泡,打开和关闭。 如果你能相信它 - 这就是 也许是最复杂的划痕之一 项目有人implemented-- 他做到了,为公平起见,在一天。 这就是我们扔下的挑战 丹当我们看到有二进制灯泡, 我们有划痕,怎么 我们可以将它们合并? 并且,实际上,这是绝对 一些人在这个房间 可以做了学期的end--是他 通过重新实现二进制灯泡 这是同一个接口 在我们的iPad上周三。 所以,现在,如果我真的 点击加在这里, 我们具有一个,两个,三个。 我可以打16,打开一个上。 128,等等。 现在,如果单独拥有 和吹你的头脑, 你可以做的事情更容易获取, 不涉及任何硬件肯定。 只是事情的屏幕本身。 而且,事实上,大多数学生 最终做的是某些类型的游戏, 一些作品艺术作品,或 某种互动的动画。 我会说一我们 收藏一直是这一个。 而且我认为,如果我们 可以调暗灯光, 我们就来一睹为这最后的 从头开始项目的结论。 但是你应该记住,作为 我可以逗你一个最后的细节, 切片将于下周开始。 办公时间将于下周开始。 问题设置为零将公布 CS50.harvard.edu今天晚些时候。 而你将迎接 在问题设置为零 到CS50自己Zamyla陈,谁 指导我们大部分的演练。 这些被嵌入视频 在习题集 这将通过大量的握住你的手 的初始设置,并通过许多 的可能的设计决策。 所以,如果你曾经有这样的感慨 捡了个家庭作业时, ,不知道,我从哪里开始? 她将有答案给你。 而现在,最终的方案 从你的前辈之一 在回答这个问题 “这是什么狐狸说什么?” [音乐YLVIS,“什么是狐狸说什么?] YLVIS:(唱)狗云纬。 猫喵喵去。 鸟去鸣叫和鼠标去吱吱声。 牛哞哞去。 青蛙去发牢骚。 和大象去嘟嘟。 鸭子说庸医和鱼去泡壳。 和密封的推移嗷嗷嗷嗷嗷嗷,但 有没有人知道一个声音, 什么狐狸说什么? 和 戴维·J·马兰:这就是它的CS50。 我们将看到您在 益智日和周一。 [掌声] [音乐YLVIS,“什么是狐狸说什么?”] 旁白:现在深 思想,通过Daven法纳姆。 今天,我被击中 面对电话簿。 令人困惑,因为我在 在家上网看。