• 沒有找到結果。

程式設計迷思概念診斷與矯正

N/A
N/A
Protected

Academic year: 2021

Share "程式設計迷思概念診斷與矯正"

Copied!
117
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學資訊教育研究所 碩士論文. 指導教授:林育慈 博士. 程式設計迷思概念診斷與矯正 Programming instruction with misconception diagnosis and correction. 研究生:許書毓 撰 中華民國 105 年 7 月.

(2) 程式設計迷思概念診斷與矯正 許書毓 摘要. 本研究希望利用迷思概念診斷與矯正來輔助學生建立正確的程式設計概念、或減 少迷思概念的產生。我們研究發展了一個迷思概念診斷與矯正的程式設計輔助學習平 台,學生可於平台上撰寫並編譯程式,平台並提供迷思概念診斷機制,並可於診斷出 可能的迷思概念時,給予學生迷思概念的矯正回饋,學生亦必須在撰寫程式的過程中 針對重要概念進行反思以避免迷思概念的產生。研究利用準實驗研究法檢驗所發展教 學模式的效益,實驗參與者為 67 位高中二年級的學生(實驗組 32 人,控制組 31 人),實驗結果發現:透過本研究提出的迷思概念診斷與矯正的教學平台與策略,包含 對程式執行的順序、變數、判斷式、迴圈、函式的概念,學生的程式設計成就顯著提 升(程式實作、學習單、期中期末測驗),此即由於學生經過迷思概念矯正回饋的引導 與圖文概念的強調釐清,可針對容易產生迷思概念的程式結構,進行深度的思考與練 習,以了解程式結構的概念與應用方式,進而促進程式設計能力。. 【關鍵字】程式設計迷思概念、教學回饋、教學平台. i.

(3) Programming instruction with misconception diagnosis and correction Shu-Yu Hsu. Abstract This study intends to study the design and development of programming instruction with misconception diagnosis and correction, and its effectiveness on students’ programming learning. We have implemented a programming learning platform with misconception diagnosis and correction functions, by which students can write and compile programs, and get misconception correction feedbacks once their programs are diagnosed with possible misconception. During writing programs, students are also required to carry out reflection for critical programming concepts to avoid misconception. A quasi-experimental study was conducted to examine the effectiveness of the proposed instructional methodology. The participants are 67 senior high school students. The experiment results show that the proposed instructioanl strategies and programming learning platform based on misconception diagnosis and correction, students’ programming achievement can be significantly enhanced. With the guidance of misconception correction feedbacks provided by the learning platform and reflective learing activities, students can easily carry out in-depth thinking in various programming conception and constructs during practicing program implementation; thus, contributing to programming conception development and programming ability.. Keywords:programming misconception, feedback, learning platform.. ii.

(4) 誌謝. 大學畢業,剛考上資訊教育研究所時,是選擇了電腦科學教育組,由於對電腦相 關知識與程式設計有一些熱誠,以及有修過教育學程,最後在暑假的時候決定了要加 入的實驗室,「精進計算學習實驗室- TELiC Lab」。 在這兩年內,吸收了教育領域與資訊領域的知識,對於教育方面的議題、程式設 計的觀點、相關業界動向、研究生活的感受,都有一定的認知與經歷,也奠定了未來 人生的方向與目標。 當然我一定要感謝的就是我的指導教授林育慈。在這兩年的時間,教授不但要引 導我思考研究的方向,修改我的文筆與給予相關建議,還時時刻刻回饋給我們正面的 能量與想法,還有生活、工作中的進退應對與待人處世的道理,相信未來會有更深刻 的體會。 還有感謝 TELiC 的所有學長學姊、同輩、學妹們,感謝聖哲學長的大力支持,不 管是在開會、伺服器建置、研究問題討論、資料分享方面都常受到幫助。也感謝文 揚、粲絜一起討論研究、一起通宵趕工的時光,名璨、聖融的默默幫忙。 還有教學實驗的凌倩老師,分享了很多授課經驗與適時的幫忙。以及 CSE Lab 的 各位,時常的開會討論互相交流,連結兩實驗室的論點與研究。最後還要感謝資教所 辦公室的各位,在這過程中大家都是不可缺少的環節,感恩各位。. 許書毓 謹誌 中華民國一○五年七月. iii.

(5) 目錄 第一章. 緒論 ......................................................... 1. 第一節. 研究背景與動機 ........................................... 1. 第二節. 研究目的 ................................................. 3. 第二節. 名詞釋義 ................................................. 4. 第二章. 文獻探討 ..................................................... 7. 第一節. 迷思概念 ................................................. 7. 第二節. 程式設計迷思概念 ........................................ 10. 第三節. 教學回饋 ................................................ 15. 第三章. 研究方法 .................................................... 19. 第一節. 研究設計與架構 .......................................... 19. 第二節. 研究實驗參與者 .......................................... 20. 第三節. 研究程序 ................................................ 21. 第四節. 研究工具 ................................................ 23. 第五節. JSLA 輔助教學工具 ........................................ 29. 第六節. 資料蒐集與分析方法 ...................................... 36. 第四章. 分析結果與討論 .............................................. 38. 第一節. 分析結果 ................................................ 38. 第二節. 討論 .................................................... 51. 第五章. 結論與建議 .................................................. 66. 第一節. 結論 .................................................... 66. 第二節. 建議 .................................................... 67. 參考文獻 ............................................................ 68 附錄一 程式設計迷思概念蒐集表格 ..................................... 72 附錄二 運算思維測驗題目 ............................................. 79 附錄三 每週課堂學習單 ............................................... 95 附錄四 期中期末測驗題目 ............................................ 106 iv.

(6) 表目錄 表 3-1 實驗參與者之實驗組與控制組人數 ................................................................................................ 20 表 3-1 每週教學主題暨課程內容 ............................................................................................................... 22 表 3-3 態度量表 ........................................................................................................................................... 24 表 3-4 為半結構式訪談兩班之題目 ............................................................................................................ 25 表 3-5 錯誤的語法知識編碼表 .................................................................................................................... 27 表 3-6 迷思概念編碼表 ................................................................................................................................ 27 表 4-1 教學實驗前程式設計測驗 ................................................................................................................ 38 表 4-2 實驗後所整理的迷思概念列表 ........................................................................................................ 39 表 4-3 迷思概念列表所對應的回饋資料 .................................................................................................... 40 表 4-4 實驗組與控制組學習成就之描述性統計與 ANCOVA 分析............................................................... 43 表 4-5 實驗組與控制組學習單之描述性統計與 ANCOVA 分析................................................................... 43 表 4-6 實驗組與控制組線上程式練習之描述性統計與 ANCOVA 分析....................................................... 44 表 4-7 實驗組與控制組專題之描述性統計與 ANCOVA 分析....................................................................... 44 表 4-8 實驗組與控制組期中程式設計概念測驗之描述性統計與 ANCOVA 分析 ....................................... 45 表 4-9 實驗組與控制組期末程式設計概念測驗之描述性統計資料與 ANCOVA 分析 ............................... 45 表 4-10 為控制組與實驗組兩班的錯誤的語法知識依時間順序列表 ....................................................... 47 表 4-11 為控制組的迷思概念依時間順序列表 .......................................................................................... 48 表 4-12 為實驗組的迷思概念依時間順序列表 .......................................................................................... 48 表 4-13 實驗組與控制組態度後測之描述性統計與同質性檢定............................................................... 49 表 4-14 為兩班態度前後測成對樣本 T 檢定 ............................................................................................... 49 表 4-15 為態度量表個面向的信度分析結果 .............................................................................................. 50 表 4-16 為課程中 M1 迷思概念依照時間排序 ........................................................................................... 54 表 4-17 為課程中 M2-1、M2-2、M2-3 迷思概念依照時間排序 .............................................................. 58 表 4-18 為課程中 M3-1、M3-2、M4-1、M4-2 迷思概念依照時間排序 .................................................. 60 表 4-19 為課程中 M6 迷思概念依照時間排序 ........................................................................................... 62 表 4-20 為系統回饋次數與學生高、中、低學習成就進行 ANOVA 分析 ................................................. 62. v.

(7) 圖目錄 圖 3-1 研究流程圖 ....................................................................................................................................... 22 圖 3-2 為教學系統登入帳戶後的畫面 ....................................................................................................... 29 圖 3-3 為教學系統教學課程的畫面 ............................................................................................................ 30 圖 3-4 為教學系統實作討論區的畫面........................................................................................................ 31 圖 3-5 為教學系統線上練習的畫面 ............................................................................................................ 32 圖 3-6 為教學系統線上練習區的區域功能 ................................................................................................ 32 圖 3-7 為線上練習區編譯區風格設定功能 ................................................................................................ 33 圖 3-8 更直觀的顯示方式或圖形化輸出 .................................................................................................... 34 圖 3-9 文字敘述的回饋 ................................................................................................................................ 35 圖 3-10 圖形與動畫的回饋 .......................................................................................................................... 35 圖 4-1 IF、ELSE IF、ELSE 回饋內容 .............................................................................................................. 41 圖 4-2 FOR 執行順序的動畫截圖 .................................................................................................................. 42 圖 4-3 巢狀 FOR 執行順序的動畫截圖.......................................................................................................... 42 圖 4-4 兩班期中測驗錯誤的語法知識與迷思概念的次數 ........................................................................ 46 圖 4-5 兩班期末測驗錯誤的語法知識與迷思概念的次數 ........................................................................ 46 圖 4-6 為 JAVASCRIPT 程式碼與輸出解果 ...................................................................................................... 53 圖 4-7 為 JAVASCRIPT 資料型態例子與說明 ................................................................................................. 53 圖 4-8 為「=」誤用之範例 .......................................................................................................................... 53 圖 4-9 為 M2-1 迷思概念範例 ...................................................................................................................... 55 圖 4-10 IF、ELSE IF、ELSE 執行順序之回饋內容 ........................................................................................ 55 圖 4-11 M2-2 迷思概念狀況......................................................................................................................... 56 圖 4-12 M2-3 迷思概念狀況 ........................................................................................................................ 57 圖 4-13 M2-3 迷思概念圖文回饋................................................................................................................. 58 圖 4-14 M3-1 迷思概念例題 ........................................................................................................................ 59 圖 4-15 M3-2 迷思概念例題 ........................................................................................................................ 60 圖 4-16 M3-2 迷思概念回饋資料................................................................................................................. 60 圖 4-17 M6 迷思概念範例 S .......................................................................................................................... 61. vi.

(8) 第一章. 緒論. 本章共分為三節,第一節說明本研究之背景以及動機;第二節為提出具體的研究目 的,以及想要探討研究的內容;第三節就研究中所提及的重要名詞作簡要釋義。. 第一節. 研究背景與動機. 自從 1970 年來,迷思概念之議題就被大家所重視,日後學者也陸續研究各方面的 迷思概念議題(Hancock, 1940)。在程式設計的教學方面也有許多研究指出其對正確概念 建立的重要性,學生在建立程式設計之概念時往往了解單獨的語法、語意,但綜合這 些獨立的程式碼卻有困難與錯誤的概念。例如:學生在單獨迴圈任務是有機會解決的, 但結合判斷式與其他變數就無法清楚了解整體結構與功能(Lahtinen, Ala-Mutka, & Järvinen, 2005; Sekiya & Yamaguchi, 2013)。而在慢慢建構程式設計的能力時會因為這些 錯誤的概念造成往後學習的困難,如教學者可以清楚掌握學生學習程式設計時的經歷 與所遇到的迷思概念,那就可以提供更適當的教材與教學模式並提升教學效率與成果 (Danielsiek, Paul, & Vahrenhold, 2012; 陳建偉, 2008)。 程式設計課程的教學目標,不僅是要讓學習者瞭解程式的基本結構與概念,更希 望學習者能夠自行運用程式設計解決問題,所以在初學程式的相關概念與邏輯就顯得 相當重要。許多研究指出程式設計相關的迷思概念,記憶體的使用、物件導向與程序 型程式、資料分派、判斷式、程式執行、迴圈問題、運算邏輯、函式結構等議題(C.-L. Chen, Cheng, & Lin, 2012; Eckerdal & Thuné, 2005; Lahtinen et al., 2005; Ragonis & BenAri, 2005; Sanders & Thomas, 2007),在實驗中顯示了不同種的狀況對應的迷思概念情 形。為了讓學生達到更精熟的程式概念,教學者了解學生在學習程式設計時面臨錯誤 概念的經歷是有正面影響的。而且大多的迷思概念都是非常基礎的,在第一次學習程 式設計的課程中所提到的概念往往是後續進階課程裡必備且重要的知識,所以需要更 精熟的了解。 1.

(9) 在矯正迷思念方面,首先要找出學生迷思概念再針對其概念做矯正,相關研究中 也指出放聲思考與開放式問題可助於學生了解自己的思考歷程,並讓老師更清楚的知 道學生有困難的概念(Danielsiek et al., 2012)。而在學習程式設計之前有上過數理相關的 課程或邏輯方面的知識是有助於程式結構、物件導向之概念的建立(0zdener, 2008)。也 有研究利用 Visual program simulation (VPS)互動式的程式設計教學系統,來探究學生的 迷思概念與學習歷程並藉此結果來評估上課時教學者要把重點放在哪些迷思概念上, 其系統還提供了程式的結構模擬且可以自行操弄,在旁邊還會有額外的相關資料引導 學生自行解決問題(Sirkiä & Sorva, 2012)。研究程式設計教學模式與教學工具方面,也 發現問題解決能力會因為這兩個面向而有顯著差異,教學模式方面學生在程序導向教 學與問題導向教學中更傾向於後者,結果顯示此教學模式是一種可以有效培養初學者 對程式設計之學習理解與問題解決能力;在程式設計教學工具方面,初學者相較物件 式程式設計工具更青睞於程序式工具,不過在學習者更為熟練後前者可以更有效的幫 助學習理解複雜的概念與問題解決情境(M.-P. Chen, 2007)。 為了改善教學的方式與效率,本研究會利用回饋式的程式設計教學平台來教學,學生 在送出程式碼時會判斷出他們程式碼有迷思概念和語法錯誤的地方,並針對此錯誤的 概念回饋出相關的教材與建議。這樣可以達到針對各個學生所犯的迷思概念做對映的 教學內容,不但可以讓學生自行了解程式碼錯誤的問題與自我省思歷程,也可以增加 課程的教學進度。. 2.

(10) 第二節. 研究目的. 一、. 探究程式設計初學者常有的迷思概念。. 二、. 設計程式設計輔助教學平台與教學策略以矯正常見的程式設計. 迷思概念。 三、. 評估所設計之程式設計輔助教學平台與教學策略之效能。 1.. 對學習者程式設計學習成就之影響。. 2.. 對矯正學習者程式設計迷思概念之影響。. 3.. 對學習者程式設計學習態度之影響。. 3.

(11) 第三節. 名詞釋義. 本研究希望利用迷思概念診斷與矯正來輔助學生建立正確的程式設計概念、或減 少迷思概念的產生。其過程中會探討診斷學生學習時可能有的迷思概念,以及如何以 適當的回饋形式進行矯正與避免,最後再進行深入的量化與質性分析。本節會先針對 本論文中所提及的迷思概念與回饋加以定義與討論。. 一、. 程式設計迷思概念. 迷思概念(misconception)的意思是指在學習過程中,學習者對某種概念有特定的 想法與認知。而這些想法與認知通常都跟專家有所差異,進而產生相關問題的錯誤。 程式設計迷思概念是指學習程式設計的歷程中,所發現學習者的誤解或錯誤應 用。程式設計概念包含邏輯判斷、程式結構的理解、程式內部運行方式、記憶體分 配、物件導向等。本研究中程式設計迷思概念定義為對該程式設計課程中所提的程式 設計概念有不同的想法,不同於課堂中所學的或該方面專家的通用觀念,且會影響後 續的相關課程概念與成果。有該方面迷思概念的學習者會認為某個概念因為某些事情 而造成,或是覺得某些狀況是要用某方法實施。本研究的程式設計迷思概念僅討論學 生學習 JavaScript 語言時,對判斷式、迴圈、程式執行順序…相關的概念。迷思概念 的種類將彙整文獻探討與迷思概念調查測驗而得(詳見第四章第一節),表 4-6。 根據所得之迷思概念種類,本研究將於以下幾種學生的程式設計練習或測驗中診 斷其迷思概念: 1.. 學習單:該程式設計課程中會有學習單的配合教學,學生在填寫學習單時會因 某些迷思概念造成一些錯誤,而這些迷思概念會記錄次數、內容供後續的探 討。. 2.. 線上程式練習:課堂中會配合線上輔助平台來進行程式編寫與執行,而在此發 現的迷思概念也會記錄下來。. 期中與期末測驗:整個課程中會有兩次測驗,期中考與期末測驗。兩次測驗學生的答 題狀況與迷思概念的次數也會被記錄下來。. 4.

(12) 二、. 迷思概念診斷. 本研究迷思概念的診斷將會有人為與系統兩種,會根據學生迷思概念發生的狀 況,利用迷思概念編碼表進行分類。人為診斷部分包含了學習單、期中與期末測驗、 以及部分線上程式練習,系統診斷部分是針對線上程式練習之題目輸出結果,進行系 統後端的程式碼錯誤診斷。. 三、. 迷思概念矯正. 在本研究中會診斷學生迷思概念類型,並利用適當回饋矯正其迷思概念。迷思概 念矯正是指針對學生某些迷思概念的狀況,給予正確的思維或釐清學生對其概念的誤 解。本研究透過老師或教學系統所給予不同模式的回饋,來矯正學生的程式設計迷思 概念,進而提高學習者的學習成就。. 四、. 教學回饋. 本研究中會針對迷思概念的狀況給與適當的回饋,以達到矯正或避免的效果。回 饋在教學過程中扮演著很重要的角色,且回饋通常會伴隨著反思,不同的教學過程與 內容會有不同的回饋促使學生的反思,並矯正該程式設計迷思概念。此課程的回饋包 含了文字、圖片、動畫等相關概念的回饋,而研究中設計回饋的部分如下: 1.. 學習單:程式設計課程中的學習單,會在每次老師批改完後,根據學生迷思概 念的狀況,給予概念的釐清或補充相關的教材,不但可了解錯誤的原因,也 可以了解其他相關的知識、促進自我反思與概念內化。. 2.. 線上程式練習:課堂中線上輔助平台會有兩個階段的回饋,首先是系統針對該 題目批改後的狀況給予的回饋,且系統會記錄下每個學生回饋的次數與內 容,第二階段是由老師檢閱再給予回饋。. 3.. 期中與期末測驗:課程中的兩次測驗,也會依照學習單的回饋形式進行,即測 驗完後會按照學生錯誤的情形給予回饋。. 5.

(13) 五、. 程式設計學習成就. 本研究中的程式設計學習成就,會根據參與者在課程中所填寫的課堂學習單、線 上程式練習、專題作業、期中與期末測驗的成績為基礎,再依照比例加權並總和。而 在實驗前會測驗運算思維能力,以此知道控制組與實驗組是否有先備知識上的差異。 本研究會依據準實驗研究法進行,其 ANCOVA 的共變數為運算思維前測分數,固定因 素為班級,獨立變數為程式設計學習成就。. 六、. 程式設計學習態度. 本研究中的學習態度分為量化與質性的分析,量化的程式設計學習態度,會依據 所設計的態度量表(五點量表)所測得的分數進行分析。該態度量表中會有實用性、程 式設計之自我體會、動機意願、自信、問題解決能力,五個面向。其中會有反向的題 目,而將全部的面向進行加總,可得程式設計學習態度的分數。 而質性的程式設計學習態度,會於課程後抽樣幾位學習成就高、中、低的參與 者,進行結構性訪談。訪談內容會包含對整個程式設計課程與教學系統的個人感受、 與學習心得、建議。. 6.

(14) 第二章. 文獻探討. 本章將針對研究主題相關之理論及概念,進行文獻整理與探討。共分為三節,第一 節為迷思概念,說明迷思概念的定義與特質,以及如何矯正迷思概念;第二節為程式設 計迷思概念,說明程式設計的困難處,和常見的程式設計方面迷思概念,以及如何矯正 程式設計的迷思概念;第三節為教學回饋,說明教學回饋的種類與教學回饋的效益,再 探討迷思概念方面的回饋。. 第一節. 迷思概念. 一、 迷思概念的定義與特質 迷思概念(misconception)的意思是指在學習過程中,學習者對某種概念有特定的想 法與認知。而這些特定的錯誤概念會造成在學習過程中負面的效果與影響後續的概念的 建立。通常每一項科目的各主題都有一些特定的迷思概念,而這些就是在各主題下大部 分的學生經常會有錯誤觀念的地方,在此狀況下學生們會產生差不多的錯誤或。 迷思概念(misconception)之詞最早出現在「An evaluation of certain popular science misconceptions」(Hancock, 1940)。迷思概念在一開始的研究中都是以科學 現象為主,包含小尺度之日常生活的物理化學現象、到大尺度之宇宙地球的自然現象。 這些錯誤的想法不但阻礙了學習,也對於人們的行為模式有一定的影響力。而現今被廣 泛的解釋成在這領域概念中是有別於多數專家們的思維,進而推倒出錯誤的結果或是在 學習過程中因為某些觀點不同所造成阻礙(Treagust, 1988)。 「概念」在數學相關研究中經常在探討程序型與知識型得知識,程序性知識可定義 為怎麼辦到某件事情的;概念性知識可解釋成是何種原因此任務會適合該操作程序。雖 然程序型與概念型知識常常是分開討論的,但是在數學這方面其實無法完全的分開 (Morales, 2014; Rittle-Johnson & Schneider, 2015)。像在代數的課題中,往往是 需要約一年的時間來教導代數相關的概念,但是在往後的數學課程裡,這將會變成程序 上的計算過程,所以其實是混和再一起學習的。而在數學的代數課程中也被提到有迷思 概念的現象,以下(1)學生知道如何使用「=」 ,但是不知其真正的意義,(2)學生知道「-」 7.

(15) 的使用方式,但不知道何時可以在等號兩邊互相乘負號,(3)學生知道如何使用變數, 卻會因為方程式相關的專有術語與變數而影響計算流程(Booth, 2011; Revival, 2014)。 在國小五年級力與運動的概念中,也存在著一些令他們困惑的迷思概念,例如動摩 擦力、靜摩擦力、最大靜摩擦力相互關係的概念、物體加速度的影響、地心引力(超距 力)對物體的影響、為什麼有重量(F=m*a)與質量的概念。在國小的階段大部分的學生會 以之前對此現象或概念的認知做解釋,但因為有些現象是相較抽像的,所以學生難以接 受並延伸應用,在一些有預設理想狀況的題目中,學生往往還是把摩擦力列入計算,這 也是因為他們在直覺感官上認為一定會有摩擦力,無法理解「理想狀況」的意義(彭泰 源 & 張惠博, 1999)。 像是在國、高中生的理化課程中,經常出現的迷思概念有光學原理、成像過程、浮 力、原子結構、化學式平衡、平衡常數等等。例如:學生在液體現象之迷思概念約分為表 面張力、內聚力與附著力、毛細作用等等。有些是因為專有名詞上所造成的概念混淆、 科學方面概念連結有所缺失(例如:熱漲冷縮)、基本定義、錯誤的直覺......等,所造 成學生有錯誤的想法(陳建偉, 2008)。而一些研究中也指出在國中階段所建立的概念與 思考、判斷模式會隨著年紀有所改變,在學習過程中概念與相關知識上會有所增長與矯 正,漸漸的思考判斷模式會趨向於「科學知識或概念推論而形成的假設」 ,取代「直接觀 察而形成的假設」(廖焜熙, 2001)。 在其他科學研究方面也指出,海洋科學概念上有部分的迷思概念會因為科學專有詞 彙上所造成的,會讓學生因為字面上的意義認為是其它意思或自行理解成其它概念。也 有些迷思概念是明顯受到媒體的影響導致有錯誤的相關概念,因為某些專有的詞彙每天 都會在各種傳播媒體上不斷的被灌輸錯誤的用法與概念(Lwo, Chang, Tung, & Yang, 2013)。 然而科學的迷思概念通常有以下的特性:(1)他們有別於同領域專家的想法;(2)單 一或少數的迷思概念具有普遍性(即很多不同個體都擁有之) ;(3)許多迷思概念是難以 改變的;(4)迷思概念有時涉及另有信仰系統(alternative belief system),這些系統 的想法會導致錯誤的概念連結;(5)學生所具有的迷思概念可能來自於自己學過的先輩 知識。. 8.

(16) 二、 迷思概念的矯正 在學習任何一個學科時,都會有些迷思概念產生,而這些迷思概念往往會影響到學 習的過程。學生如有一些先備知識是跟正要學的概念吻合,或是先備知識支持一些因果 關係的推論,那他們在這方面的學習會是更容易、有效率的;但如果他們的這些先備知 識是與現在要學習的事物有所衝突或矛盾,那將會阻礙他們建立這些新的觀念。而有些 迷思概念是會因團體互相影響而產生的,所以要先釐清學生的迷思概念與學習時有困難 的地方,再針對這方面做教學上的調整(Akbaş & Gençtürk, 2011)。 在科學方面的迷思概念研究中,如果利用應用概念圖命題的模式以及開放式的問答 題可以更有效的了解學生對此概念的理解程度,以便於後續的分析與矯正學生的認知 (Lwo et al., 2013)。利用概念式的方法配合學生自行體會新的觀點,且了解整個問題 的前因後果一步一步的思考該歷程,並與其他背景知識與相關方面問題融會貫通延伸應 用。 當確定學生有哪些迷思概念,可以利用直述的方式來告知並釐清正確的觀念與迷思 的原因,這是最簡單也是最直接的方式,也可以使用視覺化的圖片或影音媒體來輔助釐 清過程,學生可以更具體的了解該現象或問題的成因(Brinko, 2008)。 在數學之代數課程概念裡,如何釐清錯誤的運算思維或建立一個穩固的概念。可以 在教數學時利用範例式的教學來引導學生的想法。在範例的演練時可以讓學生了解在類 似的狀況下是如何解決的,並最後自己實際操作與思考要使用哪些程序才可以有更佳的 效率(Booth, 2011)。 在理化方面的迷思概念,教學上可以改進為,(1)將相似的概念ㄧ同教學並強調其 差異性與定義。 (2)在教導某概念時可以把相關的知識連結起來,讓學生有正確的概念 連結。(3)教學時可以利用文字與圖表來加強所需說明的科學概念(陳建偉, 2008)。多 利用圖像解釋給學生了解以及動手做相關的實驗活動,讓學生自主測試該現象會有更深 刻的體會。老師也可以利用分組的討論互動互相發現彼此迷思概念並一齊釐清與矯正 (彭泰源 & 張惠博, 1999)。. 9.

(17) 第二節. 程式設計之迷思概念. 一、 程式設計學習困難 學生在學習基礎的程式設計時一直都有困難之處。在一些情況下是知道問題的方向 且了解要如何解決,但是在不熟悉此程式語言的規則、語法與相關指令下,難以在裡想 的處理想法下順利解決問題。一些則是在教學上已學會了一些基礎的觀念與相關程式語 法、語意,但可能因為所了解的知識是片斷、不清楚的或無連續、相關性,所以產生了 一些錯誤的概念導致在程式設計上會有所困難。而大部分對於具體的語意轉化成抽象的 語法上有很大的困難,像是在「物件」的概念中有些人是因為根本不了解所以沒有產生 迷思概念,這些都是教學上值得關注的議題(Kaczmarczyk, Petrick, East, & Herman, 2010)。 學生會對程式設計感到困難不單單是因為抽象的概念所造成,也因為程式結構的問 題所疑惑。例如: 動態程式部分學生通常不是因為單一概念所造成困難,而是伴隨著多 種問題所造成且需要將困難劃分為多個子問題在逐步克服(Bonar & Soloway, 1985; Danielsiek et al., 2012; Du Boulay, 1986)。所以教學模式與教材設計就相當重要, 要有效的提升學生程式設計概念與程式技術能力並具備自我練習、思考的機會。 最難 學習的概念往往是整合全部程式碼的題目,而非單一的概念。需要了解整體的運作與細 節關係才能完全的了解。 還有一部分是學生了解該程式設計概念,但是當要做相關應 用時就會感到困難。這要配合相關教材的多次自我練習才能建立穩固的概念與應用能力 (Lahtinen et al., 2005)。 新手程式設計者有大量「脆弱知識」的現象包括「不完全的」、「難以存取 的」、「時常誤用」的狀況。「脆弱知識」(fragile knowledge)分為四種:部分知識 (Partial knowledge)是一個很直接的狀況,就是學生可能不記得或是根本沒有學過那 樣的知識以至於陷入一個僵局之中。惰性知識(Inert knowledge)此情況就是學生沒辦 法擷取他們的指令知識,在腦中是有的映象的,只是拿不出來。錯位知識(Misplaced knowledge)是指學生把某些指令結構寫在不該出現的程式碼中,所以會導致程式錯 誤。混合知識(Conglomerated knowledge)是指學生寫出的程式碼中包含了多種語意和 語法的結構,為了達到題目的要求但卻因不恰當的混雜程式碼而導致錯誤(D. Perkins 10.

(18) & Martin, 1986; Spohrer & Soloway, 1986)。. 二、 程式設計常見迷思概念 程式設計迷思概念是指程式設計該科目,學習者所發生的概念誤解或錯誤應用,進 而導致程式的錯誤狀況。在程式設計的課程中也是有很多的迷思概念,物件導向、變數 狀態、迴圈、判斷式等觀念都是學習者常常有困難的地方(Kaczmarczyk et al., 2010; D. N. Perkins & Simmons, 1988; Sekiya & Yamaguchi, 2013)。 許多的研究顯示在程式設計的學習中要提高學習成效都要正確的觀念與做法。而在 這過程中學生如有一些迷思概念存在著,往往會降低生產力或寫出很多有問題的程式。 尋找學生在學習程式設計時的迷思概念,大多都是無法直接的發現,這些問題要在親自 去實作或程式執行時才會被發覺。例如:在時間複雜度的演算法裡程式碼越短、變數越 少、指令越少就會有較高的執行效率之迷思概念,事實上只要兩程式碼邏輯程序上是一 樣的,所執行的時間就會是相同的(0zdener, 2008; Lahtinen et al., 2005; Ragonis & Ben-Ari, 2005; Sirkiä & Sorva, 2012)。 有研究指出在基礎的 BASIC Programming 課程中也發現很多迷思概念的現象: (1)input 學生會對於資料怎導入記憶體的過程不了解。例如:電腦如何等待使用者輸入 資料,取得資料後如何儲存於某記憶體位置再執行接下來的程式。 (2)read 學生對於讀取的過程不清楚,不確定要讀取哪個記憶體且取哪個值。 (3)判斷式 學生對於判斷式的執行程序上有所迷思,不知道當判斷式的條件不成立後程式 該如何執行。 (4)Let 學生不能區分變數的定義與變數之間的運算之「=」的差異。 (5)print 11.

(19) 學生不了解 printC 與 print「C」之間的差異、與這背後程式的意義。 在此研究中也強調,很多電腦內部指令的意義是要更清楚的解釋與釐清一些概念, 這樣較可以有效的讓學生理解(Bayman & Mayer, 1983; Putnam, Sleeman, Baxter, & Kuspa, 1986)。 在Java程式語言的實驗中,以紙筆測驗與程式實作測驗歸納出物件導向之迷思概念。 分類為: (1)不清楚某些敘述的電腦內部運作情形,例如迴圈條件式和方法呼叫之寫法及控制流 程。 (2)不了解某些物件導向概念,例如繼承(inheritance)、多型(polymorphism)、及 方法重載(overloading)。 (3)雖能說出某些概念的定義,但並不了解該定義之真正意涵,以致無法將其應用於實 際解題。 (4)無法自行查閱並應用Java標準類別庫的功能。 (5)未能釐清各個類別在程式專案整體架構中所扮演的角色。 (6)無法理解編譯器的錯誤訊息並進行除錯(C.-L. Chen et al., 2012; Holland et al., 1997)。. 在其他的研究中也歸納了學習程式設計時的迷思概念與困難之處(Goldman et al., 2008; Kaczmarczyk et al., 2010)。 1. 記憶體、指標(Memory Model, References, and Pointers) 2. 資料型態(Primitive and Reference Type Variables) 3. 控制流程(Control Flow) 4. 迭代與迴圈(Iteration and Loops) 5. 條件判斷(Conditionals) 6. 指派(Assignment Statements) 7. 陣列(Arrays) 8. 運算子優先順序(Operator Precedence). 12.

(20) 三、 程式設計迷思概念診斷 要如何檢測評量出學生的那些錯誤是因為哪幾種迷思概念所造成的呢?在許多研究 中是以問卷的形式來了解學生的迷思概念,有些是開放式解釋程式碼的問卷、是非題問 卷、選擇題問卷。在開放式的問卷中是最能了解學生對此概念的理解程度,而在是非題 與選擇題方面,是非題較不能準確的知道學生的學習狀況,當然在題目的闡述中也要能 清楚的表達問題。這樣才能更精準的診斷出學生的迷思概念,以及降低題意不清所造成 的結果(Britos, Rey, Rodríguez, & García-martínez, 2008; Taylor & Kowalski, 2012)。 在 BASIC 程式語言的迷思概念診斷中,是特別針對程序思維設計了相關考題,將 程式碼分段的讓學生編寫,且利用引導的方式讓學生了解下每一步驟的功能與用意, 再自行轉換成程式碼,最後再依照學生作答的狀況,了解是哪一步驟出了問題,並診 斷是何種迷思概念(Bayman & Mayer, 1983)。且有許多研究是會先讓學生進行相關的 測驗,再配合後續系統化的訪談結果,進行診斷分析學生可能有的迷思概念(Goldman et al., 2008; Treagust, 1988)。 有自動診斷方面的研究,透過線上作答系統進行測驗,系統會顯示題目的程式 碼,再依照此程式碼給予程式設計的問題。作答者填寫答案與附註說明原因,系統會 自動批改所填寫的答案是否正確,再由人工的方式去診斷觀察所填寫的原因,以推論 是甚麼迷思概念導致這樣的答案(Chick & Baker, 2005; Sekiya & Yamaguchi, 2013)。在一些程式碼除錯的研究中,會利用後端的方式進行程式碼每行的斷字分析與 語法核對檢查,最後再分析那些關鍵字出現的次數與程式碼錯誤的機率與原因,來判 斷該程式系統的運作效率或穩定性(Baker, 1992; Moons & De Backer, 2013; Rutar, Almazan, & Foster, 2004)。. 13.

(21) 四、 程式設計迷思概念矯正與避免 學生在學習程式設計時有所疑惑或是過程中有發生困難,可以利用階段性的引導 來促使他們獨力解決。如在初學者學習程式設計的實驗中有發現,如學生一開始有程 式起步編寫上有所困難會先利用高階的提示來進行引導初步的解決方法,但也提到這 方法大多都是較沒有效果的。所以在下一個階段如還是有所困難或完全沒進展,就會 利用暗示的方法來提供較直接的問題解決策略,在此階段的教學下相較會更有成效。 如最後還是無法順利的解決此問題,那就會將其問題的正確答案與做法告訴學生,在 多種狀況下往往會有些許的學生需要此方式來教學(D. Perkins & Martin, 1986)。 當確定學生會有可能發生某錯誤概念,那就可以避免迷思概念的產生:(1)在相關 範例的說明可以更加明確且詳細與更多元的狀況實例。(2)用適當的例子來針對該迷思 概念當作解釋,可以有效避免其錯誤想法。(3)大部分的問題可以經由良好且適當的練 習來避免與矯正(Eckerdal & Thuné, 2005)。 在物件導向概念方面的建議:(1)在重要的核心概念部分需要用完整的範例來解釋 說明,沒有特別的捷徑。例如:建構子在物件導向裡是非常重要的,這一定要花時間做 好扎實的基礎。(2)在學習類別與物件易混淆的概念時,一再強調兩者之間的關係與差 異。(3)在該主題適當的時機教導較困難的核心概念,有利於後續的課程理解與內化 (Ragonis & Ben-Ari, 2005)。 在教學方面(1) 教程式設計時,內容盡量可以去減低脆弱知識的問題。例如:教迴 圈概念時要解釋為可以重覆任何東西、任何數字、任何次數,且輸入值後並可以自動 計算。(2)教程式語言時要維持該語言的探索性。例如:某些既定的理論如有所疑惑, 就會開始一步一步的思考每個過程,而這個歷程可以激勵學生建立更完善的概念。(3) 鼓勵學生使用基本的問題解決策略。例如:直接性的提示可以讓學生有效的了解現在所 面臨的問題,並可引導學生使用基礎、簡易的策略解決任務目標(Eckerdal & Thuné, 2005)。. 14.

(22) 第三節. 教學回饋. 一、 教學回饋的種類 教學回饋是根據學習者某方面的成效或理解成果,給予的概念型資訊。可以是老 師、系統或是學生間的回饋。回饋在教學成就上是非常有影響力的,根據不同類型、 方式的回饋會對應到正或反向的最終成果。 回饋可分為四個層級的運作 任務面-引響任務的成功與否、或對錯。為直接或正 確的資料回饋。 執行面-針對程序方向的回饋,大多為影響整個任務的解決方向與整 體的概念。 自律面-引響學習者後續的應用。學習者因為了解了某概念後,可以自行 利用該知識進行連結性的應用。 自我面-針對個人的正向肯定式回饋。例如:" 你表現 得非常棒",此種回饋可以建立學生正向的自我肯定,藉此正向影響學習動機與成效 (Hattie & Timperley, 2007)。 在操作技能或行為學習方面也有相關回饋之研究,口頭贊同式的回饋教學可以應用 在學習樂器的領域。大致可分為以下幾種,口頭表達學術資訊(approval academic information): 口 頭 的 表 達 某 個 地 方 是 對 的 , 表 現 不 錯 。 口 頭 肯 定 進 步 (student improvement): 口 頭 表 示 比 之 前 進 步 的 更 多 了 。 無 依 據 式 肯 定 (norm-referenced feedback):口頭表示學生表現的比起以往的學生都還要好。正向讚賞(person praise): 口頭表示學生有該方面的天分。個人化認同(personal approval):針對某科目核心重點 或觀念給予認同。行為技巧肯定(approval-control):口頭認同學生的操作模式與技巧。 而不同的教學模式配合學生的個性特質與學習習慣,會交互影響有不同的結果。例如: 個性內向且理性判斷的學生,配合學術資訊式的回饋有明顯的效果(Running, Ligon, & Miskioglu, 2016)。 回饋與反思在臨床醫學是個很重要的教學方式,整個醫學教育核心就是回饋,面 臨不同的教學過程會有不同的回饋促使自我的反思。 反思可以讓自己完整的思考並重 整概念、技能、知識結構,進而提升自我成效。 如果經常有適當的回饋,也會帶動良 好的反思,最終提高學習效果,反之亦然。 回饋大致分為三種: (1)簡要式回饋-老師 給予直接且明確的建議,具有高度可靠、高效率,且最有幫助的一種回饋。(2)正式的 回饋-正式的回饋通常是以小組進行臨床教學,透過一些實際的例子或症狀來教學,再 15.

(23) 循序進行解釋與討論。其回饋主張通用型的概念,但不排斥例外想法與狀況。老師也 可以利用引導式的方法,促使學習者自行給予反饋,思考整個歷程的概念並想方法解 決。(3)主要式的回饋-依照小組的模式,實際的進行臨床的觀察,透過實際所觀察到 的狀況、行為、問題等等,結合先備知識經驗進行事後的回饋。這回饋通常約持續 15~30 分鐘,討論相關的概念與想法,且這階段學習者可以充分的表現與反思(Branch & Paranjape, 2002)。 教學系統回饋的種類可以分為(1)直述型-直接的回饋給學習者哪裡有錯誤與正確 的概念、可以是直接的說明或提供結果。(2)視覺化類型- 視覺化的呈現想要表達的事 物,比起純文字可以直觀的理解與引起學生的興趣增強學習效率。(3)概念圖-利用概念 的思考與建立流程,呈現出思考的經歷讓學生更好了解每個階段的思考方法(Brinko, 2008)。 在授課過程的任務裡,也可以給予一些提示。可以分為(1)高階的提示:在某些困難 處提示所需要應用的概念或方法,但過程與明確的做法不會供應。(2)直接的暗示: 在 困難處直接的指出錯誤的位置或原因,明確的讓學生知道哪裡的問題(D. Perkins & Martin, 1986)。 在合作式學習的程式設計課程中,不但會讓老師也會允許學生對該課程之作業的程 式碼進行主觀的想法、心得或相關意見回覆。這樣的做法也是一種教學回饋,學生可以 看到老師與同儕間給予的回饋,並根據這多元的回饋來修正或啟發新的想法(Hwang, Shadiev, Wang, & Huang, 2012)。. 二、 教學回饋的效益 有些研究(D. Perkins & Martin, 1986)將提示分為直接性與高階型,直接性提示 是根據學生發生的狀況給予具體、明確的答案,讓學生直接的得知錯誤的概念或地方, 高階型提示是針對學生目前有問題的地方,給予大致的方向或相關概念讓學生自行的體 會與嘗試。而直接性的提示通常都可以解決一般的問題,且因為學生在較困難的概念上 較為鬆散,所以如給予太高階型的提示式相對沒有效果的,以至於直接性的提示都比高 16.

(24) 階型的提示來的有效率、更明顯有成效。在合作式學習為主的研究中,也提到老師與同 儕間給予的回饋是對學習有正向幫助的。例如:學生可以依照回饋進行自我反思與改進, 同儕間的回饋不但可以互相得到學習上的幫助,也可以促進團體中的合作式學習與問題 解決氣氛。在互相給予回饋的過程,會因為瀏覽其他人的課程作業並自我思考所要給對 方的訊息,重新的整合並反思所學過的概念,也會增強學習的動機與學習成就(Hwang et al., 2012; Van Den Boom, Paas, Van Merriënboer, & Van Gog, 2004)。 回饋在醫學界是非常重要的環節,簡要的回饋會相較多數的;正式的回饋是較多 老師使用的方式,也取決老師怎們跟患者互動並從中學習或教學。主要的回饋是學習 者最讚賞的教學模式,但是學生需要主動的反思才會有明顯的效果(Branch & Paranjape, 2002; Brandt, 2008)。在數學方面的研究也顯示,學生如擁有良好的相 關主題概念,是對於後續上的學習非常有幫助的。因為他們先前的概念知識會讓後面 所學習到的知識有所連結,可以增進他們學習效率與意願,相關課程內容的概念誤用 也可以有所釐清(Anseel, Lievens, & Schollaert, 2009; Booth, 2011)。. 三、 迷思概念的回饋 要先釐清學生對該方面的知識是否正確,才可以進行基本觀念的建立。在科學教育 中,學生在學習新的理論與自然現象之前就有了前先的概念與對此物的觀點。而這些概 念如是錯誤的不但會影響到這一階段的學習也會延伸影響到其他的概念。而有些學生的 迷思概念是要加以釐清的才能完全接受正確的想法。相較於傳統的口述教學,如以文本 與概念圖配合著教學,某概念可以更有效斷絕迷思概念的建立與激勵學生有新的思維以 及了解自己正確概念建立的過程(Akbaş & Gençtürk, 2011; Brinko, 2008)。 程式設計教學系統方面可以加入引導的輔助功能,此研究分為提問與解釋兩種引 導方式回饋給學生。首先對學生的錯誤提出疑問並確定其觀念是否正確,再對其問題 進行進一步的解釋說明。在(Java 程式設計初學者之迷失與迷思概念分析)研究中將初 學 Java 的學生之錯誤分類為:(1)迷思概念-想法上的迷思與對於類似概念的混淆。(2) 缺失的概念-不熟悉語法所造成或無法連結應用某概念(C.-L. Chen et al., 2012; 17.

(25) Holland et al., 1997)。在此研究是以問題填答的狀況來判斷並加入引導,而本篇的 研究是以程式碼編寫的狀況進行後端的比對判斷。 在針對迷思概念的回饋方面,可以使用範例式的教學模式來矯正概念,教學者可 以配合適當的範例引導學生有自我解釋的機會,這過程可以訓練學生利用已有的概念 並結合、解釋新學會概念。有時候也可以利用有錯誤的題目,這樣可以解釋為何該題 目是錯的,反而相較純解釋正確的題目更有所幫助(Booth, 2011; D. N. Perkins & Simmons, 1988)。. 18.

(26) 第三章. 研究方法. 本章共分為六節,第一節說明本研究設計與架構;第二節說明研究對象的相關背景、 能力;第三節描述本研究所需的教學平台及蒐集實驗資料的工具與方式;第四節說明實 驗前、中、後的流程;第六節則敘述研究所蒐集的資料項目與如何做分析討論。. 第一節. 研究設計與架構. 本研究希望利用迷思概念診斷與矯正來輔助學生建立正確的程式設計概念、或減 少迷思概念的產生。故本研究會設計一套程式設計教學課程,內容依照課綱所指出的 程式設計相關項目,會包含程式的邏輯概念、基本語法架構、判斷式、迴圈、函式, 程式的執行順序。再配合自行開發的教學平台來輔助。根據學生的課堂狀況、學習 單、專題、考試來診斷可能有的程式設計迷思概念,並設計適當的教學回饋來促使學 生反思。最後再分析所蒐集的量化、質性資料做進一步的討論與分析此種教學模式的 影響。. 19.

(27) 第二節. 研究實驗參與者. 本研究的參與者為新北市某公立高中高二(11 年級)兩個班級的學生作為實驗對象。 課程內容為高二的資訊課程,實驗分為控制組 37 人(15 男、22 女)、實驗組 35 人(13 男、22 女)兩個班級都是社會組,且都是第一次學習程式語言,其中實驗組有一位學過 C 語言。 本研究在實驗過程因為有學生出國與多次相關成績沒有參與,所以最後列入後續實 驗分析的學生為控制組 31 人(男、女)、實驗組 32 人(男、女),且由於是社會組的班級 所以女生較多。 表 3-1 實驗參與者之實驗組與控制組人數. 參與人數. 男女人數. 實際統計人數. 男女人數. 控制組. 37. 15 男 22 女. 31. 13 男 18 女. 實驗組. 35. 13 男 22 女. 32. 11 男 21 女. 20.

(28) 第三節. 研究程序. 在整個研究的實驗前,先在學習過程式語言(C 語言)的學生中做紙筆與上機的測 驗,先行測驗與找出與其他相關研究有關的錯誤類別。並配合之後要進行實驗的課程 內容做適當的篩選與修改。 根據先前的結果設計出實驗時會遇到的迷思概念列表,並解針對這些迷思概念做 適當的相關回饋教材。並發展該課程所需的教學平台,此教學平台可以在線上編譯程 式碼(javascript)與顯示執行結果,且在課程中的程式練習題會結合圖形化的輸出來 增加學生的興趣與更直觀化的了解程式功能。系統會有自動批改練習題的功能,包含 針對學生編寫的程式碼做後端的偵錯,再依照類別回饋相關的教材,教材方面會包含 直述性、視覺化或程式語言相關連結資料。 本研究的教學實驗課程持續時間共 8 週,控制組與實驗組每週各兩小時,實驗開 始前與結束後亦各安排態度問卷填答,運算思維測驗只有在實驗前實施,而實驗後並 未實施。教學過程會有學習單、線上教學平台實作練習、期中期末測驗、網頁專題, 教學實驗程序階段完成後,則進入資料蒐集與統整的程序。 為分析學生的態度影響,以了解該教學模式或課程設計是否合適,資料蒐集會有 量化與質性的資料,包含學生學習單、期中期末測驗、網頁專案、態度問卷、運算思 維測驗、以及實驗後進行半結構式訪談的質性資料。在實驗數據分析階段會對學生的 相關資料做迷思概念編碼,再進行後續相關的統計分析,研究流程圖如下圖 3-1 所 示。. 21.

(29) 圖 3-1 研究流程圖,分為實驗準備、教學實驗、迷思概念分析三個階段,而實驗中的循環箭頭表示,迷 思概念的蒐集與設計也會依照課程實驗中現場的學生狀況加以參考與修改。. 每週依據課程進度有不同的主題概念與作業練習,針對課程主題每週學習單會有相 關的練習,線上教學平台會有對應課程的作業練習。如表 3-2 所示,每週教學主題暨課 程內容。在每一節課中,老師會先進行該主題的教學,並適時讓學生編寫練習。課堂後 半段利用學習單的練習與討論,且課後會有線上程式設計的作業。. 表 3-1 每週教學主題暨課程內容. 週次. 課程主題. 課程活動. 課後作業. 1. JavaScript 基本介紹. 基本語法與 I/O 使用. 線上作業(一). 2. 基本運算與 if、else. 基礎判斷式概念. 線上作業(二). 3. 判斷式種類. 判斷式與應用. 線上作業(三). 4. 期中測驗. 測驗先期內容. 5. 迴圈種類. 迴圈概念與應用. 線上作業(四)、(五). 6. 函式. 函式概念與應用. 線上作業(七). 7. 網頁專案. 製作個人網站. 完成個人專案. 8. 期末測驗. 測驗全部內容 22. -. -.

(30) 第四節. 研究工具. 根據前面小節的研究架構、研究流程規劃,本研究所需用到的工具包含 JSLA 教學 平台、課程中相關的學習單、量表、評量測驗,其使用方法詳細說明如下:. 一、. JSLA 教學平台. 本研究會利用 JavaScript Learning Assistant(JSLA)來輔助授課。其中此平台會有課程 講義、線上練習、討論區的功能,也包含了程式線上編寫、執行、回饋的機制。後端也 會記錄學習者的留言與討論內容、針對題目系統回饋的內容與次數,實驗後的分析會依 據平台中學生程式碼編寫的狀況與後端資料的蒐集為基礎。. 二、. 課堂學習單. 課堂中控制組與實驗組都會配合該主題的學習單練習與討論,而在實驗組的部分, 會有依照該題目的引導提示,並有相關的反思題型讓學生進行概念的消化與自我思考。. 三、. 程式設計期中、期末成就測驗. 為瞭解學習者在整個程式設計課程中所學習的成效,課程中會有程式設計的期中、 期末成就測驗。內容包含了相關課程概念的選擇題、問答題、改寫問題、解釋程式碼題 型等題型。期中與期末滿分都為 100 分,期末考試內容會包含期中考的概念並延伸應用, 且題目會較多與相較困難。在解釋與問答的題型中會依照學生填寫的正確、完整性給予 分數,選擇類型的題目則是依照題目定值得給予分數。. 四、. 運算思維測驗. 運算思維量表是選取了 Bebras 的測驗題,大部分是選取高中生的題目,有少數題 目是國中生的程度。總共 14 題,每題一分,題目都是需要邏輯性思考的類型,以及圖 像理解的能力,雖然都是選擇題但還是具備挑戰性。該運算思維量表只有在前測進行測 驗,後測並沒有實施。 23.

(31) 五、. 態度問卷. 態度問卷是以五點量表所設計的,其中分為實用性、程式設計之自我感受、動機意 願、自信、問題解決能力五個面向,總共為 22 題。本問卷採用李克特五點量表的方式 計分(非常同意 5 分、同意 4 分、既不同意也不反對 3 分、不同意 2、非常不同意 1 分), 其中還包含了反向題,最後總分越高表示該面向有越正向的態度。該問卷在前測與後測 都有施實,進而探討控制組與實驗組兩個班級的變化與差異。詳細量表題目,如下表 33 所示。. 表 3-3 以下為態度量表,分為實用性、程式設計之自我體會、動機意願、自信、問題解決能力五個面向. 面向. 題目 1.我願意花時間在學習程式設計上。. 實用性. 2.我認為程式設計可以解決各種領域的問題。 3.程式設計對我的生活或職業是有幫助的。 4.程式設計對我來說是困難的。. 程式設計之自我感受 5.學習程式設計時,常會遇到一些迷惑的地方。 6.程式設計是具有挑戰性的。 7.我覺得程式設計很有趣。 動機意願. 8.我希望以後有機會學習更多的程式設計。 9.我願意花時間完成程式設計任務。 10.程式設計讓我有成就感。 11.我能夠獨力想出程式問題的解法。 12.我需要透過他人的協助才能順利完成程式設計。. 自信. 13.如果有足夠的時間,我通常可以完成程式。 14.就算目前的程式很複雜,我也可以很專心地編寫。 15.我無法清楚了解程式的運作方式。 16.程式設計對我來說像是在組合許多不可理解的黑盒子。 24.

(32) 17.寫程式遇到困難時,我通常透過同儕幫助來完成。 18.寫程式遇到困難時,我通常求助老師來完成。 問題解決能力. 19.如果有提示一些程式碼的寫法,我可以完成程式。 20.當寫程式發生錯誤時,我通常可以順利地解決問題。 21.遇到程式設計的困難時,我通常不知道該如何解決。 22.遇到程式設計的困難時,我可以自己蒐集資料尋求解答。. 六、. 半結構式訪談題目. 半結構式訪談會在整個實驗結束後實施,訪談內容為質性的資料,且是抽選控制組 與實驗組兩班學習成就前、中、後各兩人並無計算分數。內容包含對整個課程的感受, 對程式設計該科目的想法,對教學策略與教學平台的建議與實際體驗的心得。控制組與 實驗組訪談的題目會有所不同,實驗組還會針對教學回饋的部分進行訪問,供後續的探 討分析。詳細題目請參考表 3-4。. 表 3-4 為半結構式訪談兩班之題目. 問題 1. 控制組. 實驗組. 談談你現在對程式設計此科目的看法? 談談對於程式設計上課. 課 程 面 向. 模式的看法?(上課->帶 2. 範例->學習單->課後作 業>檢討). 3. 談談對於程式設計上課模式的看 法?(上課->帶範例->學習單、反思-> 課後作業、檢討回饋教材). 談談你對於完成學習單、線上程式編寫的感覺?. 25.

(33) 4. 5. 你在學習程式設計哪個主題時感到比較困難(程式執行順序、 邏輯運算、迴圈、判斷式、函式等等)? 為什麼? 你在做學習單都是如何完成的(自己獨力思考解決、利用線上 編譯的輔助、問老師或同學等等),為什麼? 你覺得學習單的討論、自我概念反思. 6. 及引導有哪些幫助?為什麼? 範例練習與課後線上習題,在編寫過程中最常發生的困難為. 7. 何?(進度沒跟上寫不出來、看不懂題意、時間不夠等等)為什 麼?. 8. 9. 系 統 面 向. 你覺得系統練習題配合圖形化的輸出有哪些幫助或感想? 在編寫程式時編譯器所提供的錯誤訊息是否有幫助(編譯器的 error message)?為什麼? 在編寫程式時系統依照該題目所提. 10. 供的相關概念回饋是否有幫助(提示 與批改的功能)?為什麼? 檢討練習題與學習單時所提供的相. 11. 關回饋教材是否有幫助(動畫與相關 概念教材)?為什麼?. 12. 在製作網頁專題(綜合所有課程概念)時有甚麼困難與感想?為 什麼?. 26.

(34) 七、. 迷思概念與錯誤的語法知識之編碼表. 以下列表結合了實驗前的文獻蒐集、實驗前迷思概念預測的資料、與實驗中所發 現的課堂狀況,整理出了學生會發生的迷思概念與錯誤的語法知識之列表。根據此列 表可以針對學生的迷思概念與錯誤的語法知識進行編碼,以供後續的量化分析與討 論。詳細內容下表 3-5、3-6 所示。. 表 3-5 錯誤的語法知識編碼表. 錯誤的 語法知 識. 編 碼 分類說明. 解釋. 範例. S0 空白. 包含語法不熟或其他原因而空白沒 作答。. 沒寫。. 邏輯運算 S1 規則. x-=2、i++等等運算學生會以自己錯 誤的方法計算,包含計算錯誤。 i+=2 會認為是 i+多少會等於 2。. I/O 方面 S2 的錯誤. 因為 input 與 output 的失誤導致錯 input 錯誤資料、output 印出「""」、 誤或格式問題。 「 」、「 」等符號所引發錯誤。. 程式語言 S3 語法不熟. 語法不正確錯導致的錯誤、無法運 行。. 結尾少「;」、「:」或宣告方式錯誤 等基本規則。. 表 3-6 迷思概念編碼表 編 碼. 分類說明. M1. 認為宣告的變數都是字串型態、認為變數 不需要特別宣告就可以使用、 認為「=」與「==」是一樣的、 認為程式的指派與邏輯判斷是ㄧ樣的、認 認為變數宣告一定="變數名稱 變數相關概念 為例外狀況是不用另外設定規則。 "(字串型態)。. if、else if、 迷 思 M2- else 的執行順 序 概 1 念 M2- 多加上了條件 2 的判斷式 M2- switch case 3 相關概念. 解釋. 範例. 認為程式執行之順序有非從上到下的狀 學生認為程式在判斷條件時會一 況、或認為該程式會有同時進行判斷兩行 起跑 if、else if、else,其實 程式碼的狀況。 是有順序的。 認為 else 後面必須加上條件判斷才能把 if 判斷之外的狀況涵蓋進來。. 學生會寫出 else(x>=0)的判斷式 程式碼來額外作條件限制。. 認為程式執行之順序有非從上到下的狀 況、認為 case 後還要多加條件來過濾狀 況、認為 break 不影響執行。. 同一區 break 後的 print 卻執行 了、認為 case1、2、3 會同時進 行判斷。. 27.

(35) M3- for 迴圈之執 1 行順序. 忽略每個 for 在最後會做一次終 認為該程式運作之順序不是一行一行執行 止條件的檢查,才結束迴圈程 的,並認為可以跳行的執行。 式。. M3- for 之初始設 2 定. 認為索引值一定要=0、終止值都是>的狀 況、每次條件變化都是 i++或認為重複執 行的功能無法寫成迴圈形式。. 任務要求重覆三次,學生寫成 (i=0;i<=3;i++). 多重迴圈部分,for 在最後會做 M4- 巢狀 for 迴圈 認為該程式運作之順序不是一行一行執行 一次終止條件的檢查,才結束迴 1 之執行順序 的狀況,並認為可以跳行的執行。 圈程式。 認為索引值一定要=0、終止值都是>的狀 M4- 巢狀 for 之初 況、每次條件變化都是 i++或認為重複執 2 始設定 行的功能無法寫成迴圈形式。. 多重迴圈部分,內或外部迴圈要 求重覆三次,學生寫成(i=0; i<=3;i++). M5. 不同迴圈間的 認為 do while 與 for 迴圈是無法互相達 轉換 成一樣的目的。. 在 while 與 for 的轉換上無法正 確達成,或執行上功能不一樣。. M6. 認為 function 之全域與區域變數是一樣 變數的生命週 的、認為 function 內外部資訊有互相共 期 用。. 學生會想在 function 外呼叫 function 內部的變數 x。. 28.

(36) 第五節. JSLA 輔助教學工具. 本研究實驗使用的教學平台 JSLA(JavaScript Learning Assistant)主要分為三個 部分,第一部分為讓學習者可以線上的觀看或下載教學講義的教學課程。第二部分是 讓學習者可以針對課程練習題或相關內容做留言的實作討論區。第三部分是線上練習 區,供學生線上練習、編寫、執行程式碼。本節會分別針對每一項功能與教學運用作 詳細的說明與介紹。. 一、. JSLA-教學課程. JSLA 是以網頁為基礎架構的教學平台,其中包含了教學課程、實作討論區、線上 練習的功能。該平台會讓學生進行個人帳號的註冊,以供紀錄作業的上傳、下載,以 及討論區留言與回饋的狀況,如下圖 3-2。. 圖 3-2 為教學系統登入帳戶後的畫面. 29.

(37) 在教學課程裡學生可以在此線上觀看上課的講義,或是下載此課程講義。在此區 可以看到整個教學課程的內容與程序,課程內容包含了 JavaScript 的基本介紹、判斷 式的種類與概念、迴圈的概念、函式的概念、以及期末的網頁專案製作,如下圖 3-3 所示。. 圖 3-3 為教學系統教學課程的畫面. 二、. JSLA-實作討論區. 在實作討論區可以讓學生進行線上的留言,包含針對該練習題的疑問、該課堂中 相關概念的想法、與同儕間的想法互動。留言的內容會包含疑問、心得、討論互動、 重點概念筆記等等,其中這些留言會經由平台依照個人帳號紀錄於後端的資料庫(包含 時間、內容、留言者),如下圖 3-4 所示。. 30.

(38) 圖 3-4 為教學系統實作討論區的畫面. 三、. JSLA-線上練習. 線上練習區為學生主要進行 JavaScript 練習的地方,此區有基本的程式編寫、除 錯、執行、顯示結果、上傳下載作業的功能,以及實驗組額外的針對練習題回饋相關教 材的功能,如下圖 3-5 所示,平台 ip 為 140.122.76.98/aoe0 與 140.122.76.98/aoe1。. 31.

(39) 圖 3-5 為教學系統線上練習的畫面. 在圖中 1 號區域是關鍵字變色與背景風格選擇,包含了不同種的色調與關鍵字強 調變色處理,讓使用者可以依照個人的喜好與習慣去選擇,有了關鍵字變色的功能也 可以提高程式編寫的效率與更快速、更清楚瀏覽程式碼的效果,如下圖 3-6、3-7 所 示。. 圖 3-6 為教學系統線上練習區的區域功能. 32.

(40) 圖 3-7 為線上練習區編譯區風格設定功能. 2 號區域為 JavaScript 程式碼編寫的地方,配合下方 3 號區域進行程式碼練習, 包含語法檢查、程式執行與上傳、載入作業等功能。學生在此區練習的程序為編寫好 程式碼,按下「語法檢查」的按鈕進行第一階段的後端語法除錯,如有錯誤會顯示錯 誤訊息,如無語法上的錯誤,則可以按下「執行程式」的按鈕進行該程式的執行結 果,如上圖 3-6 所示。 4 號與 5 號區域為程式執行的結果,5 號區域會顯示程式碼所執行後的輸出結果與 語法錯誤時的錯誤訊息。4 號區域會依照 5 號所執行的結果進行後端的圖形化整合,針 對該練習題配合更直觀的顯示方式或圖形化輸出,如下圖 3-8 所示。. 33.

(41) 圖 3-8 更直觀的顯示方式或圖形化輸出. 四、. 迷思概念診斷與回饋機制. 本研究將根據實驗前所蒐集、設計出來的迷思念列表來診斷學生的迷思概念。其 中會有人為與系統兩類型的診斷,系統方面會根據學生在線上所編譯執行的程式,透 過系統後端,根據輸出的結果,進行程式碼關鍵字或運算變數的錯誤比對,推斷學生 可能造成錯誤的原因,若診斷出學生寫的程式可能因某項迷思概念所造成的錯誤,平 台將給予相關的回饋教材,包含直接敘述錯誤的地方、配合圖文說明、以及供應相關 概念語法資料。人為診斷部分包含了學習單、期中期末測驗學生所填答的狀況進行診 斷,還有對線上程式練習所診斷的結果進行人為的二次診斷。 在 6 號區域(圖 3-6)的「提示與批改」的按鈕是實驗組才會有的功能,其功能會針 對該練習題進行輸出結果的後端判斷。依照錯誤的方式回饋給學習者適當的補充教 材,而教材方面會利用文字敘述、圖形與動畫等方式呈現,讓學習者更具體、有效的 方式了解為何錯誤與相關的概念或語法知識,如下圖 3-9、3-10 所示。. 34.

(42) 圖 3-9 文字敘述的回饋. 圖 3-10 圖形與動畫的回饋. 35.

(43) 第六節 一、. 資料蒐集與分析. 資料蒐集. 1.量化資料蒐集 本研究根據所發展的迷思概念診斷與回饋教學策略,學生須在課堂中填寫學習單以 進行練習與反思,課後亦須完成程式作業。為了解學生的學習狀況,亦進行期中與期末 兩次成就測驗。研究所蒐集之量化資料除了學習單、課後作業、期中與期末成就測驗之 成績之外,為了解學生撰寫程式時所發生迷思概念的狀況,亦將學習單填寫內容、課後 程式作業、期中測驗、期末測驗之程式進行迷思概念編碼,以量化這些質性程式資料, 便於後續的統計分析。系統方面會在後端記錄學生個人帳戶的回饋次數、時間、題型、 模式,以及在留言區的討論、心得、問題等等之次數與時間。學生學習成就方面,會記 錄學生課堂中的學習單、線上程式作業、期中期末測驗、專題分數、與整合的該課程總 成績分數。量表方面,紀錄前後測的態度測驗結果,與前測的運算思維測驗結果。. 2.質性資料蒐集 課程中的質性資料,會紀錄課程中每次學生在學習單的反思引導題所做的留言內容, 以及教學系統的留言討論區之留言內容。課後的質性資料,課後會進行結構式的訪談, 對控制組與實驗組該課程學習成就(根據學習成就之兩個標準差與平均值為基準)的前、 中、後段各抽出兩位學生來做訪問。訪談內容包含對程式語言本身、程式設計課程的個 人看法與該系統方面大致的使用情形,其中也會訪問到在整個程式設計課程中最困難的 概念是哪個部分與再編寫程式的過程中最常面臨的問題等等相關資料。. 二、. 資料分析方法. 1.對學習者程式設計學習成就之影響 根據準實驗研究法的理論,對實驗組與控制組做 ANCOVA 統計分析,可以探討學習 者在兩種不同的程式設計教學策略中是否有顯著的差異。針對實驗組與控制組兩班的. 36.

(44) 期中與期末測驗的迷思概念與錯誤的語法知識進行量化分析,可以顯示出兩班在該方 面是否有數量的不同。. 2.對矯正學習者程式設計迷思概念之影響 將實驗組與控制組的迷思概念發生次數針對種類進行分類,並分析在那些迷思概 念種類上,實驗組是否會少與控制組,且是否因為設計的相關教學回饋有所影響,並 促進學習者進行反思與矯正該迷思概念,或是漸進的避免和減少發生的次數。 個別探討某學生在學習程式設計過程中的迷思概念矯正歷程,分析實驗組某學生 在課程的學習單、線上作業、期中與期末測驗學習成就的變化,再根據整個過程的反 思情況、系統回饋內容、迷思概念與錯誤語法知識類型和次數,進行質性分析與討論 該過程的變化與影響。. 3.對學習者程式設計學習態度之影響 對實驗組與控制組前後測的態度評分進行 ANCOVA 統計分析,探討兩班的差異與變 化。根據態度評量的答題狀況,以及課程後的半結構式訪談內容來了解學生的想法, 再討論為何會有這樣的差異與是甚麼原因造成這樣的結果。. 37.

(45) 第四章 分析結果與討論 本章共分為兩個小節,第一節說明本研究實驗後的資料統計分析之結果,並簡要的敘述其意 義;第二節說明探討因為何種因素造成的結果差異與概念在學習歷程中的改變。. 第一節 分析結果 一、. 探究程式設計初學者常有的迷思概念. 1. 程式設計迷思概念蒐集 在實驗前會先蒐集大部分程式設計之迷思概念相關文獻,並整理合併常發生的錯誤與 誤解為列表以供後續參考的基礎與課程內容設計。其中包含了,常見的 C++程式語言、 Pascal、Python、Ruby、Java,以及使用不同的編寫平台介面,而初學者大部分會在程式 結構、迴圈、判斷式、物件導向的概念上有困難,詳細整理之表格請參考附錄一。. 2. 教學實驗前的程式設計迷思概念調查 在教學實驗前先針對程式設計初學者施測,以調查程式設計初學者之迷思概念,並對照 由文獻所彙整之迷思概念,進而確認多數初學者會有的迷思概念。根據文獻所提的常見迷思 概念,設計程式設計題目進行實際測驗。測驗內容包含了筆試部分與電腦實作部分,程式結 構與概念包含邏輯運算、判斷式、迴圈、陣列、函式、遞迴(高中資訊科技課綱涵蓋之程式 設計結構與概念),程式語言為 c 語言。測驗參與者 18 人(14 男、4 女),參與者包含高中與 大學學生,且大部分是學過 c 語言,以下表 4-1 為測驗所整理出來的錯誤想法。. 表 4-1 教學實驗前程式設計測驗. 錯誤想法. 相關概念. 1. 認為 if、else if、else 為同時執行的。. 判斷式. 2. 認為條件不符合時,還是要執行內部程式。. 判斷式. 3. 認為 for 迴圈在最後一次執行時,不需要檢查終止條. 迴圈. 件即可判斷是否停止。. 38.

(46) 4. 認為巢狀迴圈執行過程都不需要檢查終止條件,即可. 迴圈. 判斷是否到外層迴圈。 5. 認為迴圈終止值計算會被其他變數影響。. 迴圈. 6. 認為 do while 迴圈只執行一次。. 迴圈. 7. 認為陣列的第一個元素是 A[1]。. 陣列. 3. 教學實驗後程式設計初學者常有的迷思概念整理 該程式設計迷思概念列表示根據先前的文獻蒐集與實驗前的測驗改進的,並再根據教學 實驗過程的狀況與學生的表現而加以修改的結果,其中可以看出學生在程式的執行順序上有 明顯不同於專家的想法,進而導致後續各種的學習障礙與錯誤形式,如下表 4-2 所示。. 編碼 M1. M2-1. 分類項目 變數相關概念. 表 4-2 實驗後所整理的迷思概念列表 解釋. 範例. 認為宣告的變數都是字串型態、認為. 認為「=」與「==」是一. 變數不需要特別宣告就可以使用、 認. 樣的、認為變數宣告一. 為程式的指派與邏輯判斷是ㄧ樣的、. 定="變數名稱"(字串型. 認為例外狀況是不用另外設定規則。. 態)。. if、else if、else. 認為程式指令執行之順序有非從上到. 學生認為程式在判斷條. 的執行順序. 下的狀況、或認為該程式會有同時進. 件時會一起執行 if、. 行判斷兩行程式碼的狀況。. else if、else,其實是 有順序的。. M2-2. 多加上了條件的判斷式. 認為 else 後面必須加上條件判斷才能. 學生會寫出 else(x>=0). 把 if 判斷之外的狀況涵蓋進來。. 的判斷式程式碼來額外 作條件限制。. M2-3. switch case 相關概念. 認為程式指令執行之順序有非從上到. 同一區 break 後的 print. 下的狀況、認為 case 後還要多加條件. 卻執行了、認為 case1、. 來過濾狀況、認為 break 不影響執. 2、3 會同時進行判斷。. 行。 M3-1. for 迴圈之執行順序. 認為該程式指令運作之順序不是逐行. 忽略每個 for 在最後會. 執行的,並認為可以跳行地執行。. 做一次終止條件的檢 查,才結束迴圈程式。. 39.

參考文獻

相關文件

• The  ArrayList class is an example of a  collection class. • Starting with version 5.0, Java has added a  new kind of for loop called a for each

A Phase 2/3 Multicenter, Open-label, 3-arm, 2-stage Randomized Study of ASP2215 (Gilteritinib), Combination of ASP2215 Plus Azacitidine and Azacitidine Alone in the Treatment

Mie–Gr¨uneisen equa- tion of state (1), we want to use an Eulerian formulation of the equations as in the form described in (2), and to employ a state-of-the-art shock capturing

[r]

[r]

[r]

For an important class of matrices the more qualitative assertions of Theorems 13 and 14 can be considerably sharpened. This is the class of consistly

 If a DSS school charges a school fee exceeding 2/3 and up to 2 &amp; 1/3 of the DSS unit subsidy rate, then for every additional dollar charged over and above 2/3 of the DSS