---
# System prepended metadata

title: CS50 共筆 Week0

---

# CS50 共筆 Week0

## Computer science
### 一道解決問題的程序
![](https://i.imgur.com/Gs9SbBU.png)

## Input

### 電腦基本單位

- 電腦最基本的單位為 Binary ( 0 與 1 )
- 透過 0 與 1 可以組成數字、文字、圖片、影像與聲音等
- 每個 Binary Digit 稱為一個 Bit
- 8 個 Bit 組成 1 個 Byte

### 如何表示數字
![](https://i.imgur.com/RcfHnAT.png)



### 如何表示文字
- ASCII (American Standard Code for Information Interchange)
    - ASCII 是一套編碼系統,主要用於顯示現代英語 
    - 每一個文字都以 7 個 bit 表示，因此總共可以編碼 128 個不同的文字
    - 大寫 A 被編碼為 65，小寫 a 被編碼為 97
    - 然而因為這樣的數量遠遠少於世界上現存的文字數量，因此出現了 Unicode 這種新的編碼方式

- Unicode
    - Unicode 能編碼的文字數量遠多於 ASCII Code
    - 它對世界上大部分的文字系統進行了整理、編碼，使得電腦可以用更為簡單的方式來呈現和處理文字。


### 如何表示圖片
- Pixel
    - 一張圖片是由許多小格所組成，每一個小格稱作一個 Pixel
    - 而每個 Pixel 所呈現的顏色是由 RGB 所表示
- RGB
    - R 表示紅色，以 0~255 表示深淺
    - G 表示綠色，以 0~255 表示深淺
    - B 表示藍色，以 0~255 表示深淺
    - 因此一個 Pixel 會被表示為成像是 (72, 73, 128) 這樣的形式

## Algorithm
-    影響解決問題所花費之時間
Ex:原本需要n單位時間來解決N Size 的問題
代入演算法後僅需n/2 或是 log n 單位時間即可解決
![](https://i.imgur.com/y9xWSbm.png)


## Pseudocode

- 不是真正的 Code
- 僅僅是用 Code 的語法去表達演算法

## Scratch

### variable

變數的必要條件為值、位置、名稱，用以使人對電腦記憶體進行操作。

### control flow

```python
if a:
    b()
else:
    c()
```

判斷條件 a 是否成立，使其進入對應的 section block，成立就做 b，否則 c

### loop

重複執行某個類似的步驟許多次
