• 沒有找到結果。

第二章 文獻探討

第一節 程式設計教學

在本節裡,將程式設計的相關研究分成三個議題來探討:「程式設計」的重要性、

「程式設計」教學的問題與「程式設計」與「自我效能」。分述如下:

一、 「程式設計」的重要性

「程式設計」的學習曾經被視為「新拉丁文運動」,學者聲稱學習程式設計可習 得更有力的「問題解決」、「設計」、「思考策略」,並且使用「程序式思考」,強化抽 象思考能力(Soloway, 1993)。但是這些聲稱難以證實其成效,Soloway(1993)在一篇 文章中集合了各學者的意見,討論學習程式設計的重要性:Soloway 和 Guzdial(1993) 認為不需要教導非主修資訊科學的學生學習一般用途的程式語言(general purpose programming languages, 簡稱 GPPL)如 Basic 等,學習這些並不能有效率地達成實 際目標,也就是強化學生對於電腦的基本操作,而且非資訊科學領域的專業所需要 處理的資料也並不需要使用程式語言來處理,他們認為與其學習 GPPL,不如學習 且精通特定領域的應用軟體更來的有價值;Clancy 和 Linn(1993)則認為我們需要教 導學生程式設計,學習程式設計對每個人都有好處,在現今社會中,程式設計無所 不在,程式設計課程能夠創造「強力使用者」(power users),培養對未來新科技的 接受力與應用力,程式設計課程也能發掘有才能的學生,發展創新的應用來延續現 今複雜社會的需求;Resnick 和 Papert(1993)認為程式設計課程能讓學生在程式設計 中,自由地探索、實驗和表達自我,並提倡程式設計與應用軟體相互整合,更重要

的是,程式設計能深切地影響人們如何看帶這個世界,因為有許多新發現都是有了 電腦、程式設計之後才得以面世。綜合上述,Soloway(1993)得到兩個結論:(1)自 己是錯誤的,應該教導學生程式設計(2)程式設計能讓不同領域的學生學習,因此,

程式設計課程需要整合進學校課程,使學生能夠發展看待這個世界的新方式。

對於程式設計是否能增進思考能力,Mayer 等學者(1986)在一項研究中企圖 尋找學習程式設計與思考能力之間的關聯,並提出了三個主張:

1. 學習程式設計能增進人的思考能力。

2. 特定思考技巧能增進程式設計學習。

3. 預先訓練特定思考技巧能增進程式設計學習。

依據這三個主張,Mayer 分別做了三個實驗,並證明程式設計學習與特定思考能力 相關,如問題轉換能力、程序理解能力和視覺化能力,這些特定思考能力的提升都 能幫助問題解決、思考策略和程序式思考(Mayer, Dyck, & Vilberg, 1986)。在「程 式設計」的其他相關研究也指出,「程式設計」和「問題解決」的關係密不可分,如:

Papert(1980)認為,學習「程式設計」能激發學習者進行思考活動並促使其找出解決 問題的方法;Lawler (1982)則以 Logo 程式語言為例,認為學習者在學習「程式設計」

時,必須透過由上而下的思考過程(top-down thinking):先將問題分割成許多子問 題,分別將子問題提出解決方案再組織成一個完整的解決方案,最後撰寫程式碼解 決問題,這就是一種「問題解決」的歷程。「程式設計」的過程,就相當於「問題解 決」的歷程,而「程式設計」的課程本身就內含「問題解決」的教學。因此,Deek、

Kimmel 和 McHugh(1998)建議,在電腦科學的第一堂課裡,就應該教導學習者如何 應用「問題解決」技巧來解決問題。

綜合上述,學習「程式設計」可提升「問題解決」、「思考策略」等思考能力;

現今社會中,程式設計無所不在,學習程式設計相關知識,可以培養對未來新科技 的接受力與應用力;在程式設計課程中,學生可以自由地探索、實驗和表達自我想 法。

二、 「程式設計」教學的問題

「程式設計」在高中電腦課程中佔有重要的地位,不過對於程式語言的教學一 直有高度爭議,而且會對學生往後在電腦科學上的學習造成長遠的影響(Gal-Ezer &

Harel, 1998)。因此,不論是在何時教、教何種程式語言、怎麼教以及教學的對象上,

一直是備受關注的研究議題。而且程式語言在各個教育階層的爭論不斷,尤以高中 程式語言的教學,為讓學生都能應付未來讀書或就業需求而面臨越來越大的壓力

(Stephenson, 2000)。

現今的高中生應具有程式與演算法的基本概念,並擁有解決問題的能力(吳正 己、何榮桂,1998)。而教學者在此扮演著關鍵性的角色,除了說服學生學習外,必 須使學生建立學習動機,學生將會發現自己對於程式設計的興趣(Jekins, 2001)。但 程式語言的概念較為抽象,不易理解,容易導致初學者學習困難且學習興趣低落 (West & Rose, 2002)。一項國內高中電腦課程實施調查發現,教師認為電腦課程學習 成效最佳的是套裝軟體,學生則認為是電腦基本概念部分;學習成效最差部分,不 管是教師還是學生,皆認為是程式設計。教師認為學生對於課程內容學習成效差的 原因主要為學生學習動機差、實際上機時間不足或課餘自我學習時間太少等因素(陳 宏煒,民 92)。

而學生學習興趣低落,學習效果不彰,其原因除學生本身因素外,與教師的教 學方法也有關係。Au、Horton 和 Ryba(1987)以 Logo 語言為例,認為學習者若經 過「程式設計」的學習後,在學習成效上仍無法達到顯著,其原因為:(1)教師介 入(teacher intervention)及(2)教學方法(instructional methods),此三位學者更進 一步指出,在教師介入的因素中,教師在「程式設計」教學過程所扮演的角色,包 含三個部分,分別為:(1)提供學習活動的表單:使學習者能主動挖掘構想和解決 方法,並不斷的練習和反思其思考歷程、(2)提供引導問題促使學習者思考,而不 是一味的教導課程內容、及(3)提供反思的情境。Au 和 Leaung(1991)在其研究中 提出一種有別與以往偏重程式語法及教材內容的「程式設計」教學方法,以「程序

導向的教學方法」(process-oriented approach)將教學的目標著重在建立一般問題解 決的能力,並藉此要求學習者在解決問題時能主動反思。因此,資訊教師應透過設 計適當的活動,活用教學情境,亦可由生活化的方式切入教學,配合相關教學工具,

提供反思情境,讓學生在解決問題時能主動反思,降低學生學習挫折。

三、 「程式設計」與「自我效能」

自我效能理論的產生,對於了解和預測個人的學習表現提供了重要的意義。

Bandura(1986)定義「自我效能」為:個人在含有新奇、無法預測及壓力因素的情境 下,能夠有效的組織並執行必要行動的自我判斷。Bandura 更進一步闡述:人對於 自己本身的效能信念會影響他們所做的選擇、他們的抱負,下多少心力在特定的任 務上,以及對困難及挫折時能夠堅持多久。「自我效能」作為一個人的知識與行動之 間的橋樑,知識、技能和先備成就都難以預測將來的學習成就,因為個人對於自己 的能力和努力成果所擁有的信念會大大地影響他們的行動方式(Pajares, 1996)。「自 我效能」在教育情境中特別重要且有用,因為自我效能理論提到個人的學習效能會 影響自我效能,也會更進一步影響未來的學習效能。因此,比起低自我效能的學生,

有高度自我效能的學生會更喜歡承擔富挑戰性的任務,還有在面對無法預知的困難 時能付出更大的努力來完成任務。此外,特別是在逆境中完成的學習成就,會導致 自我效能的再提高,未來可能更加成功。反觀低自我效能的學生,當面對無法解決 的學習任務時,他們傾向把學習任務看得比實際更困難,最後造成壓力、沮喪和採 用較狹窄的視野來看待問題,結果造成無法堅持或是尋求新的學習機會(Askar &

Davenport, 2009)。

關於自我效能對程式設計學習的相關研究,Ramalingam 和 Wiedenbeck(1998) 發展和驗證一份 C++程式設計的自我效能量表,他們使用這份量表後的結果似乎支 持自我效能對於 C++程式設計的可用性,他們發現男生和女生的自我效能,在實際 情況下沒有明顯不同,而在自我效能後測中可發現到,在無關性別的情況下,學生 的自我效能較前測時有普遍的增強。這和理論所述相符,意指對還在習得技能初始

階段的學生而言,他們對自己能力表現的自我效能是頗易受影響的。另一項研究中

(Ramalingam, La Belle & Wiedenbeck, 2004),研究者探討自我效能對程式設計的心 智模型有何影響,結果顯示程式設計的自我效能會受先前的程式設計經驗所影響。

自我效能理論建議個人自我效能的信念建立在四個資訊來源:(1)個人技能經 驗(personal experience of the skill)(2)替代經驗(vicarious experience)-觀察他 人使用技能(3)口頭勸說(verbal persuasion)和(4)身體與情緒狀態-恐懼、壓 力、疲勞、疼痛和痛苦等。上述四個建立自我效能信念的來源中,在程式設計學習 情境下,學習者的學習與實作經驗、觀察他人的實作經驗、教師的講解和學習者對 於程式設計的觀感,都可能影響學生的自我效能,而自我效能又會影響將來學生的 學習,所以在教學前需要審慎思考各項因素,設計最佳的教學方式。