[音樂播放] 大衛·馬蘭:好,歡迎回來。 這是CS50。 這是7週結束。 而且這是清道夫的結束 從追捕問題集4 你可能還記得。 恢復所有的經過 員工的JPEG文件, 你受到挑戰,如果你願意, 拍攝自己與盡可能多的 那些人的,你可以。 我們得到了一大堆的意見書 在過去的幾週裡, 事實上,相當多的正確中午前 今天,其中一些是那些在這裡 在這裡抓到in--看起來like--安嫩伯格 大廳辦公時間,一個在這裡 洛厄爾房子尼克。 這裡的拉蒙被抓的電話。 這是在CS50的午餐。 這是傑森Skyping與 一個更有創意的同學, 誰給他打電話這種方式。 我們不知道這是什麼了。 [笑] 大衛·馬蘭:但 這是值得一千兆字節。 這裡是長安,誰 硬是跑了舞台 為了避免被偷拍1 一天,但最終被抓獲。 這是尼克。 這是尼克。 這是尼克。 這裡是艾莉森下來的領域。 和Zamyla即使被發現 在舞廳的競爭。 因此,我們將通過 這些照片,弄清楚 誰提交的最 最早和獎勵 1神話般的獎品,如 承諾規範。 同時,我們也將跟進有關 被涉及的空間。 一對夫婦announcements--所以午餐 是,再次,本週五下午1:15。 如果您想加入我們的行列, RSVP在該URL在這裡。 傑森再次出現在這裡從一個 該路段的一兩年 回來,剛巧 落在萬聖節。 而事實上,他裝扮成一個 南瓜特定的一年。 如果你看這一節 他從2011年段 8,如果你很好奇, 在CS50.tv,我覺得 這是在這一年中 他的空氣泵工作。 如果再觀看 在2012年類似的部分, 你會看到這個傑森多少癟, 由於該訴訟已不再發揮作用, 這僅僅是說 本週五,如果你願意 想刻有Daven南瓜 和加布等人,RSVP的頭 在cs50.harvard.edu地址。 它有望成為很大的樂趣。 Daven,我們被告知,已刻 南瓜他所有的生活。 加布里埃爾來自巴西從未 雕刻南瓜的萬聖節。 所以在那裡與他們他在學習。 研討會,meanwhile-- 所以你很快就學會 什麼我們的期望是 最後的項目,基本上 將歸結為 設計和實現 最感興趣的任何項目 你,雖然經審批 從你的教學研究員的指導。 朝的結束 學期中,我們介紹了一些 研討會,這是可選的類 為首的教學研究員和哈佛 工作人員,橫跨朋友,當然 校園裡,各種主題, 相切的 課程的基本大綱 但仍然適用的,有趣的, 不同的潛在最終的項目。 例如,第一,如果你想 註冊,頭部到網址那裡。 這就是陣容 今年的研討會孤單。 但要意識到我們有幾十個 從過去幾年的研討會,所有這些 在研討會菜單鏈接 課程網站的選項。 所以,如果你正在考慮 超越你的舒適區 或者挑一些新的技能, 例如,編程iPhone 與雨燕,新的語言的應用程序 蘋果或Objective-C的 或Android應用程序或編程[? CUE?] 燈泡,或任何的主題 在這裡,更由於支票 從註冊頁面。 所以我們開始和結束的 與看著HTTP週一 這麼快refresher-- HTTP, 超文本傳輸協議。 但是,這究竟意味著什麼? 這是什麼意思呢? 那是一隻手? 我知道你只是摸不著頭腦。 但是你要提出HTTP是什麼? 聽眾:如何電腦 與[聽不清]通信。 大衛·馬蘭:我錯過了最後一部分。 計算機通信with-- 聽眾:互聯網服務器。 大衛·馬蘭:Good--與互聯網 服務器,並且具體地,網絡服務器。 因為回憶,有一堆 在互聯網上的服務,其中的一些 你可能使用的日常聊天的 和消息,聊天和Web和電子郵件, 等。 和HTTP僅僅是 協議的Web瀏覽器 溝通與說話的時候 Web服務器,反之亦然。 並且,在該模擬 人類世界可能是, 我伸出我的手有些抖 其他人的,他(或她) 確認通過擴展 他或她的手為好。 所以,這只是一個協議, 一組約定。 什麼確實是這些公約? 那麼,它只是歸結為 發送郵件來回, 因為我們在這裡描述。 還有的在幾個方面 您可以發送這些消息。 也許最 常見的被稱為GET。 我們會看到一個對比 這之前很長。 但是,從瀏覽器中的GET請求 服務器只是看起來像這樣。 這是一堆文字,它使得 裡面的一個虛擬的信封。 在該包絡線的外側 走了幾個片段的細節。 有什麼需要去上 信封,可以這麼說, 為了得到這樣的一個請求 這從我的Web服務器? 是啊。 聽眾:您的IP地址。 大衛·馬蘭:我的IP地址 在From字段,可以這麼說, 並且,當然,在 接收方的IP地址。 但在網絡分組的情況下, 我們需要更多的細節 這是不夠的只是 送的包絡線到一台服務器, 因為該服務器可能 聽不同類型的 互聯網流量。 那麼還有什麼需要我們 除了收件人的IP? 是嗎? 聽眾:是不是TCP? 大衛·馬蘭:好。 TCP-- 聽眾:地址。 大衛·馬蘭:地址, 或端口,因為它被稱為。 接近,但一TCP端口號。 並有一堆這些。 但肯定是最 熟悉最終應 是80,這是默認 1用於Web流量。 而另一位熟悉 1很快就會443, 這是用於安全網絡 交通,即開始以https網址。 原來這就是雲 裡面那個信封。 並獲得/只是手段,給 我的默認網頁。 給我的硬盤的根目錄 開車的Web服務器上。 並希望,在網絡 服務器將,OK響應 及數量200,這僅僅是 公約說,是的,所有的 的確確定。 這裡的頁面。 所述網頁的類型是要 是文字,但更具體地,HTML 我們正要潛入回。 和點點點只是 手段,這裡是HTML。 而這也正是我們 今天拿起故事, 實際編寫HTML, 超文本標記語言,它 是語言中 網頁被寫入。 這是不是一種編程語言。 有沒有功能 或循環或條件。 它是一種標記語言, 也再次看到今天, 它允許您指定 如何構建和風格化 美學上的網頁。 所以這是一個 我們只有真正的頁面 看了看,如果簡單地說,在星期一。 並注意到一些 顯著特點。 有很多開放的彎角 支架和關閉角度的支架。 在這些彎角之間 括號內的話。 我們要開始 調用這些話的標籤。 因此,開放式支架頭 與封閉的支架頭 是在打開和關閉標記, 或在開始和結束標記 HTML元素的分別, 因為我們把它叫做,稱為頭。 和相同的專業術語適用 到身體中的HTML等。 什麼是不錯的 HTML--而事實上,我們將 花非常少的時間就可以了, 因為你大多只是弄清楚 什麼功能它都有,當你 其實有一個具體的問題, 以solve--你會發現, 瀏覽器是非常愚蠢的。 它只是要do--沒有什麼不同 一個computer--你告訴它的事情。 因此,如果你已經打開 支架HTML在最高層 那裡,基本上 只是意味著,嘿嘿,瀏覽器, 這裡談到HTML編寫的網頁。 當它看到開放式支架 頭,這只是意味著, 哎,瀏覽器,來了頭, 我的網頁最上面的部分。 當它看到一個封閉的支架 頭,那只是意味著,嘿嘿, 這就是它的頭部。 待機別的東西。 和別的東西是 顯然將是本體。 而當你沒有一個標籤,像 你剛才你好,逗號,世界, 這只是將是原始文本 最終顯示在屏幕上。 現在,你會發現太多 這裡的壓痕。 你大概可以推斷出 怎麼我們風格化了。 每當我打開一個標籤, 可以這麼說,我縮進。 每次我關閉 一個標籤,我取消縮進, 類似的精神,大括號。 而除此之外,我是那種 用我的判斷。 請注意,我沒有打擾打 請輸入標題標籤裡面。 為什麼呢? 好吧,我剛剛決定它看起來 少許清潔劑給我,人, 只是懶得做。 如此反复,有一些 判決稱只是 好像有C或任何語言。 但是請注意過,這個壓痕 適合於一個心智模式, 不要過度複雜化。 但是,一棵樹,對不對? 如果你想一個網站 頁,顯然寫 這樣,作為被 很好地縮進的方式, 你幾乎可以認為開放式支架 HTML封閉的支架標記標定 一個節點的根,一個家譜 在樹上的款式風格節點 我們研究了上週五。 事實上,我們在這裡的權利 我們會打電話給一個DOM,D-O-M,文檔 對象模型中,說一個奇特的方式 表示該HTML樹。 並注意HTML有,我們會說, 就像一個家庭樹,兩個孩子。 左邊是頭。 右邊是身體。 而且,正如一個無意識的思想運動, 當然,頭,有多少孩子 根據這個結構? 所以只有一個,title-- 這就是為什麼我們有 箭頭從頭部將標題。 因此,這好像是人在 家族樹剛一後代。 然後標題本身就 可以說有一個孩子了。 回想一下,在HTML有 你好,逗號,在它下面的世界。 而我只是一個在它繪製 橢圓形而不是矩形剛 傳達語義,即使 它是樹中的一個節點,可以這麼說, 這有點本質的不同。 這不是一個標籤。 或者更確切地說,它不是一個元素。 這只是一個文本節點,如果你願意。 但是,這些是完全 任意人的約定。 這是剛才我的方式 代表我會作為一個集合體 調用該文檔。 而作為一個在旁邊,在事 超級左上角, 開放式托架感嘆號文檔 HTML類型,這就像是一個標籤, 但它是愚蠢的角落情況 這只是在那裡,複製和粘貼 來指示瀏覽器 這是HTML 5版本。 世界在不斷變化的是什麼 代碼在頁面的第一行應該是。 這也就意味著5版本。 所以它完全不是那麼回事 看起來像其他人。 好吧,讓與 說,現在你會明白 這還算這種愚蠢的 紋身的人了。 [笑] 大衛·馬蘭:好吧, 現在,讓我們真正的潛水 為做一些與此有關。 你會記得,最後一次 我打開了CS50電器 我做了一件為 簡單的開放gedit中。 我保存的文件即使在 我desktop--無處special-- 為hello.html的。 因此,讓我這樣做 again-- hello.html的輸入。 現在,在這個文件中,我將 繼續前進,複製我們剛剛 saw--文檔類型的HTML然後我要去 做開放式支架HTML封閉支架。 然後我要先發製人 打開和關閉標記。 為什麼呢? 只是讓我不要忘了後面。 這是一個好的做法,比如開放 閉花括號的一次。 然後呢緊隨其後? 你能想到的紋身。 聽眾:頭。 大衛·馬蘭:頭。 然後在這裡,我 有標題,我想。 而標題是隨意, 你好,世界接近冠軍。 再往下這裡,身體的, course--那麼我們關閉body標籤。 然後只是有些冗餘, 我有同樣的事情到這裡。 所以我說這是一個網頁。 這是後話了 現在可以生活在網絡上, 儘管,當然,它的字面意思 住在我的桌面上現在。 不過說實在的,如果我減少gedit中, 我將我的桌面圖標上看到的。 即使是這樣的設備, 你可以這樣做在Mac OS 沒有TextEdit或 窗戶用記事本偶數。 如果我繼續和雙擊 即使和選擇 - 好了,讓我們 沒有選擇,因為 Chrome的不開放。 讓我們繼續前進,打開瀏覽器。 然後執行命令-O開放 並導航到我的桌面 並打開文件。 這是怎樣一個瀏覽器解釋 HTML中,從上到下,從左到右。 嘿,瀏覽器這裡的HTML。 這裡的負責人。 這裡的稱號。 這裡的身體。 事實上,這是怎麼 它呈現的網頁。 但是要注意的URL。 沒有,你可以拉起來這個特定的 在您的筆記本電腦的頁面,現在, 甚至裡面的 通過該URL家電, 因為文件://表明它實際上 在我的文件系統,我的硬盤, 不是你的。 因此,這是不是所有的有用。 現在,讓我們走向移動 用一個實際的Web服務器。 而事實證明,在CS50電器 不僅僅是一個環境, 你可以寫C代碼和編譯 並運行它,就像你一直在做。 它也已被配置成通過所述 人員來表示一個典型的網絡 服務器在Internet上, 可能是你付 或一個就是在所謂的雲。 而且它的運行 標準的開源免費 軟件,例如,一些 叫阿帕奇,這也許是 仍然是最流行的Web 在世界上的服務器軟件 成千上萬的網站今天使用。 它甚至還可以有 軟件如MySQL, 這是一個數據庫服務器 我們最終會到達, 這僅僅是說 我可以開始治療 我的設備作為一個完全成熟的服務器 我不是支付其他地方。 它只是生活在自己的筆記本電腦 發展和方便的目的。 因此,讓我們繼續前進, 利用這一點。 我要繼續前進, 打開一個終端窗口。 而且我要繼續前進, move--實際上,第一個我 要導航到我的桌面。 如果我做LS,有hello.html的。 我要去 未來,並開始使用 我們已經新目錄 在今天之前不能使用。 hello.html--我要動 以../vhosts虛擬hosts-- 更多的,在未來 - 然後 到一個名為localhost目錄下, 這是考慮到幾乎暱稱 任何一台電腦,無論是在Mac,PC, 或Linux計算機,然後 具體到一個目錄中,我們, 工作人員已為您創建的時候 您下載的所謂家電 公眾。 正如它的名字所暗示的,任何事情 我把這個文件夾中,在理論上, 是要現在是 公開的,至少人 直接誰擁有 連接到我的電腦。 所以,現在讓我繼續前進, 做cd到同一個目錄下 這樣我就可以看到什麼 怎麼回事,輸入ls。 事實上,這就是 在那裡嘛。 我現在,因為我已​​經把這種說法 文件hello.html的一個目錄的內 稱為目錄的公開內 目錄內為localhost 所謂虛擬主機,這 感謝CS50人員 已被預先配置成 您的Web服務器的根目錄, 我現在希望能做到這一點。 我要開闢一個新的選項卡。 我要去不予立案://。 我將用實際 HTTP / localhost,該 再次,是暱稱 對於我自己的服務器。 然後我會去到什麼 文件名,只是要清楚嗎? 哪裡是這個故事的大概走向何方? hello.html的。 所以,換句話說,我想現在這個 是我自己的電腦,我自己的家電, 就好像它是一個真正的服務器。 它的綽號為localhost。 不過想想本地主機作為像 Facebook.com google.com,等等。 這只是我的本地名稱。 然後最終我要的是在 硬盤驅動器的根目錄,可以這麼說, 或Web服務器的根, ERGO正斜杠,然後 文件名hello.html的。 讓我縮小並按下回車鍵。 事實上,現在有我的網頁。 因此,它是略有不同的。 它只是為給人留下深刻印象。 這是舊版本。 讓我縮小字體回去。 這是老了。 這是新的。 但是,什麼是根本上發生的事情 現在是HTTP的正在被使用。 讓我們把這個更加清楚一點,或者, 如果你願意,更複雜一點。 讓我去右下角 角落我的設備的。 並注意到這一切 時間,還有的是一個數字。 這是唯一的地址 您CS50電器。 這是一個私有地址, 所暗示的172.16, 只有您身體只是手段 可以訪問這個Web服務器。 一切都和防火牆 很好地保護,其餘 因為這個世界的尋址。 現在發現,雖然如果我去 這個地址,而不是在我的器具, 但在Mac OS--我要去 回頭看過來。 這是我的Mac了。 而現在我要去開拓 這個版本的Chrome瀏覽器在這裡。 我要去到http://172.16.25 /我忘了rest-- 133。 所以我打算從我的Mac訪問 該IP地址/hello.html輸入。 而現在,我從我的Mac看 我的CS50電器,誰的 IP地址是 數,的確表現 像在互聯網上的web服務器。 它沒有一個很好的容易 記得名字一樣Facebook.com, 但它使用HTTP 顯然,即使鉻 一種是簡化了的世界 對我們來說卻沒有向我們展示HTTP。 但是,這確實是完全相同的。 Chrome瀏覽器只是節省一些 擊鍵這些天。 這就是我們現在看到的。 所以這是一切優秀和良好。 但是,這是一個非常深刻印象的頁面。 讓我進去做什麼 有一點不同了。 因此,讓我回去gedit中。 而代替打招呼, 世界,讓我們把圖像。 我從before--讓我去稱 進入我的本地目錄中公佈。 讓我繼續前進,複製 一大堆從今天的文件 從我的Dropbox文件夾複製到這裡。 現在,如果我輸入ls,看 在所有這些文件 我已經通過分佈 當然網站提前的今天, 其中之一是靜止hello.html的。 因此,有那一個。 而回憶這段痴心一片 從去年時間 - cat.jpg。 所以讓我嘗試嵌入 cat.jpg我的網頁裡。 我要繼續前進 做cat.jpg,保存。 讓我再回到瀏覽器。 讓我放大了 字體現在重裝。 哎呀,在這裡我把這個? Standby--我還有老 版本從桌面打開。 因此,讓我進入我的虛擬主機,我 本地主機,我的公開和hello.html的。 所以,現在讓我繼續前進, 說主體的內部cat.jpg 在這裡我希望它是 顯示並重新加載。 當然,這是不正確的。 所以,我需要告訴瀏覽器一點點 更刻意就是我想要做的事。 只需鍵入名稱是 顯然不充分。 所以,記得還有一個 標籤,圖像,IMG的簡稱。 這僅僅是因為人類 不喜歡的類型完整的單詞。 然後我們可以做源=“cat.jpg”。 現在我該怎麼辦 有一點不同的位置。 即使所有的 我們的標籤迄今有 過了這個概念 開始標記和結束標記, 這並沒有真正 有意義的圖像,對不對? 圖像或者是有還是沒有出現。 這樣一來,人類發展, 了一個簡單的約定。 當你有一個標記,既可以 開始和結束於相同的時間 - 它可以是空的,所以speak--剛 把正斜杠標籤內 在最後。 現在讓我回到我的瀏覽器。 打刷新媽的,什麼是錯的。 你可能已經看到了這個 偶爾在網絡上, 即使它沒有得到你的錯。 這是Web服務器的故障。 什麼頌歌這似乎預示? 這是壞了。 這就是圖像所屬。 是嗎? 聽眾:但它不 可以訪問該圖像。 大衛·馬蘭:這不 可以訪問該圖像。 也就是說,甚至更糟,也許 它甚至不存在。 讓我們來看看,如果我們不能診斷的。 從最後一次回想一下,如果 在Chrome中,在家電, 甚至在您的Mac或PC, 你去Developer菜單 並轉到開發工具 選項,這可能是你已經 不使用過多或過。 如果我去網 並重新加載頁面, 讓我們來實際看一下HTTP 正在做出該請求。 它看起來像hello.html的是 確實好,因此200。 但cat.jpg是403。 所以它不是一個404。 文件可能存在。 403是指禁止。 所以這是一個有點混亂。 我要回去 我的終端窗口。 讓我放大了這裡。 讓我做一個LS。 有那些相同的文件。 現在讓我做了LS-L, 這你可能 之前看文件中使用 尺寸可能或時間戳。 而且我們看到一大堆 鋪天蓋地的信息。 但是要注意一些細節。 下面是hello.html的本 排在這裡和這裡的cat.jpg。 它只是家電是 用戶通過突出顯示JPEG友好 紫色是這樣的。 但是,什麼是不同的旁邊 文件大小和文件名? 聽眾:[聽不清]。 大衛·馬蘭:是啊,有 2多個R的看過來。 注意什麼hello.html的已回事。 所以,事實證明,名稱 這個目錄公開是很重要的。 任何在此目錄中 是指被公開。 但是,這還不夠 只是在那裡放文件。 你還需要改變 的文件的模式, 更改的權限 該文件不主動 是默認設置, 這是只有我能讀懂 寫吧,我是主人。 我想全世界的每個人都來 能讀懂我的文件,可以這麼說。 閱讀只是手段進行查看。 事實上,正如你會在看到問題 設置7,這就是這些R的意思。 這兩個R的意思讓大家 在世界其他也讀它, 尤其是現在, 這是該目錄中。 因此,要解決這個問題最簡單的方法是 去我的提示做CHMOD變革 模式,然後做一個+ R,乾脆, 每個人,一切和r表示讀, 然後cat.jpg Enter鍵。 似乎什麼都沒有發生,這 通常是指一件好事。 所以LS-L again--現在 讓我們來看看cat.jpg。 與此權限 似乎已經改變。 順便說一句,如果你犯了一個 錯,你,例如, 剛才your--我不知道 - 作文 公開偶然訪問, 你可以反其道而行之,存取權限chmod a-R。 但坦率地說,它不應該 在公共目錄 反正如果是這樣的問題。 所以,現在,讓我們回到 我的瀏覽器和重載。 我要去點擊 小捉鬼敢死隊 符號清除的那部分 屏幕,我們可以看到新的要求。 事實上,這裡是 脾氣壞的貓從之前。 但更重要的是, 技術上,有 數200,其 意味著我們得到了確定。 好了,所以這是一切優秀和良好。 但是,我們並沒有做 最好的網站, 我們也將試圖太難 使網站今天最高檔。 但是,讓我們至少做一些事情 之前劍拔弩張超熟悉 關閉其他幾個標籤。 因此,假設我不只是要一隻貓在這裡。 假設我真的希望這 貓要鏈接到的東西。 我可能,例如 做這樣的事情。 一個錨的HREF 超基準equals-- 而我們只是做一些事情 像www.google.com關閉 引述接近支架。 現在搜索的貓。 關閉錨標記。 因此,這只有一個排序 從根本上新的細節。 當然,標籤是不同的。 它的名稱的錨 HREF或Hyper參考。 但更重要的是,有 這個語法功能在這裡。 這就是我們將開始呼喚 沒有一個標籤,而是一個屬性。 和屬性是什麼, 修改標籤的行為。 而這種屬性,HREF,手段 修改此錨的行為 這樣,當它被點擊, 它進入這個網址在這裡。 ,當然,該URL是谷歌。 同時,這是什麼 文字在這裡將會是? 嗯,這將是 實際上是什麼人 看到的下劃線 鏈接,就這麼簡單。 因此,讓我們試試這個。 讓我保存它。 我仍然在hello.html的。 但在網上的版本中,你會看到 我們的實際文件名預先製備。 讓我繼續前進,重新加載。 而現在它是一個非常 給人留下深刻印象仍頁面。 但是,如果我將鼠標懸停在那裡 - 這是一個有點小, 但 - 你可以在下方看到 左上角屏幕, 它真的到google.com。 如果我點擊,它會 拂我的方式來實際的谷歌。 但是請注意,這裡的機會 開發,只是作為一個備用。 我們會回來給其他 安全用不了多久的問題。 因為有這種二分法 你去哪裡和你說的, 你可以這樣做 this-- http://www.google.com。 好了,現在如果我重裝 保存該網頁後, 它看起來像我會去谷歌。 但是,沒有任何原因,我 必須去谷歌,對嗎? 我其實可以去像 badguy.com,重新加載該頁面在這裡。 和通知,它仍然看起來像谷歌。 且僅當我尖銳 足以將鼠標懸停在這裡 我會看到它甚至會 去一個不同的位置。 所以,如果你曾經得到 的電子郵件,特別是 一個來自支付寶,或 貌似從支付寶 請您登錄 您的帳戶,這 所以你千萬別 曾經在電子郵件中點擊鏈接, 坦率地說,在電子郵件中的任何鏈接。 如果你知道你有實際 在支付寶或銀行的錢 美國或富達或任何 網站手動輸入進來。 因為看起來它是多麼容易 欺騙某人為展示什麼 看起來像一個鏈接。 但它實際上可能 絕對去任何地方。 並有更大的 威脅莫過於此。 其實,這是一個有點 切線的現在,但一 的最好的我見過 這已被關閉, 是有人牽頭人 to--所以這可能會說, 點擊這裡登錄到您的 帳戶,銀行帳戶。 這是西方銀行。 因此,有人買了這個。 這是一個很容易就能看到 它在一個單間距字體放大 在一個30英尺的投影機。 但是,當它是小字體中 電子郵件是您收到, 這看起來像bankofthewest.com, 不bankofthevvest.com, 其中有人已支付10美元購買。 然後這導致了他們的 相當於一些不良網站。 你會看到too--其實我們可以做的 this--如果我去實際的網站, bankofthewest.com,再次 從上一次召回 如果這是他們的網頁, 你好奇的是,它的工作原理, 你當然可以去 Chrome的開發者工具。 你可以看到所有的 HTML格式良好的存在​​。 但更重要的是, 你cam--讓我們關閉 this--你可以去查看 開發人員查看源文件。 我為什麼不只是複製 所有這一切,然後我 可以進入我的小窗口gedit中 在這裡,讓我自己的網頁。 在hello.html的存檔。 大概這是要打破, 因為它不是如此簡單平常。 但現在,如果我重裝上自己的網頁 我自己CS50電器和打重裝, OK,有些東西打破了。 但我敢接近有 我自己的銀行網站,對吧? 所有的這HTML-- [笑] 大衛·馬蘭:--I 沒有actually--你 知道有一個人在那裡誰 實際上過於點擊這些鏈接。 所以很明顯,有些東西打破了。 但是這會導致 我們進入一個討論, 不必要的現在,至於是什麼 CSS,層疊樣式表,是, 實際上你如何 下載其他HTML文件 和JPEG文件GIF文件 該網站可能會使用。 但是,所有這一切是accomplishable。 但是,它真的可以歸結為 這些非常簡單的啟發式方法。 所以,現在就讓我們通過略讀 幾個HTML的其它實例 只是給你的感覺 還有什麼可以做。 例如,這是list.html。 假如我要拍一個網頁 與房屋的四邊形的列表。 我可能會使用的UL標籤無序 列表,然後將列表項子 然後遍歷over--或列表, rather--房子有問題。 如果我開這件事,讓我們做到這一點。 讓我們不要hello.html的, 但list.html。 該死的。 我該如何解決這個問題? 這是相同的問題和以前一樣,對不對? 所以,讓我做chmod-- oops-- 存取權限chmod a + list.html的河 而現在,如果我回到我的瀏覽器 單擊刷新,它就在那裡。 因此,如果你曾經想製作 項目符號列表,你可以做到這一點。 如果你想成為超級花哨,使 的有序列表,而不是一個無序列表, 改變那些OL,重新加載頁面, 現在,瀏覽器將編號給你。 我們還能做什麼? 嗯,一對夫婦的others--如果 你有text--長款 例如,一些 像this--拉丁文本 你希望它在不同的段落, 開P,段落標記密切頁。 而一次又一次地這樣做。 如果我現在打開這個文件, paragraphs.html,好了,這 越來越討厭。 所以,現在就讓我們回到我 提示,存取權限chmod a + R R星.html-- 一個可愛的小外卡可以這麼說。 這應該可以解決所有的 這些問題對我來說。 讓我們來重新加載。 有三段。 現在,讓我們繼續 並開闢另外一個。 怎麼樣的表? 你會發現表如下 稍微複雜一些。 但它同樣idea-- 開放標籤,打開標籤, 開放,開放,開放,關閉標籤,打開標籤。 而這些恰好代表 表,其邊界是很明顯 將是一個厚度1--任何 這是指:表行,表 數據,這意味著小區。 如果我回到我的瀏覽器 在這裡,去table.html, 你可以看到什麼 這樣,猙獰。 但我們會去點 在這裡我們可以真正 使比漂亮的東西。 因此,讓我規定現在。 還有更多的標籤束。 而HTML是美妙的回暖 因為,坦率地說,所有你需要做的 是看現有的網頁 與你熟悉。 和你一樣,哦,這是怎麼 他們這樣做美觀。 或者,你可以查找任何在線 資源為HTML是如何工作的, 你會看到,有一個 其他標記的所有詞彙。 但是,用簡單的心理模型 孤獨,幾乎任何標籤打開 已被真正關閉, 沒有足夠的自學 HTML了解後, 標籤這些基本理念 和屬性以及良好性 我們已經談到, 收什麼,我們可能會打開 所以,我們不要混淆一個瀏覽器。 現在讓我們藉此來 一個更有趣的水平 通過將實際的。 讓我們去我的Mac 在這裡,到google.com。 現在notice--讓我們做到這一點。 我鑼去 設置,搜索設置。 我想關閉這個惱人的瞬間 結果事情立刻在那裡 開始回應你的打字。 讓我們做到這一點舊的學校,所以 實際上我們看到發生了什麼事情。 所以,我要救我 谷歌在這裡設置。 現在notice--我要去 搜索類似貓科動物。 它仍然在做汽車 在這裡完成,但基於東西 人們已經輸入了過去。 但是要注意什麼事情要發生。 在URL的時刻 是這樣的,只是google.com。 而在技術上,它的斜線。 谷歌只是保存字符 而不是向我們展示這一點。 他們向我們展示了HTTPS,只 是超級讓人欣慰的是我們 在安全或加密的頁面。 因此,讓我繼續前進,尋找貓。 現在,這個真的有 鋪天蓋地的快。 看看這個URL的長度。 但事實證明,大部分這樣的東西 在URL實際上是相當無用的。 我要開始刪除 事情我不明白。 我看到貓。 我明白了貓。 我不知道為什麼貓那裡了。 我真的不知道 這是什麼廢話。 所以,我只是要保持 突出顯示和刪除的東西 我不明白, 蒸餾網址逼到這一點。 現在,讓我得到重新輸入。 它看起來像谷歌仍然有效。 所以由於某些原因,他們增加一個 很多東西到他們的URL的默認。 但它沒有嚴格要求。 那麼,什麼是好的,這一點? 好吧,讓我繼續前進, 打開Chrome的督察。 有一點點鼠標快捷鍵吧。 進入網絡選項卡。 現在讓我重新加載 此頁面一次。 而且我按住Shift鍵。 順便說一句,瀏覽器 往往高速緩存或保存 只是為了效率的緣故信息。 但通常情況下,按住Shift 重裝將迫使一切 從頭開始。 而這正是我想在這裡做。 並注意所有這些 那個剛剛出現的行。 事實證明,在任何給定的網絡 頁,則可能是只有一個文件 involved-- hello.html--或有 可能是52,因為在這種情況下。 當我訪問google.com, 顯然,我的瀏覽器 揭幕52分開的HTTP請求。 這是為什麼? 好了,看看裡面有什麼 這個網頁往上頂。 這裡不僅是文字, 但有實際圖像 的貓科動物轉移到右側。 有一個豐富多彩的標誌在這裡在左邊。 還有所有的圖標 用於麥克風等。 有很多件,建築 塊,刮片,如果你願意, 這個網頁。 什麼樣的瀏覽器做在 獲得的第一個文件,該文件 是此行這裡時,它基本上 遍歷HTML頂部 至底部,左到右,找 之類的圖像標記或其他標記 所提到的其他的文件和 當它看到他們,去和他們取 通過HTTP,可行全 信封比喻, 然後在顯示它們 在網頁中適當的位置。 但是請注意,在這裡,如果我專注於 第一擲,搜索貓, 注意到,確實它使用HTTP 1.1。 不幸的是,谷歌 Chrome瀏覽器目前已經在39版 是一種方法簡化下來,並 不向我們展示了實際的頭。 但確實是發送一個請求 不削減,但/搜索?Q =貓。 現在,為什麼是重要的? 嗯,我要去推斷 從這個,如果你谷歌 支持這種形式,為什麼查詢 不我實現我自己的搜索 發動機CS50,只是前 結束,就在圖形用戶界面。 我們將外包後端, 實際的搜索結果谷歌。 所以,我怎麼能這樣做呢? 好吧,讓我進入gedit中在這裡。 讓我繼續前進,打開 了,讓我們說,一個新的文件。 而且我要救這個 暫時作為搜索-0.html。 然後最終,我們將快速 期待一個我事先準備好的。 而我要去 迅速掀起文檔類型 HTML打開HTML支架 靠近支架的HTML。 然後我會做頭 靠近頭部公開賽冠軍CS50 搜索代替谷歌搜索。 到這裡我將有 身體,到這裡靠近身體。 現在我需要CS50搜索。 而實際上,讓我們 建立這個增量。 我要繼續前進,並關閉該和 其實把它放在我的公開目錄。 所以給我的只是一個瞬間。 搜索0.html--我要去 時間search.html調用它。 我要和chmod它+ R search.html。 現在我要打開它。 好了,所以這是快。 但我們的目標是簡單的 讓我們給點意見 有此文字 文件名為search.html。 所以,沒有什麼好看的呢。 事實上,如果我去我的瀏覽器,並 去search.html,這一切是。 但是你知道嗎? 我可以是一個小票友。 我在讀一本書,有 標題標籤稱為H1。 而且我要繼續前進, 使用開放的H1和關閉H1。 重新加載頁面。 現在它的更大,更大膽, 不是所有的有趣, 但至少在結構上 更有趣。 但現在讓我介紹另一個標記。 原來,有一個表單標籤。 讓我關閉的標籤。 而事實證明有 輸入標記, 有一個名為類型的屬性,它 是該字段的數據類型, 如果你願意。 並且將是文本類型。 它的值是怎麼回事 要CS50搜索。 關閉標籤。 而且也將是沒有概念 打開和關閉與獨立的標籤。 讓我回到了這裡 看看這是怎麼回事,重裝。 越來越有趣。 它看起來就像是一個文本字段。 而實際上,我不想 把一個價值還沒有。 讓我回到這裡,並實際獲得 擺脫這個值來保持它的簡單。 而不是一個值,我想要的東西 給這個事情是一個名字。 我不知道它是什麼, 所以我會回來的。 但下面這一點,我想 做INPUT TYPE =提交。 並且這個值將是CS50搜索。 我們會看到為什麼我 移動的價值這一點。 當我重裝,我好像現在有 我自己搜索的開始 發動機,超可怕的, 但坦率地說,這是 不是遠遠拋在了什麼 谷歌的默認頁面的樣子。 如果我現在在這裡,我可以鍵入 貓,希望單擊搜索。 但我沒有完全完成, 因為我還沒有實現, 顯然,一個數據庫。 我還沒有爬的 網絡搜索結果。 所以,我需要外購,為谷歌。 那麼,如何做到這一點? 嗯,首先我的 需要補充和行動 歸功於我的表單標記, 是http://www.google.com/search。 我知道,只有從具有 看仔細推斷 在他們的URL。 而現在採取的猜測。 什麼應該這個文本字段可能 被稱為基礎上,我們來了 從之前? 聽眾:Q。 大衛·馬蘭:Q。 而我們實際上並不需要的問題 紀念它的出現,但q是確實的, ●對於可能由查詢 默認情況下,只是因為這是 拉里和謝爾蓋 想到了幾年前。 所以,現在讓我重新加載該頁面。 它看起來並不都不同。 但現在看會發生什麼。 如果我輸入的貓和點擊 CS50搜索和放手, 請注意,我得到護送 客場實際谷歌。 現在,谷歌正在一點點 惱人的,因為它們是 附加一個額外的參數, 如果你願意,到URL。 這一切發生 自動對谷歌的一面。 最重要的是,我似乎 要在這裡產生了這一請求。 事實上,這是發生了什麼。 當你有HTML的 看起來是這樣的,這 是某種Web開發人員表示法 這麼說,就創建一個表單 當它的提出, 它會去這個網址。 並且當URL提供 對於喜歡的東西的Q值, 不要去只是為了這個URL。 其實,去質疑 標記,然後Q =貓。 附加的參數時, 像HTTP參數。 和剛需超精密, 什麼東西被推斷這裡 - 但我會更explicit--是 我想使用的方法 為得到而不是像, 後,我們最終會看到的。 因此,在短期,簡單地理解 HTML和使用一些非常簡單的標籤, 我們現在可以開始創建 我們自己的前端用戶 與搜索界面 發動機後面。 但當然這是很可怕的。 因此,讓我真正打通 一個稍微好一點的版本。 這是我編寫的一個 提前有一些意見。 但是你會看到,我 幾乎是重新創建它。 因此,這是網上已經可用。 我也正好先發製人 訪問https只是為了保持它的簡單。 現在,讓我們打開了 這下一次迭代。 是版本1,而不是0。 什麼跳出你的稍微 在這個例子中有什麼不同? 聽眾:[聽不清]。 是啊,有這樣的文字居中。 這是一個有點怪異了這裡。 但是,這確實是新的。 也許猜到了什麼事情發生。 如果我去我現在的瀏覽器 參觀搜索1.HTML, 這幾乎是同樣的事情。 但它是更近了一步 是多了幾分可愛。 它仍然是醜陋的,但在那漂亮 至少一切的,現在居中。 所以,事實證明,我正在使用 在另一種語言完全叫 CSS,層疊樣式表。 和CSS,坦率地說,是一種 ,在我個人看來, 一個殘暴的設計語言。 這是非常惱人的記憶 所有的各種細節。 但它是什麼stylizes的 整個萬維網今天。 我得罪人。 行。 所以,讓我們回到這裡,看看 怎麼我們實際上用這個。 而事實證明,至少它的 實際上是一個非常簡單的語言。 這只是鍵值對,性質 和值,屬性和值。 事實上,這裡是1 這樣的屬性和值。 只需通過使用樣式 屬性在我身上的標籤 並給它的值 字結腸和另一單詞, 或一個屬性和一個值, 我會影響美觀 的網頁,而不是對 不一定但該結構中, 但它的美觀性。 而就在谷歌搜索的時候,我意識到 該CSS,層疊樣式表, 支持一個名為屬性 文本對齊,其值可以 將左,右或中心,例如。 所以,現在當我重新加載 這一頁,我沒拿到 是一個居中的頁面, 但仍然相當難看。 讓我們繼續前進,打開 搜索了第2版。 現在發現我做多一點。 注意,在這裡的頭部的裡面 標記,可以有多於標題。 事實上,有一個風格的標籤。 而這正是它只是得到了 有點亂眼看CSS的時候。 請注意,我好像有東西 在結構上看起來非常不同。 但這裡是名 我想要的標籤程式化。 這是我們的老朋友捲髮 括號和封閉的大括號。 然後這裡是 屬性和它的值。 如果我打開這個文件,search2.html, 最終的結果是相同的。 但它是朝著更好的設計的一個步驟。 通過分解出這個CSS,我已經 不符合我的HTML混合的。 事實上,正如我們所看到的,我可以 重新使用這些屬性和值。 如果我要拍的串 我的網頁的部分為中心, 我不必鍵入風格=文本對齊 中心所有的地方。 我可以在一個地方 或許,就像在頂部。 但是,即使這不是最好的設計。 事實上,其中的一件事,你將學習 因為你花更多的時間與 網絡編程的,你就可以 模塊化的東西和因素的事情了 像.h文件讓我們因數的東西​​出來, 喜歡helpers.c讓我們因子的事情了 一些pset中前。 同樣地,我們可能 要實現這一點。 因此,在版本通知 3 search.html我已經 清理的頭 頁面,只是把 在此,一個鏈接標記,這 相反的名稱, 不給你一個超鏈接。 它通過的方式鏈接到另一個文件 一個href其值在這種情況下, 是搜索3.css 所以,我知道我們要快。 但是,所有我做的是怎麼樣 中移動周圍的事物。 讓我打開搜索3.css。 就在那兒,沒有什麼吧。 我只是複製並粘貼到一個新的 文件,就像我們分解出來的東西 進入之前的其他文件。 和result-- 完全underwhelming-- 將是完全一樣的。 但是,我們正在toward--不,它不是。 哦,我知道為什麼。 因此,它似乎是一個錯誤。 它在某種意義上是。 不過,讓我打開我的網絡標籤。 讓我重新加載頁面。 啊,為什麼是CSS沒有被應用? 那麼,CSS文件,同樣,有 是世界可讀​​的,可以這麼說。 而它也正在被禁止。 因此,讓我做一個存取權限chmod a + R 星點CSS-- whoops-- 我們點CSS僅僅是 文件擴展名的CSS文件。 現在讓我回去 我的瀏覽器和重載。 OK,好一點。 現在讓我做最後一件事。 在搜索4.html。 我說我只是想一個版本 是這樣涼,雖然這樣更 複雜的。 讓我們來看看結果第一次。 關閉這個給我們更多的空間。 改變這種搜索-4,回車。 現在一堆東西被打破。 我要回去 進入我的目錄位置。 而現在我只是做 一+ R上file--在chmod 因為我知道它叫exists-- logo.gif,這是一個圖像。 而現在重裝。 和wow--所以現在我 八九不離十,坦率地說, 喜歡1999年的版本,谷歌,以及 坦率地說,在2014年版的谷歌, 對不對? 所以它現在要他們的網站, 最終,如果我搜索的貓。 的確是。 但我做了什麼不同 在這個版本4? 所以我們不會過多談論在這裡。 你會看到這個問題, 集7最終。 但是請注意,我做了幾件事情。 我介紹一個div 標籤,這是師, 類似的精神,一個段落標記。 但是,一個部門就像是,這裡的 一個長方形的不可見區域 屏幕。 讓我們給它一個獨特的 標識符,頁腳,只是 這樣我們就可以談 它在其他地方我們的HTML。 這裡是頁的另一種格 其ID將是內容。 它是該頁面的內容。 而且在這裡是頁的標題中。 換句話說,我已經 實際上在HTML中很弱智 查看此網頁的 三部分組成,一個頭 在這裡用這種無形的矩形, 在中間的內容,然後 頁腳向下跌破,甚至 雖然我們沒有看到那些東西。 因為我想在我的腦海中 在此頁面,或在.css文件, 我可以用這個語法。 頭是不是一個標籤。 這是一個ID,因此它變成 指出,這樣做的#header, 我現在可以申請一個或多個 屬性的報頭。 我可以做同樣的內容, 同樣對於這裡的內容。 因此,例如,在頁腳,通知 所有這些特性,我加入。 我知道它們的存在僅僅通過閱讀 了對CSS的文檔。 字體大小將是smaller-- 因此一些相對字號。 權重將是大膽的。 Margin--多少像素 圍繞它 - 是20個像素。 而且它會為中心。 但現在,頁面看起來是這樣的。 如果我不喜歡的 我的副本就在那裡, 我可以不喜歡紅色。 然後我就可以節省這一點,重新加載, 現在我已經程式化頁腳。 所以這只是暗示的力量 你可以在一個網頁怎麼辦 改變周圍的事物。 而比這更酷,如果你想 閒逛實際的網站, 你永遠不能改變他們。 但是,如果我打開 再次Chrome的督察 我去不要的左手側 在這裡,這說明Facebook的HTML, 但在右圖所示 右手邊所有的CSS, 您可以和 在運行中改變的東西。 因此,讓我繼續前進,做到這一點。 讓我繼續前進,控制 在這個隨機單詞點擊這裡, 簽字,然後單擊檢查元素。 Chrome瀏覽器很方便地跳轉到 Facebook是用h1標籤。 並請注意這裡的Facebook 有一種懶洋洋 硬編碼的字體大​​小為這裡的屬性。 因此,很酷的事情,雖然是 如果我真的去這裡 並說,哦,Facebook的,我不喜歡這樣 64個像素,我們可以改變現在的Facebook。 當然,我們只是改變它 對我個人的時刻。 但是,這僅僅是另一個 工具在我們的工具包 那將讓我們能夠調整 並找出和診斷也 問題在我們自己的網頁。 我們可以同樣地走了過來 在這裡,這是同一件事。 如果你真的想獲得幻想,我 意思是說,現在你真的可以發生變異的頁面 做瘋狂的事情。 那麼,為什麼這一切有用嗎? 好了,最後,我們 將要成為 能夠創建Web頁面 通過我們自己的後端驅動, 不只是谷歌和 外包後端存在。 我們真正想要的 值,例如 我們的搜索引擎的作用 屬性去不是別人, 但像search.php中, 那裡的search.php是我們自己的服務器上, 而不是別人的。 所以到那裡,我們其實 需要引入一種新的語言。 因此,我們已經看了一眼新 這裡的語言,或兩個真的,HTML 和CSS。 但他們真的只是 結構和審美語言。 他們不是編程 語言本身。 那就是盡可能多的正式 時間,我們將花費在他們身上。 因為我們現在將開始 轉換到PHP。 所以,PHP是一個實際的 編程語言。 這是一個腳本語言 在這個意義上,它的 意思是重量更輕 不是像C. 它是一種解釋型語言, 這意味著它不會被編譯。 因此,概括地說,這是什麼意思 當我們使用類似C語言 我們不得不去編譯它? 什麼意思 編譯C源代碼? 聽眾:[聽不清]。 大衛·馬蘭:再說一遍嗎? 聽眾:[聽不清]。 大衛·馬蘭:完美。 它把它變成二進制代碼。 它把它變成零和一 從實際的類似英語的源代碼。 然後我們就可以真正 運行這些零和一 通過在將它們傳遞 CPU通過雙擊圖標 或者運行一個命令。 PHP和Python和Ruby 和Perl和JavaScript 和其他的串 語言的解釋 語言,這是說 你不編譯它們。 相反,你餵它們作為輸入 一個程序調用一個解釋。 並且解釋, 這別人寫的, 讀取您的源代碼,從上到下, 左到右,只是解譯 那些線條和做什麼,你說。 所以,如果你遇到一個 該行表示,打印, 它不一定轉換打印 為相應的零和一。 它只是有這種類似的解釋 一個大的if條件,上面寫著: 如果程序員的指令 打印,然後執行以下操作。 所以它只是把它解釋 通過一種推理 通過什麼你告訴它做的事。 而PHP是其中一種語言。 和PHP年前設計 正是基於web編程。 它最初是一個 很邋遢凌亂的語言。 事實上,有一個巨大的 量差的PHP代碼在那裡。 但是語言本身 已經成熟,多年來, 以至於現在它的 實際上是一個美妙的下一步 教學上從C,因為它​​是 所以該死的熟悉的一切 你剛才看到的,在過去的幾個星期。 我們將看到一個初始的區別 是沒有的主要功能了。 當你開始寫代碼,它只是 要得到執行,不管是什麼, 正如我們將看到一個時刻。 同時,這裡就是一個 變量看起來像在PHP。 這是一個有點不同的, 但只是勉強。 在PHP中,有沒有強類型。 還有一周打字, 這只是意味著有 有數據類型,如字符串 和數字和其他東西。 但是,你不要打擾指定 他們是什麼樣了。 PHP的數字出來給你。 美元符號僅僅是一個決策 該PHP的人做年 以前,這樣在PHP中的任何變量 剛開始用一​​個美元符號。 它是一種真正的有用 它跳出你多一點。 但在此之後,這 在PHP中的條件。 有什麼不同的對C? 欺騙question--什麼, 這實際上是非常好的。 布爾表達式PHP--相同。 同和與布爾表達式 或者,開關,循環,循環,loops-- OK, 這個人是不同的。 因此,原來有一個 情侶在PHP中的其他功能。 其中之一就是實際上這一點, 這是奇妙的方便。 如果$的數字是,你已經一個數組 在程序中事先聲明, 你有這樣奇特的每個構造 這樣做,而不是所有的 討厭我等於0,我是 低於此,[? I ++?] 每個數字作為編號,其中每個 那些美元符號的值就是 一個變量,而後者 你能想到的是一 你可以把它叫做任何你想要的。 我把它叫做數字。 這是要遍歷 數組被叫號碼。 並在每個迭代中,它是 要自動更新 為你的美元符號數 變量使你不斷 有機會獲得你想要的變量 無需做任何括號 符號或索引到一個數組中。 除此之外,我們甚至有類似的東西 數組,這看上去幾乎相同, 除非這是非常常見的,如我們 看,無論是在PHP和JavaScript 預初始化數組 使用方括號。 C使用大括號。 因此,它是略有不同的,即使 我們並沒有真正使用的伎倆了。 但更強大的是, PHP有關聯數組, 這是一種奇特的方式 說法哈希表。 事實上,如果你想聲明一個哈希 表在PHP中,不像在C--多少 代碼行花了來 真正實現在C語言的哈希表? 或者有多少行代碼是 以C語言實現一個哈希表? 因此,它可能是一個很大吧? 這是幾十個,也許100或200。 這是平凡的。 或者它即將被作為 您很快就會看到,平凡 實現一個哈希表 [聽不清],也是一個嘗試。 但在PHP--坦率地說,我 或許不應該告訴你這 直到Monday--在PHP中,如果 你想有一個表,完成。 這是一個哈希table--這樣 用一行代碼。 和 很多語言做到這一點。 有樂趣的PSET 5。 所以很多語言做到這一點。 他們給你的這些抽象 其他人,其他程序員, 為你創造這樣 你可以站在他們的肩膀上 並開始使用的想法是超 引人注目的,像哈希表和樹 並嘗試。 但你不一定要 實現這些東西自己。 因此,最終,有什麼 我們將使用PHP 可能是寫程序 所謂的命令行。 我們可以重新創建每個程序 我們已經寫了本學期迄今, 也許除了突圍它採用SPL, 這是專門針對C的時刻。 但是,所有其他問題集, 當然馬里奧和愷撒 和的V @ genere和 [?破解?]及以後,我們 可以重新實現在PHP中,和 可能有點更容易。 但我們最終會 用PHP的Web編程。 而我們將要介紹下一個 一周的心理模型,一個叫範 MVC,模型視圖控制器, 其中,如果你做編程 之前在Python或 Ruby或其他地方,你 可能知道這支球隊與 Rails和Django和等。 但如果你是新來 這也太,你會看到 這其實是一個很自然的 延伸因子的 和設計的那種 的代碼,我們已經 一直在做C.我們要現在 運用其中的一些教訓,PHP 所以,最終,我們是 實現我們自己的網站。 如果你是那種 催眠或驚奇 我們要做的 所有的這麼快, 認識到,幾乎每 學期中,近90% 學生CS50,包括那些 誰從來沒有編程之前, 最終使最終的項目 基於web編程。 所以你會看到回報 高在幾週來。 所以我們會看到你,然後在星期一。 揚聲器1:現在,深 思考了Daven法納姆。 哈希表。 [笑]