>> [音樂播放]
[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撥弄]