運算思維
拆解問題
拆解問題
將複雜的問題或系統拆解成更小、更容易於管理的問題
將複雜的問題或系統拆解成更小、更容易於管理的問題
將問題拆解,才能詳細的檢查每個更小的問題
試著把複雜的問題拆解成小部分,分開思考
例:刷牙
分解如何刷牙的問題,我們需要考慮:
用那種牙刷
要刷多久
用多大力道
使用什麼牙膏
模式辨別
模式辨別
為了讓解決問題更有效率,將每個小問題分別檢視,思考之前是否有處理類似的問題
為了讓解決問題更有效率,將每個小問題分別檢視,思考之前是否有處理類似的問題
這個任務跟剛剛遇到的有沒有一樣?
能不能用一樣的方法解決?
一樣的問題有沒有簡化的辦法?
模式
每個蛋糕都需要一定份量的 材料
材料會在特定時間被加入
每個蛋糕會被烤一定的時間
當我們辨別出模式之後,我們便可用此解決辦法來面對不同的問題。
抽象化
抽象化
只注重重要的細節,而忽略不相關的資訊
只注重重要的細節,而忽略不相關的資訊
將刪除複雜的細節或移除的無用處的資訊
避免放錯重點,得到錯誤的解決方案
當烤蛋糕時,烤蛋糕的模板並不是烤某一種特定的蛋糕,像是海綿蛋糕或是水果蛋糕。
這個烤蛋糕模板應該要能套用到所有烤蛋糕的過程,從這個模板我們可以知道如何烤任何蛋糕。
演算法
演算法
設計簡單步驟或規則來解決每個小問題
設計簡單步驟或規則來解決每個小問題
設計出流程圖
規劃解決問題的詳細步驟
撰寫程式
做菜過程是一個演算法。
做菜前會描述準備的食材和份量,再來就是描述做菜的每個步驟。
從電腦程式來看,食材和份量是演算法的初始條件;烹飪步驟則是程式執行的過程。