第一節 背景與動機
許多學者認為學習程式設計能夠培養學生問題解決以及高層次思考能力,
並有助於他們日後的職業規劃(Duke, Salzman, Burmeister, Poon, & Murray, 2000)。但是程式設計卻是一項難教也難學的科目,Costelloe(2004)指出學生 剛開始學習程式設計時,在語法及程式概念上常會碰到困難而感到沮喪。
Soloway(1986)認為傳統程式設計教學並沒有教會學生問題解決的技巧,學生 無法順利撰寫程式。由於一般的程式語言語法結構龐大複雜,容易造成程式初 學者學習的困擾(Mannila, Peltomäki, & Salakoski, 2006)。Linn 及 Clancy(1992)
認為傳統的程式設計教學太著重於語法的教學,容易使得初學者落入嘗試錯誤 的方式來拼湊程式。因此,很多學者們嘗試各種不同的教學方法,希望能增進 學生學習程式設計的成效。
有些學者提出以視覺化的方式來幫助學生理解複雜或抽象的概念。Myers
(1986)認為透過視覺化的方式能幫助學生建構正確的概念結構。Astrachan
(1998)則提供與學生們過去經驗連結的工具,讓學生能夠將新的概念與舊有 的經驗相連結,例如,使用便利貼、飛盤、繩索、紙卡等教授學生參數傳遞、
鏈結串列、指標等程式概念。
Papert(1980)在 Mindstorms 一書中提到了所謂「微世界(microworlds)」
的觀念。在這個微世界中只有教學者希望學生學習的新知識內容,免除不必要 的干擾,以讓學生更專注在學習的焦點。Pepert 於 1969 年開發的 LOGO 語言 即是基於此概念,沒有繁複的語法只需專注控制畫面的小海龜。後來的小瓢蟲 Kara 亦是用微世界的觀念來教程式觀念。LOGO 與 Kara 都是讓學生在螢幕上 控制虛擬物件或機器人的行動。
LEGO 公司所出品的 Mindstorms 機器人,其前身是 MIT 開發出來的可程 式化積木,它就是結合了視覺化及微世界概念的實體機器人(1991),許多的學
者將其運用於程式教學上。Klassner(2002)在大學人工智慧課程的教學上採用 Mindstorms 讓學生以小組專題的方式學習;Fagin(2001)採用 Mindstorms 及 Ada/Mindstorms 的程式編輯環境於程式設計課程已有許多年的經驗。
運用機器人於程式設計教學透過機器人營造出來的微世界,可以讓學生專 注於解決機器人世界的問題,而且學生只需要學習機器人相關的控制指令,可 能可以克服一般程式語言語法太過複雜的缺點。運用機器人也是一種從做中學 的方式,因為學生能實際操控機器人比一般程式設計更有趣,透過實際操縱亦 能從中學習程式設計的概念(Fagin, 2001; Jacobsen & Jadud, 2005)。但採用機 器人於程式設計教學上,可能會有一些限制,如:程式傳輸的時間、修改程式 後又要再重新傳輸,這類的問題在課堂教學時會占去一部份的教學時間,因此 若能有可以模擬機器人行為的軟體,應該能改善這些問題(Fagin, 2003)。
德國的Paderborn 大學即針對 Lego Mindstorms 機器人開發了一套模擬軟體
「Lego Mindstorms Simulator(LMS)」,配合 LeJOS 團隊開發的韌體,可以用 來模擬Midstorms 機器人的行為。採行模擬的方式,除了能夠節省傳輸的時間 之外,在經濟的考量上也比機器人的花費低廉。如果讓學生同時運用實體的機 器人和模擬軟體來學習程式設計,先在模擬軟體中除錯,然後再傳到實體機器 人執行,可能會使學習更有效率。
從認知的觀點來看學習,當人們在學習新的事物時,會在內心產生一套知 識的表徵,可以運用來解釋習得的知識,並能夠預測外在系統的行為,這是所 謂心智模型(Johnson-Laird, 1983)。同樣地,學生在學習程式設計時,也會在 內心產生自己的一套心智模型並試著用來解讀及撰寫程式,若學生心智模型有 瑕疵時,就可能無法順利解題。
Pennington(1987)認為程式設計的心智模型主要有兩大部份,一是和問 題相關的知識稱為領域模型(domain model),另一是和程式細節相關的訊息稱 為程式模型(program model)。後來Wiedenbeck 及 Ramalingam(1999)運用類 似Pennington(1987)的方法,探討採用程序性(procedual)和物件導向
(object-oriented)派典的初學者,其心智模型的差別,他們發現學習兩種不同 派典的學生,傾向於產生不同的心智模型。Pennington 及 Wiedenbeck 認為,只 具備程式模型是不足的,最佳的程式理解是同時具備領域模型和程式模型的知 識,並能充分的交互運用以瞭解程式。
目前探討使用機器人於程式設計教學可能產生的心智模型,尚未發現有文 獻討論,因此本研究希望探討使用實體機器人和模擬軟體兩種工具的成效,以 及學生使用機器人學習程式設計所可能產生的心智模型,並希望能對未來使用 機器人於程式設計教學提出建議。
第二節 研究目的
本研究重點在於探討採用機器人、模擬軟體方式,在學習程式設計的成效。
質言之,本研究目的有三:
一、比較使用機器人、模擬軟體、機器人加模擬軟體三種輔助學習程式設計工 具的成效。
二、比較使用上述三種方式與傳統教學方式之成效。
三、探討學生使用機器人學習程式設計可能產生之心智模型。
第三節 研究範圍與限制 本研究之研究範圍與限制如下:
一、本研究所採用之程式設計教材內容包含循序、判斷(if-else)、迴圈(for、
while)、陣列,基本的控制結構,以及循序搜尋法。
二、本研究所採用之機器人為LEGO Mindstorms RCX 套件,模擬軟體則採用 經曾義智(2007)中文化後的 LEGO Mindstorms Simulator。