誰還沒看過哈佛關於程式設計基礎的講座,請來這裡: https: //javarush.com/quests/QUEST_HARVARD_CS50 =)
介紹。CS50課程結構
朋友們!在介紹中,我們將提醒您(或告訴您任何人)CS50 的結構。課程為期12週。每周有兩次講座,以及各種研討會和講解。講座一準備好,我們就會發表這樣的文章。它將包含講座的簡要說明、「短片」註釋和附加訊息,以及實踐作業的翻譯。零週講座涵蓋以下問題:- 二進制數係統。
- ASCII碼
- 演算法和演算法思維
- 編譯器
- 刮擦語言
- 布林表達式
- 狀況
- 週期
- 變數
- 功能
- 陣列
- 流
- 活動
- 了解如何以數位方式表示資訊。
- 學習基本的軟體結構和概念。
- 使用 Scratch 創建自己的動畫、遊戲或互動活動。
- 給你的朋友留下深刻印象=)。
CS50 第 0 週(講座 1-2):筆記
演算法
我們希望您已經觀看了講座並了解演算法將問題的解決方案(各種問題、數學問題或“如何到達地鐵站 N”)分解為多個步驟。而且,每個步驟必須在有限的時間內完成,並且步驟本身必須有一定的數量。此外,下一步取決於上一步驟。例如,您可以在此處閱讀有關演算法的更多資訊。如果你懂英語,請觀看 David Malan 製作的精彩 TED 動畫:https://youtu.be/6hfOvs8pY1k 雖然影片中的資訊通常會重複講座中的信息 =)。二進制數係統
我們有 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碼
電腦只能理解零和一,它的記憶體可以表示為一串很長的帶有開關的燈泡,如您在上面看到的。我們已經了解如何在計算機中表示數字。剩下的資訊呢?字母、圖片?假設英文字母表中有 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 值與其實際數值之間的轉換方式。我們開始程式設計吧?刮痕
所以,刮擦。講座中向您介紹了這種視覺化程式語言及其基本命令。要親自嘗試 Scratch,請點擊連結並點擊「加入」。註冊後,您就可以開始線上程式設計。是的,順便說一句,今天的 Scratch 已經部分俄羅斯化了。不過,幫助還是英文的。如果您願意,您可以玩並查看講座中演示的學生專案的代碼。這是皮卡丘糕點捕捉。或將廢棄物分類到不同容器中的項目:https://scratch.mit.edu/projects/71161586/ 大衛和公司請您不要擔心,如果您認為自己無法完成如此複雜的專案:這個等級已經需要一些技能。鍛鍊
-
為了更了解 Scratch 中發生的流程,您可以從此處下載多個專案的原始程式碼。玩玩看看。學習別人的程式碼非常有用。這是找出您自己尚未成熟的程序中的內容的最佳方法之一。一旦您開始了解這些應用程式的工作原理,您就可以安全地繼續前進。
-
現在是時候自己做點什麼了。挑戰在於享受樂趣,同時從頭開始實施一個小型專案。它可以是動畫、遊戲、互動動作。
- 程式必須包含至少兩個精靈(字元、圖像),其中之一絕對不能是貓=)。
- 必須至少有三個腳本(操作)。
- 必須至少執行一個條件、一個迴圈和一個變數。
- 程式中必須至少包含一種聲音。
GO TO FULL VERSION