什麼是計算思維 Computational Thinking
你或許沒有聽過這個名詞,但已經透過這種思考模式來解決生活中的問題
“Computing is the Automation of Abstractions [1]. “
“Computational thinking is the mental skill to apply concepts and methods derived from computer science to solve problems in all areas, including our daily lives [2]”
計算思維是應用計算機科學的概念與方法,如問題拆分、抽象表示與邏輯推理,來更好地解決日常生活的問題。你或許沒有聽過計算思維這個名詞,但已經透過這種思考模式來解決生活中的問題,例如:
- 根據今天的天氣跟交通狀況,我怎樣能夠最快到公司?(最短的路不一定是最快的路)
- 怎麼規劃小孩的生日派對?預算、地點、食物、準備時間、主題…那一樣是我最注重的?派對結束之後怎麼評估派對的成果?下一次要改進什麼?
- 如何尋找下一份工作?我要換行業或換領域嗎?工資、工作地點、工作類型、發展前景…那一項是我最在意的?要依照什麼標準選擇我手上的面試/錄取通知?
- 要把小孩送去「距離近、收費低、但提早放學」的幼兒園,還是「距離遠、收費高、但有供餐及延托」的幼兒園?省下的學費可以抵銷我的通勤及備餐成本嗎?
我們當然可以依照偏好、經驗、或口碑等來處理這些問題,但是,有沒有一種作法是:
- 先將大問題拆解成小問題,再用符號、邏輯、模型等工具把問題抽象化(數學思考)
- 接著用電腦能夠理解的方式,描述解決問題的步驟與流程(工程思考)
- 最後實際執行,並評估解決方案的好壞(工程思考)
如果你這樣做了,你就應用了計算思維的三個主要活動:Abstraction, Automation, Analysis
如今計算思維已經是不分年齡與行業都需要的能力,因為批判性思考、問題解決、與有效溝通等已經是當代知識工作者不可或缺的技能。
[1] Jeannette Wing (2012). “Computational Thinking”. Microsoft Asia Faculty Summit 2012.