• 沒有找到結果。

程式設計知識類型

第二章 文獻探討

第一節 程式設計知識類型

Bloom 新版教育目標分類將知識面向(Knowledge Dimension)分為四類

(Krathwohl, 2002),如圖 2-1:

1. 事實知識:為學生必須熟悉基本術語或解決問題的基本要素。

2. 陳述知識:為將基本知識之間相互關聯使他們共同發揮作用(分類、

描述、理論)。

3. 程序知識:為知道如何做某件事,具有特定步驟以及決定如何應用不 同程序的準則。

4. 後設知識:為對一般知識的認知及對自身知識的認知。

後設認知 程序知識 陳述知識 事實知識

而心理學家認為一般長期記憶中儲存的知識有(張春興,2010):

1. 陳述型知識(declarative knowledge):

是種用語言表達出舊有的經驗或對事物的認知之知識,屬於知的知識。

2. 程序型知識(procedural knowledge):

是種能將陳述性知識實踐的知識,屬於既知道也能執行的知識。

而程式設計學習過程中抽象概念的理解(陳述型知識)及解題策略(程序型 知識)對於解決程式設計問題是很重要的(McGill & Volet, 1997; Esteves, Fonseca, Morgado & Martins, 2009)。從數學的角度來看,在思考、選擇或發想出新的策略 時會應用到程序型知識,而陳述型知識會直接或間接影響著程序型知識的發展

(Rittle-Johnson et al., 2001; Star, 2005)。學習數學的過程中發現,陳述型知識與 程序型知識彼此是雙向且迭代的、並彼此互相輔助的(Rittle-Johnson & Schneider, 2014)。而學習程式設計時有以下兩個重點:(1)拆解題目設計解法-學習者必須 先看懂程式設計題目後,再依照題目中的規範設計出相應的解法來解決程式設計 的問題以產出符合要求的答案。(2)將解法轉換為程式碼-接著學習者必須將所 想到的解法轉換為程式語言中的程式碼,才能夠有效的使用程式設計編譯出符合 要求的答案(Costelloe, 2004)。

故本研究將程式設計能力定義為可同時應用陳述型知識(了解程式設計相關 概念與技能的知識)與程序型知識(利用程式設計概念與技能以實作程式碼的知 識)兩類:

一、 陳述型知識(Declarative knowledge):

1. 定義及特質

陳述型知識可以是明確的或隱喻的,因此不一定要使用以言詞表達出來

(Goldin-Meadow, Alibali & Church, 1993)。然而知識中的概念通常被稱為陳述型 知識且不會只針對特定問題而定(Byrnes & Wasik, 1991; Canobi, 2009; Rittle-Johnson, Siegler & Alibali, 2001)。陳述型知識也式一種抽象的思想語言,源自於 抽象的符號系統,可透過不同的符號組合成有意義的內容(Fodor, 1987)。

而陳述型知識包含了(Krathwohl, 2002):

(1) 分類與類別的知識-此為能知道並區別不同的事物的類別,並將其進行區

(2) 原理與通則的知識-透過現象所抽取其概要,將其應用於描述、預測、解 釋或行為的方向。

(3) 理論、模型、結構的知識-對複雜的現象及觀點提出系統性的觀點,將其 以理論、模型的方式呈現。

2. 教學策略

學習者對知識的理解會隨著經驗的增加而變多,但無法自行對計算機的概念 進 行 系 統 性 的 理 解 , 因 此 教 師 須 積 極 且 運 用 合 適 的 解 釋 和 隱 喻 進 行 教 學

(Hammond & Rogers, 2007)。程式設計之陳述型知識可透過相應的概念以表徵其 意義、使用其他領域相似的東西來類比、用舊有的知識來比擬新知(Murray, Schultz, Brown, & Clement, 1990)。

從數學的科目來看,陳述型知識綜合了自己本身對數學的思想和自身對數學 的瞭解程度(Kilpatrick, 2001)。當學習者有了對於陳述型知識的理解才能使得程 序型知識發揮出最大效益(Long, 2005)。在學習國小數學時若要發展出較好的程 序型知識及策略能力,很顯然的都與陳述型知識密不可分(Verschaffel et al., 2009)。

從化學的科目來看,陳述型知識包含許多公式、規則、原則和問題解決,學 生須掌握陳述型知識並有能力回憶和選擇適當的方案來解化學問題(Lee, Woh-Un, Ngoh-Khang & Lian-Sai, 2001)。在學習化學時,對於陳述型知識的理解和程序型 知識的問題解決能力都是非常重要的,為了正確的解決問題,學生需要應用相關 陳述型知識和如何操作的程序型知識以解決問題 (Cracolice, Deming & Ehlert, 2008)。

二、 程序型知識(Procedural knowledge):

1. 定義及特質

程序型知識由解決特定問題的程序中所發展,它有別於其他知識,因為程序 型知識具備了非常明確的順序性(Hiebert & LeFevre, 1986)。程序型知識也是一 個為了達到目標進行一系列特定步驟來解決問題的能力,並包含將已知的程序型 知識應用新問題的能力(Canobi, 2009; Rittle-Johnson et al., 2001; Baroody, Feil, &

Johnson, 2007)。而程序型任務通常定義為單一對象或特定情境中須以特定順序步

而程序型知識包含了(Krathwohl, 2002):

(1) 特定學科之技能與演算的知識-為有特定順序性步驟且最終會有結果的知 識。

(2) 特定學科之技術與方法的知識-為對結果有一定共識或學科規範的知識。

(3) 決定運用和規則的知識-知道何時該使用何程序的知識。

2. 教學策略

先備知識會影響程序型知識,程序型知識也包含了使用多種方法和何時該 應用這些知識來解決問題,並於解題時知道該用何種策略與如何將陳述型知識加 以應用來解決程式設計的問題(Star, 2005)。而它也是許多活動能夠完整學習的重 要部分(Rodriguez, 2002)。這更是學習數學必須擁有的重要知識(Star & Stylianides, 2013)。從研究中發現若經由體驗學生會更有效的去了解整個操作過程及步驟進 而增強程序型知識(Rose, 2004)。

程序型知識的教學策略有以下三項:

(1) 比較

若在先備知識評量之前即知道其中一種解題方法的學習者,可經由自身舊有 的經驗與題目相互比較、對照中來獲得較佳的程序型知識(Rittle-Johnson & Star, 2007; Rittle-Johnson, Star, & Durkin, 2009) 或陳述型知識(Rittle-Johnson & Star, 2009)。

(2) 自我解釋

小學生在學習數學時若有進行自我解釋(對自己解是這裡為什麼對?這裡為 什麼錯?這堆數字的意義式什麼?),將有助於學習程序型知識(Rittle-Johnson, 2006)。

(3) 探索

進行教學前若學生先自行解決不熟悉的問題比授課後才解決問題的學生能獲得 較多的陳述型知識與程序型知識(DeCaro & Rittle-Johnson, 2011)。學習者經由體 驗便更有效的去理解整個操作過程及步驟(Rose, 2004)。

相關文件