<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. 思考更有邏輯 程式設計的本質是數學,而數學本身就是訓練邏輯思維的方式,但數學時常太抽象,反而達不到訓練效果。以三角函數為例,過去學習,只覺得困難,也不知道未來能用在哪裡。 寫程式設計不會有這樣的情況發生,只要改幾行程式碼或參數,成品就會有所改變,「看到東西會因為你的行為而變化,不僅有成就感,也會促使人去思考為什麼會有這種變化,這對邏輯推理非常有幫助。」 ## 運算觀念 ![](https://www.fliprobot.com.tw/wp-content/uploads/2018/11/608465.150p-01-e1542165818390.jpg) * 序列(Sequence):對某一個任務,確定一系列的步驟 * 迴圈(Loops):重複執行相同的序列 * 平行(Parallelism):在同一時間讓許多事同時發生 * 事件(Events):一件事引發另一件事的發生 * 條件(Conditionals):根據條件做決定 * 運算子(Operators):支援數學與邏輯的表達 * 資料(Data):儲存資料、讀取資料與更新資料 ## 運算方法 > ![](https://assets-lighthouse.s3.amazonaws.com/uploads/image/file/5133/ExportedContentImage_01.png) ## 運算實作 * 反覆地增加(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)