歡迎來到運算思維!

你有沒有想過電腦科學家是如何解決那些龐大又複雜的問題?他們並不會一坐下來就立刻開始寫程式!他們運用的是一種特別的思維模式,稱為運算思維 (Computational Thinking)

如果這聽起來有點「技術宅」,不用擔心!這其實是一種你每天都在用,只是自己沒察覺到的思考方式。在這一節中,我們將探討為了應對 OCR J277 考試,你必須掌握的運算思維三大支柱:分解 (Decomposition)抽象化 (Abstraction)演算法思維 (Algorithmic Thinking)

快速複習:運算思維並不是像電腦那樣思考。它是一個解決問題的過程,透過將複雜的任務拆解成電腦(或人類!)可以遵循的簡易步驟,來幫助我們處理問題。


1. 分解 (Decomposition)

分解是將一個龐大且複雜的問題,拆解成較小、較易處理的部分的過程。

想像一下,如果有人叫你去「籌辦一個音樂節」。這聽起來是不可能的任務,對吧?但如果你把它拆解開來,就會變得簡單多了:
1. 尋找場地。
2. 預約表演樂團。
3. 設置美食攤位。
4. 出售門票。

每一個「較小」的問題都比原本那個巨大的難題容易解決得多!

為什麼要使用分解?

• 它讓問題變得更容易理解
• 不同的人可以同時處理問題的不同部分
• 較小的部分可以分別進行測試,以確保運作正常。

現實生活中的例子:智慧型手機

想想智慧型手機是如何製造出來的。一個團隊負責相機軟體,另一個團隊負責電池管理,還有另一個團隊負責螢幕顯示。他們將「手機」這個龐大的專案分解成許多細小的部分,才能共同打造出這件科技傑作!

重點總結:如果一個問題看起來太大,就分解它!把它拆解成「一口大小」的碎塊吧。


2. 抽象化 (Abstraction)

抽象化是移除不必要的細節,讓你專注於問題中最重要部分的過程。

在電腦科學中,我們不想被那些無助於解決當前任務的「額外」資訊所干擾。

例子:倫敦地鐵圖

如果你看一眼倫敦地鐵圖,它不會顯示哪裡有樹木、房子的顏色是什麼,也不會顯示軌道實際有多彎曲。為什麼?因為你不需要這些資訊就能從 A 點移動到 B 點。地圖抽象化(移除了)風景細節,讓你專注於車站和路線連接

常見錯誤:

錯誤:以為抽象化就是把東西弄得「模糊」或「不清楚」。
修正:抽象化其實是關於焦點。它是要挑出關鍵的特定部分,而忽略其餘資訊。

記憶小撇步:Abstraction(抽象化)想成 Away(離開/丟棄)。你正在把不需要的細節丟 Away!

快速複習:抽象化透過僅關注必要資訊,幫助我們簡化問題。


3. 演算法思維 (Algorithmic Thinking)

演算法思維是開發一套逐步指令來解決問題的過程。當你分解了問題並抽象化了細節後,你需要一個計畫

演算法 (Algorithm) 其實就是「食譜」或「操作步驟」的華麗說法。如果你能寫下泡一杯茶的步驟,那你已經具備演算法思維了!

逐步解釋:

要具備演算法思維,你必須:
1. 確認輸入 (Input)(我有什麼?)
2. 決定處理過程 (Process)(我必須採取哪些步驟?)
3. 定義輸出 (Output)(最終結果是什麼?)

例子:計算機相加兩個數字。
輸入:兩個數字(例如 \( 5 \) 和 \( 10 \))。
處理:將它們相加。
輸出:結果(\( 15 \))。

你知道嗎?

演算法不只是給電腦用的。每次你依照「樂高」說明書拼裝積木時,你就是在執行設計師運用演算法思維所創造出的演算法!

重點總結:演算法思維創造了電腦遵循的「邏輯」。如果步驟錯了,電腦就會做出錯誤的行為!


整合應用:一個情境

假設你想製作一個電腦遊戲,讓角色在迷宮中移動。

1. 分解:拆解遊戲。你需要一種方式移動角色、偵測牆壁,以及追蹤得分。
2. 抽象化:你不需要知道角色最喜歡什麼顏色,或是牆壁是什麼材質做的。你只需要知道它們的 X 和 Y 座標
3. 演算法思維:創造逐步指令:「如果按下『右』鍵,那麼將角色的 X 位置增加 +1。」

剛開始覺得困難也沒關係!運算思維是一種透過練習會越來越強的技能。只要記住這「三大支柱」:
分解 = 拆解任務。
抽象化 = 專注於關鍵。
演算法思維 = 制定逐步計畫。


最終快速總結框

運算思維是一種用於定義和優化問題的解決問題思維模式。
分解透過將任務拆分為子任務來降低複雜度。
抽象化透過隱藏不必要的細節來降低複雜度。
演算法思維創造了一系列邏輯步驟來達成解決方案。