運算思維4 步驟,如何培養 Computational Thinking

我們常會聽到「演算法」和「運算思維」這兩個名詞,但卻不太了解他們實際的意涵。演算法和運算思維,除了是學習程式的重要基礎,也能幫助你邏輯思考、解決問題。這篇文章就用實際的範例,帶你了解演算法和運算思維是什麼?以及學習他們的重要性。

什麼是運算思維(Computational Thinking)?

運算思維是一種思考過程。微軟研究院全球副總裁周以真(Jeannette Wing)對運算思維的定義如下:

運算思維是一個思考的程序。它的目的是闡明問題,並呈現其解決方案,因而讓「運算器」(包括機器與人) 能夠有效率地執行。」

為什麼要談運算思維呢?因為程式設計基本上就是和電腦溝通。更確切地說,學習寫程式就是學習如何下指令給電腦執行。因此,在學習程式語言之前,我們必須先了解、熟悉撰寫程式背後的「思考模式」。

「軟體工程師的工作就是轉換,把經營或管理的模糊概念轉換成程式碼。」軟體工程師 Weiliang Chew

開始學寫程式之前,我們不妨回顧運算思維的基本步驟,才能練習如何透過程式碼給電腦指令,在未來不斷更上層樓。

為什麼要學運算思維?

培養運算思維能訓練邏輯思考、提升問題解決能力。你會學習如何拆解問題,一步一步找到最有效的解決方法。學習運算思維也有助於了解電腦的運作模式,也就是電腦如何「思考」和執行指令。有了這些知識,你就更能有效運用科技解決問題。

無論你想解決什麼問題,運算思維能幫助你分析問題、找到核心議題,並採取適合的解決方法或工具(例如程式語言)。需要和工程師或技術團隊合作時,發揮運算思維能促進彼此之間的溝通、增加你的工作效率,也有助培養跨領域的技能。

從程式設計入門,建立電腦運算思維

用病毒擴散練習運算思維

想像自己在看一部電影,電影裡有個可怕的病毒,任何人只要感染到病毒都會變成殭屍!製造病毒的科學家告訴女主角說:「這種病毒的細胞每一秒就會分裂一次。」

電影情節有如世界末日來臨,你突然想到:如果病毒一開始是單一細胞,10 秒之後會有多少個病毒呢?

運算思維的四大步驟

運算思維的四大步驟定義如下:

運算思維四步驟

我們可以把四步驟流程應用到思考過程中,進一步計算殭屍病毒的擴散:

1. 拆解 (decomposition)

將複雜的問題或系統分解成更⼩、更易於管理的問題。

意識到病毒細胞的數量,取決分裂了多少次,而分裂了多少次,又取決於時間過了幾秒鐘

拆解示意圖

可知病毒細胞的數量是由細胞分裂的次數決定,細胞分裂的次數則是由經歷的時間決定。

2. 辨識規律 (pattern recognition)

將每個⼩問題分別檢視,思考之前是否有解過類似的問題。

辨識規律

可以看到細胞數量每秒增長為兩倍,所以數量成長的規律非常清楚。

辨識規律示意圖

3.抽象化 (abstraction)

抓出重要的細節,將它轉化爲解決⽅案中的步驟。

能用數學公式 (1 x 2 x 2 x 2 x … x 2) 寫出病毒細胞的數量與時間的關係。

演算法 (algorithm)設計

歸納出簡單的步驟或原則來解決每個⼩問題。在這個階段,你會定義要給電腦的輸入,以及電腦傳回的輸出。你也會定義電腦將執行的演算法。

設定【病毒細胞的數量 = 1 x 2^t,t 就是過了幾秒】這公式

如果以這四個步驟套回去剛剛的案例:其實在日常生活中,我們常常會用到運算思維。重要的是讓自己習慣用這個思考過程 (thinking process) 去拆解問題,然後把解決方案 (也是演算法) 透過程式碼去跟電腦溝通,讓電腦執行。

運算思維並不能回答我們遇到的所有問題,但提供了一個模式,讓我們能遵循清楚的流程,有系統地描述問題並加以解決。不只如此,運算思維也幫助我們找到能輕鬆轉換成程式碼的解決方法。所以,我們應該從日常生活的問題開始,培養運算思維的能力。想要進一步了解運算思維,也可以參考這本書:《[全圖解] 寫給所有人的運算思維入門

生活中用到運算思維的例子

  1. 優化日程管理:你可以使用運算思維的流程控制,進行日常活動的優先順序排序,進而有效管理你的時間和活動。
  2. 規劃路線:假設你想要在一天之內參觀城市中的多個觀光景點,你可以利用運算思維來找出最佳的行程規劃,比如利用最短路徑算法來確定最有效率的旅行路線。
  3. 做菜烹飪:在烹飪過程中,你可以用運算思維的步驟拆解(decomposition)來分析食譜,將烹飪過程拆解成一步一步的指令,再根據需要依序進行。
  4. 節省開銷:比如你想要降低電費,你可以使用運算思維來觀察和記錄哪些活動或習慣消耗了大量的電力,然後根據這些數據調整你的行為,進行節能。
  5. 解決問題:遇到生活中的問題時,例如電腦出現故障,你可以利用運算思維進行問題的拆解,找出可能的原因,然後逐一嘗試並檢驗結果,最後找出解決的辦法。

如何培養運算思維

運算思維是一種重要的思考和解決問題的方式,它有助於我們更有效地理解和處理日常生活中遇到的各種問題。以下是幾種可以幫助你培養運算思維的方法和資源:

  1. 學習程式設計語言:學習和使用程式設計語言是一種很好的方式,可以幫助你實踐和熟悉運算思維。很多線上平台,如 Alpha Camp,提供免費的程式設計課程,適合初學者。
  2. 參加編程相關的工作坊和課程:許多大學和教育機構都提供相關的課程和工作坊,學習編程並實踐運算思維。例如,Coursera、edX 等平台上有很多與運算思維相關的課程。
  3. 解決實際問題:嘗試用運算思維的方式來解決實際生活中的問題,這也是培養運算思維的好方法。例如,你可以嘗試使用運算思維來優化你的日常生活,如規劃最佳路線、管理時間等。
  4. 使用遊戲來學習:有些遊戲,如 “Scratch” 和 “Minecraft”,可以在遊戲中學習和實踐運算思維。這些遊戲以娛樂的方式提供學習的環境,讓你能在玩樂中學習。
  5. 參與競賽:參加程式設計競賽或編碼馬拉松,可以提高你的運算思維能力。這種活動通常會設定一個目標或問題,參賽者需要運用他們的技能和運算思維來解決這些問題

透過這些方法和資源,我們可以有效地培養和提升我們的運算思維,並將其應用到日常生活和工作中。

總結

軟體開發其中一個核心技能,就是把我們想解決的問題 (或想完成的事情),整理成有條理的指令,再用電腦的邏輯與語言去跟它溝通,讓它用最有效的方法去執行。當你認識並開始深入學習演算法和運算思維,你也更能夠順利地和電腦溝通、更有效地解決問題。

三分鐘小測驗,找到你學習 Web App 全端開發的入口