• 沒有找到結果。

運算思維相關研究

第二章 文獻探討

第一節 運算思維相關研究

運算思維乃為程式設計課程中欲培養之重要能力,本節就運算思維相關的理論與 研究加以分析、探討。

壹、 運算思維定義

運算思維(computation thinking)是由卡內基梅隆大學教授 Jeannette M. Wing 在 2006 提出:「運算思維是除了閱讀、寫字、算術基本能力外,每個人也該具備的能力,

而非電腦科學家才需要的能力。因為運算思維是一個人在處理問題時,採取方法所思 考的歷程,所以運算思維包含問題解決能力、設計及能了解人類的行為。」(Wing, 2006)。

Wing 指出運算思維是種分析式思維,包含以數學思維來解決問題、以工程思維來設計 與評估複雜系統及以科學思維來理解人類行為(Wing, 2008)。Wing 在 2011 年再重新 定義運算思維是架構問題(formulating problem)及解決問題之思考過程,將其以訊息 處理者可以有效執行之形式呈現(Wing, 2011)。

在 Jeannette M. Wing 提出了運算思維的觀點後,陸續開始有許多學者也提出了他 們的看法與相關研究。Lu 及 Fletcher 認為運算思維是用來解決問題及設計系統的一個 方法,使用不同等級的抽象化與演算法概念,以達到有效發展與解決問題的方案(LU

& Fletcher, 2009)。Cuny 與 Snyder 定義運算思維是個包含找出問題與解決問題的思考 過程(Cuny, Snyder, & Wing, 2010)。Google(2010)認為運算思維適合任何一個學 科,是一系列問題解決的方法。Brennan 和 Resnick 提出運算思維的三個維度: 1.運 算概念(computational concepts):在程式設計過程中所使用到的概念,例如變數。2.

運算實作(computational practices):程式設計過程中解決問題的方法,例如除錯。3.

運算觀點(computational perspectives):學生可以了解自己與其他人和這世界連結,例

22

如表達自己的想法(Brennan & Resnick, 2012)。因此透過以上學者對於運算思維之論 述,我們發現各學者對於運算思維皆有一個共同定義就是問題解決的思考歷程,因此 本研究將探討之重點著重於程式設計課程對於學習者問題解決思考歷程之提升加以研 究,然而問題解決思考歷程將包含哪些元素,我們將於運算思維具體操作方式再加以 定義。

貳、 運算思維特性

綜觀 Wing 所提出之觀點,我們可以知道運算思維有以下特性:

1. 運算思維是一種概念化的過程,而非只是撰寫程式的工具。

2. 運算思維是一種基本能力,而非死記硬背的技能。

3. 運算思維是人類解決問題的方法,並非只適用於電腦應用上。

4. 運算思維結合了數學及工程的思維。

5. 運算思維是一種想法或者概念,並非只是作品的呈現。

6. 運算思維適用於每個地方與每個人,並沒有特定領域。

華東師範大學课程與教學研究所學者任友群在 2016 年時,以 2011 年美國國際教 育技術協會(ISTE)聯合計算機科學教師協會(CSTA)的問卷調查結果與 2012 年英 國學校電腦课程工作小组(Computing at School Working Group,簡稱 CAS)在研究報 告中闡述再加上 2013 年南安普頓大学 John Woollard 研究者在計算機科学教育創新與 技術(ITiCSE)會議報告等研究。综合已有的研究成果,整理出運算思维是一種特殊 的解决問題的過程,反映出電腦科學的基本思想方法。通過運算思维人們可以更好地 理解和分析複雜問題,形成具有形式化、模組化、自動化、系统化等電腦特徵的問題 解决方案。

根據任有群的整理,運算思維主要包括以下特徵:(1)採用抽象和分解的方法將 複雜問題具體化,建立結構模型,形成具備更高效能、可執行的解決方案;(2) 運用 計算機學科之基本概念與工具方法,判斷、分析、綜合各種資訊,強調個體與資訊系 統的交互思考過程;(3)是一種獨特的問題解決能力組合,融合設計、演算法、批判、

23

分析等多種思維工具,綜合運用可以形成系統化的問題解決方案。(任友群,2016)

參、 各國教育在運算思維之發展

美國 CSTA「電腦科學」認為資訊課程一種能利用電腦解決問題的思維,包含使 用如抽象化、遞迴、迭代等概念來處理與分析資料,並產出實體與虛擬作品的能力

(CSTA, 2011a)。澳洲「數位科技」課程利用數位科技設計與實作演算法解決問題的 思維(ACARA, 2013)。英格蘭「運算」課程一種凌駕於電腦軟硬體之上,能針對系統 與問題提出思考架構的思維模式(DOE, 2013)。我國「資訊科技」課程具備運用運算 工具之思維能力,藉以分析問題、發展解題方法,並進行有效的決策(國教院,2015)。

2011 年美國國際教育技術協會(ISTE)聯合計算機科學教師協會(CSTA)基于 運算思维的表現性特徵,给出了一個操作性定義:「運算思维是一種解决問題的過程,

該過程包括明確問題、分析數據、抽象、設計算法、评估最優方案、遷移解决方法六 個要素。」(CSTA, 2011b)

2012 年英國學校電腦课程工作小组(CAS)在研究報告中闡述:運算思维是識別 計算,應用計算工具和技術理解人工信息系统和自然信息系统的過程,是邏輯能力、

算法能力、遞歸能力和抽象能力的综合呈現。(CAS, 2015)

2013 年,南安普頓大学 John Woollard 研究者在計算機科學教育創新與技術

(ITiCSE)會議報告中提出運算思维是一項活動,與問題解决相關(但不限于問題解 决)。它是一個認知或思维過程,能夠反映人們的抽象能力、分解能力、算法能力、評 估能力和概括能力,其基本特徵包括思维過程、抽象和分解。(Selby & Woollard, 2013)

而台灣的資訊教育在 2017 年對於運算思維之定義為:抽象化、 資料表示、樣式 辨識/一般化、問題解析、演算法思維。

因此就各國的資訊教育發展來看,許多國家都已將程式設計課程作為運算思維之 培育相當重要的一環,因此如何透過程式設計課程有效促進學生運算思維的提升將是 資訊教育中迫切需要研究之問題,故本研究將試圖建構一套程式設計課程以研究學生 運算思維之變化情形。

24

肆、 運算思維具體操作定義

運算思維的應用並非只是存在於電腦範疇中,而是在我們的日常生活中都處處可 見,而許多學者也陸續將運算思維具體化,使運算思維有具體化的操作型定義。

Kazimoglu 等人歸納多位學者的論點,提出五點運算思維具體核心技能:(Kazimoglu, Kiernan, Bacon, & Mackinnon, 2012)

1. 問題解決(problem solving):定義問題、分解問題、評估適當方法解決問題。

2. 建立演算法(building algorithm):有結構且逐步執行流程解決特定問題,並可以 使用相似情境中。

3. 除錯(debugging):分析問題中的錯誤,屬於批判性和程序性的思考。

4. 模擬(simulation):已預先設計好的模組來幫助解決問題 。

5. 社交(socializing):指上述過程中與他人進行協調、競爭與合作的行為。

美國國際教育技術協會 ISTE 與計算機科學教師協會 CSTA 合作,透過問卷調查 的方式蒐集了與電腦科學相關工作的人員對於運算思維的想法,给出了一個操作性定 義:「運算思维是一種解决問題的過程,該過程包括明確問題、分析數據、抽象、設計 算法、評估最優方案、遷移解决方法六個要素。」,運算思維的具體性操作型定義如下

(ISTE & CSTA, 2011)將問題以可用電腦或其他工具解決的方式呈現 1. 有邏輯組織、分析資料

2. 採抽象化方式表示資料內容

3. 建立演算法並使解決方案能自動化

4. 分析各種解決方案後,找到最佳解決方案 5. 將問題解決方案能一般化以解決其他相似問題

人們在日常生活中的很多做法其實都和運算思維不謀而合,也可以說運算思維從 生活中吸收了很多有用的方法。以下便是運算思維應用於日常生活中之具體範例:(賴 和隆,2016)

1. 算法(或程序化):食譜,將一道菜的烹飪方法一步一步地羅列出来,即使不是專

25

Google (2010)

Barr & Stephenson (2011)

Grover & Pea (2013)

Abstraction        

Simulation      

Algorithm design &

procedure    

Conditional logic 

Connection to other fields 

Debug & error detection 

Efficiency & performance

constraint 

Pattern recongnition 

Reduction 

Systematic Processing 

Visualization 

資料來源:教育部運算思維推動計畫(2017)

26

Google for Education 認為運算思維的概念元素是解決計算問題相關的心理過程 和實質的成果,其中共包含 11 個概念元素。心理過程包括:抽象化、演算法、資料 分析、資料收集、分解、模型識別;而實質的結果則是:自動化、資料表示、並行化、

模型類化、模擬。

在臺灣 2017 年教育部推動運算思維推動計畫中揭示運算思維導向教學的 5 大架 構:

1、抽象化(abstraction):能理解文字與圖示之關係與能從題目中擷取出重點。

2、資料表示(data representation):有邏輯的組織和分析資料與了解不同資料格式。

3、樣式辨識/一般化(pattern recognition/generalization):預測問題的規律、找出樣式 做測試、歸納與辨識解題元素、歸納條件結構的指令樣式、了解條件結構的解題樣 式與特性、歸納迴圈內重複的指令樣式、了解迴圈的解題樣式與特性。

4、問題解析(decomposition):將大問題分解成組以解決的小問題與分析解題步驟。

5、演算法思維(algorithmic thinking):設計出能夠解決類似問題並且能夠執行重複的 指令流程。

研究者專注於發展高中職運算思維,將依據 2017 年教育部運算思維推動計畫所揭 示的五大內涵架構作為本研究方向指標、並依據此五項內涵架構,作為此研究的程式 設計課程的教學目標與評量向度。