CS50 week 0 - Scratch 筆記

文章推薦指數: 80 %
投票人數:10人

CS50 week 0 - Scratch 筆記. Cindy's Blog. 2020-09-12. CS50, Computer Science. 4 min read. 大家好,我是Cindy,最近跟同事小夥伴相約一起看CS50 的 ... Home About Writing Projects Search RSS Previouspost Nextpost Backtotop Sharepost 1.什麼是ComputerScience2.Binary3.ASCII4.抽象5.Unicode6.RGB7.其他8.Algorithms9.總結 大家好,我是Cindy,最近跟同事小夥伴相約一起看CS50的課程,CS50(IntroductiontoComputerScience)是一堂美國哈佛大學知名的通識課程,完全免費,在edx或youtube或CS50-Study-Groupgithub都可以非常容易地看到。

這系列的文章會是我的個人筆記,歡迎有興趣的人一定要自己去看看CS50的課程歐。

開始看影片就被講者激動的演說方式感動到,就像是用盡全力要讓看影片的人聽懂一樣,覺得很棒推薦給大家。

什麼是ComputerScienceComputerScienceisaboutproblemsolving,即CS就是解決問題的科學,看到這裡不免點頭同意,在工作中我們確實是不停地要去思考如何才能夠解決客戶提出的問題呢!完全不是躲在電腦前面這麼一回事,必須要想辦法去理解客戶需要解決的問題是什麼,並且提出解決問題的方案。

所以我們會有個Input(待解決的問題)以及Output(解答),而這整個過程,就是ComputerScience。

BinaryComputer只有0和1,就像是開燈或關燈,通電或不通電,對電腦來說其實這樣就足夠了,因為他只需要知道有跟沒有,就可以運用mapping的方式知道說例如開啟電源是1而關閉電源是0。

二進位中每個bits可以表示1和0,而當我們有更多的bits時我們可以數更大的數字,例如二進位的111(三bits)是十進位的7,1111(四bits)是15。

ASCIIASCII設計出可以表示字母的數字,例如大寫的A是用十進位的65表示,或說是二進位的01000001,電腦會由環境的context決定是數字或字母等等。

ASCII一個字(byte)只有8個bits故只能排列組合出256種不同的字符。

抽象如果我們將電腦直接理解的低階概念移到了人類更好理解的階層,就是抽象。

這讓我想到我們通常覺得比較容易理解的是高階的程式語言,感覺有點相似。

Unicode當人們發現ASCII已經不夠用了,開始有了Unicode的出現,有8bits、16bits、24bits,甚至32bits,有了如此巨大的空間,所以我們可以有更多更多的特殊符號,而我們常聽到的UTF-8就是Unicode的一種。

當我們在電腦畫面上看到😂,實際上是十進位的128514,二進位的000000011111011000000010呢。

RGBRGB(Red、Green、Blue),當context是照片這類跟顏色相關的情況時,由三個byte表示分別需要多少pixel的紅色、綠色和藍色,而每個byte是8bits,用十進位表示的話就是每個byte有0-255可以表示。

而圖片透過這些顏色(每個點的RGB)的表示來顯示出來,影片則是透過不同時間顯示不同圖片來表示。

其他音樂也可以透過量化的方式來表示,例如某個聲音用什麼數字表示,並用某個數字表示要持續此聲音多久等等。

而我們人類同意用什麼樣的模式來表示之後,讓電腦如此運作,所以我們有各種不同的檔案型態,但這一切對電腦來說,其實也都只是1和0的各種變化呢。

Algorithms演算法就是一開始說的Input(待解決的問題)以及Output(解答),這中間一步步解決問題的過程。

講者用在電話簿裡找到特定的對象舉例,想到的演算法有三種: 從頭翻到尾一頁一頁慢慢找。

每兩頁翻一次,可能會錯過而需要再翻回去找。

每次對分一半,看要找的對象在前半還是後半(電話簿有按照順序排列)。

=>這就是常聽到的二分法。

用二分法可以更有效率的解決問題,因為每次都先解決了一半的問題。

這讓我想到以前在寫類似leetcode的問題的時候都要思考會不會有時間複雜度的問題呢,在思考演算法的時候時間也是要考慮的因素。

總結最後講者先用Pseudocode(用英文直接表示程式邏輯)帶著大家理解:Function、Condition、Booleanexpressions、Loops 接著用scratch做為大家的第一個程式語言,並提醒大家拆解分析的重要。

總之是一堂讓人收穫良多的課程啊。

Home About Writing Projects Search RSS 1.什麼是ComputerScience2.Binary3.ASCII4.抽象5.Unicode6.RGB7.其他8.Algorithms9.總結 TOC Share Top Menu



請為這篇文章評分?