所以這是我最大的樂趣 今天在這裡歡迎大家
第一個講座 的，好了，介紹
以計算和編程。
又稱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--，說。
然後經常有 白盒，你
可以鍵入或拖動某個值成。
這就是一般的 所謂的參數或參數。
It是改變的一種方式 一個謎的默認行為
片或一個功能以便它 定制的東西對你好像說，
你好，世界還是你好，安迪還是你好， 傑森或其他一些句子來代替。
>> 如果你想說，一個 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。
蛋糕現在擔任。
>> [音樂]