<style>
body{font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft JhengHei', Roboto, 'Helvetica Neue', Arial, sans-serif;}
.red-color{color:#f00}
.blue-color{color:#f00}
</style>
###### tags: `Design`
# 運算思維
> [time=Thu, Dec 5, 2019 6:59 PM]
> [color=#000] [name=aikwdc00]
>
## 運算思維
運算思維是每個人的基礎技能,而非電腦科學家的專業技能
**具有電腦科學家的思維並非僅是進行電腦編程,而是多面向的思考層次**
>2006年美國學者Jeannette M. Wing提出了
>Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science.
>運算思維(Computational Thinking)的概念,說明運算思維不僅是電腦科學家需要有的能力,更是一般大眾需要培養的思考路徑。文中強調運算思維包含問題解決、系統設計、人類的行為分析,不在被侷限於電腦科學,而是觸及人類生活中的各項人事物。
> 1. 習慣拆解工作
在寫程式之前,必須先定義步驟、流程,再將之模組化。所以習慣寫程式的人在遇到問題時,會開始考慮所有可能性,把工作拆解、步驟化等,久而久之,就變成他的思考模式。
> 2. 做事更精準
在編寫複雜的程式時,會需要多人協作,但它不像簡報製作,只要把所有資料彙整成檔案就完成。一群人共同編寫程式時,必須先約定好輸入(input)與輸出(output)的格式,否則會「牛頭不對馬嘴」,讓程式無法順利編譯、執行。
好比工作交接,約定幾月幾號交件、型號與規格為何等。不過,這樣的約定有時能有寬限,延遲交件或拿錯零件都還能靠隨機應變化解,但寫程式不允許這樣,約定一定要精確,否則會沒有任何產出。
經過寫程式的訓練後,人們會習慣用類似「通訊協定」(protocol,指約定好的資料交換格式)的概念進行團隊合作,把事情約定精確,避免模糊地帶。
> 3. 思考更有邏輯
程式設計的本質是數學,而數學本身就是訓練邏輯思維的方式,但數學時常太抽象,反而達不到訓練效果。以三角函數為例,過去學習,只覺得困難,也不知道未來能用在哪裡。
寫程式設計不會有這樣的情況發生,只要改幾行程式碼或參數,成品就會有所改變,「看到東西會因為你的行為而變化,不僅有成就感,也會促使人去思考為什麼會有這種變化,這對邏輯推理非常有幫助。」
## 運算觀念

* 序列(Sequence):對某一個任務,確定一系列的步驟
* 迴圈(Loops):重複執行相同的序列
* 平行(Parallelism):在同一時間讓許多事同時發生
* 事件(Events):一件事引發另一件事的發生
* 條件(Conditionals):根據條件做決定
* 運算子(Operators):支援數學與邏輯的表達
* 資料(Data):儲存資料、讀取資料與更新資料
## 運算方法
> 
## 運算實作
* 反覆地增加(Being iteratively and Incrementally):發展了一點點,試試看,然後再發展一些
* 測試與除錯(Testing and Debugging):確保事情能執行,發現錯誤並解決問題
* 重複使用與混合(Reusing and Remixing):在現有的專案或想法上做點什麼
* 抽象與模組化(Abstracting and Modularizing):探索整個問題與其他部分的連結
> [運算思維從不等於程式學習](https://www.fliprobot.com.tw/computational-thinking-not-learning-program/)
> [什麼是「運算思維」要如何培養?](https://coding4funblog.wordpress.com/2016/06/06/%E4%BB%80%E9%BA%BC%E6%98%AF%E3%80%8C%E9%81%8B%E7%AE%97%E6%80%9D%E7%B6%AD%E3%80%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E5%9F%B9%E9%A4%8A/)
> [教運算思維,一定要透過程式設計嗎?](https://medium.com/orangeapple/%E6%95%99%E9%81%8B%E7%AE%97%E6%80%9D%E7%B6%AD-%E4%B8%80%E5%AE%9A%E8%A6%81%E9%80%8F%E9%81%8E%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E5%97%8E-d2c5c01c42b)
> [為什麼你也要懂「程式設計」?培養「運算思維」,做事更精確、有效率](https://www.managertoday.com.tw/articles/view/55799)
> [學會『運算思維』如何讓你的生活過得更美好?](https://medium.com/@johnchain/%E5%AD%B8%E6%9C%83-%E9%81%8B%E7%AE%97%E6%80%9D%E7%B6%AD-%E5%A6%82%E4%BD%95%E8%AE%93%E4%BD%A0%E7%9A%84%E7%94%9F%E6%B4%BB%E9%81%8E%E5%BE%97%E6%9B%B4%E7%BE%8E%E5%A5%BD-94e15a0d7bad)