[視頻回放] [汽車車門關閉] [汽車發動機起動] [音樂播放] 右沿搜索-Moving 美好的時光和一個好消息。 有了良好的朋友,你不能輸。 - 這可能會成為一種習慣。 -Opportunity敲門讓我們 只要伸出手抓住它。 是啊! -Together我們逮到它。 -We'll順利調漲, 公交車,或黃色出租車吧。 -Dammit。 -We're正確的順動。 -Footloose和花式免費。 -Getting有一半的樂趣。 跟我來分享。 -We're正確的順動。 -We're要分擔負載。 - 我們並不需要一個地圖 獲得本次車展的道路上。 - 嘿Fozzy,我希望你能左轉 如果你來到了一個岔路口。 - 是的,先生。 左轉,在三岔路口。 左轉。 - 我不相信。 -Cruising沿著正確的發現 在高速公路上的燈光。 - 和你的方式或我的方式。 - 所以相信我的導航。 - 電影恆星浮華汽車 和壽命與自上而下。 -We're強攻大陵。 是啊,暴風雨是正確的。 是否應該下雪? 不,我不這麼認為。 沿著正確-Moving。 -Footloose和花式免費。 -You're準備好大的時間。 -is它為我準備好? 沿著正確-Moving。 運動沿著正確的。 運動沿著正確的。 運動沿著正確的。 - 我想你最好靠邊停車。 - 是的,先生。 [結束播放] [掌聲] DAVID J.馬蘭:這是CS50。 這是第0週的端部,但 一段美好友誼的開始。 我們很高興能成為 這裡在耶魯大學 對於第一次與我們 朋友Scaz,和Jason,和安迪。 的CS50的TF的所有40 和CA在這裡在耶魯大學。 而這一切都是你的。 而事實上,它可能是時間用於: [掌聲] 所以,儘管大部分的演講 的確將在劍橋今年, 現實情況是,由設計, 很刻意的CS50, 我認為,我們正在接近的地步 技術和教學上, 它可以是一個優越的教育 經驗,與一些 課程的材料在網上的。 事實上,reality--如果我相信 這philosophically--是講座 是不是一個特別 為提供有效的手段 相當複雜的信息。 當然,在小時 再加上大跨度的時間。 事實上每隔幾個minutes-- 我記得自己在college-- 你掃開了一會兒, 你錯過了一些複雜的問題, 和你走了差不多 在接下來的45分鐘。 而現實情況是,無論是 你在這裡在紐黑文和劍橋 或超越,具有簡單 暫停的能力和快進, 快退,超鏈接到相關的 資源搜索全文成績單 等是一個機會 我敢說我們的在線學生 遠遠超出了紐黑文, 為他們提供了一個機會, 要真正掌握 概念性的材料,我們 講座介紹就更好了。 但最終在CS50,是 學生的經驗 的特徵是,這麼多 在課程的習題集, 或每週編程項目, 當然各科為首教學 研究員,夜間辦公時間為首的 過程助理和教學 研究員,實際上這樣的 事件CS50謎 當天,CS50的黑客馬拉松,在CS50 公平,每週午餐,和這麼多。 所以,無論你在這裡新 紐黑文,或調整從遠方來, 今天在劍橋,和 我們將再次看到您的到來, 現實的情況是,這是 一個和相同的類。 而我們是如此興奮 在這裡一起今天。 所以在學期結束時, 無論是在這裡還是遠遠望去,以及 希望你穿自豪,令人高興的是, 或許有一點緩解, 這見證襯衫 你已經採取CS50。 那麼,我們什麼週三離開了嗎? 我們看了看 計算思維。 而這對我們蒸餾 計算機科學對,至少 現在。 但是,我們蒸餾水它遠一點為 至少三種組分的元素。 輸入,所以什麼 問題,我們正在努力解決? 產出,什麼是 回答我們希望能得到? 並表示那裡。 我們不會住在這裡 後二,甚至是ASCII碼, 之類的那麼多,但 而想當然地 我們可以代表這個信息, 因為更為有趣的部分 這些問題不只是在 輸入和輸出,但這些算法 該進入解決這些問題。 你可能還記得 有一天,我們 花了相當傳統 尋找個人上來概念 在一個相當大的電話簿,或 更普遍的數字,這些天, 只是一個非常大的數據集。 一個非常大的聯繫人列表,用 很多名稱的字母順序排序。 我們認識到,儘管我 可以簡單地解決這個問題 通過使用線性 approach--逐頁, 甚至兩公司在我們實現了時間 - 該更直觀算法 - 只是種分治 再次問題,並再次, 和again--它與每個減半 時間,給了我們這個綠色的結果。 而且它是如此更平坦 因為它表明 即使因為這個問題 變得越來越大, 既然是這樣,這些天的數據 集和reality-- Facebook和谷歌 搜索結果和 like--做我們的算法 執行一樣有效 與那些更大的叮咬 因為它沒有甚至更小的叮咬。 現在,它引出了一個問題,是什麼 我們可以真正解決類似 用這種直覺? 這種分裂和征服的? 那麼,我們可以做些什麼 今天這個樣子這裡。 我們可以好好聽講。 因此,也許像1,2,3,4, 5,6,7,8,9,10,11-- 不會是所有的高效率。 所以等待,小學。 2,4,6,8,10,12,14, 16,18等。 但是,我們可以做的更好一點? 我敢肯定,我不能 我自己做到這一點。 所以,如果你要的幽默我們只是 一個時刻,我們帶來了我們 一種算法是 剛拿到三個步驟, 但它確實如果require-- 不mind--我們所有的人站起來, 如果你會的。 因此,所有我們現在站,步 該算法中的一個是如下。 站起來並分配 自己的號碼1。 因此,在這個時間點, 從字面上每個人都在這個房間 希望在想自己, 但是笨拙,數字1。 現在,第二步,該算法是 將涉及以下內容。 步驟二,雙關 與人站立, 添加數字加在一起,和 採用的總和作為新的號碼。 快速完整性檢查。 什麼號碼是每個人想的呢? 所以2,也許除了為一體, 尷尬的,寂寞的人。 如果我們有一個奇數 人在房間裡。 所以,一個人可能仍然 數字1,這很好。 但是,一步三到這一步, 你應該坐下。 另外應該回到步驟 二,如果你會重複。 所以,如果仍然屹立不倒,你應該 在那些回到第二步。 繼續前進。 有幾個人還站著。 所以,如果仍然屹立不倒, 配對與某人。 好了,越來越少了。 有幾個人還站著。 我會幫助,如果需要的話。 記住關鍵外賣這裡,是怎麼 要快得多,這是比我計數。 所以,讓我們來看看。 我可以幫忙。 那麼,什麼數量 你還在想什麼? 聽眾:我在44。 DAVID J.馬蘭:44,所以 你先走一步,坐下。 什麼號碼,你在想什麼? 聽眾:74。 DAVID J.馬蘭:74。 好吧,繼續坐下。 還有誰仍然屹立不倒? 86。 而且是其他人還站著? 什麼號碼? 聽說67。 然後在上面? 32。 任何人都還站著 和思考的一個數字? 哦,你好。 抱歉。 就回來。 42。 還有其他人? 聽眾:47。 DAVID J.馬蘭:47。 是任何人都還站著 誰沒有被計算在內? 所以,人在一個房間裡最後的數 擁有497個座位is--所有這些 是filled--是390。 因此,這是偉大的。 我們下面將要探討的概念 在一個計算機程序中的錯誤。 但是,我們會回來的,不久。 但在理論上,可能是什麼 已經發生了剛才? 因此,即使有三大 步驟以這種算法中,每個那些 只是其中的一種大的操作。 而有這種週期性吧 原因是,如果你還站著, 你不停地從第三步去二, 一步三到二,一步三到二。 但是,保持發生 在每次迭代? 這個循環的每個循環? 發生了什麼 其他地方的房? 不僅同樣的事情,但什麼 正在發生的事情的一半,你呢? 坐了下來。 所以有謊言這種認識, 很像電話簿例如 中,如果有一半的你 每次坐了下來, 該問題已經開始 也許有400人, 然後,200人,100餘人, 然後50人,等等。 因此,我們在惠特爾下來 理論只是一個人, 想每個人的總價值。 現在現實中,一些社會動態, 還有一些算術錯誤 可能有助於這一最終的bug。 但在理論上,而我 還在指望了, 服用幾十 步驟,或幾百步驟 算呀,算 500左右的人一個屋子 應該採取更少的步驟, 因為你只能劃分500和1/2 這麼多次。 所以,就像用手機 本書實例有一天, 我們什麼有什麼 對數可以這麼說, 因此,如果我們都 統一經營, 而忽略了 另外的錯誤,我們會 已經完全實現 那樣的運行時間? 現在,為了公平起見,一種被騙了,在 我利用其他資源。 雖然這只是我的一個, 我利用數百你。 但是,這可以說是一種 例如並行處理, 或藝術的狀態非常流行 其中,電腦這幾天有 多個CPU,或者更 在技​​術上,更多個內核, 可以真正做到多 件事情,就像你 我們所做的存在,在並行。 但記得,我們 也做週三 在試圖捕捉這種直覺 並規範它的代碼。 像偽代碼。 而事實上,我希望你會 原諒,這就像在這裡80度。 所以,我要藉此 關閉只是一點點。 我以為我們會做的是轉變 現在的應用程序,從而 我們再次吸引觀眾的, 但用英語寫一個程序 像語法,與其中 這裡解決這個問題。 [視頻回放] - 它的花生醬果凍時間。 花生醬果凍時間。 花生醬果凍時間。 路亞! 路亞! 路亞! 路亞! 現在,你去那裡! 你去那裡! 你去那裡! 你去那裡! 花生醬果凍! 花生醬果凍! 花生醬果凍! 花生醬果凍! 花生,花生醬果凍! 花生醬果凍! 花生醬果凍用棒球棒。 [結束播放] DAVID J.馬蘭:--that視頻, 但它是一個有點上癮, 如果不是有點討厭。 但要做到這一點,我還以為會有什麼新 要做的就是盡量一起編寫一個程序, 為此我們需要三個志願者。 一定要舒服 相機和互聯網。 山姆,拜託了。 紫色上衣,就在這裡,上來吧。 而從在這裡,讓我 再走一回。 緋紅色和藍色襯衫,上來吧。 完善。 現在來吧。 上來吧,來吧起來。 而你叫什麼名字? 埃里卡。 大衛,很高興見到你。 如果你想坐這個座位在這裡。 這是薩姆。 你叫什麼名字? 安東尼奧。 安東尼奧,很高興見到你。 埃里卡和Sam,如果你願意 想在這裡有一個座位。 我們已經有備而來, 因為這些傢伙們發現, 是,用以使各成分 花生醬和果凍三明治。 現在,這可能是東西, 你採取非常理所當然的。 但是,我們已經給每個 我們的三個志願者 這裡 - 兩名志願者和Sam在這裡,一 的每個麵包,板,一把刀, 一罐果凍或果醬,以及 花生醬的罐子。 而這一目標在手,現在是 將要為這三個 使花生醬 和果凍三明治。 但是,我們要做的是期待 因為大家的audience-- 肯定知道該怎麼辦 這個這麼好reality-- 要我們提供 在一步一步的指示。 偽代碼,如果你願意。 所以,我在這裡玩劃線的作用。 我也有一個小的工作清單, 等作為各你,一次一個, 召喚出一個潛在的 教學,我會 把它寫下來,並根據需要重複。 然後你們要作 花生醬和果凍三明治 只有做你被告知。 因此,認為自己作為電腦。 你只能做你告訴我。 沒有假設,沒有什麼問題。 你只需要做到這一點。 那麼,誰願意冒險第一 指令製作PBJ三明治? 在陽台那裡。 聽眾:打開麵包袋。 DAVID J.馬蘭:打開 一袋麵包,如果你願意。 所以,讓我們來看看。 讓我們迭代,並獲得 更確切的一點。 良好的方式開始,但。 第二步,別人。 現在,沒有人願意當志願者。 步驟二,在前面。 聽眾:打開內 一袋麵包也是如此。 DAVID J.馬蘭:打開 麵包內袋為好。 太好了,我們學習。 更確切的一點。 讓我們得到這個工作。 是的,在綠色襯衫。 聽眾:[聽不清] DAVID J.馬蘭:麵包片。 輕輕地取出兩片麵包。 這是很好的。 第四步,別人? 在這裡,是嗎? 聽眾:[聽不清] DAVID J.馬蘭:上板放置麵包。 第五步? 第五步,是嗎? 聽眾:[聽不清] DAVID J.馬蘭:在上面of--哦,手。 將手放在花生醬的頂部。 難道這就是我的頭上? 聽眾:是啊,擰開。 DAVID J.馬蘭:和 - 說了一遍。 聽眾:[聽不清] DAVID J.馬蘭:與放 蓋旁邊的花生醬。 輕輕地放在手放在 花生醬的頂部, 擰開,並把蓋子 旁邊的花生醬。 OK,第六步。 第六步,別人。 是嗎? 聽眾:[聽不清] DAVID J.馬蘭:再說一遍。 聽眾:再次重複第五步。 DAVID J.馬蘭:和 再次重複步驟五, 這是要創建 有點問題 現在,如果我們這樣做,一步一步來。 所以,現在我們回到第五步。 輕輕用手放在上面 花生醬和鬆開的 並把旁邊的花生醬蓋。 然後抓住花生醬 並再次重複第五步。 因此,我們將覆蓋 無限循環,如果你願意。 第七步,別人。 是啊,在後面。 聽眾:[聽不清] DAVID J.馬蘭:其他的 - 論之上。 聽眾:[聽不清] DAVID J.馬蘭:在 在其他頂級另一方面。 你想只是來這兒? 我如何完成的指令? 什麼是指令的休息嗎? 聽眾:忽略的那部分。 DAVID J.馬蘭:忽略的那部分。 讓我們重新開始。 第七步。 聽眾:[聽不清] DAVID J.馬蘭:兩手抓, 反對hand--這是件好事。 其實,這是很好的。 聽眾:[聽不清] DAVID J.馬蘭:塑料jar-- 聽眾:[聽不清] DAVID J.馬蘭:與twist-- 聽眾:[聽不清] DAVID J.馬蘭:兩秒鐘。 只要打開花生醬罐子。 我希望你能原諒。 因此,讓我們假設我們到了那裡。 打開花生醬罐子。 [掌聲] DAVID J.馬蘭:第八步,我們走吧。 第八步,是的,回來了。 聽眾:[聽不清] DAVID J.馬蘭:好。 第九步,是嗎? 聽眾:[聽不清] DAVID J.馬蘭:--out的 花生醬罐子。 還有 - 什麼? 聽眾:[聽不清] DAVID J.馬蘭:並把刀 回花生醬。 第十步。 第十步。 聽眾:[聽不清] DAVID J.馬蘭:將刀 出來,然後取出密封。 美觀大方。 關閉花生醬。 好吧,第11步。 聽眾:[聽不清] DAVID J.馬蘭:OK,灰色電腦 按照藍色或紅色的計算機。 好。 [掌聲] DAVID J.馬蘭:帶我們回家。 夫婦更多的步驟。 下一步是什麼? 步驟12。 步驟12。 是嗎? 聽眾:放的片段之一 麵包輕輕地對你的一隻手。 DAVID J.馬蘭:一是你的手。 然後,步驟13。 是嗎? 聽眾:[聽不清] DAVID J.馬蘭:麵包 - 談片。 好。 不錯。 步驟14,是的。 聽眾:撤消步驟13。 DAVID J.馬蘭:撤消步驟13。 讓我們繼續果凍。 這是一個100-步程序, 但我們是在第15步。 是啊。 聽眾:[聽不清] DAVID J.馬蘭:7至13使用 果凍,因為這些去這麼好。 重複步驟7至 13,使用果凍。 因此掌握的下半部分 果凍罐子用一隻手在上面。 論另一方面 其他上面,忽略了一部分, 把握與反對的手, 蓋和塑料罐 在底部,並 擰兩秒鐘。 然後打開果凍罐子。 最後,讓我們試著 給我們一些可食用。 步驟16。 那麼,我們為什麼不把它那裡。 謝謝你這麼多 我們的三名志願者。 [掌聲] 我們有一個小CS50 壓力球給你。 這將是一個 夾心但 - 還等什麼 是點,超越具有 有趣的算法位? 但現實情況是,即使 你是計算機編程, 你需要超精密。 由於複雜或恐嚇 為自己的電腦 很可能是你的,在 出問題的時候至少, 實際情況是這是一個非常愚蠢的 設備發明了我們人類, 並且只能做的一個子集我們 do--有時肯定faster-- 但它不知道如何 作出假設。 它不知道怎麼上 相同波長你。 它只會做精確 你告訴它。 你會被擊中, 也許,在我們開始 寫入與實際的代碼 第一個問題集和超越, 它是多麼容易使 假設作為一個人, 而不是預測我需要處理 這種情況下,或該角的情況下, 可以這麼說,這很可能 如果出現例如山姆擁有的唯一 果凍擠壓瓶子,而 其他人有一些玻璃瓶作為 良好。 所以在我們把 注意一些實際的代碼, 請允許我介紹一下 在耶魯課程的負責人。 我們的朋友Scaz,安迪,和 傑森上來打招呼。 [掌聲] SCAZ:我們已經暫時失去傑森。 您好再次,每個人。 我的名字是Scaz。 我一直任教於耶魯大學從2001年開始。 而當我不教, 我的研究是機器人 和人工智能。 而我今天的公告 開始在幾個星期了, 我們將要帶來一些 補充材料CS50交談 關於智能軟件。 我們要談談如何 像Netflix和Hulu的地方 可以推薦電影這 你可能想觀看。 當我們將談論如何 司機少車的實際工作。 我們將能夠對地 這些東西在概念 你正在學習 在這個類的今天。 因為所有這些事情都是 在相同的基礎之上。 這就是這 系列將探索。 所以我真的很期待 期待看到你更多的 一切,你會去 多看我們大家很快。 那麼,讓我來介紹賈森。 傑森:大家好。 我的名字是賈森。 我不幸去了 哈佛大學為本科生。 那將得到削減 出實際流。 而現在我在這裡作為一個講師 計算機科學系。 而且我幫助運行過程 與Scaz,大衛和安迪。 安迪:嘿,伙計們。 我的名字叫安迪。 我其實只有耶魯大學 學生在舞台上現在。 [掌聲] 我在伯克利大學, 最初是從梭倫,俄亥俄州。 而我是那種一個孩子 在那裡,當我來到耶魯大學, 我真的以為我會永遠 來看看一些再次。 然後我意識到你需要 科學和QR學分才能畢業。 所以我大一春天,我把 一個類,一個CS,CS介紹這裡的類 在耶魯大學。 我當時想,這就像 其實很酷。 雖然我實際上結束了聲明 作為一個全球性事務的重大,技能 我在CS和編程教訓 如此適用於任何場 你選擇這樣做。 而這裡的工作人員在耶魯大學, 我們一直很努力工作 以備你們。 我們期待著看到 所有部分和辦公時間。 所以呀。 [掌聲] DAVID J.馬蘭:謝謝。 因此,只要課前開始, 我們有機會 走在校園裡 與蜂窩電話和取 在真正的視頻格式一些selfies 耶魯大學的校園我的第一次巡迴演出在這裡。 因此,我們認為我們會共用一個粗略的 切正是以此為Scaz和Andy 和傑森帶我在校園裡。 [視頻回放] [SIRENS] -David。 - 歡迎到耶魯大學。 - 良好的看你。 - 尼斯看到你。 - 能,我們去旅遊? - 讓我們去參觀。 - 公路之旅。 - 這個符號已經有一段時間了。 -Whah,CS50。 -Hurry! 走,走,走,走。 你應該[聽不清]哈克尼斯塔。 - 和我們看到幾次。 [掌聲] -Look出來的自行車! 啊! 嗨弗蘭克。 - 什麼回事,球員? - 如何是你? - 良好的看你。 - 歡迎到視頻。 不要表現得太過興奮。 - 我愛西利曼。 啊! - 它一直約三小時,因為 傑森冰淇淋和花生醬。 因此,我們必須停止回 西利曼一點點。 - 它甚至沒有[聽不清] 然而,僅僅是事實, 他們有在這裡是如此驚人。 好傢伙,有花生醬每餐。 - 存在的最後一年了。 - 是啊。 -tell很多關於耶魯大學至今。 但我現在的TD那邊。 而這被認為校外。 尤其是圓形,我們有哥特式建築。 世界名牌。 我們有一些更多的哥特式建築。 和建設, 更多的哥特式建築。 你好。 這是我們遇到的辦公時間 至週四在霍格沃茨星期二, 為[聽不清]。 - 所有權利。 這是它為遊覽。 我們正處在耶魯大學 法學院,在那裡 今天的講座即將舉行。 讓我們頭研究。 [結束播放] DAVID J.馬蘭:和 這給我們帶來了這裡。 所以到目前為止,我們已經 專注於偽代碼, 這是這類似英語的語法。 它沒有規定的規範。 它只是你使用一些 如果你直觀的語言 要解釋你想做的事情。 但是,讓我們現在就開始轉型 代碼,因為大多數人會說。 但更確切地說,一些 稱為源代碼。 這是人類的語言 編寫電腦ultimately-- 後可能的一些數 steps--最終理解 這樣才能知道如何做。 你看到的一瞥 這也許是在週三。 這是一個例子, 令人難以置信的,給人留下深刻印象 在運行時只說“你好世界”。 而且它寫在一個叫語言 C,它在語法上是非常相似的 來了很多其他語言 你可能不知道, 但可能也聽說過像Java, 與C ++和Python和Ruby, 之類的,而事實上,我們將 使用C花太多的學期, 然後向著結束 學期,在它建立, 並引入任何 其它語言的數目。 其中PHP和JavaScript, 數據庫語言叫做SQL。 但隨著C,我們將有 這種自下而上的理解 的電腦究竟是如何工作的, 你可以與他們做什麼, 以及如何解決問題 所有由該地,更 分層,我們討論 週三,和站立 在別人的肩膀上。 但更多的是來。 今天我們來看一個簡單的環境, 但基本上是一致 環境被稱為划痕 我們的朋友在麻省理工學院媒體實驗室。 這是一種圖形 編程語言,划痕, 因此,你可以拖動 和丟棄的東西, 看起來像拼圖的 如果它使只有聯鎖 邏輯或程序上的意義這樣做。 但它會允許我們 有一個關於所有的談話 相同的編程的 基本面你們有些 可能已經知道了,那 很多人可能不 知道任何事情,而不必 得到坦言越陷越深, 在理智 分號無趣的語法, 和括號,並 引用,等等。 所有這一切,早 對,是一個分心 什麼是有趣的 而真正有用的想法。 因此,讓我們快速瀏覽 看一下環境 在這裡,讓你知道什麼是等待。 而事實上,其中的遊戲,我們 可以播放的一些程序編寫 通過CS50自己以前的學生。 他們中的一個,我自己,我會在這一個 寫在研究生院對我來說。 如果我能採取一志願 誰是願意玩 一個遊戲的第一次。 當然。 上來吧。 你叫什麼名字? 聽眾:安吉拉。 DAVID J.馬蘭:張韶涵,上來吧。 所以,刮已經流傳了好幾年了。 而當我在讀研究生, 我在麻省理工學院註冊的十字架, 以教授米切爾·雷斯尼克的 當然,在教育技術。 而我們之間的第一 學生在世界上實際上公測 測試划痕。 而我的計劃是什麼安吉拉 現在已經慷慨地主動請纓 以戲稱為Oscartime。 所以,我要繼續前進, 雙擊圖標這裡。 這將打開一個程序 環境,我們很快就會潛入。 我要全屏幕 它的張韶涵,在這裡。 我要打到果嶺 標誌一會兒就好了。 然後一大堆垃圾 會從天上掉下來。 而且你要使用鼠標 這裡實際上拖放 垃圾進入奧斯卡的垃圾桶。 所以,如果你想繼續前進,點擊 綠旗,比賽就要開始了。 [音樂播放] 哦,我愛垃圾。 任何臟或骯髒或有灰塵。 任何衣衫襤褸或腐爛,或生鏽。 是的,我喜歡垃圾。 如果你真的想看到 沒用的東西,看看這個。 我這裡有一個運動鞋 這是破爛和磨損。 這一切都千瘡百孔持有 和鞋帶被撕破。 從我母親的禮物 一天,我誕生了。 我喜歡它,因為it's-- DAVID J.馬蘭:--green這幾天剛 在垃圾桶裡扔了一切。 還等什麼之一 CS50自己的工作人員did-- 喬丹,你可能誰 滿足today--實際上已經 此更新為今天的時代。 所以讓我開拓 混音,而不是安吉拉。 我們會玩這個,而不是為 片刻的地方現在你 將不得不之間是否決定 扔東西在垃圾桶裡, 或回收利用或堆肥它。 因此,有一點 你的壓力得到 這一權利在你的392至前 497的同學在這裡的大廳裡, 如果你會的。 [視頻回放] [音樂播放] 哦我愛垃圾。 任何臟或骯髒或有灰塵。 任何衣衫襤褸或腐爛或生鏽。 是的,我喜歡垃圾。 如果你真的想看到 沒用的東西,看看這個。 我這裡有一個運動鞋 這是破爛和磨損。 這一切都千瘡百孔 和鞋帶被撕破。 從我母親的禮物 一天,我誕生了。 我喜歡它,因為它是垃圾。 哦,我愛垃圾。 任何臟,或昏暗,或有灰塵。 任何衣衫襤褸或腐爛或生鏽。 是的,我喜歡垃圾。 下面是一些比較爛的東西。 我這裡有一些newspaper-- [結束播放] DAVID J.馬蘭:--are 實際上堆肥。 但是,感謝您對我們的志願者,安吉拉。 我們有一個壓力球 你在這裡。 所以,謝謝你。 因此,這本是我寫的。 但是,現在一個接一個實際的從前的學生 誰實現這一點,這是一個遊戲。 所有的這種語言稱為 划痕,那我們很快就會 剝開的層。 但是,如果我們想like--如何 關於另一位志願者? 右。 上來吧。 你叫什麼名字? 看一眼? 蘭斯。 蘭斯,上來吧。 認識你很高興。 來吧這樣。 所以這一塊可能有一個 主題熟悉一些你。 但是你會看到太多的 可以有交互性, 因此,你實際上可能是 人物走動的作用。 認識你很高興。 大衛。 我給你,皮卡丘。 說明將有關 來在屏幕上。 但在短期,你要 想趕好吃的東西, 避免炸彈和其他的東西。 隨著光標完全。 所以打空格鍵。 -Pikachu。 DAVID J.馬蘭:抓 東西在左邊, 沒有趕上右邊的東西。 [音樂播放] 所以,在這裡,人們最後一次。 如果我們能有一個 更多的志願者在這裡。 我們認為我們會重新東西 from--在黃shirt-- 從週三。 你叫什麼名字? 瑪麗,拜託了瑪麗。 和召回週三我們介紹 二進制的概念,和二進制燈泡。 這實際上是現在的 實現同一界面 我們已經在iPad上的光 燈泡,但這裡數字方式再現。 並且,而不是做一個壓力 ball--很高興認識你,大衛。 我們帶了幾光年 燈泡劍橋。 如果可以的話,點擊這些 燈泡將其打開和關閉, 拿出二進制 的代表說,256。 你會在看 中間,目前理貨。 所以,一個人的上。 所以,最左邊的位上。 瑪麗:是啊,[聽不清] DAVID J.馬蘭:好吧, 所以我們just--哦。 因此,這是128列。 因此,我們128個。 我們得去256。 你可以鼓搗上 斷斷續續,沒有什麼大不了的。 或者你也可以打的128 更多的時候,如果你想要的。 好了,好了。 24。 是的,越來越近。 近了! 哦,有什麼問題呢? 那麼,有什麼問題? 那我們需要 解決這個問題? 因此,我們需要另一位。 這是完美的 在現實合理的,對不對? 如果你想從數來算 1至2〜3 4〜5,6,7,8,9 實際上翻轉到10,你是 將需要額外的比特。 因此,讓我們真正 倒帶這裡,拿出 with--這是明顯 意思是一組了。 你不能只用一個燈泡做256。 因此,如何簡單地數50? 號碼50。 優秀的。 又大又圓的掌聲 瑪麗和她的好。 謝謝。 因此,這topic--故意的 這was--實際上會復發。 最大的價值,你可以 表示將8位,或一個字節, 確實是256。 但如果你開始 從0開始計數,因為我們 似乎繼續做由具有 所有這些位斷的。 但現在,讓我們深入到底層 實施這種環境, 並梳理出其中的一些想法。 因此,在某一時刻,我們即將看到一個 幾個不同的編程基礎。 其中,第一,我們會打電話給說法。 排序動詞,如果你願意。 動作。 事情應該做的。 而就在那一刻,你會看到 塊看起來是這樣。 顯示“Hello World”的實例。 或者等待一秒鐘。 或播放聲音喵。 堪與環境 這是我們打算做這個 被稱為划痕。 如果我拉刮不 預裝任何實際的代碼, 讓我們快速瀏覽一下這個 用戶界面,可以這麼說。 這些控件與我們互動。 在離開這裡的頂部 屏幕下方的菜單, 我們有舞台,可以這麼說。 因此,划痕就是我們會打電話給雪碧。 這是一個特點。 而且,他可以通過控制 寫作對他的方案。 他就可以上下移動 和左,右在這種環境下, 不只是通過移動 鼠標,但是編程。 我可以告訴他走右邊,走 左,上,下等。 我可以介紹其他 精靈或字符為好。 事實上,在底這裡是 你會看到你的精靈列表中。 此刻,我只是有 一個,但我可以創造更多的, 他們會恰好出現在那裡。 所以,如果你後退了一下,像 Oscartime--例如,奧斯卡, 在左邊,垃圾桶 可以的,是一個精靈。 而在中間的東西, 回收箱,是另一個精靈。 而堆肥是另一個精靈。 而每一塊 垃圾或可回收 這是從天上掉下 也是一個子畫面,其中每一個 被單獨編程。 你如何計劃? 好了,在這裡右邊 手側為腳本區域。 而這正是我們可以 拖放拼圖。 在一周的時間,這將是 我們等價地編寫代碼 與更多鍵盤,但對於 今天它會被拖放 拼圖中, 調色板這都可以 在這裡找到合適的中間。 實際上,在中間 這裡有一大堆 益智類 片或塊。 一個人的有關運動,你看, 聲音,筆上升和下降, 數據,事件控制。 不太清楚但 什麼所有這些意味著, 但你會看到,他們已經 被很好的分類。 而寫的一個程序 划痕,讓我們這樣做。 我打算下啟動關閉 活動,這裡拖動這一個。 當綠旗點擊。 現在,為什麼呢? 清楚地記得,我們​​的志願者 上來後,第一件事我 或者他們所做的只是點擊綠色 標誌在右上角。 而這只是意味著啟動程序。 因此,當該事件發生時, 我該怎麼想幹什麼? 我打算下看起來走, 我要去做“打個招呼。” 而且我要改變這一點, 這樣說:“你好耶魯大學。” 而現在我要放大 出,點擊綠色旗幟, 瞧,我寫了一個程序。 這還不是全部令人興奮 只是還沒有,但是這 也正是每個 這些作家開始, 都與皮卡丘,並且 二進制燈泡,和Oscartime, 和這麼多的更多的例子。 你開始超級簡單, 然後你開始到層, 和附加​​的功能和功能性。 那麼,這些層 要由? 那麼,超越報表,我們也將 有事情是有點fancily 被稱為布爾表達式, 一個叫布爾之後。 而布爾表達式是一個簡單的 表達式是真或假, 是或否,1或0。 任何對立的兩極這樣。 這是無論是真的還是假的。 但是,我們也將看到 那些看起來可能是這樣的。 因此,舉例來說,就是按下鼠標? 這些人都有點問題,如果你願意。 鼠標已關閉, 真或不是,假的。 1或0,如果你願意, 往往是測繪的。 真為1,假為0。 那麼怎麼樣小於這個? 或者說,這是不到這一點? 這是各種各樣的問題。 如果你把兩個 在那裡的數字的,X 將是小於y或 等於y,或比y大, 但是這個塊中,我們將看到的,僅僅是 要回答這個問題, 這是不到呢? 我們也可以看到這樣的事情。 觸摸鼠標指針。 因此,在刮,你可以問 這個問題,是雪碧 觸摸鼠標指針? 換句話說,就是將光標懸停 超過了上限,或等同? 我們會看到安定的東西放在一起。 你可以問兩個問題, 確保兩者 給你yes或之前,真正的答案 在決定做一些事情。 但是,那你怎麼做決定? 好了,我們具備這些條件。 我們看到這個在我們的 例如電話簿。 尋找到左側或 正確的邁克·史密斯。 並在條件,則 做一些潛在的, 如果布爾表達式為true。 事實上,現在看到的形狀。 有此佔位符,現在 上的開銷,我們可以fit-- 如果我倒放slide--的形狀。 這是不太一樣的大小。 事實上,你會看到 刮動態調整大小的東西 適合拼圖,但 形狀是非常重要的。 這東西看起來像 這一點,實際上它是 大致相同的形狀 應該適合在那裡。 如果我們想要做的事 這樣或那樣的方式,如果不然, 我們有這個難題 片中划痕也是如此。 現在,假設你想 如果這樣做,否則的話,否則後果不堪設想。 換言之,一 三路的岔路口。 那麼你可以做什麼 只需掃一眼呢? 我可以把這個拼圖, 它似乎不適合, 但同樣,划痕是怎麼回事 重新大小很好地為我們。 我可以開始層 這些東西放在一起。 所以,現在我有一個三方 叉如果這是真的,做到這一點。 否則,如果這等事是真的, 走這條路,否則走這另一條路。 而在布偶電影中, 岔路口,可以這麼說, 耶魯大學和斯坦福大學之間,是 正是這樣,只有兩個條件。 無論是走這條路,否則走那條路。 好吧,循環也存在於編程。 而且我們已經使用了這些已 類和偽代碼, 並肯定這些 刮節目永遠。 划痕有這個拼圖的 只是讓你做一些事情,直到永遠。 有時你想 做一些事情,直到永遠。 它不一定是一個錯誤,這是 因為你想有一個時鐘保持下去, 或遊戲繼續玩。 或者,你可以指定一個有限的數量 步驟,在這裡這個重複塊, 這將重複的東西10倍。 我們可以設置變量,我們很快就會看到。 並與變量,神似 代數,如x或y或z。 這件事情的象徵,可以存儲 一些價值,一些信息, 您可能要 要記住以後。 這個最好的例子可能是 一個遊戲,你必須得分, 像皮卡丘。 多少蛋糕片 和諸如此類的東西你是否明白? 嗯,這可能是一個變量 所謂的分數從0開始。 然後我們每次抓到 一塊蛋糕或糖果,或類似的, 它被遞增。 它被添加到一次一個。 所以,一個變量存儲 一條這樣的消息。 此外,還有陣列,我們會來 回這些在一兩週的時間, 但數組是一種像一個 庫存或挎包,裡面 其中,你可以把虛擬的東西。 它可以讓你存儲更多 比一個信息。 這可能是有用的 如果在遊戲中,你 排序走動 撿東西。 也許你想保留 所有這些片段蛋糕 左右,而不能隨便吃 陸續它們。 然後還有一個 票友結構,我們將 來調用函數或過程。 雖然我們要去 更快這裡,我們將 看到,這些是一個非常 自然的解決問題的方法 我們要去的遭遇。 由於我們的項目啟動 越來越大,我們將 開始注意到格局 我們正在寫代碼, 拼圖我們 拖放。 而一旦你發現自己做 一遍又一遍的東西,或者更糟糕的是 複製和粘貼編程 你寫的代碼, 這可能是一個 機會來分解出 你繼續複製任何 和粘貼,並把它 在一種叫做“功能”。 但更多的那些多 不久更多的細節。 然後還有更炫的功能。 對於那些你更舒適, 或服用APCS或同等學歷, 划痕實際上支持的東西 像線程和活動等。 所以認識到,它具有 一個相當高的天花板, 儘管它也很 廣泛地接觸到人 誰以前從未編程。 因此,我們確實,讓我們一起來看看 在一個簡單的兩方案。 我們已經看了看我們如何 也許打個招呼與劃傷。 讓我繼續前進,開拓 更有趣的程序 我寫的提前。 而這其中的所謂的寵物貓。 所有這些方案都將 可在CS50的網站。 事實上,已經存在。 所以,你可以下載 他們,和他們一起玩, 並與習題集0, 也是在球場上的網站, 我們鼓勵你走過這些。 而且,我們有一個 的步行通過視頻數 在網上,我和 CS50的團隊真正走 通過上述的例子都在非常 較慢的速度,非常快的轉發, 或rewindable的腳步,讓你可以走 通過這些在您的休閒,以及。 因此,這裡的划痕就離開了。 這裡有一個程序在合適的 我已經預先做好。 因此,讓我放大這一點。 並可能有人在英語,知道 你知道,就從現在開始的是什麼 以排序怎麼刮的作品,說 在英語短語或句子, 這是什麼程序顯然是嗎? 是的,橙色的襯衫。 聽眾:[聽不清] DAVID J.馬蘭:是的,如果你 光標在划痕貓, 玩喵喵叫的聲音。 但是請注意,我們如何表達這一點。 有顯然是 循環在那裡,直到永遠。 然後還有一個 情況下,如果表達式。 和集體,什麼這些是什麼意思? 這意味著該計劃 只是一直在運行, 而它只是一直在等待 和觀看和聆聽 我將我的鼠標移到貓。 因為每次我這樣做,因為 你提出,這將做到這一點。 讓我啟動程序。 似乎沒有任何要 發生,但注意如何 它現在是強調了一條黃線。 這只是意味著它的運行。 而且因為有一個永遠 循環,它仍在運行。 因此,讓我把我的光標移到划痕。 [MEOW] [MEOW]如果我將它關閉, [MEOW現在停止,但該方案的 仍在運行。 [MEOW]所以,可愛。 [MEOW]因此,讓我們打開 稍微更先進 例如所謂的不要寵物貓。 現在,讓我們看看 發生在這裡。 [MEOW]喵喵叫。 因此,這一點就 自動駕駛,如果你願意。 --pet貓。 我不知道為什麼。 [吼] [MEOW]那麼究竟是怎麼工作的呢? 好了,可以種原因 通過它直觀,也許吧。 但是,讓我們來看看實際的代碼。 如此反复,當綠旗 被點擊,永遠做到這一點。 你要什麼做下去嗎? 好吧,如果觸摸鼠標 指針,然後播放 一個多數民眾贊成顯然被稱為獅子的聲音 5,這是這個項目裡面,否則 播放聲音喵,和 然後等待兩秒鐘,所以 它沒有喵喵叫個不停。 事實上,你可以非常快速地啟動 惹惱你和你的室友。 讓我們刪除此塊。 並注意有什麼好的關於划痕。 事情就這樣一種拖累 拖放和聯鎖。 所以,再一次,它長到 填寫你想要什麼。 但是,如果我刪除此,再 點擊播放,[電腦BLIP音] --IT是種絆倒 本身,因為它的字面 做我在說什麼。 它說永遠玩這個聲音,但 我不給它一個機會來完成。 所以,這將是一個錯誤。 這就是為什麼我們有 這個東西在這裡。 因此,讓我們實際上是從scratch--開始 排序雙關語略intended-- 在我們現在有貓的舉動。 所以我要做到這一點就飛。 我要放大在這裡,只 讓我開始對事件。 而綠旗點擊。 而且還有其他的方法 啟動腳本。 我們要保持簡單在這裡。 現在我要去 進取,去控制之下。 再次,如果你忘了在哪裡 事情是,只要按一下周圍, 最終你再次找到他們。 所以,我要永遠做什麼? 我想用運動塊 我所知道的存在,移動10步。 因此,讓我們看看會發生什麼 在這裡,如果我玩這個遊戲。 值得慶幸的是它並沒有走太遠。 那種我仍然可以抓住他 的尾巴把他拉回來。 但程序仍在運行, 所以他的那種戰鬥的我。 但是,這將會是種很好,如果我 有條件地解決這個問題的代碼。 因為這是不是 - 其實這是真的 不是一個有趣的遊戲,任何年齡的人。 所以讓我們嘗試解決這個問題 有一些樣的條件。 所以,我打算去下 控制,然後如果。 我喜歡這個主意。 因此,移動10步後, if--讓我感覺到我在哪裡。 我要去檢測下得去, 然後它看起來我可以去這裡。 排的形狀匹配。 大小不會,但它的 將增長到填滿。 而現在,這是一個小菜單。 現在鼠標pointer--我不知道 想要鼠標,我想要的邊緣。 所以划痕是足夠聰明,知道 當精靈接觸到邊緣。 我想要什麼他實際上做? 讓我繼續前進,改變運動。 你知道嗎? 我打算讓他轉身。 因此,在15度是不 真的要幫我。 我希望他轉身 和走另一條路。 因此,讓我們看看會發生什麼 在這裡,現在如果我打遊戲。 OK,有點傻看,但 它做什麼我說。 而且它旋轉了整個精靈。 現在事實證明,我可以解決這個問題。 我不知道該怎麼 要解決這個問題,在第一。 我有點不得不futz四周, 看到要做到這一點的最好辦法。 但是,如果我去用於:讓我們來看看,議案。 哦,我發現這一點。 事實上,設定的旋轉風。 左,右,或不 旋轉或四周。 而事實證明,這就是我想要的。 而且我打算把這個不是我 循環,因為我並不需要設置 旋轉樣式多次。 我打算把它放在最頂端 這個程序,以便它被設置一次, 然後回憶。 而現在我要試試這個了。 讓我停止程序。 而現在,修復了漏洞。 所以,我反复地提高了在此。 該方案是得到一個 稍微複雜一點大, 但我要帶嬰兒學步可以這麼說, 和小咬出了問題 得到它越來越好。 但是,這也同樣是一種跛腳的。 你知道嗎? 會問有人用真正的好, 可怕的聲音喜歡來了? 有人用一個聲音。 嗯,是的。 上來吧。 在綠色襯衫。 因此,原來有一些其他有趣 事,美學和聲音的一致好評。 這裡的喵。 我點擊聲音選項卡上。 [MEOW]有喵喵。 [MEOW] [MEOW] [MEOW] --actually記錄的東西 我們自己在這裡的。 因此,讓我們這樣做。 請不要使用此貓的聲音,讓我們 這裡先走了,你叫什麼名字? 尼克,很高興見到你。 這是大衛。 因此,在那一刻,我要去 擊中記錄按鈕。 如果你能剛 嚷嚷到筆記本電腦, “哎喲,”好像你 剛走進牆, 這將非常感激。 1,2。 尼克:哎喲! DAVID J.馬蘭:真棒。 現在可以在這裡做一些編輯。 要擺脫安靜的部分。 我認為這是很好的。 非常感謝你。 尼克:快樂。 DAVID J.馬蘭:我已經 剛剛更名為“哎喲” 但現在我要 回到我的腳本。 並注意確實是有聲音在這裡。 而且我要繼續前進 和播放聲音哎喲, 我要去這樣做,如果 它只是接觸的邊緣。 然後我要去 有它轉身。 因此,讓我們看看會發生什麼。 讓我們去全屏。 [視頻回放] -Ouch! 哎喲! 哎喲! 哎喲! 哎喲! 哎喲! 哎喲! 哎喲! [結束播放] DAVID J.馬蘭:所以你實現 我們正在開始有點幸運。 我打算讓他的舉動 像100步的時間。 現在的效果會 以be-- [電腦故障聲音]所以, 在合理範圍內。 所以有機會改進的 進一步,如果我們真的想。 所以,現在我們來介紹另外一個概念。 讓我去到一個叫 數羊和使用的東西 稱為一個變量。 這是一個可愛的小綿羊,和 我改變了他的服裝可以這麼說。 因此,即使默認是 貓,你可以上傳,就可以得出, 你可以做任何數量的 人物在你的精靈。 這裡有一個程序,是 打算做什麼英語? 就只是你現在知道再次為主。 這是什麼節目呢? 是的,這是怎麼回事計數。 一次一個號碼。 我們有很明顯 有這樣一組計數器。 我不知道那是什麼, 但也許這是一個變量。 這只是一個容器,x或y。 但這個詞計數器更 描述不是數學家的x或y。 因此,我們可以用英語單詞的事情。 永遠的,只是意味著繼續這樣做。 說計數器。 現在在哪裡這是從哪裡來的? 嗯,事實證明, 計數器是一個變量。 所以它只是一個謎 這塊我提前創建的。 並且,即使它發生 不是這裡是相同的形狀, 通常你會說 像你好這裡。 您也可以將一個變量 使這就是我們開始說。 然後,我等待一秒鐘,我 一個改變計數器, 通過添加一個遞增的。 因此淨效果是 這個可愛的數羊。 雖然他的票自己。 現在,它的速度非常快 要得到無聊 因為他要 做到這一點真正永遠的, 但是這正是 程序的設計規定。 現在,讓我們嘗試另一個例子 它利用一個變量。 這個叫喜喜喜,那 並很快得到煩人。 現在,這其中有兩個腳本。 所以再次,我們正在採取嬰兒的步驟。 我們開始與一些超 小,添加到它,加入它。 現在,我想要做的事 更加動感, 所以我想被監聽 同時兩個不同的東西。 所以在左邊,當 綠旗點擊, 我把我寫的一個變量 事先叫靜音。 我隨意將它設置為0。 所以划痕不具有真實, 假的,但它確實有0和1。 因此,我可以近似地認為同樣的想法。 然後永遠,如果空間酒吧 壓,然後將變量為0。 還是遺憾。 如果空間被按壓,並 如果靜音,變量,是0, 然後設置靜音為1, 其他設置靜音為0。 這似乎有點像我們 只是在做和撤銷工作。 但是,有什麼影響? 每次我打空格鍵, 如何處理我的變量是什麼 叫靜音,邏輯? 排序中被翻轉。 它改變從0到1,或1至0。 於是花了幾個街區 來表達,但所有 我做的是切換的狀態 此變量為0或1,或者0或1 每次我打空格鍵。 現在在這裡,這是什麼做的? 永遠,如果靜音是0, 因此,如果靜音是假的。 所以,如果它不靜音,是 語義那裡,播放聲音海獅, 並認為喜喜喜兩 秒,等待兩秒鐘。 所以,現在這些通知 腳本是有效的 要並行運行這樣一方面可以 被偵聽一個動作,另一 使基於該行動作出決定。 它可以永遠這樣做。 [海獅BARKING] [海獅BARKING] 這將永遠做到這一點, [海獅BARKING]因為我剛剛做。 而現在它仍在運行 但我有“靜音”的遊戲。 [海獅BARKING]這就是 現在所有的這傢伙也會做。 讓我們打開另一個例子在這裡。 讓我進入事件, 現在這個可愛了。 但是請注意,它有兩個精靈。 所以,不只是兩個腳本與 一個Sprite,而是兩個精靈。 如果我點擊藍色的傢伙,我 已經有了,我看到他作為一個程序 在這裡,從字面上只是說: 這一點,當我收到一個事件, 說“波羅”兩秒鐘。 所以,如果你曾經玩過的 一個游泳池,遊戲馬可波羅, 如果橙色傢伙腳本 任何跡象,顯然 每次我打空格鍵, 什麼是橙色的人怎麼辦呢? 他會說:“馬可。” 然後這是一個新的塊。 我們沒有看到這之前, 但廣播的事件。 我可以叫它 我們希望事件什麼。 我們再回過頭來此 也許用不了多久。 但廣播事件 是一個辦法讓一個精靈 談話到另一個 本質上它傳遞的消息。 這不是你看到的消息。 這不是視覺。 這有點計算機信息 那其他人正在監聽。 因為事實上,藍色的傢伙,召回 沒有,當綠旗點擊。 相反,他有,當我收到一個事件。 當他被移交本說明在課堂上, 可以這麼說,他應該說是“波羅”。 所以淨效果是,當我 打綠色標誌,沒有任何反應。 但是,當我打空格鍵,他說: “馬可”,他響應“波羅”。 但唯一的精靈,我 與交互是橙色的。 因此,這是怎樣的一種方式 精靈之間傳遞消息 並讓他們交流 彼此。 現在,讓我們來看看最後一個 一個在這裡被稱為線程。 並通過玩它注意到這一點。 所以這是兩個精靈。 這隻鳥是那種飛來飛去。 他彈跳。 有沒有“哎喲”,但同樣的想法。 但貓似乎很聰明。 什麼是貓顯然是在做什麼? 而等待它。 什麼是貓顯然是在做什麼? 這不只是反彈。 他下了小鳥。 所以很明顯,有辦法 與塊的組合這裡 - 讓我們來看看貓實快。 永遠,如果觸摸鳥,然後播放 聲音獅4,不管它是什麼。 我們聽到一次。 否則,指向 鳥類和移動一步。 現在的事實,即它的One 步驟是什麼讓鳥 有點優勢 最初,但如果我們不是 使這10,例如,這樣 該循環的每次迭代他 移動10步的時間。 因此,更多的空間。 讓我們看看會發生什麼。 [獅子吼]不是所有的好得多。 所以,現在讓我們嘗試改善 在這些有點反复, 回來到 觀念的函數。 在根本事實上1 的一流的設計外賣。 不只是編寫工作方案 那是正確的,但也 設計的。 而且設計更加主觀的, 你會得到它更好的隨著時間的推移。 但是,讓我們採取一些嬰兒的步驟走向 開始的程序工作, 絕對,但它不是很好。 這不是寫得很好。 所以這裡有一個程序,做到這一點。 咳,咳,咳。 是什麼節目是什麼樣子? 看起來是正確的我。 它是說沙發上 第二個,然後等待。 然後它說了一遍,然後等待。 然後它說了一遍,然後等待。 然後程序隱式地 最終,因為沒有循環。 但是,為什麼這是一個寫的不好的程序? 即使你從來沒有編程? 像什麼磨 走錯了路,也許在這裡? 是嗎? 聽眾:[聽不清] DAVID J.馬蘭:沒錯。 你重複 自己一遍又一遍。 而且從字面上看,我複製並粘貼 兩人再次又一次的塊。 這就是理智的完全排序 檢查你應該做。 等一下。 如果我真的會這麼做? 所以,這是什麼什麼 顯而易見的解決方案吧? 有某種循環。 而且我不太召回 什麼一塊拼圖是, 但如果我看 這裡下一個迭代, 事實上,有沒有 只是永遠的循環, 有重複的次數一定數目。 所以我指定了三個。 現在,請注意如何更緊密,如何 更簡潔的這個計劃是。 在某種意義上,如何 更容易維護。 如果我想改變的話 咳嗽到別的東西, 像ACHOO,就像他打噴嚏。 然後,我在一個更改 的地方,而不是三個。 因此,這已經感覺 稍微好一點的設計。 讓我來代替開咳嗽 2,我們的第三個例子。 請注意,作為一名計算機科學家, 我開始計數為0,一般。 現在,這看起來有點可怕的 首先,但效果是一樣的。 咳,咳,咳。 但似乎是根本 新在程序的頂部? 我已經刪除了發言權。 我已經刪除了等待。 我在什麼事插入呢? 函數。 咳嗽塊。 我的意思是,坦率地說,我好像那種 白痴,如果我不只是 開始與塊 多數民眾贊成顯然被稱為 “咳,”如果這就是我想要他做。 但是,這並不在划痕存在。 而我在去一 調色板叫更多的塊在這裡, 我拖動這個大紫色的東西 在這裡,讓我定義一個函數。 它本質上讓我 創建自己的拼圖 這可以被稱為什麼我一張 想要的,可以做任何我想要的, 但它給它一個名字。 它給了我一個新的,紫一塊拼圖 現在做什麼,我告訴它做的事。 所以這紫這裡一片 對應於這一個在這裡。 而且它有什麼作用? 它說,咳了 秒,然後它等待。 而現在我已經那種創造 我自己的自定義拼圖, 使得它的行為 正是方式相同。 因此,我可以繼續這樣做。 事實上,還有的將是更多, 對於模塊化更多的機會, 和層次感,複雜性 在彼此的頂部。 但這個基本理念, 確實問題表示0。 什麼你要 被質疑做的是 下載划痕,或者只是用它 在網絡上,只是有它的樂趣。 我們會給你一套 的要求,具有聲, 和拼圖一些數字。 但是,你會做正是這一點。 你會意識到,你要 要採取一些嬰兒的步驟開始, 直到你的程序得到 越來越複雜。 但考慮到這是在 我能做到這一點的最佳方法是什麼? 我能避免這種本能 也許,複製和粘貼? 但問題集前 0,我們休會之前, 以為我們會佔據一個 更多的志願者,如果我們可以, 對於最後方案 這也許是最 配件可言,在今天的會場。 下來吧。 是啊。 是。 你叫什麼名字? 嗯,哦。 這是確定的。 這兩個下來。 而且我已經將處理這個不知何故 旁邊十秒內。 因此,下來吧。 下來吧。 讓我來上了這裡。 來吧。 好的。 讓我們來看看在這裡。 因此,發現真正的快速這裡, 如果你想達到來吧。 我們會做兩輪這一點。 而你叫什麼名字? SABRINA:塞布麗娜。 DAVID J.馬蘭:塞布麗娜和? 英GEE:應格萼。 DAVID J.馬蘭:應格萼。 很高興見到你們倆。 大衛。 因此,我們的最後一個例子這裡是 所謂的常春藤的最難的遊戲。 為什麼我們不要求你必須去做 1級,而你做的2級。 我們會看到多遠 除此之外,我們居然走了。 寫的一個學生 去年,由我混音 因此,這將去 在良好的紐黑文。 我給你一個遊戲,那將 涉及移動箭頭上下, 並獲得耶魯終點線。 在這裡,我們走了。 [視頻回放] [MUSIC - NFL在狐狸主題曲] [MUSIC - 哈默,“U不能碰  這種“] -U不能碰這個。 U可以不要碰這個。 不能碰這個。 我的,我的,我的,我的音樂打我,所以 硬,讓我說,哦,我的上帝。 感謝您與祝福我 心韻和兩個炒作腳。 這是很好的,當你知道你下來。 一個超級塗料巨蟹座從Oaktown。 而我已知的,而這 一拍呃,你不能碰。 我告訴你巨蟹座U可以不要碰這個。 是的,這就是我們如何生活 你知道你無法觸摸這個。 看著我的眼睛,男人。 U可以不要碰這個。 喲,讓我胸圍時髦的歌詞。 U可以不要碰這個。 全新的踢腿和褲子。 你得到了它這樣的, 你知道你想跳舞。 所以搬出你的座位,並得到 一個飛女,趕上這個節奏。 雖然它的滾動保持在泵上一點點 一下,讓他們知道發生了什麼事情。 喜歡這一點。 喜歡這一點。 冷的任務,以便拉回來。 讓他們知道你是太多 這是一招呃,你不能碰。 喲,我告訴你,你無法觸摸這個。 為什麼你站在那裡的人嗎? U可以不要碰這個。 喲,聲鐘聲學校在,吸盤。 U可以不要碰這個。 給我一首歌,節奏使他們 汗水,這就是我現在給他們。 他們知道,當你談論錘 請您談一下演出,這是炒作。 緊歌手都 出汗使它們傳遞一個麥克風。 或磁帶學什麼 它會採取與現在 他要燒的圖表。 合法要么努力工作或 你還不如退出。 因為你知道你無法觸摸這個。 U可以不要碰這個。 打破它。 停止。 錘的時間。 走在旋轉的流 如果你不能移動到本 那麼你可能已經死了。 所以,把你的手 空氣中[聽不清] 這是它的一個勝利者舞蹈 這一點,你會變得越來越薄。 移動滑動你的臀部只為 一分鐘,讓我們都做凹凸。 是啊。 U可以不要碰這個。 U可以不要碰這個。 你最好得到大肆宣傳 男孩U可以不要碰這個。 敲鐘學校。最 打破它。 停止。 錘時間 DAVID J.馬蘭:這就是它的CS50! 非常感謝您加入我們的行列! 外面見你。 [結束播放] [視頻回放] [MUSIC - “宋飛傳”的主題曲] - 嘿大衛。 - 嘿,大衛。 怎麼樣了? - 良好的工作,今天。 - 所以你有沒有想過是什麼 你會做的出來的笑話? 不,我什麼也沒得到。 - 什麼if--如果這是出笑話嗎? 樣,拆包車? -Uh,呵呵。 你知道,這是關於什麼。 - 所以喜歡,沒有故事,沒有 衝突的任何決議。 我聽不懂。 它是什麼有關呢? 什麼也沒有。 - 所以我們出來的笑話是關於 什麼都沒有,我們沒有演員。 誰將會是在這? 不,不,不。 我的意思是,我會在這。 -You'll是嗎? 是啊! 人們總是告訴 我,我是一個性格。 - 嗯,我的意思是,這是真的。 但是,還有誰將會是在裡面? 它不能僅僅是你。 - 你會在裡面,加文,丹, 丹,科爾頓,Z'Myla,Alysse,道格, 大衛大家。 - 因此,它是關於什麼, 每個人都在它? -Absolutely什麼。 - 這是荒謬的。