什麼是運算思維 (Computational Thinking)?
運算思維就是解決問題的方法。
讓我們面對複雜的問題,能夠理解問題本質、發展可能的解決辦法。然後使用電腦、人或兩者都可以理解的方式來呈現這些解決方案。(參考:BBC)
分成四個部分:
- 拆解(Decomposition):將複雜的問題或系統分解成更小、更易於管理的問題;
- 模式識別(Pattern Recognition):為了讓解決問題更有效率,將每個小問題分別檢視,思考之前是否有解過類似的問題;
- 抽象(Abstraction):只注意重要的細節,忽略不相關的資訊;
- 演算法(Algorithms ):設計簡單的步驟或規則來解決每個小問題。
最後,將這些簡單的步驟或規則寫成程式。
圖片來自 BBC BiteSize
程式是工具,實現「解決問題」的工具。程式語言本身並不涉及運算思維。
如何培養運算思維 (Computational Thinking)?
既然單純地學程式語言,無法增進運算思維,那麼要如何培養運算思維呢?
其實很簡單,ScratchEd集合了資訊教育專家,經過多年的研討,設計了一套 Scratch 課程,讓學生在實作中,不知不覺地學會運算思維。這一套教材,也正是 Coding for Fun 課程的核心。
運算觀念
- 序列(sequence):對某一個任務,確定一系列的步驟
- 迴圈(loops):重複執行相同的序列
- 平行(parallelism):在同一時間讓許多事同時發生
- 事件(events):一件事引發另一件事的發生
- 條件(conditionals):根據條件做決定
- 運算子(operators):支援數學與邏輯的表達
- 資料(data):儲存資料、讀取資料與更新資料
實作
- 反覆地增加(being iteratively and incrementally):發展了一點點,試試看,然後再發展一些
- 測試與除錯(testing and debugging):確保事情能執行,發現錯誤並解決問題
- 重複使用與混合(reusing and remixing):在現有的專案或想法上做點什麼
- 抽象與模組化(abstracting and modularizing):探索整個問題與其他部分的連結
建立觀點
- 表達(expressing):了解「電腦運算」是一種創作的媒介,「我可以創造」
- 連接(connecting):體認到「與他人一起創造」和「為他人創造」的力量,「當我有機會接觸他人,我可以做不一樣的事!」
- 質疑(questioning):有能力對世界提出問題,「我可以(運用電腦運算)提問,並理解(電腦運算)世界!」