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