歡迎學習電腦科中的「順序」(Sequences)!
你有沒有試過先穿鞋子後穿襪子呢?這樣做根本行不通,對吧?在日常生活中,我們做事情的先後次序非常重要,而在電腦科學中,次序也是同樣關鍵!
在這一章,你將會學到電腦是如何依照指示一步一步運作、為甚麼步驟的先後次序如此重要,以及如何編寫和修正屬於你自己的電腦指令。剛開始如果覺得有點陌生或具挑戰性,千萬不要擔心——我們會一步一步拆解學習!
---1. 甚麼是「順序」(Sequence)?
在電腦科學中,順序(Sequence)是指執行指令的特定先後次序。當電腦運行程式時,它會按照指令一個接一個地執行,通常是從上而下依次進行。
日常生活例子:製作果醬三文治
試想想把日常活動看成一連串的順序步驟:
1. 拿出一塊麵包。
2. 在麵包上塗牛油。
3. 在牛油上面塗果醬。
4. 放上第二塊麵包。
如果你改變了順序,在第 1 步(拿麵包)之前執行第 3 步(塗果醬),你的桌子就會被弄得一團糟!因此,次序絕對是至關重要的。
你知道嗎?(數學 vs 電腦科)
在數學課中,「數列」(Sequence)通常是指一組有規律的數字,例如 \(2, 4, 6, 8\)。但在電腦科中,「順序」(Sequence)則是指一組指令中步驟的先後次序。
學習重點:順序是指電腦從上而下、一步一步精準執行指令的先後次序。
---2. 演算法(Algorithm)vs 程式(Program):有甚麼分別?
在學習電腦科時,你會經常聽到這兩個詞語。讓我們來看看它們之間的關係:
1. 演算法(Algorithm):
演算法是一套清晰、按部就班的指令,用來解決問題或達到某個目標。演算法可以寫在紙上、用說話表達,或者畫成圖表。例如烹飪食譜,或是前往學校禮堂的路線指引,都是演算法。
2. 程式(Program):
程式是將演算法轉換成數位裝置(如平板電腦、電腦或機械人)能夠理解並運行的程式碼(Code)。
它們如何相輔相成:
你會先設計好你的演算法(計劃),然後編寫出你的程式(給電腦執行的程式碼)。
學習重點:演算法是按部就班的計劃;程式則是將該計劃轉換成給電腦執行的程式碼。
---3. 精準且明確的指令(Precise and Unambiguous)
電腦雖然功能強大,但它們沒有大腦,也沒有「常識」。電腦無法猜測你的心思;它只會完全依照你的指示,以及你所編排的順序去執行。
因此,順序中的指令必須做到:
• 精準(Precise):清晰且具體(提供精確的度量、方向或數值)。
• 明確(Unambiguous):意思清晰無誤,不會產生誤解(只有一種可能的解釋)。
例子:走向門口
• 含糊的指令:「走去門口。」(電腦不知道該面向哪邊,也不知道要走多遠!)
• 精準的指令:「向右轉 \(90\) 度。向前移動 \(10\) 步。」
學習重點:務必給予明確而精準的指令,讓電腦永遠不需要去「猜測」。
---4. 問題分解(Decomposition):化整為零
有時候,一項任務可能太大或太複雜,很難一次過轉化為一個完整的順序。這時候我們就需要用到問題分解(Decomposition)了!
問題分解是指把一個龐大或複雜的問題,拆解成較小、較容易處理的步驟。
如何運用問題分解:
想像一下,你的目標是用程式碼在螢幕上畫一個正方形:
• 大任務:畫一個正方形。
• 分解成較小的步驟:
第 1 步:畫一條直線。
第 2 步:轉向 \(90\) 度。
第 3 步:畫一條直線。
第 4 步:轉向 \(90\) 度。
第 5 步:畫一條直線。
第 6 步:轉向 \(90\) 度。
第 7 步:畫一條直線。
透過將大目標拆解成小部分,建立指令順序就會變得輕而易舉!
學習重點:問題分解能將龐大的任務拆分成容易處理的小步驟,讓問題更易解決。
---5. 邏輯推理(Logical Reasoning):預測程式碼的運作
在按下程式的「執行(Run)」或「開始(Start)」按鈕之前,你應該常常嘗試預測將會發生甚麼事。這個過程稱為邏輯推理。
邏輯推理是指運用清晰、按部就班的思維,去解釋演算法如何運作,並預測其結果。
如何練習邏輯推理:
1. 觀察第一個指令積木或第一行程式碼。
2. 思考:「這一步會做甚麼?」
3. 移至下一個指令。
4. 用手指由上至下依序追蹤每個步驟。
5. 預測角色或機械人最後會到達甚麼位置。
學習重點:在執行程式之前,先運用邏輯推理,逐行追蹤你的順序指令。
---6. 除錯(Debugging):找出並修正錯誤
即使是最優秀的程式設計師也會犯錯!程式中的錯誤或漏洞稱為 Bug(程式錯誤)。
除錯(Debugging)就是找出並修正程式中錯誤的過程,務求令程式能正確運作。
常見的順序錯誤(Sequence Bugs):
• 次序錯誤:指令放錯了位置(例如:應該在向前移動之後才左轉,卻錯放在移動之前)。
• 遺漏步驟:漏掉了關鍵指令(例如:畫圖前忘記先下筆)。
除錯小貼士:千萬不要靠猜!
當程式無法正常運作時,不要隨便亂拉積木碰運氣!相反,你應該運用邏輯推理:
1. 一個積木接一個積木,逐一逐步檢查程式。
2. 將程式實際執行的情況與你期望它做的事情進行比對。
3. 找出出錯的確切步驟。
4. 修正該步驟,然後再測試一次!
學習重點:除錯就是透過仔細、按部就班地追蹤順序,找出並修正錯誤。
---7. 程式的三大基本結構(Building Blocks)
你知道嗎?世界上所有的電腦程式,其實都只是由三大基本結構組成的!「順序」就是你最先學到的第一個!
1. 順序(Sequence):按照特定次序,一步一步依次執行指令。
2. 選擇(Selection):在不同的路徑之間作出抉擇(例如:使用 如果(IF) 條件句)。
3. 重複 / 循環(Repetition / Iteration):使用迴圈重複執行指令(例如:重複 \(4\) 次)。
順序是整個編程的基礎,選擇和重複結構都是建立在順序之上的。
---8. 應避免的常見錯誤
在處理順序指令時,要特別留意以下常見的誤區:
• 誤區 1:以為積木的先後次序並不重要。
記住:就算螢幕上所有的程式積木都正確無誤,如果擺放次序錯誤,程式依然無法正常運作。
• 誤區 2:以為電腦能理解含糊不清的用詞。
記住:電腦不會讀心術。必須確保每個指令都精準明確。
• 誤區 3:用猜測代替思考。
記住:除錯時,要一步一步慢慢追蹤程式碼,而不是靠胡亂猜測。
快速複習清單
透過這份自我檢測清單,看看自己掌握了多少:
✔ 你能解釋甚麼是電腦科中的順序(Sequence)嗎?
✔ 你明白演算法(Algorithm,即計劃)與程式(Program,即程式碼)之間的分別嗎?
✔ 你能解釋為甚麼指令必須精準且明確(Precise and Unambiguous)嗎?
✔ 你懂得如何運用問題分解(Decomposition)來拆解大任務嗎?
✔ 你能運用邏輯推理(Logical Reasoning)來追蹤並為程式除錯(Debug)嗎?