JavaRush /Java Blog /Random-TW /講座 CS50 的附加資料:第 0 週(講座 1 和 2)
Bender
等級 1
Маунтин-Вью

講座 CS50 的附加資料:第 0 週(講座 1 和 2)

在 Random-TW 群組發布
誰還沒看過哈佛關於程式設計基礎的講座,請來這裡: https: //javarush.com/quests/QUEST_HARVARD_CS50 =)

介紹。CS50課程結構

講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 1朋友們!在介紹中,我們將提醒您(或告訴您任何人)CS50 的結構。課程為期12週。每周有兩次講座,以及各種研討會和講解。講座一準備好,我們就會發表這樣的文章。它將包含講座的簡要說明、「短片」註釋和附加訊息,以及實踐作業的翻譯。零週講座涵蓋以下問題:
  • 二進制數係統。
  • ASCII碼
  • 演算法和演算法思維
  • 編譯器
  • 刮擦語言
  • 布林表達式
  • 狀況
  • 週期
  • 變數
  • 功能
  • 陣列
  • 活動
第 0 週目標:
  • 了解如何以數位方式表示資訊。
  • 學習基本的軟體結構和概念。
  • 使用 Scratch 創建自己的動畫、遊戲或互動活動。
  • 給你的朋友留下深刻印象=)。

CS50 第 0 週(講座 1-2):筆記

演算法

講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 2我們希望您已經觀看了講座並了解演算法將問題的解決方案(各種問題、數學問題或“如何到達地鐵站 N”)分解為多個步驟。而且,每個步驟必須在有限的時間內完成,並且步驟本身必須有一定的數量。此外,下一步取決於上一步驟。例如,您可以在此處閱讀有關演算法的更多資訊。如果你懂英語,請觀看 David Malan 製作的精彩 TED 動畫:https://youtu.be/6hfOvs8pY1k 雖然影片中的資訊通常會重複講座中的信息 =)。

二進制數係統

講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 3我們有 10 根手指,系統是十進制的。也就是說,我們可以使用數字 0、1、2、3、4、5、6、7、8、9 來表示任何數字,無論有多大。根據數字在數字中的位置,它可以表示不同的是:如果這個數字是最後一個數字,那麼它位於個位,倒數第二個位於十位,更左邊的是百位,依此類推。本質上,任何數字都可以寫成數字總和,每個數字都乘以十的某個冪次方。在單位的情況下 - 零。例如,1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3。數字相乘的數字稱為數字系統的基數。對於十進制系統,邏輯上的基數是十。計算機沒有手指,但有兩種狀態:有條件地“電流正在流動”和“電流不流動”,零和一。因此,電腦記憶體中的所有數字(以及一般資訊)僅由兩個數字組成 - 0 和 1。與十進制數字系統的情況一樣,它們的位置指示數字。現在這個數字可以分解成數字和,不是乘以十的冪,而是乘以二的冪。二進位中的 0 = 0 二進位中的 1 = 1 二進位中的 2 = 10 7 10 =111 2 學習從二進位轉換為十進位。您可能已經了解這是如何完成的 - 我們只需從最右邊的數字開始取數字,然後將其乘以與其數字相對應的底數次冪,然後將每個數字的所有內容相加。例:讓我們找出二進制數 101101 2 最右邊的一個 = 1*2 0 下一個零 = 0*2 1 右邊第三個 = 1*2 2 第四個 = 1*2 3 .. …依此類推101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 想像八個燈泡排成一排。他們每個人都有自己的開關。每個燈泡都是一次放電。你能想像什麼,記得第一堂課(那裡有這樣一個設備)或這裡有一個小部件供你使用: http: //cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html 播放借助它,練習「感受」它的二進位系統。從十進制轉換為二進制。如果你了解其本質,這裡的一切也都非常簡單。這裡我們有數字 57 10。要將其轉換為二進制,您需要確定兩個的最大冪不超過這個數字。2 6 = 64。這顯然太多了。但是 2 5 = 32。現在我們已經確定了最高有效數字。32 10= 100000 2 . 現在我們正在尋找下一個數字。57-32 = 25. 現在對於 25,我們正在尋找不超過 25 的 2 的冪。2 4 = 16. 這意味著我們的下一個數字也等於 1。32+16 = 48 10 = 110000 2。57 – 48 = 9。2 3 = 8,這小於 9。這表示下一個數字也將是 1。32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1,即只剩下1次方2 0。因此 57 10 = 111001 2。如果突然有些不清楚,你可以在維基教科書上閱讀更多內容,如果你的英語很強,這裡有一個對講座的小補充。

ASCII碼

講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 4電腦只能理解零和一,它的記憶體可以表示為一串很長的帶有開關的燈泡,如您在上面看到的。我們已經了解如何在計算機中表示數字。剩下的資訊呢?字母、圖片?假設英文字母表中有 26 個字母。也就是說,理論上我們只能用二元來表示0到25之間的數字。出現了以下問題:我們如何知道我們有一個小寫字母還是大寫字母?標點符號呢?像空格這樣的隱形標誌?簡而言之,我們需要一個編碼系統,Cap!在 20 世紀 60 年代,出現了許多不同的字元編碼方案。缺乏統一性被證明是一個問題,1963 年,美國標準協會 (ANSI) 開發並推出了 ASCII(美國資訊交換標準代碼)編碼方案。每個 ASCII 字元由 7 個位元組成,即 7 位,每個位元可以取值 0 或 1。7 位可以保存二進位從 0 到 127 的數字,這表示我們有 128 個數字來編碼字元。看起來這足以對書寫英語語音進行編碼?我們來數一數: az - 26 個選項 AZ - 26 個還有 0-9 - 10 ,;:~& 和其他標點符號 - 32 個 還有一個空格。總計 - 95 個字元。其餘 33 個空選項用於所謂的控製字符,例如換行符或回車符: https: //ru.wikipedia.org/wiki/ASCII#/media/File : ASCII_Code_Chart.svg區分它們很重要字符0-9和數值0 -9。字元 0-9 由 ASCII 值 48-57 表示。有趣的是,這些 ASCII 值最右邊的四位是數值 0-9 的二進位表示。這在某種程度上簡化了 ASCII 值與其實際數值之間的轉換方式。我們開始程式設計吧?

刮痕

講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 5所以,刮擦。講座中向您介紹了這種視覺化程式語言及其基本命令。要親自嘗試 Scratch,請點擊連結並點擊「加入」。註冊後,您就可以開始線上程式設計。是的,順便說一句,今天的 Scratch 已經部分俄羅斯化了。不過,幫助還是英文的。如果您願意,您可以玩並查看講座中演示的學生專案的代碼。這是皮卡丘糕點捕捉。或將廢棄物分類到不同容器中的項目:https://scratch.mit.edu/projects/71161586/ 大衛和公司請您不要擔心,如果您認為自己無法完成如此複雜的專案:這個等級已經需要一些技能。

鍛鍊

  1. 為了更了解 Scratch 中發生的流程,您可以從此處下載多個專案的原始程式碼。玩玩看看。學習別人的程式碼非常有用。這是找出您自己尚未成熟的程序中的內容的最佳方法之一。一旦您開始了解這些應用程式的工作原理,您就可以安全地繼續前進。

  2. 現在是時候自己做點什麼了。挑戰在於享受樂趣,同時從頭開始實施一個小型專案。它可以是動畫、遊戲、互動動作。

專案要求:
  • 程式必須包含至少兩個精靈(字元、圖像),其中之一絕對不能是貓=)。
  • 必須至少有三個腳本(操作)。
  • 必須至少執行一個條件、一個迴圈和一個變數。
  • 程式中必須至少包含一種聲音。
也就是說,從本質上講,您的專案將比講座中編寫的專案更複雜,但比演示的有關皮卡丘和垃圾收集的玩具更簡單。因此,您的專案可能會使用數十個拼圖來組成 Scratch 程式碼。如果事情不起作用,您可能需要改變解決問題的方法。最主要的是不要害怕!我們邀請您提出問題並在評論中分享您的項目。

Scratch:快速操作指南

精靈是該項目的中心物件。任何角色──一隻貓、一架飛機、一個球──都是一個精靈。如果您添加了兩隻不同的貓,那麼它們就是兩個不同的精靈。 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 6每個精靈都有描述其行為的腳本。這些是動作塊。服裝就是物體的樣子。精靈本身本質上只是圖畫。每個精靈可以有多種服裝。要建立精靈,您需要從 Scratch 庫中選擇其原始服裝,在內建編輯器中繪製自己的服裝,上傳任何圖像,甚至使用網路攝影機拍照並上傳。所有精靈都放置在所謂的舞台上。舞臺本質上是我們的畫布,是節目的背景。您也可以將庫中的聲音附加到精靈或場景,或者您可以載入它們或使用麥克風自己錄製它們。要開始執行程序,您需要點擊場景視窗右上角的綠色標誌。但在執行此操作之前,您需要在程式中放置以下區塊: 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 7並在其上附加一些區塊,作為設計器部分。例如: 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 8在這種情況下,當您點擊旗幟時,附加動作的精靈會走 50 步並發出喵喵聲。我們有很多塊。它們分為三個選項卡:劇本、服裝和聲音。讓我們寫一個帶有條件的簡單程式。如果滿足了,貓就會喵喵叫;如果沒有滿足,它就會保持沉默。運算符以綠色表示。那些測試條件是真是假的工具的側面有尖角。條件測試結構和循環以橙色顯示。它們有特殊的孔,您可以在其中放置其他塊。

週期:

重複無限次: 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 9重複某事一定次數: 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 10如果滿足條件,則重複某個操作: 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 11您可以在資料區塊中建立變數。在下面的範例中,我們建立了一個變數 x,並且可以立即使用它來執行一些操作。您可以設定變數的範圍:針對所有精靈或針對一個精靈。 講座 CS50 的附加資料:第 0 週(講座 1 和 2)- 12綠旗並不是唯一的行動。此外,在「事件」部分中,您還可以找到許多其他控制條件。例如,您可以選擇當您用滑鼠點選按鈕或精靈本身時要執行的動作。如果您需要其他信息,可以在此處找到。

還有什麼

如果您的網路存取還有很多不足之處,我們建議您在https://scratch.mit.edu/scratch2download/下載離線 Scratch 編輯器。然後,不要忘記使用「檔案」>「從電腦上傳」將您的專案提交到http://scratch.mit.edu/
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION