• 沒有找到結果。

第一章 緒論

第一節 研究背景

對於初學者而言,學習程式設計並非易事;也正因初學者在學習上經常遭遇 許多挫折,使得數十年來不斷有學者投入探究初學程式設計的困難處及其原因。

程式語言多達數百種,每一種的語法、語意、思考邏輯、和操作環境各異,其學 習困難處自亦不同,例如 Spohrer & Soloway (1986)、Sleeman, Putnam, & Baxter (1986)、Perkins & Martin (1986)、Putnam, Sleeman, Baxter, & Kuspa (1989)、Winslow (1996), Jenkins (2002)、Lahtinen, Ala-Mutka, & Järvinen (2005)、Ragonis & Ben-Ari (2005)、Kinnunen & Malmi (2006)、Chen, Cheng, & Lin (2012)、以及 Watson & Li (2014) 等等學者,即曾各自針對 Basic、Pascal、C++、Java 和其他語言的學習困 難做過相關研究。

學習者所遭遇的困難固然和學科內容本身的複雜度有著絕對關係,亦即認知 負荷理論(Clark, Nguyen, & Sweller, 2006)所定義的「本質性認知負荷」(intrinsic cognitive load),但教師的價值以及教師專業訓練必須修習一般教學法與專科教學 法的主要目的,正在於希望教師能在教學中採用適當的方法,以降低學生學習時 的「外在認知負荷」(extraneous cognitive load),並增進「合宜的認知負荷」(germane cognitive load),從而幫助學生獲致最佳之學習成效。

舉例而言,Soloway(1986)認為程式設計本是一種問題解決的過程,而若想 有效地解決問題,應訓練學生將一個問題分解成多個子問題,並針對每個子問題 設法辨識其與過去曾經解過的問題之間的相似性,然後引用曾使用過的方法以解 決眼前的問題,如此即可降低問題解決的難度。然而 Soloway 也指出,拆解問題、

辨識一個新問題與舊問題之間的相似性、以及如何將曾經使用過的解法略作裁適 後套用至新問題等各方面能力之培養並非一蹴可幾,而是需要經過長時間的訓練 方可致之;換言之,程式設計教學者必須致力於教導學生此種問題解決方法,而

2

非專注於講授程式語言的語法及語意。另如 Jenkins(2002)所指出,程式設計應 由會「教」程式設計的人教學,並非只是讓會「寫」程式的人進行教學;而且教 學者必須體認程式設計是一種困難的技能,因此必須在教學過程中給予學生充分 的協助,並提供學生不同的學習方式。Anabela & Mendes(2007)則提醒教師在 擬定教學策略時,不應僅以教師個人的學習風格為依據,而應採用大多數學生較 易接受的教學策略,方可幫助學生有效地學習。

相對於數學、科學、語文、藝術等學習領域而言,電腦科學屬於較為年輕的 領域,因而電腦科學領域的教學法也不若其他領域來得成熟與完整,其中針對程 式設計的教學方法與策略,也僅見於零星發表在電腦科學教育相關期刊或研討會 的論文中。即使程式設計教學至今已有數十年的歷史,卻幾乎未曾見過針對程式 設計教學法的系統性彙整、分析與呈現,這使得散落各處的教學法相關研究成果 難以被發現,更難以被採用,以致不僅無法嘉惠程式設計教學者,使得教學者只 能在教學過程中自行從嘗試錯誤中摸索、成長,也使得電腦科學教育領域的研究 者無法站在前人的肩膀上,將程式設計教學既有的研究發現做進一步的驗證與推 展。

程式設計教師若能獲取程式設計教學法之相關知識,即可將前人驗證有效之 教法運用於教學中,並在既有之教學法中進一步加入自己的創意,發展出更多元、

更豐富的教學法,然後再分享出去。如此所產生的教學知識的良性擴散,將有助 於提升程式設計教學之效益,從而減輕程式設計學習者所普遍遭遇的學習困難。

第二節 研究目的與重點

有 鑑 於 程 式 設 計 教 學 相 關 之 研 究 結 果 最 常 發 表 於 美 國 計 算 機 學 會 (Association for Computing Machinery,簡稱 ACM)所出版之刊物及其所主辦之研 討會中,其中又以 ACM SIGCSE Bulletin 季刊及 The SIGCSE Technical Symposium

(以 下簡稱 SIGCSE 研討會)和 International Conference on Innovation and

3

Technology in Computer Science Education(以下簡稱 ITiCSE 研討會)為主,因此 本研究之目的在於系統性地收集 2000 年至 2009 年間發表於上述三項文獻來源中,

而與程式設計教學相關之論文,針對文中所報導之有效教學方法加以彙整與分析,

並將分析結果分類呈現與闡述,期使程式設計教學者得以從本研究結果中,一覽 有效的程式設計教學法,並參考採用於其教學中。

具體而言,本研究之研究重點為:

(1) 收集 2000 年至 2009 年間發表於 ACM SIGCSE Bulletins 及 SIGCSE 和 ITiCSE 兩研討會之程式設計教學相關案例。

(2) 教師為了提升教學成效所採用之教學法,主要實現於其所設計之教學活動中,

因此本研究針對各個程式設計教學案例,萃取該案例中教學者所使用之重點 教學活動,並將所有案例中之教學活動及教學工具,依其共通性加以分類。

(3) 闡釋各種教學工具的特色及用途。

(4) 闡釋各種教學活動之特色、適用條件、及其所帶來之學習效益。

4