iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
0
自我挑戰組

三十天精通電腦科學,Computer Science 30D系列 第 2

Computer Science Lecture 0 - Scratch

CS50 2017 - Lecture 0 - Scratch

Yes
學習程式主要的主軸是培養解決問題的能力,不管別人丟給你什麼問題(input)你不管用甚麼方式都要解決它,並產生適合的結果(output)回饋回去,「解決方式」就是我們程式人員要關心的事情,那要如何開始呢?首先我們要先知道電腦只懂0和1,0代表「無、假、關」1代表「有、真、開」,簡單來說有一個燈泡它只有,沒電和有電這兩種狀態而已也就是我們所說的0和1這兩種的狀態。

Numeral system(記數系統)

在日常生活中我們使用十進位(Decimal)已經習以為常了,導致大多數的人不太知道十進位到底是甚麼意思,以字面上的意思就是每逢十就進一個位數變成兩個位數也就是「10」,在十進位裡不會出現「十」這個數字,但我們平常以「十」來稱呼10,在程式中要習慣不同進位系統計算或換算,下方是我們程式常用的進位範例等號的右邊數字是以十進位表示:

十六進位 (Hexadecimal)
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
範例: E = 14
十進位 (Decimal)
0、1、2、3、4、5、6、7、8、9
範例: 14 = 14
八進位 (Octal)
0、1、2、3、4、5、6、7
範例: 16 = 14
二進位 (Binary)
0、1
範例: 1110 = 14

ASCII & RGB(文字與顏色)

瞭解了電腦最底層是由0和1所組成的那我們就可以用來表示文字和顏色了,在文字的部分一開始是使用ASCII編碼 主要用於現代英語讓電腦輸出輸入文字,對應如下:
ASCII編碼
目前文字大多都改採用Unicode編碼;在顏色的方面是用光的三原色,紅色R、綠色G、藍色B,從0到255表示紅色、綠色和藍色的強度;有了顏色就可以做成圖像,有了多張圖像再把圖像不停抽換,我們就有可以播放的影片了。

從中我們了解到把一大堆的0和1輸入(input)至電腦裡,解決處理這些0和1所代表的意思,並產生適當的結果(output)給我們,如:文字,顏色...等,但它要如何用有效率的方法解來決問題呢?

Algorithm(演算法)

假設這堂課有好幾位學生,我們可以用什麼方式算出有幾位學生呢?1、2、3、4、5...一個一個慢慢數是一種方法,2、4、6、8、10兩個一數也是一種方法,但這些都太浪費時間了!在影片中用了下面這方法

0 Stand up and think of the number 1.
  每位學生都站起來,把自己當成 1

1 Pair off with someone standing.
  Add your numbers together.
  找到站著的人把數字相加
    
2 One of you should then sit down.
  If you're still standing, go back to steop 1.
  數字相加後其中一個坐下,如果你還沒坐下再去執行步驟一

在步驟二的「go back to steop 1.」在程式中我們稱之為遞迴(Recursion)。

參考資料來源

ASCII Table - Ascii character codes http://www.asciichars.com/

2018.01.01.02


上一篇
Computer Science 30D Introduction
系列文
三十天精通電腦科學,Computer Science 30D2
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言