• 沒有找到結果。

第二章 文獻探討

第一節 程式設計學習的問題

學習程式設計是讓學生瞭解電腦運作的基本原理和流程,以及如何運用程式 語言解決實際問題(吳正己、何榮桂,1998)。此外,程式設計必須按照步驟去 撰寫指令,才能得到正確的結果,所以學習程式設計能夠提升學生邏輯思考及解 決問題的能力(吳正己、林凱胤,1997)。然而,根據國內電腦課程實施之相關 調查研究發現,高中電腦教師認為在「進階程式設計」及「演算法與資料結構」

部分的內容較艱深,導致學生學習意願不高、學習成效益亦不佳(陳宏煒,2003)。

而上述造成程式設計學習困難的因素包括:

一、程式設計過於複雜(Brusilovsky et al., 1997;Jenkins, 2002)

學習程式設計並非只是學習單一技能,而是需要學習階層式的技能,例如:

先學習語法、語意,接著是程式結構,最後是撰寫風格。此外,程式設計需要經 過多個過程,先將特定的知識轉換成演算法,最後再轉化成程式碼。對初學者而 言,將特定知識或想法轉換成演算法是最困難的步驟。

二、抽象的程式概念(Jenkins, 2002;West & Rose, 2002)

學校所教的程式語言往往是業界認為「最流行」的程式語言,並不是為了教 學所開發的程式語言;學生因為不熟悉程式語言,常常花費大量心力於低層次的 語法和語意,而使得學生難以進行高層次抽象概念思考。

大部分學校所教的程式設計課程並沒有與其它學科、學生的興趣及其他電腦 法轉換成程式碼(Costelloe, 2004)。然而,設計解決問題的演算法對初學者而言 是最困難的,Soloway(1986)分析專家與初學者的差別,發現初學者最大的困 難是不知道怎麼將多個程式片段組合起來,而專家腦中有許多特定的解法

(canned solution),並能夠針對不同問題組合成不同解法;他也提出應該教導學 生以程式區塊(chunk)的思考方式來解決程式設計問題。另外,初學者在學習 程式設計時需要逐行閱讀程式碼才能瞭解程式的架構,而專家則是創造一個心智 模型連結相關的程式區塊,並融會貫通(McKetihen et al., 1981)。Perkins 和 Martin

(1986)認為初學者學習程式設計所遇到的困難是因為脆弱的知識(fragile knowledge),並將其分為四類,分別為:

1. 缺落知識(Missing Knowledge)

學生因為遺忘或未曾學過而造成知識不完整。

2. 惰性知識(Inert Knowledge)

學生雖然學習到知識,但不能靈活運用,需要別人提示。

3. 誤用知識(Misplaced Knowledge)

學生有學習到該知識,但使用在錯誤的地方。

4. 混用知識(Conglomerated Knowledge)

學生將一堆無關的程式組合成自創的句法,造成句法或語意上的錯誤。

根據以上文獻可以發現,由於程式設計涉及的知識過於龐大、程式設計概念 較為抽象,且課堂講述之範例大多是處理數學問題等問題,因此造成學生學習興

趣低落、學習成效不佳。而初學者學習程式設計的困難為無法針對問題來設計解 題方法,且初學者往往因為知識的掌握不足,而使的無法撰寫出程式或是程式無 法執行。為了改善程式設計學習的情形,Guzdial 與 Soloway(2002)建議使用 視覺化環境和多媒體於程式設計課程來提升學習者學習的興趣。Naps 等(2002)

指出視覺化環境將抽象的演算法概念轉化為圖像呈現,可以幫助學生更加理解演 算法的概念。Myller 等(2007)指出視覺化環境能夠提供學習者額外的記憶體空 間,能有效的幫助學生理解演算法或程式架構。另外,在教學設計上可以考慮以 程式區塊來講解說明,引導學生思考解題步驟,將演算法轉化成程式碼。

相關文件