運算思維

拆解問題

將複雜的問題或系統拆解成更小、更容易於管理的問題

  • 將問題拆解,才能詳細的檢查每個更小的問題

  • 試著把複雜的問題拆解成小部分,分開思考

例:刷牙

分解如何刷牙的問題,我們需要考慮:

  • 用那種牙刷

  • 要刷多久

  • 用多大力道

  • 使用什麼牙膏

模式辨別

為了讓解決問題更有效率,將每個小問題分別檢視,思考之前是否有處理類似的問題

  • 這個任務跟剛剛遇到的有沒有一樣?

  • 能不能用一樣的方法解決?

  • 一樣的問題有沒有簡化的辦法?

模式

  • 每個蛋糕都需要一定份量的 材料

  • 材料會在特定時間被加入

  • 每個蛋糕會被烤一定的時間

當我們辨別出模式之後,我們便可用此解決辦法來面對不同的問題。

抽象化

只注重重要的細節,而忽略不相關的資訊

  • 將刪除複雜的細節或移除的無用處的資訊

  • 避免放錯重點,得到錯誤的解決方案

  • 當烤蛋糕時,烤蛋糕的模板並不是烤某一種特定的蛋糕,像是海綿蛋糕或是水果蛋糕。

  • 這個烤蛋糕模板應該要能套用到所有烤蛋糕的過程,從這個模板我們可以知道如何烤任何蛋糕。

演算法

設計簡單步驟或規則來解決每個小問題

  • 設計出流程圖

  • 規劃解決問題的詳細步驟

  • 撰寫程式

  • 做菜過程是一個演算法。

  • 做菜前會描述準備的食材和份量,再來就是描述做菜的每個步驟。

  • 從電腦程式來看,食材和份量是演算法的初始條件;烹飪步驟則是程式執行的過程。