• 沒有找到結果。

第二章 文獻探討

第一節 程式設計教學

本節先探討程式設計的重要性,接著說明程式設計初學者遭遇的困難以及程 式設計的教學策略。

壹、程式設計的重要性

培養學生邏輯思維及運用電腦解決問題之能力,是高中資訊教育課程的重要 目標之一(教育部,2009)。Soloway(1986)認為,程式設計與一般問題解決的 道理是相通的。程式設計在電腦科學領域中佔有重要地位,並且能學習到用在其 他領域的問題解決技巧(Linn, 1985)。具備程式設計能力的人,不但能善用應用軟 體,並對新科技具有較高的接受度與吸收力(Clancy & Linn, 1993)。程式設計可 以培養細心、負責任的態度,亦可訓練自我批判的能力,及激發創意,並透過彼 此合作、分享,增進溝通技巧(Ellinger, 2003)。亦能夠培養邏輯思考以及問題解 決的能力(Dagdilelis, Satratzemi, & Evangelidis, 2004)。

Reichert、Nievergelt 及 Hartmann(2001)認為,讓學生學習程式設計不是為 了讓他們將來能夠當程式設計師,而是希望他們藉此能培養對軟體的基本認識,

對程式的產生過程(撰寫、測試與除錯)有直覺性的瞭解,進而有能力自行使用 不同軟體。美國電腦科學教師協會(Computer Science Teachers Association, CSTA)

制訂的「改進高中電腦科學教育白皮書」提到,程式設計應著重在分析與設計的

過程,藉此培養學生具問題解決與演算法式思考的能力(Stephenson, Gal-Ezer, Haberman, & Verno, 2005)。Mannila、Peltomaki 及 Salakoski(2006)認為這種能力 可作為一般化、全面性的能力,並影響將來的學習。由此可見,以程式設計來加 強學生基礎能力已日漸重要。

貳、程式設計初學者遭遇的困難

Soloway(1986)認為初學者的主要困難是不知道如何將程式片段組合成完整 的程式。程式設計是階層式、多程序的技能,必須同時兼顧語法、語意,以及問 題解決與設計的學習過程(Jenkins, 2002)。初學者必須同時學習程式語法、結構 及除錯的技巧,這種情形更加重學習者的認知負荷(Brusilovsky, Calabese, Hvorecky, Kouchnirenko, & Miller, 1997)。在建構問題解決方法與了解程式執行過程的同時,

還要面對複雜的語法指令以及抽象的邏輯結構,使得學習程式設計被認為是一項 困難的工作(Kelleher & Pausch, 2005)。

初學者的問題是不知道如何組織並活用所學到的語法知識與設計概念,不會 規劃自己的解題方式,只會使用片段的程式觀念,與固定的解題策略,只學到表 面知識,而未能將獲得的概念與策略確實理解、融會貫通,建立自身的心智模型

(mental model)(Wiedenbeck & Ramalingam, 1999; Winslow, 1996)。Robins、

Rountree 及 Rountree(2003)歸納文獻指出,初學者缺乏清楚的程式設計心智模 型,程式設計的心智模型主要包括語言特徵與機器行為兩部分。語言特徵包含程 式語言的語法、語意與語言本身相關的概念,而機器行為則是電腦如何執行程式 的概念。清楚地擁有這兩部分的心智模型,才能有良好的程式設計能力。

既然程式設計本身有一定的複雜度,在教學方法的使用上就需更加謹慎,然 而傳統的程式語言(如:C、C++)雖然功能強大,卻並非為教學而設計,除了程 式語言的基本結構,還有一些特殊語法,對初學者而言都過於複雜,使得在撰寫 出程式之前,要先學習很多觀念、語法(Gupta 2004; Mannila et al., 2006)。加上教 科書的範例與習題和學生的生活經驗並無太大關聯,不能讓學生感受到真實的問

題情境,無法引起學生的興趣(Lahtinen, Ala-Mutka, & Jarvinen, 2005)。學習者如 果因為基礎欠佳,加上學習方法偏差,導致在學習過程中問題橫生,又不敢向教 師發問或與同學討論,如此惡性循環的結果,會使得學生學習程式設計的興趣越 來越低落(Robins et al., 2003)。以上說明了程式設計初學者所遭遇的困難情形與 原因。

參、程式設計教學策略

在程式設計教學過程提供概念模型(conceptual model),可幫助學習者在解題 時更專注並能進行系統化的思考,有利於培養心智模型(Mayer, 1989)。Ben-Ari

(2001)以建構論為出發點,認為幫助學習者建立一個可供運作的程式心智模型,

可避免產生迷思概念。若能幫助學習者將所學的程式概念與解題策略結合,轉化 為自己心中以程式概念為主的虛擬機器,能於心中模擬程式的運作情形,有助於 學習者理解與學習程式設計概念(Robins et al., 2003)。使用模擬軟體在程式設計 教學,可使程式執行過程視覺化,有助學習者修正自身心智模型,提升程式設計 能力(Wolfe, Gossett, Hanlon, & Carver, 2003)。

要改善初學者學習程式設計困難的問題,應該使用合適的教學用程式語言、

運用彈性的教學方法以及避免以評量為目的的教學(Jenkins, 2002)。在程式設計 的教學方法中,採用以問題解決為導向的教學方式,不僅能使學生脫離死記語法 敘述的學習方式,更使學生活用所學到的程式觀念,同時透過練習與解題,可培 養學生知識組織的能力(吳正己、林凱胤,1997; Barg, Fekete, Greening, Hollands, Kay, & Kingston, 2000)。抽象的程式觀念僅憑平面教學,如黑板、投影片的輔助,

是不足的(邱貴發,1996)。為了協助初學者克服學習程式設計的困難,以及提升 對程式設計的興趣,有學者開始利用機器人於程式設計的學習(Miglino, Lund, &

Cardaci, 1999)。LEGO 機器人的初學者,可在不具有太多硬體背景知識的條件下,

即能透過觀察與操作,由元件的運行變化,或條件差異產生的回饋中,瞭解基本 的程式運作原理(Barnes, 2002)。LEGO 機器人無論是程式編輯環境,或是積木零

組件本身、輸出入裝置等,操作環境十分多元,不但增加學習趣味性,更進一步 激發學生進行多樣嘗試與變化(Klassner & Anderson, 2003; Portz, 2002)。LEGO 機 器人被廣泛應用在電腦相關的課程中。

肆、小結

研究指出程式設計的重要性,尤其是能培養學生問題解決的能力。然而學習 程式設計被認為是有一定難度的認知學習歷程,於是電腦教育學者發展出各種的 教學策略與教學工具來輔助程式設計教學,目的就是為了降低初學者所遭遇的困 難,而研究指出 LEGO 機器人程式設計是可行的教學方案之一,能藉由實作過程,

建立學生程式設計概念的心智模型,有助於對程式設計知識的理解,並增加學習 興趣。