[音乐播放] [MUSIC - 罗西尼,“RANZ DES VACHES“威廉告诉] [MUSIC - 英文BEAT“三月 旋转头“] [掌声和欢呼声] DAVID马兰:所以这是CS50。 我的名字是大卫·马兰。 和73%,你有没有现成的经验 随着计算机科学, 相反,你可能会想到什么。 所以今天,我们认为我们会蚕食 ,缺乏熟悉,但也 给你的感觉,对于那些你 更舒适,指示 你可以去这个学期。 因此,让我们开始。 我真的不知道里面有什么, 一台电脑,即使你一样,我 每天都使用它。 但它的一些怎样的箱子,而且也 投入不是很多。 微创,有,是什么? 可能是电源线。 事实上,这一种成分, 电力,我们似乎能够 做相当多的这些天。 但是,在一天结束时,我们 有代表的东西 我们关心。 我们有代表信息 以某种形式。 你可能至少隐约 熟悉的想法二进制或 位以某种方式或其他,电脑 降低到零和一。 但我们可以拥抱,至少 放一点光? 所以,我有这些小 这里的台灯。 这里我有一个电源插座。 我要提出这里面 我的电脑中的至少一个 这些事情,一些能够 被打开或关闭。 在这种情况下,它确实是一个台灯, 但在较低的水平,它的东西 称为“晶体管”。 但是,在我们的世界,这是一个台灯,所以 我要继续前进,并堵塞这 到我这里的电力。 我要求使用这个简单的, 设备简单,这个简单的开关,我 可以代表信息。 例如,现在,我 代表什么,对不对? 我代表什么,我会打电话给0或 假的,相反的东西 实际上存在。 但如果我只是把这个开关, 现在,我代表1。 因此,使用这种非常简单的 内存,如果你愿意,我可以代表 信息。 不幸的是,现在我的电脑 不能做所有的东西。 它只能表示两个值 在整个世界 - 0或1。 但是,什么是一个显而易见的解决方案,现在, 如果我们要扩大我们的电脑 内存和代表更多 不只是0和1? 好吧,让我们抓住另一个等位。 让我们抓住另一台交换机,另一个 晶体管,但是你会喜欢 想想吧。 让我继续前进,堵塞这 进入我的电脑为好。 我要索赔,现在,由 多使用了一点电力和 越来越这些开关 的时候,我可以代表更多这样的 信息。 所以,现在,这是1。 如果我想现在代表 2,我能做到这一点。 约定,但通常情况下,当我们将 最终会看到,有我这样做。 因此,这是0,这是1。 这将是2。 毫不奇怪的是,这将是3。 因此,以这种方式,还可以 我们指望更进一步? 如果我得到第三位,第三开关, 什么是最高的数目,我现在能 计数到0? 所以,如果我从0开始的,对不对? 因为如果我把这个光 实际上堵塞这第三个和最后 这里光线转变成我的电源插座, 那么我有能力代表 这里的任何两个值,二值化 在这里,这里的两个值 - 这样我就可以代表2倍,2倍 2,或8个可能的值。 如果我开始为0,所以会计 这是0,1,2,3,4,5,6,7。 所以这个二进制。 这真的是那样简单。 我认为,这实际上是 相当熟悉的大多数 每个人都在这个房间里。 让我继续前进,打开一个 小的文本编辑器。 您可能还记得从小学 我们有像数百 的地方,十位, 和那些地方。 并记得,如果你有一些小数 像随机号码, 像123,你基本上 写出来的形式 这三列。 为什么是1,2,3是什么 我们知道123吗? 那么,在最左边的列,我们有 100加两个10秒,所以这是120, 加上三个1,所以这是123。 现在这个世界上,我们只是照亮 完全一样的 你已经熟悉多年, 但现在,我们列 是不是权力10。 他们只是权力2。 而这的地方,这 将是三三两两的地方,这是 将是四肢位。 因为我只用最简单的 机制来扭转乾坤 开启和关闭 - 电力流动 或用电不流淌 - 我不太有相同的表达 范围为0到9。 我们要保持它超级简单 在这个世界上的电脑。 我只有0或1 - 或关闭,或真或假。 还等什么,我现在 是1,1,1,因为每个这些 灯亮起。 嗯,这给了我一个4加2,所以 6,加上一个1,这是7。 和ERGO这三个序列 位表示数字7。 所以,这一切的时候,里面的 计算机上,已被任意数量的 晶体管,任意的比特数。 但是,在一天结束时,我们 可以代表信息 简单。 不幸的是,现在我们只算 高达7在CS50迄今为止,但 希望我们可以做一点 比此更好。 事实上,我们能做到。 假设只是我们作为人类 擅自决定,我们将 相关联的数字,如1和2,3, 4,5,6,7,与特定的字母 字母表。 由于历史原因,我要去 开始有些武断,但我 会说,人类,我们要 决定为标准,全球范围内, 65代表数以字母A 66将代表B.点,点,点。 90将代表字母Z 让我们假设,如果我们真的把一些 想到了进去,我们能想出 惊叹号与数字 和小写字母,而事实上, 其他人都为我们做到这一点。 所以,现在我们有位,我们可以 代表数字,数字 我们可以代表字母,并与 信我们现在可以开始撰写 电子邮件和打印字符 在屏幕上。 因此,让我邀请了,如果我能, 8个勇敢的志愿者 - 谁不介意不仅出现 摄像头,但在互联网上 - 来这里,代表八个这样的 位,而不是这三种。 因此,如何对一,二? 如何约三个? 如何四光 蓝色,五就结束了吗? 关于有人在这里吗? 在前面六,七在前面, 和前八,以及。 所以,我正巧有备而来 一大堆纸条。 这些纸片是数字 代表哪些列 你们要代表。 所以,你会是 - 你叫什么名字? 学生:安娜·利亚。 国宝马兰:安娜·利亚 将〜128秒的列。 你是谁? 学生:克里斯。 国宝马兰:克里斯将 是64S栏。 你是谁? 学生:丹。 国宝马兰:丹 是32S栏。 学生:Pramit。 国宝马兰:Pramit的 16列。 学生:莉莲。 国宝马兰:莉莲将787-8。 学生:吉尔。 国宝马兰:吉尔会 是的4s列。 学生:玛丽。 国宝马兰:玛丽将是2秒,? 学生:大卫。 国宝马兰:大卫将 是1S柱。 所以,如果你们能加强一点 着让每个人都可以看到。 你们没有看到的是, 这些纸条是一个 即将小小抄 这些8位指示为 举手或不 举手。 如果他们的手,他们 较1。 如果他们的手撑下来,他们 代表一个0。 同时,我们的观众应该是 能够弄清楚,在此基础上 测绘,什么三个字母的单词,这些 人来说,拼出来。 因此,在短短的时刻,你要 关闭的背面的第一行读 你小抄,你要么 要提高或没有举手。 如果你是一个1,你提出,如果 你是0,你站在那里 笨拙,就像这样。 去。 什么样的数量,首先, 这些家伙是代表? 66。 66,对不对? 我们有一个1在64S栏, 一个1在2S列。 这给了我66,所以出现 代表B.所以 你们有拼写 - OK,这就足够了。 B. 所以,现在让我们走上 我们的第二个字母。 去。 谁是最快的,在数学在这里? 因此,79。 同样,如果我们添加的所有列 有一个1,目前,只是 像我们以前那样用最简单的 7的例子,我们现在 得到79号。 根据我们的映射是 字母O,所以我们几乎没有。 B,O.最后,走了。 他们代表了什么呢? 减共识。 这只是一个绝对的杂音。 是的,它实际上是87。 好。 因此,如果我们现在映射备份 - 让我们 开始调用我们的ASCII表, 美国标准 信息交换。 这给我们的信 - 不“博”,但“弓”。这是一个完美的 你们采取了弓的线索 背部和头部。 非常感谢。 [掌声] 国宝MALAN:你可以留住他们。 实际上,虽然会有人 像台灯,也? [HOOT从观众] 国宝马兰:台灯? [笑] DAVID马兰:真的吗? 台灯为大家? 好的。 所以非常简单的开始 原则,我们现在已经不能只算 从0一路攀升至7日,我们已经 只是投入更多的假设 位或更多的灯或多个晶体管 这个问题,我们可以 代表越做越大的数字, ERGO越做越大范围 字母,英语等。 只是让我们今天的信心 同样我们可以开始 代表图形和视频的,任何人 其他媒体,我们数 今天熟悉。 因此,这是CS50,并在这个类 旁边的你,再次,很多 同学们少 你体验。 我提到这一点,只是因为相当 通常,包括最近为一体的 大一咨询活动和 去年春天的大二学生咨询 活动中,我们经常听到学生的声明 上来时,好了,到CS表 我一直在思考采取这一 介绍类,但我不是一个真正的 电脑的人。 或者,但大家肯定 知道比我多。 我把这个最大的字体 可能,传达这个消息, 这不是事实的情况下。 如果你想知道,应该 事实上,我会在这里? 实现,不仅是这门课程的 标题介绍电脑 科学,它是计算机概论 科学一,所以确实是有 第二次这样的介绍。 所以,其实你不 在错误的地方。 而在今天我的目标是 缓和任何这样的顾虑,你 可能有,但也来画一个 什么样的店图片 学生少,更舒适 都在这个过程中。 但首先,一个字一个讲义 你也有今天,其中 一些常见问题。 它已经有一段时间我们的愿景 现在引入一个新的分级 到这门课程的选项 - 即,SAT / UNSAT。 哲学对我来说,它是很多很多, 更重要的是 在这个类中的学生从事与 材料,受到挑战 材料,并担心远远少于约 力学的实际分数 和信学期的成绩 结束,而是真正拥抱 当然,它的材料。 真的,这种感觉,更普遍的是, 什么有趣起来, 感觉到有挑战和奖励,但 没有失败的恐惧。 而事实上,这也是一个经常性 在这方面和其他入门的主题 在其他领域的课程,你有 当它涉及到这个诚惶诚恐 把一个人的脚趾 不熟悉的水域。 我早在1995年, 是大一新生。 我非常致力于成为 一个州长集中在这里。 但我始终长大带着几分 在计算机科学的兴趣。 我总是很好奇。 但在当时,甚至,我有这种恐惧 甚至踏上CS50,这么多 所以,我什至没有购物 它大一。 唯一的原因,我把一只脚踩在 门大二的时候是因为我 被允许把它的通过/失败。 但是,即使通过/失败,我需要得到 鼓起勇气预约 教授与当时Kernehan, 把这个大的纸,问 他为他的签名和他的 允许探索 这些陌生的水域。 但得益于近年来 这样做时,CS50,当我们 用于合格/不合格,同样会 你的同学数十或数百 都上来了,上帝保佑,在 桑德斯面前这种形式,即 在一些头脑表示无力, 我敢说,执行 是你的同龄人的水平。 这是荒谬的,但我认为 有这种心态。 而且也从来没有在这种文化 SAT /不满足,或通过/失败更多 一般来说,在这个过程中, 还是真的在这个校园里。 所以今年我们改变了这一切。 我会欣喜若狂的一半 这个类或结束 占用了CS50 SAT / UNSAT。 在一年的时间里,这将是美好的 如果几乎每个人都。 此后,或许我们将继续努力 在哈佛大学的字母等级 学院更普遍。 但是现在,我们将做到这一点在我们的 自己的球,我会由衷地 鼓励您阅读这些常见问题 您认为合适的提问,使 希望你,不像我,不是很 有同样的恐惧因素时, 探索大概是什么 一个陌生的地方。 那么,什么是CS50? 这是一个引进的 知识产权企业的计算机 科学与艺术的编程。 但是这究竟是什么意思? 那么,迄今为止,我们谈到很简单 代表信息。 但是,假如我们真正想要 用它做什么。 我们需要引入的概念 我们就这么叫的一种算法。 算法的一个程序,一个进程, 一组指令,用于 做一些事情。 算法可以是 超级简单的。 比如,中,例如,其中一些 你可能熟悉的是这样的 这里的事情。 所以这本书越来越 过时,但曾几何时, 包含了一大堆的名字 和电话号码。 的确,如果我想找到 有人在这个电话簿 - 说,一个叫迈克·史密斯 - 我能找到迈克·史密斯在任何数量 相当简单的方式。 我可以从头开始, 移动到第1页,不存在。 第2页,不存在。 第3页。 是算法, 过程中,是否正确? 因此,它是正确的,对不对? 我做样的白痴 这种方式,但最终我会 找到姓S,希望麦克 在这一节中,我将成为 做我的算法。 但可以肯定它不是直观。 几乎每个合理的人在此 房间也不会那样做。 你会怎么做呢? 你已经直 到中间,对不对? 大致中间。 而你知道,哦,这些都是女士 于是,姓氏是史密斯,麦克·史密斯 是不是清楚,然后在 书的左半部分。 他一定是朝 在右边的s。 而在这一点上,虽然我们大多数人 不这样做,我们就可以在现实中 这个问题,从字面上撕成两半。 [欢呼和掌声] DAVID马兰:谢谢你。 [欢呼和掌声] 国宝MALAN:你可以从字面上颠覆这个 问题的一半,留下我, 从字面上看,有问题的一半大。 因此,如果这个电话簿 - 大概是 - 约1000页,现在 它只有500。 如果我这样做,我再次意识到,哦, 该死的,我走的太远,我在TS 节中,我同样可以 - 比喻或字面上 - 翻录电话簿 - 它实际上是 容易得多。 我可以从字面上撕裂电话簿 一半,现在离开我 不是1000,不是500 - 250页。 我可以去125,其中半数, 一半一半, 直到最后我会留下 只有一个单一页面上。 [笑] 国宝马兰:这是 第一部分失败。 一个单一的页面上 迈克希望。 现在,这些不同的算法可以 排序评估或评估 方式不同。 第一个是非常线性的,对不对? 打开网页,看看迈克。 打开网页,看看迈克。 这是非常线性。 如果有一个页面在手机 本书中,它可能会采取我 一个第二,一个单位时间, 但我们的计算时间。 所以,我可能会得出这样这条线 这里的大小,从而 问题增加从左至右 - 电话簿变小做大 - 和时间将会增加 垂直轴,更大的 电话簿。 因此,n是只是一个普通的变量 计算机科学家用来代表 一定的价值,一些数字。 所以n的线性增加。 ,它的规模翻番的电话簿 要带我的两倍多 时间,最有可能的是,找到迈克。 现在,我本来是智能 这一点,对不对? 我得到迅速无聊。 可以这样做三三两两。 所以两页,然后四, 六,八。 我可以通过它开始飞 快一点,尽管轻微风险 超调迈克,但该曲线是不 将是所有不同。 它仍然将是一条直线 线,但速度稍快。 但是我做了什么? 其实,我做了一件 从根本上更好。 我实现了,我们会打电话给数 时间日志,这个绿色的n 行有很多,很多,很多 直边少。 而相反,它表明,因为它排序 曾经如此逐渐趋于无穷大, 我其实可以采取1000页 电话簿,其规模翻番 明年 - 因为想了很多 越来越多的人进入城镇。 所以,现在我已经得到了2000页,但如何 很多步,更聪明 算法要采取? 只有一个问题。 我的意思是,这是一个强大的东西。 如果我们去到4000页,明年 这是要带我 只有两个更多的步骤。 所以,你可以扔掉越做越大 我的问题,不像网页 投掷越做越大的问题 在谷歌和Facebook的每一天 这个世界,它不 这样一个大问题。 因为我把更多的思考和关怀 我的算法来解决 有效的问题。 事实上,这将是一个 本课程的目标。 你会的,一路走来, 学习如何编程。 您将学习如何编程 任何数量的语言。 但是在一天结束的时候,当然是 解决问题和获得 更好地解决问题 - ,如 这样的情况下,解决问题 更有效率。 现在,因此,到目前为止,我们已经做到了这一点 相当直观。 让我们的介绍相当的东西 一般称为伪代码。 所以,我们最终会得到的, 在这个过程中, 各种编程语言。 但今天我们会做类似英语 语法,其中你只是客气的说 你是什​​么意思,但你永远是这样 简洁,你不用担心 语法和完整的句子。 你只是表达自己 尽量简洁。 因此,伪代码类似英语 语法代表 一种编程语言。 为此,让我提出, 我们现在模拟的过程中,我们只是 计数的东西一点点描述 不同,这一次采取了 看在这5分钟的视频制作 在TED的朋友, 定义什么是伪代码,定义了什么 算法的思想,甚至 虽然这个例子中,你将要看到的 ,本身,超级简单,它的 要开始给我们的精神 模型中,词汇,其中 做多,复杂得多 算法相当快。 [开始播放视频] [音乐播放] 旁白:什么是算法? 在计算机科学中,算法是一个 解决一些指令集 问题一步一步来。 通常情况下,算法执行 电脑,但我们人类有 算法,以及。 例如,你将如何去 清点人数 在一个房间里的人吗? 好吧,如果你像我一样,你可能会 在每个人点,一个在 一时间,从0计数。 1,2,3,4,等等。 嗯,这是一种算法。 事实上,我们试图表达的 更正式一点的伪代码 - 类似英语的语法类似于 一种编程语言。 让N等于0。 每个人在房间,设置 N等于N加1。 如何解释这个伪代码? ,线一条声明,可以这么说, 一个变量N和初始化 其值设置为0。 这意味着,在开始 我们的算法,东西 我们点的值为0。 毕竟,在我们重新开始计数, 我们还没有算什么呢。 调用此变量N 仅仅是一个惯例。 我可以把它称为几乎所有东西。 线两条demarks的开始 循环中,一个序列的步骤,将 重复一定的次数。 因此,在我们的例子中,我们正在采取步骤 计数在房间里的人。 之下线两条线3条, 这究竟是如何描述 我们会去计数。 缩进意味着它 一行三人将重复。 那么,什么的伪说 之后,从0开始,对于每个 人在房间里,我们将 N的增加1。 现在是这样的算法是否正确? 好吧,让我们一鼓作气,有点。 它的工作原理,如果有 两个人在房间里? 让我们来看看。 第一行中,我们初始化N到0。 对于这两种人的, 我们再增加N的1。 因此,第一次通过 循环中,我们更新n从0到1。 在第二行通过同一 循环中,我们更新n从1到2。 因此通过此算法结束,n为2时 这的确匹配的数量 房间里的人。 到目前为止,一切都不错。 怎么样一个角落里的情况下,虽然? 假设有0人 在房间里 - 除了我, 谁做计数。 第一行中,我们初始化N到0。 不过,这一次,行三不 执行,因为没有一个 人在房间里。 所以N保持为0,相匹配的 房间里的人的数量。 很简单,不是吗? 但是,计数一次一个 是非常低效的,也没有吗? 当然,我们可以做的更好。 为什么不能指望两个人在一个时间吗? 而不是计数1,2,3,4,5,6,7, 8,等等,为什么不计数,2, 4,6,8,等? 这听起来甚至更快, 它肯定是。 让我们来表达这种优化 在伪代码。 让N等于0。 对于每一对的人在房内, 设置N等于N加2。 很简单的变化,对不对? 而不是数人 我们的时间,而不是算 他们两个在同一时间。 因此,该算法的两倍 作为作为最后快。 但它是正确的? 让我们来看看。 它的工作原理,如果有 两个人在房间里? 第一行中,我们初始化N到0。 对于一个对人, 我们再增加N的两个。 因此,该算法的末端,N是2, 这的确匹配的数量 房间里的人。 假设下一个有 0人在房间里。 第一行中,我们初始化N到0。 像以前一样,三线不执行 ,因为没有任何对 在房间里的人。 所以N保持为0,这的确 的数目相匹配 房间里的人。 但是,如果有三个 房间里的人吗? 该算法票价如何? 让我们来看看。 第一行中,我们初始化N到0。 对于那些人一对, 我们再增加N的2。 但是然后呢? 是不是又对人 在房间里,所以没有线两条 不再适用。 因此该算法的末端,N 仍然是2,这是不正确的。 实际上,该算法的说是 越野车,因为它有一个错误。 让我们纠正了一些新的伪代码。 设n等于0为每对 人在房间。 设置N等于N加2。 如果一个人仍然未成, 设置N等于N加1。 为了解决这个问题,我们已经 介绍,四线, 条件,否则称为分支 如果有一个只执行 人,我们不能 与另一对。 所以现在,是否有一个或三个 或任何人在奇数 室,该算法 现在指望他们。 我们可以做得更好? 嗯,我们可以指望3S或4S,甚至 5秒和10秒,但除此之外,它 要得到一点点 困难点。 在一天结束时,是否执行 通过电脑或人类, 算法只是一套 的指令 要解决的问题。 这些都是只有三个。 你会解决什么问题 的算法? [END视频播放] 国宝马兰:这是唯一的一次 我会以卡通的形式出现。 但离开了这个故事, 现在我们可以做的更好? 三五成群,我方要求,我们可以指望 人要快得多,但我们可以 从根本上做比这更好的吗? 我敢打赌我们能做到。 如果我们引入了一点我们自己的 伪代码在这里,我向你求婚 我们能够实现这样的一条线。 我们不会指望人们 一,二,三,四。 我们不打算去两个, 四,六,八。 我们打​​算这样做从根本上更好 通过重新思考这个问题,并在此 的情况下,利用一个原本 未充分利用的资源。 在短短的时刻,我希望你能原谅 哄我们站立在 的地方,在这一点上,我们要 请各位在你 心目中的数字1。 然后,你会越来越多地 笨拙,随着时间的推移,找到 是谁站在别人,结合 您的数字加在一起 通过将它们添加。 你坐就是那么回事出赛 下第一,其他人 重复。 所以换句话说,播种所有 你有数字1,然后 ,结合那些1到2和2 到4S,与大家越来越 坐了下来,我们应该在年底 这个算法,只有一个贷款 谁没有坐下的速度不够快,但灵魂 谁拥有整个观众数 在他或她的头脑。 所以,如果你想,让我们继续前进, - 第一个步骤 - 中站起来的地方。 和执行。 [人群潺潺] 国宝马兰:你知不知道 劳伦是什么? 729? [人群潺潺] 国宝马兰:没事吧? [人群潺潺] 国宝马兰:所有的权利,我们应该 即将结束。 我们看到一个家伙仍然站在这里。 还有谁需要进行配对? 如果你们要配对了。 有人往上顶。 我为什么不伸出援助之手。 对于极少数的人,谁仍然 站立,什么号码呢,你 有在你的心中吗? 学生:78。 国宝马兰:78加 - 谁站在这里吗? 学生:39。 国宝马兰:加39。 再加上还有谁仍然屹立不倒? 81? OK,还有谁? 另外有81个? 哇。 然后在后面? 学生:49。 国宝马兰:49,加? 学生:98。 国宝马兰:98加? 那是别人吗? 12? 良好的工作。 [笑] 国宝马兰:哦,112 - 哦。 干得好! [笑] [掌声] 国宝马兰:其他任何人 仍然站立? 对不起? 学生:99。 国宝马兰:99。 其他人仍然站立? 而这里的学生总数 实际上是,根据 - 你有多少? 呵呵,实际人数 室,根据帐户 教学研究员在做什么 在每个人的方式,为729。 因此,出一屋子的哈佛学生 算自己的人, 答案是637。 [笑] 国宝马兰:如此接近。 但仍。 OK,所以这是一个教学 此刻,对不对? 现在这是我们形容为一个错误。 沿途的某个地方,我们做了一些 算术错误,或者是有人坐了下来, 或向左,或出事了。 但是,这很好。 因为,我们甚至还在 八九不离十了。 我认为,我们得到了错误的 解答了很多比我快将有 使用线性方法我。 因此,让我们假设其实我们没有得到 正确的,但认为现在大概什么 每次发生的,与我 自己的天真指向算法。 一,二,三。 如果确实有729人或637人 在这里,我将采取 从字面上637或729勾缝 手指和 我总计数递增。 我可以做的更好一点 去二,四,六,八, 这样的速度的两倍,甚至三倍或 翻两番,这取决于如何我可以 做到这一点在我的脑海计数。 但是,这种方法了你们 是根本不同的。 因为在开始的时候, 大家站了起来。 因此,所有729。 然后从字面上一半 你坐了下来。 在这之后,另一 你的一半坐了下来。 在这之后,另一 你的一半坐了下来。 和的总次数,你 你们可能已经坐了下来大约是 八,九,十总次数, 这取决于我们的总数是什么。 我们可以做排序 这是另一种方式。 如果我们有1,024人在房间里, 总数的时候,你可以 减半1,024人是10。 现在想想,在 其他方向。 假设,可笑的是,我们不得不说, 四十亿人在这个房间里, 稍大的房间。 我们已经多少次 通过此算法,使得半 该类坐下? 它只是要带32个这样的 操作,即使在一个类的大小 四十亿。 为什么呢? 因为4亿到以下两个 亿元,去到一百万,去 500万元,250 万,点,点,点。 我只能这样做,师约有32 时间,在这一点上,大家除了 一个人会罚站。 而这,也同样是一个功能强大的排序 想法越来越多,我们将尝试 利用在这个过程中,并在 编程和计算机科学 一般来说,这些病菌的想法与 然后,我们可以解决问题了, 更有力。 因此,我们开始很简单 伪代码和一个男人在一个房间里,但 现在整个房间挤满了人 我们做了从根本上更好。 好吧,让我们从现在过渡 伪代码的一些实际代码。 这种语言,你即将看到的 被称为JavaScript和 我们会回到这个走向 学期结束。 它是一种编程语言, 使用让网站和其他类似 软件的这些日子。 而我们也使用它,这要感谢朋友 我们在斯坦福大学进行编码 这里的一些隐藏信息。 这是艺术的隐秘, 可以这么说,在那里你可以隐藏 否则出现的信息 噪音或一个完全不同的 图像完全。 但在这个特殊的图像嵌入 的确是一个秘密的各种各样的消息。 因此,让我继续前进,拉起 相同的图像在这里,这 在Web浏览器的时间。 我要挥挥手的一些 今天的细节,特别是 对于那些你谁,这看起来像 只有JavaScript,但希腊,作为一个 完全陌生的语言。 但是,这是一个例子的 一种编程语言。 现在来看,信仰 这第一行代码 - 和代码,我只是意味着文本。 我可以从字面上输入的文本 到Microsoft Word中,如果我有 合适的软件,然后 用它做什么。 编程源代码,编程 代码,是真的只是文字,它 看起来不同,基于什么语言 你使用的,不像英语 西班牙和俄罗斯都期待不同 当你输入你的键盘。 所以这第一行,现在 信仰,只需打开一个图形 互联网,这种吵闹的图形 我们刚才看到的。 这下一行,这里是一个例子的 循环,我们居然看到了同样的 在TED视频行话。 一个循环是再次发生 又一次,即使这 绝对看上去很神秘, 关键字,以及一些括号中,并 一些分号。 我们会回来用不了多久, 但循环本质上是有 讲程序,遍历所有 那些嘈杂的点,从左至右 右,从上到下。 因为在一天结束时,一个图像 喜欢这样 - 实际上,你可以 样的这台投影机上看到它 - 真的只是一个网格点。 因此,我们可以识别每个这些点 由一个坐标的x,y,以及与此 程序,我们现在可以开始 做这些点东西。 所以我要继续前进在这里, 做的是我要做出一些改变。 首先,我要继续前进,摆脱 所有,绿色和蓝色的 噪音,我要继续前进 并键入以下 诚然,语法晦涩。 IM的图像。 设置蓝色位置X,逗号, 位置Y为0。 换句话说,我想就 关闭所有的蓝色 照片中的点数。 我要继续前进现在点击 运行/保存“按钮,你会 右侧的通知, 生成的图像出现。 现在,它的超级绿色,但是这并不 令人惊讶的,因为我从字面上变成 关闭,或者通过使1 0,所有 照片中的蓝色。 好了,现在让我们做多一点。 IM的图像,X,Y,点setGreen。 只是意味着左迭代 到右,从上到下。 把它关掉的值 为0,以及。 保存。 而在投影机上,你不能真正 真正看到任何东西。 我的笔记本电脑屏幕上,如果我只是在同行中 以正确的方式,我可以看到一个有点 形象,因为他们仍然 一些红色在那里。 如果你曾经听到的缩写RGB - 红,绿,蓝 - 它指此组合物 使用的图像 仅这三种颜色。 而现在,我们已经扔掉 全绿,全蓝,但 没有太多的红色。 所以,让我杀青的红色。 我怎样才能做到这一点呢? 好吧,首先,我要问 这一计划的一个问题。 我要继续前进,让我们称它为 一个变量,就像代数。 你可以有x或y或z。 我要声明一个变量 就是说,把这个变量, 暂时的值 图像的getRed X,Y值。 再次,我们会回来的所有 这些细节在将来。 但现在,只需要信仰 此行是要求程序, 红色的X,Y值是什么? 在那个特定的点? 然后我会做一些事来。 然后我会做图像点集红色 在X,Y,Y,但这个时候我要去 提高做冲次, 比方说,10。 因此,增加了10倍。 让我现在缩小 点击可以运行/保存。 瞧,这是有整个 一次,尽管我们人类的眼睛 不太可能看到它。 所以,现在是真正的代码, 例如,一种语言,我们就来 回到之前长。 但是实现,特别是那些你 没有这样的经历,这是相当 很快,我们自己将 写出这样的代码存在。 事实上,工具与你 有些熟悉,或许是CS50 自己当然购物工具,这是 实际上一些今年夏天重新开机 CS50自己以前的学生, 现在打开TFS。 因此,这恰好是建立了一个网站 在一个叫做PHP语言。 它使用一个名为mysql的数据库,事情 我们将得到我们的手 后来在学期脏。 但相信它或没有,甚至一些 这样,最终减少对 最简单的循环和条件 分支,如我们看到的只是一个 刚才在TED视频。 我想我会做什么,现在是份额不 只是我们的工作人员取得了 校园,而是东西 以前的一个学生 - 三 学生,其实 - 过去这一年,塞拉利昂,但以理, 山姆,最后一名没有事先 编程经验 当他拿着CS50。 而且,他们为他们的最终项目 展出,在CS50博览会, 应用程序名为wrdly,这是一个 他们的基于Web的程序 这个视频,我想我会分享 究竟什么是让你感受到 可能术语年底。 [音乐播放] 国宝马兰:这是从周零 第12周在过去的一年。 [掌声] 国宝马兰:作为传情,也真的 磨你的胃口是什么 可能的话,你可能已经看到了, 或可能很快就会看到,market.cs50.net, 新的工具,课程的团队 一直在努力,这次在 与哈佛学生 机构,例如,从今年起 并继续希望到这个 夏天来临,你就会有一个标准 在校园的机会,购买和 卖你感兴趣的东西。 通过HSA合作,你会 也可以掉落物品 HSA在一些实体店 在未来的点,以 代理的事情,尤其当你 毕业后不一定要 丢弃的东西,但实际支付 转发给乡亲可能会跟随你的人 在校园里。 所以来。 但有点更具体而言,一个工具 CS50在最近的问世 年,其中有些人可能是 你熟悉和其他可能 现在,谷歌搜索,你会在CS50.net/2x 找到一个链接到一个Chrome扩展 这是示范如何可以 使用JavaScript,同样的语言,我们 艾菲尔铁塔前的时刻, 实施2X播放速度 为所有哈佛的iSites视频。 这是内置 到CS50自己的视频播放器。 但是它也同样,如果你开始挖 到源代码中,我们将 愉快,你会怎么看 你甚至可以解决这样的问题, 网站加速部件 你已经非常熟悉。 所以一个字现在在球场上, 的期望和什么样的未来。 在一般情况下,我们确实会聚集在这里 在星期一和星期三 - 尽管 这个星期五,我们将齐聚一堂,因为 购物周 - 下午1:00至下午2:00,虽然 有时直到2:30。 鉴于,因此,你可能会想要或 下午2:00,必须采取一些类 以后,甚至在此之前,不实现 当然是支持什么叫做 同时招生,据此,我们将 支持一份请愿书,广告牌和 居民代表您院长,如果 你在此有冲突的地方 下午1:00至2:30的范围内。 头到该网址在线 更多的细节。 但是,在所述支撑结构 特点CS50,为学生 越来越不舒服一样,我们 具有明显的轨道区段。 这是几个星期的假,但 用不了多久,你会问到 您的舒适程度。 你在那些不太舒服, 更舒适,或 介于两者之间? 我们将有三个不同的 迎合的轨道 恰恰是那些观众。 所以你应该在任何时候,在长期 甚至觉得像你竞争 反对任何学生有更多 或背景比你少。 事实上,当然,就是要 更协作和多 比这更开放。 在条款的问题集,你会 发现,那就是,除了 每个星期的问题标准版 设置,也往往是“黑客 版“意味着要针对性 在5%至10%左右的 的确是在那些人口 更舒适,更想了解更多 比标准的一个挑战 版那的pset预计。 那些更多细节 发现在教学大纲。 但也有细节可以发现 课程下旬天。 通常问题集 周四到期。 但是,您可以扩展您的许多 截止日期从周四至今年秋天 周五简单地满足我们一半, 可以这么说,回答几场热身 的一周的问题中的一些问题 集,它会自动 然后给你一个额外的24小时。 我们也会下降的最低 得分,每教学大纲。 为了给你的感觉是什么问题 集 - 因为它的确是 课程的问题集 几乎每一个最终定义 学生的经验,更何况比 讲座,超过的部分,更多的 所以比大多数其他任何 当然方面。 例如,去年,我们开始, 我们将在今年开始,从零开始。 特别是这个星期五,我们将使用, 短短一天的时间,图形 编程语言,我们会 通过拖动开始编程 仅丢弃的拼图碎片 组装身体是否有意义 这样做的逻辑。 下周,我们会很快过渡到 C,一个相当老了,但非常小, 简单的语言,使我们能够 真正从0到60的过程 短短几个星期,然后过关 那些同样的技能和知识 基本的编程结构成 更高层次的语言,如PHP, JavaScript中,而其他人还在。 去年,第三pset的过程中 密码学, 特定领域的应用,使我们 要求学生实施任何 大量密码,程序 争相解读信息, 加密。 对于黑客版,相比之下, 我们给黑客学生档案 从一个标准的Unix计算机 用户名和密码, 其中后者是加密的, 我们这些挑战黑客 学生进行解密,尽其所能, 这些密码,仍然在那 同一个域。 争夺,一个游戏,一些 你也许熟悉。 取证片,我们要求学生 一直恢复数据 否则从我自己的数字删除 相机的闪存卡, 其实写软件要弄清楚, 这里的0和1 ,数码相机,以前 由JPEG图形? 去年进行排序的一个挑战 涉及书面最快的 拼写检查的可能,竞 对朋友和同学,如果 他们想。 实施赫夫“蓬蓬, 一个压缩程序。 然后结束本学期CS50 金融,一个基于网络的应用程序, 您创建了一个ETRADE网站 购买和出售股票,所以 说话,实际上拉动近 实时报价雅虎 融资渠道。 我们没有做什么去年 一个问题集,剩下的 仍然喜爱。 如果你从来没有去 shuttle.cs50.net,你会看到一个用户 接口有点像这样。 但两年前,类 使用谷歌地图和实施, 谷歌地球插件和一点点 的精明驾驶校园周围, 因此,本场比赛的目标是, 你可以看到一些面孔, 是推动校园周围寻找 人员,教学研究员和CAS, 当你做什么,把他们 到你的穿梭巴士。 实际上他们没有在这里似乎是, 所以我们要进入一个作弊的代码。 [笑] 国宝马兰:我们走吧。 好的。 这里现在是工作人员 股价在整个校园。 正如你可以看到,在右手 屏幕的一侧,穿梭巴士 拥有空座位。 的目标是写 代码与模拟 驾驶拿起下降 关闭乘客。 那一个,也使用的语言 称为JavaScript。 因此,实现该方案一样,将 在我们的同样的轨迹 今年,以及。 现在,在条款,额外的支持, 我们的办公时间。 正如你可能已经看到在自己的房子 食堂或在安尼伯格, 我们会在房子里用餐 大厅每周四晚 - 莱弗里特Pfoho,艾略特和安嫩伯格 今年,下午8:00至下午11:00。 而我们认为我们会做好今年 是有点不同的东西。 如果你听到的传言去年 这是一个有点太紧张,这 今年的办公时间,我们将介绍 下周,将是更加有机, 抵达后,你会 派遣到一个特定的表 多个工作人员在那里等待, 我们会做的事情更 有机 没有更多的队列,没有更多的iPad,但 而有更亲密 只是围着一张桌子交谈 八左右的学生,使我们 近似​​的另有的触感 将是一个小得多的集体。 我们提供的,以及这些事情,我们 称为演练,视频拍摄 提前一个课程的教学 的研究员,Zamyla,她 引导您通过本周的问题 套,提供的技巧和窍门 摆在面前的挑战。 反之,习题集后 由于今年我们还将释放 小卡子要求验尸, 实际上走你通过 代表性的解决方案,包括好的和 坏了,通过它,你可以推断出如何 你可以有或应该有 实施自己的解决方案。 而我们将第一次提供 今年,特别是 这些学生利用自己的人 当然其他 资源,但仍然挣扎 所有太多,当然 本身将这些学生配对, 资源允许,以便与导师 你有一个更亲密 比房子食堂的机会 让一对一的援助。 现在在一些人的最终一瞥 的高端游戏在望。 你可能熟悉 CS50黑客马拉松。 那么,即将在今年12月,从8:00开始 PM至7:00 PM,在开始 读期间,将有机会 以聚集与同学 - 这将是在晚上9:00左右 - 在此期间,你潜到你的最终 项目的实施旁边 同学,朋友,和食物。 这将是上午01点左右,当 首批食品抵达。 这是上午4:00左右, 特别是今年在CS50黑客马拉松。 但真正的高潮当然是 为了CS50展,校园范围内 展自己的最后项目, 家人和朋友都 邀请,作为我们的招聘人员 我们从行业的朋友。 ,例如,这是一个一瞥 谁参加过2,000人 过去几年。 像这样的表达式并不少见, 同样你 同学们高兴的事情 你已经完成。 而实际上,为此,我们有 一开始的长期事件,以及。 如果这样吸引你的东西,或 你至少好奇什么 这一点,知道一个新的传统 当然,被称为天CS50谜。 这是一对夫妇提起 几年前真正信号校园 是不是该计算机科学 编程,它肯定不是 拥抱只有那些学生 有以往的经验。 这是真正的问题解决 更普遍。 所以益智日,在过去的几年 多年以来,已发展成为一个不错的 合作伙伴与我们的朋友 脸谱,由此就可以神话般 河对岸的奖品和比萨饼 I-实验室这个星期六。 有两个或三个前往该URL 朋友,如果你想参加 在这个新的传统。 所以我想问问,你保持一个 记住的东西,只是我们已经有了 两分钟的剪辑 今天闭幕。 73%以上的是要记住的数字。 蛋糕,也将等待外 耳堂,因为我们在短短休会 夫妇的时刻,这是一个传统 当然,也是如此。 但是,这是关键报价从 课程的教学大纲,要牢记。 最终在这个过程中重要 与其说是你在哪里结束 相对于你的同学,但 你,在第12周,结束了相对于 自己在星期0。 但窥,我们将离开你 在这里,今天这是最后一个在这里 通过我们的但以理,谁做的 刚才wrdly视频。 我离开你这个一瞥 什么样的景象。 我们这样做,如果我们能有CS50 从前面的房间的工作人员 最多的阶段来作画所有 以更多的视觉画面 等待你今年 - 越来越尴尬。 我们将结束 这里的屏幕上。 [音乐播放] 国宝马兰:这是CS50。 [MUSIC - 马特和KIM,“这是正常的” 扬声器1:我爱比猫多CS50。 扬声器2:Whoaaaa! [笑] 国宝马兰:那么,这是CS50。 上周五,我们会​​看到你。 [掌声和欢呼声] 旁白:在接下来的CS50,舞台 演示不按计划进行。 DAVID马兰:我们希望找到迈克 史密斯在本电话簿。 嗯,你的直觉是什么? 我可能会跳大致的中间 电话簿,往下看,看到 在M我,我现在知道,迈克 史密斯不是到左边。 他必须是正确的。 所以在这一点上,我们 可以从字面上撕 - 在这一点上,我们可以从字面上撕裂 - 在这一点上,我们可以比喻 撕电话簿一半。 [UKELELE拨弄]