2016年6月6日 星期一

什麼是運算思維?如何培養運算思維?

什麼是運算思維 (Computational Thinking)?

運算思維就是解決問題的方法。
讓我們面對複雜的問題,能夠理解問題本質、發展可能的解決辦法。然後使用電腦、人或兩者都可以理解的方式來呈現這些解決方案。(參考:BBC
分成四個部分:
  1. 拆解(Decomposition):將複雜的問題或系統分解成更小、更易於管理的問題;
  2. 模式識別(Pattern Recognition):為了讓解決問題更有效率,將每個小問題分別檢視,思考之前是否有解過類似的問題;
  3. 抽象(Abstraction):只注意重要的細節,忽略不相關的資訊;
  4. 演算法(Algorithms ):設計簡單的步驟或規則來解決每個小問題。
最後,將這些簡單的步驟或規則寫成程式。


圖片來自 BBC BiteSize

程式是工具,實現「解決問題」的工具。程式語言本身並不涉及運算思維。

如何培養運算思維 (Computational Thinking)?

既然單純地學程式語言,無法增進運算思維,那麼要如何培養運算思維呢?
其實很簡單,ScratchEd 集合了資訊教育專家,經過多年的研討,設計了一套 Scratch 課程,讓學生在實作中,不知不覺地學會運算思維。這一套教材,也正是 Coding for Fun 課程的核心。
這套教材從三個方面來培養運算思維(參考:ScratchED):

運算觀念


  • 序列(sequence):對某一個任務,確定一系列的步驟
  • 迴圈(loops):重複執行相同的序列
  • 平行(parallelism):在同一時間讓許多事同時發生
  • 事件(events):一件事引發另一件事的發生
  • 條件(conditionals):根據條件做決定
  • 運算子(operators):支援數學與邏輯的表達
  • 資料(data):儲存資料、讀取資料與更新資料


實作


  • 反覆地增加(being iteratively and incrementally):發展了一點點,試試看,然後再發展一些
  • 測試與除錯(testing and debugging):確保事情能執行,發現錯誤並解決問題
  • 重複使用與混合(reusing and remixing):在現有的專案或想法上做點什麼
  • 抽象與模組化(abstracting and modularizing):探索整個問題與其他部分的連結


建立觀點


  • 表達(expressing):了解「電腦運算」是一種創作的媒介,「我可以創造」
  • 連接(connecting):體認到「與他人一起創造」和「為他人創造」的力量,「當我有機會接觸他人,我可以做不一樣的事!」
  • 質疑(questioning):有能力對世界提出問題,「我可以(運用電腦運算)提問,並理解(電腦運算)世界!」

2 則留言: