第二章 文獻探討
第一節 程式設計教學問題
第二章 文獻探討
本章旨在說明研究相關之理論基礎與理念。第一節首先整理程式設計教學上 所遭遇的問題。第二節則探討機器人運用於程式設計教學的方式。第三節則探討 前導組織的來由、起源、理論以及相關研究。第四節探討心智模型的定義及程式 設計的心智模型有哪些。
第一節 程式設計教學問題
程式設計課程是一種牽涉到高度抽象概念邏輯思考的活動,Ellinger(2003)
綜合說明程式設計有以下的特性可幫助學生學習:
1. 寫程式可培養細心的態度:程式是極為精細嚴謹的,因為程式語法是要 求精準且失之毫釐差之千里的,而這樣嚴謹的要求可類推到生活。
2. 寫程式可以訓練自我批判的能力:任何人都會犯錯,透過程式設計,學 生能夠瞭解發生錯誤是無可厚非的,但要學習更有效率地更正錯誤。
3. 寫程式可學習負責任的態度:當電腦當機或程式當掉,使用者通常會怪 罪電腦而非自身的操作不當,但程式是自己寫的,因此撰寫者必須接 受錯誤是自己造成的,而非電腦。所以程式設計能培養學生負責任的 態度。
4. 寫程式是可以激發創意的:透過程式我們創造一些具備個人特色的解題 方法或演算法。
5. 程式設計能訓練溝通技巧:寫作過程中很注重與夥伴的溝通討論。
6. 程式設計師是需要彼此合作的:通常程式是需要分工合作才能完成的。
7. 程式是可以學習彼此分享的:程式世界中,我們可以拿別人已經寫好的 部分來加速、簡化工作。同理,類推到生活,我們做的任何事情都能 不吝於與他人分享。
6
由上述七點我們可以了解程式設計對學生的影響及重要性,但是由於程式語 言語法結構龐大複雜,常使學生學習上造成難題(Mannila, Peltomäki, & Salakoski, 2006),在教師教學上也存在著不少問題,研究者將主要問題分類成以下四點,
並整理學者們所提出的解決辦法。
一、 程式概念的抽象本質不易理解
du Boualy(1989)認為程式設計的困難點在於程式概念牽涉到過多的抽象 化元素,因而造成教學者的負擔,也常使程式設計初學者感到挫敗,因此,du Boualy認為適合程式設計初學者的教學,應具備簡單化及視覺化等特性,以克服 此問題。而Mayers(1981)亦提出應該以「具體模型」的視覺化方式來教授本來 抽象的資料結構概念,他將電腦記憶體資料傳遞的過程以圖卡的方式呈現在黑板 上,實證研究發現此一方法更能有效幫助學生理解程式的執行過程。
二、 教學方法過時
Soloway與Guzdial(2002)指出,資訊科技產業人才逐漸萎縮的原因,除了 資訊產業外移開發中國家外,最大的問題在於程式設計的學習常讓初學者感到無 趣,這歸因於教師的教學方法沒有與時俱進,例如,讓學生以程式繪製出星號或 以星號繪出圖形、要求學生抽象地去思考問題、寫出「Hello World」或數學運算 式等等,這樣的教學法或許在十年前,系統I/O以讀寫資料為主的時代是非常新 穎、有趣的,但在這個科技瞬息萬變的年代,孩子所接觸的不再是黑白的DOS 介面,使用的多媒體涵括影像、音效、動畫等,而教師這樣「過時」的教學法如 何能夠吸引學生的注意力?現今的孩子,我們稱之為「任天堂世代」(Soloway, Guzdial, 2002)喜歡聲光效果,也生活在這樣的世界中。因此,倘若可以讓學生 利用簡單的方法就能夠自行創造「任天堂遊戲」,他們才能體會到程式設計的強 大之處以及趣味所在。
三、 教科書的問題
我國高中課綱在程式設計教學課程相關的規劃旨在培養學生對於程式設計
7
的正確觀念,並進一步引起學生學習程式設計的興趣(教育部,2008)。授課重 點應強調問題解決的概念,並避免過度拘泥於特定的程式語言或開發工具。但綜 觀現今電腦(資訊科技概論)教科書對於程式設計教學法的教材編排,多數以介 紹程式語言Visual Basic程式為主,包括VB作業環境、程式的組成元素、VB的資 料型別與運算子以及內件函數的介紹,而非以程式設計訓練問題解決能力為目 標。
四、 教學時間有限
莊雅茹(1995)提到,高中程式設計教學的時數實為不足,所能介紹的觀念 及深度也微乎其微。教學時間過少,教師又花過多的時間在講解VB語法本身,
而非程式架構、流程或問題解決的方法,此舉也造成學生對程式設計課程的誤 解,因而讓學生對程式設計感到興趣缺缺。
綜合上述四點,如何在有限的教學時間下,運用嶄新的教學技巧而不流於 過去程式設計的呆板教學,正確且清楚地導入程式設計概念,一直是學者們努 力發展的目標。因此,倘若有一套程式設計教學工具能以介面視覺化、指令簡 單化的方式呈現程式寫作流程,並能為學生建立適當的概念機器,相信能更有 利於程式設計教學。而為了解決上述問題、減輕學習者學習程式設計上的負 擔,多位學者(du Boulay, O''Shea, & Monk, 1981; Brusilovsky et al., 1997)提出 了迷你語言(mini-language)的概念。迷你語言顧名思義就是簡化過的程式語 言,學習者毋須了解龐大的程式語言指令即可先建立程式設計的基本概念。
8