第二章 文獻探討
第四節 心智模型
以下就心智模型、心智模型與程式設計相關研究以及學者分析出的程式設計 心智模型類型作探討。
壹、 心智模型
個體透過觀察、思考、學習而建立出屬於自己的知識架構,並根據此架構來 解釋事務或預測未來,這種知識架構我們稱之為心智模型(Johnson-Laird, 1983)。Norman(1983)提出心智模型是人類用來解釋概念或預測現象所建立 起的知識架構,而心智模型的理論架構有以下四個重點:
1. 目標系統(target system):意即學習者所要學習的新概念。簡寫t。
2. 觀念化模型(conceptual model):指專家對目標系統所套用的知識架構,
意即正確的心智模型。簡寫C(t)。
3. 心智模型(mental model):學習者面對目標系統所建立的知識架構。簡 稱M(t)。
14
4. 科學家或心理學家透過實驗或科學方法所觀察到學習者的知識架構我們 簡稱為C(M(t))。
當學習者面對一個新事物t時,他會自動從腦中搜尋可以解釋之的心智模型
(C(t)),但是學習者可能會套用錯心智模型或是其具備的心智模型不夠完善以 至於對學習物產生誤解或錯用,反之,若學習者套用的心智模型完全等同於專家 套用的心智模型時(C(t) = M(t)),代表學習者能夠正確的理解所學,因此,學 者們致力於為初學者建構出正確、等同於專家的心智模型。但是心智模型存在於 人的腦內無法擷取,因此必須透過科學家實驗、觀察進而推論出該學習者腦中的 心智模型(C(M(t)))可能會最接近於其腦中的架構(Johnson-Laird, 1983)。
當人開始接觸未知事物,並嘗試建構、解釋未知物的架構時,心智模型即逐 漸發展,往後當遇到類似事物或相關訊息時,此資訊將會加入該心智模型中,使 之修正變的更加完備,但是也可能由於學習者對新資訊的不熟悉或理解錯誤,而 將此訊息加諸在錯誤的心智模型上造成其心智模型產生瑕疵,而用一個錯誤的心 智模型解釋新事物更可能使得該學習者在往後學習相關新知時產生迷思概念
(Norman, 1983)。因此,學者們致力於幫助學生建立正確的心智模型,並希冀 透過觀察、推斷以了解學生可能面對某概念時的心智模型(C ( M ( t )))是否有 誤,並透過一些適當的教學工具能將錯誤的心智模型予以導正。
貳、 程式設計心智模型相關研究
由於程式設計是一門有用但牽涉到邏輯思考且需要高度理解技巧的認知活 動,初學者常因缺乏該領域的知識感到挫折並視為畏途。因此,多數學者欲找出 有效且能促進新手學習程式設計的教學方法,其中之一就是為學習者建立起完備 的心智模型好讓其能正確的建構出新知識。Mayer(1981)認為心智模型意即學 習者對於學習物以及其運作系統的認知,依照學習者對學習物認識的完整度、深 度會有不同的心智模型產生。而程式語言通常牽涉到輸入、輸出系統、記憶體及
15
程式碼等概念,一個好的心智模型可以對這些概念有正確的理解及運用,但是這 些概念牽涉到背後操作、控制、物件等大多為抽象化無法讓學習者看見的概念。
Mayer(1981)提供了程式設計初學者一本附有程式設計各概念、物件如何運作、
互動以及電腦的運行規則等的圖說手冊,此種閱讀、理解手冊的過程,Mayer稱 為「正確心智模型訓練活動」,他的實驗發現此種方法有助於學生解題,尤其對 低成就的學生產生影響。同樣地,Perkins、Schwartz與Simmons(1988)對學生 設計了程式語言的視覺化銜接課程,意即提供學生一個能夠讓學生理解電腦內部 運作的圖像化系統,學生可以透過該系統理解程式運算過程時,變數值的變化,
以及程式執行到何處,相當於將追蹤程式的過程視覺化,研究發現使用過此系統 的學生較控制組來的有能力解決較複雜的設計程式問題以及有更強的除錯能 力。亦有為數眾多的學者(Mayer, 1989; du Boulay ,O’Shea & Monk, 1989
Eisenstadt & Brayshaw, 1989)認為替新手程式設計師提供一個程式學習環境使其 能夠「看到」程式在電腦的執行過程將有助於提升學習者的程式設計能力。
而近期的研究也有學者發現,程式設計專家不僅相關程式性知識高於初學 者,他們處理問題的思考模式也有所不同,顯示專家套用的心智模型與初學者有 異(Adelson, 1981)。因此倘若我們能提供學生專家處理問題的模式以及學習方 法相信將能更有助於學生理解程式設計問題,Cañas、Bajo以及Gonzalvo(1994)
提出以專家模式為學生建構出程式設計概念的方法,他認為專家學習程式設計有 分成理解程式概念與具備程式撰寫能力兩種過程,因此他讓學生先透過範例以及 追蹤程式的方法理解某一個程式設計概念,再要求學生閱讀程式碼指出某範例的 輸出值為多少,爾後要求根據所學設計出一個能夠解題的程式以訓練學生具備自 行撰寫程式的能力,並且,研究者並給予實驗組包含追蹤程式功能的程式撰寫環 境,因此學習者隨時可了解自己程式的執行過程,以幫助學習者建立正確的心智 模型,研究發現,雖然實驗組對於程式設計的學習成就並無明顯差異,但是實驗 組在呈現以及組織程式概念的表現上明顯優於控制組。
16
總結上述研究,我們可以了解學習者在學習新知識時都會套用腦中既有的心 智模型以解題,而套用正確的心智模型學生才能對所學有正確的理解並更可修正 心智模型使之更加完備,因此,我們必須要了解學生在學習程式設計會套用哪些 心智模型來解題,這些心智模型是否正確,如果錯誤我們又該如何導正呢?以下 將就程式設計各概念的心智模型類型做探討。
參、 程式設計心智模型的類型
程式設計牽涉到許多概念及理解能力,因此學生會用各種腦中既有的想法去 做解讀。在程式理解能力方面,研究者整理學生共有以下心智模型:複製模型
(copy model)、自然語言模型(nature language model)、人類思維模型(human model)、領域模型(domain model)以及程式模型(program model)。
一、 複製模型(copy model)
Putnam等人(1989)提到,當學生不理解所學或是不會解題時,就會找 相似範例來類比甚至直接套用,此類學生只會依樣畫葫蘆並不理解程式背後 的涵義或觀念,因此他們只能解決簡單的類似題,但是卻無法解決需要遷移 的題目或是大型的綜合題,具有此種解題模式的學生我們歸類為「複製模型」。 二、 自然語言模型(nature language model)
當學生面對程式設計問題時,常會以自然語言直譯,例如,當學生看到 一個變數取名為「smallest」他就理所當然認為這個變數會自己去挑選數字中 的最小值,此類型的學生我們稱之為以「自然語言模型」(Putnam等人,1989)。
三、 人類思維模型(human model)
Putnam等人(1989)亦提到,有些學生會認為電腦等於人腦,程式會依 照其腦中的自然規則進行,例如,當學生看到牆知道要轉彎或是停下腳步,
他就理所當然認為程式如果碰壁了也就應該自己知道停下程式而不是繼續執 行,此類型的學生我們稱之為以「人類思維模型」。
17
四、 領域模型(domain model)與程式模型(program model)
Pennington(1987)發現學生理解程式的方式有兩種,一為控制流(control flow)意即學生會根據程式的執行過程、使用何種結構或關鍵語法來解讀程 式如何執行,此類的學生面對題目的改變較不會變通,也較無法產生學習遷 移;而另外一種程式理解方法為資料流(data flow)意即學生會以程式中變 數的改變以及與程式中各物件的關係去理解程式,此類的學生較能理解抽象 概念並具備自行規劃程式的能力。Wiedenbeck及Ramalingam(1999)根據 Pennington提出的控制流類型歸類為「領域模型(domain model)」,資料 流類型歸類為「程式模型(program model)」。所謂的領域模型,意即學 習者會將所學依照自己已知領域所理解的事物去類推,此類的學生通常較能 夠理解抽象式概念並且能夠更駕輕就熟的使用新概念;而程式模型,則是學 生在學習新概念的過程中,以相關概念去理解它。簡單而言,就是具備程式 模型的學生是理解所學概念的「定義」;具備領域模型心智模型的學生是理 解所學概念的「應用」,此兩種模型都有助於學生學習程式設計。
而程式設計牽涉到許多語法以及概念,包括輸入輸出指令、變數概念、條件 結構等等,以下將就Putman等人(1987)、Bhuiyan(1991)、Ma等人(2007)
的研究整理初學者在程式語法、概念上可能具備的心智模型來分類解說。
一、 輸出心智模型(Putman et al., 1987)
程式碼「A = 5;A = 38;A = 16;Print “A:”+ A;」,正確的輸出應該是
「A:16」,但是新手常會有以下問題產生:
1. 引號問題:此類學生會忽略引號,認為程式應該印出「16 :16」或是 印出「A:A」。
2. 數學思維模型:此類學生認為一個變數的值一旦給定就不會在更動,就 像是數學中變數A如果等於5,A就永遠等於5,如果要存16就應該另外 新增一個變數B來存。因此此類學生會認為A永遠等於初始值,因此程
18
式應該會印出「A:5」。
3. 語言思維模型:因為Print代表印出的意思,因此學生可能會認為這個程 式會印16個A。
4. 多重值模型:此類學生認為變數A有好幾個值存在,因此程式應該會印 出「A:53816」。
二、 變數指派心智模型(Putman et al., 1987; Ma et al., 2007)
一個正確的變數指派心智模型,應該是將符號「=」右邊的變數指派給左邊 的變數,例如程式碼「A = 3;B = 5;A = B;」,則最後的結果應該是A等於5,
B等於5。但初學者常會有以下的錯誤心智模型產生。
1. 數學思維模型:由於數學思維中「A + B = C」此敘述代表,把等號左
1. 數學思維模型:由於數學思維中「A + B = C」此敘述代表,把等號左