分為低分群(0-99 分)、中間群(100-199 分)與高分群(200-300 分),並與當年 度應試之高中生成績相比,成績分布如圖7 所示,整體學生成績主要分布於高分
程式設計實作表現
期中測驗一檢核的概念包含簡易計算、簡易判斷、多條件判斷、重複結構;
期中測驗二增加了列表與排序的應用,兩次測驗及各項概念之描述統計如表4。
期中測驗及各項概念描述統計
n M SD n M SD
期中測驗一 238 84.85 18.85 期中測驗二 238 68.72 23.11 簡易計算 9.55 0.96 簡易計算 9.42 0.99 簡易判斷 9.30 1.44 選擇結構 9.60 0.98 多條件判斷 7.79 2.55 重複結構 5.91 3.71 重複結構 6.69 3.32 綜合應用 7.81 2.80 綜合應用 6.46 3.42 列表應用 6.78 2.69 排序應用 7.19 3.50 列表綜合應用 6.06 4.29 由表 4 可得知,期中測驗一之平均成績為 84.85 分,其中重複結構與綜合應 用概念的成績低於7 分,期中測驗二之平均成績為 68.72 分,由於測驗內容難度 提升、又包含前次測驗之基礎概念,因此學生可能在尚未學會基礎概念的情況下 無法順利完成第二次測驗,導致平均成績明顯下降,其中在重複結構、列表應用 與列表綜合應用之平均成績低於7 分。
(二) 不同程式設計學習經驗對於程式設計實作能力之影響
為探討高中或大學曾經學習過(至少 18 小時)與程式設計相關的語言或工 具是否會影響學生學習表現,以有無程式設計學習經驗為自變項,兩次期中測驗 成績為依變項,進行獨立樣本T 檢定,統計結果如表 5,不同學習經驗的學生在 期中測驗一、二學習表現分別為t = 4.55 , p <.001 與 t = 5.85 , p <.001,皆達顯著 差異。即高中或大學曾經學習過(至少18 小時)與程式設計相關的語言或工具
學習經驗對期中測驗成績之獨立樣本T 檢定
有學習經驗 無學習經驗
( n = 120 ) ( n = 118 )
M SD M SD t 值
期中測驗一 90.16 14.12 79.44 21.41 4.55***
期中測驗二 76.87 20.97 60.44 22.30 5.85***
註:***p < .001
期中測驗一的各項概念 T 檢定結果如表 6,其中學習過程式設計的學生在
「簡易判斷」、「多條件判斷」、「重複結構」的表現皆顯著優於沒有學習過的學 生。期中測驗二在「重複結構」、「列表應用」及「列表綜合應用」達.001 之顯著 差異,如表7 所示。
學習經驗對期中測驗一概念之獨立樣本T 檢定
有學習經驗 無學習經驗
( n = 120 ) ( n = 118 )
M SD M SD t 值
簡易計算 9.66 0.70 9.43 1.17 1.83 簡易判斷 9.58 0.90 9.01 1.80 3.09**
多條件判斷 8.47 2.07 7.11 2.81 4.25***
重複結構 7.79 2.80 5.56 3.45 5.46***
綜合應用 6.79 3.29 6.12 3.52 1.52
註:**p < .01 , ***p < .001
學習經驗對期中測驗二概念之獨立樣本T 檢定
有學習經驗 無學習經驗
( n = 120 ) ( n = 118 )
M SD M SD t 值
簡易計算 9.61 0.79 9.24 1.14 2.93**
簡易判斷 9.71 0.71 9.49 1.18 1.71 重複結構 7.09 3.58 4.71 3.45 5.22***
綜合應用 8.20 2.87 7.41 2.68 2.20*
列表應用 7.59 2.39 5.96 2.74 4.89***
排序應用 7.72 3.26 6.65 3.66 2.36*
列表綜合應用 7.37 3.88 4.74 4.29 4.96***
註:*p < .05 , **p < .01 , ***p < .001
由表 7 可得知,兩組學生在「簡易計算」、「選擇結構」的平均成績皆達 9 分 以上,顯示大部分學生已能掌握基礎的程式設計概念,然而未學習過程式設計的 學生針對重複、列表的練習僅三週,解題仍不夠熟練,對於與平時課堂中差異較 大的題型、綜合應用題亦無法舉一反三,因此在「重複結構」、「列表應用」及
「列表綜合應用」概念表現較差。
(三) 不同學院對於程式設計實作能力之影響
針對非主修電腦科學的學生,探討不同學院對於程式設計實作能力之影響,
包含理學院(排除資工系)、科技與工程學院、教育學院與文學院,其他各學院 學生少於10 人故不列入分析。
以學院為自變項,兩次期中測驗成績為依變項,進行單因子變異數分析,探 8 顯示:期中測驗一
學院對期中測驗成績之單因子變異數分析
學院 n M SD F 值 Scheffé 法 Post-Hoc
期中 測驗一
(1)理學院 128 88.63 15.30 2.82*
(2)科技與工程學院 42 89.29 14.99
(3)教育學院 27 81.44 15.23
(4)文學院 19 81.26 17.28
期中 測驗二
(1)理學院 128 73.56 20.39 7.39*** (1)>(3)
(2)科技與工程學院 42 77.79 19.55 (1)>(4)
(3)教育學院 27 59.22 24.39 (2)>(3)
(4)文學院 19 58.11 21.71 (2)>(4)
註:*p < .05 , ***p < .001
學院對期中測驗一概念之單因子變異數分析
學院對期中測驗二概念之單因子變異數分析
期中測驗二的各項概念統計結果如表 10:各學院在「重複結構」F(3, 215)
= 5.09, p < .01、「列表應用」F(3, 215)= 8.16, p < .001 與「列表綜合應用」F
(3, 215)= 5.24, p < .01 表現有顯著差異,以 Scheffé 法進行事後比較,結果顯示 理學院和科技與工程學院在「重複結構」與「列表應用」表現優於教育學院;理 學院和科技與工程學院在「列表綜合應用」表現顯著優於文學院。
各學院之間在「重複結構」、「列表應用」與「列表綜合應用」表現有所差 異,其中各項概念皆是以「重複結構」為基礎,因此本研究欲深入探討各學院是 否皆在「重複結構」遇到困難。以各學院之各項概念為依變項,進行成對樣本T 檢定,各配對之統計結果如表11,所有學院在「簡易判斷」與「重複結構」之間 皆有顯著差異,顯示各學院學生皆在「重複結構」遇到困難。
各項概念之成對樣本 T 檢定
簡易計算 簡易判斷 重複結構 列表應用 排序應用
理學院 9.61 9.63 *** 6.54 * 7.25 7.71
科技與工程學院 9.29 ** 9.71 *** 7.12 7.96 7.74 教育學院 9.41 ** 9.85 *** 4.33 5.31 * 6.37
文學院 9.32 9.79 *** 4.58 5.91 6.47
註:*p < .05 , **p < .01 , ***p < .001
綜合上述分析結果可以得知,各學院皆在「重複結構」遇到困難,連帶影響 以重複結構為基礎的列表及綜合應用的表現。其中,理學院和科技與工程學院在
「重複結構」與「列表應用」表現優於教育學院;理學院和科技與工程學院在「列表綜 合應用」表現顯著優於文學院。
(四) 專題表現差異
程式實作表現對專題成績之獨立樣本 T 檢定
n M SD t 值
整體 232 87.75 9.10
期中測驗二及格 156 89.18 8.39 3.53**
期中測驗二不及格 76 82.80 9.80
註:**p < .01
程式設計學習困難
為了進一步瞭解學生的迷思概念,本研究透過學生的課堂提問、期中測驗作 答程式碼,以及補救教學的一對一問答,觀察學生的解題策略與思考歷程,發現 學生在「變數」與「重複結構」的理解與應用遇到困難,進而影響列表的學習與 綜合應用的表現。歸納以下幾點:
(一) 變數的覆蓋
在重複結構的應用中時常需要重複「輸入」,以期中測驗一的 T8 為例,重複 輸入成績,並比較大小。程式的撰寫必須在迴圈內輸入後隨即做比較,然而在課 堂觀察到:學生會在一個迴圈重複15 次輸入成績後,在另一個迴圈做 15 次大小 判斷,如圖9。當教師告訴學生變數值已被覆蓋時,學生提問:「我已經重複做了 不同的事情,為什麼會被蓋掉?」以人類的大腦而言,記憶是不可能被替換的,
但在電腦的記憶體空間,是可以新增、覆寫甚至清除的。
圖9 學生程式範例—變數的覆蓋
(二) 變數意義的改變
以期中測驗一的 T9 為例,試題中的重複概念為「重複輸入營業額直至輸入-1」,因此重複的條件即為重複直至「營業額 = -1」,然而此時的-1 並不代表營業 額,只是利用了變數中的值而已。學生作答的程式碼如圖10 所示,為了符合-1
「結束」的意義,因此建立了名為「結算按鈕」的變數,導致終止條件無法成立 的無窮迴圈。
圖10 學生程式範例—變數意義的改變
另外一種意義的改變是在迴圈中變數的更新,以期中測驗二的 T3 為例,解 題的策略為「對正整數重複取個位數,同時更新正整數的值」,學生雖然能夠發 現其重複運用的數學算式,卻無法想到改變「正整數」的值,因此寫出如圖11 的程式。
圖11 學生程式範例—變數的更新 (三) 程式的執行流程
(a)正確範例 (b)錯誤範例 圖12 學生程式範例—執行流程
課程感受與回饋
本節將呈現期末問卷的結果,問卷包含三個向度,共 16 個問題,另有 1 題 開放式意見回饋,三個向度分為程式設計概念理解、運算思維能力表現與課程學 習成就。
(一) 程式設計概念理解
學生對於自己在各項程式設計概念的理解程度,請參考圖 13。程式設計概念 包含「變數」的使用、「輸入、輸出」的設計、「如果、否則」、「重複」以及「列 表」的概念理解與使用;理解的程度由低至高分別為「非常不理解,感到陌 生」,「不理解,只是靠死記和抄寫」,「普通,經過嘗試錯誤可以湊出結果」,「理 解,遇到較複雜的問題會卡一下」,「非常理解,能夠熟練地運用」。
圖13 程式設計概念理解
0 50 100 150 200
變數 輸入輸出 如果否則 重複 列表
人數
非常不理解,感到陌生 不理解,只是靠死記和抄寫
普通,經過嘗試錯誤可以湊出結果 理解,遇到較複雜的問題會卡一下
非常理解,能夠熟練地運用
由圖 13 可得知,學生對於輸入輸出與選擇結構的理解非常有信心,但在變 數、重複及列表概念中,嘗試錯誤與死記的人數則稍有增加。在學生的意見回饋 中亦有提到:「重複與列表可以再細說一些,因為這些比較困難。」、「我覺得有 些部分還是滿難的,希望可以將比較初階的部份簡單帶過,對於困難的部分則是 多一點講解。」因此,雖然重複與列表的課程時間共有4 週,但講述基礎重複概 念的時間僅有1 週,學生在尚未理解基本概念的情況下,亦無法吸收進階的課程 內容。
(二) 運算思維能力表現
依照 CSTA & ISTE (2011)所提出操作型的定義,運算思維是一個問題解 決歷程,此向度將各個解題的步驟與運算思維對應,藉以瞭解學生的運算思維能 力表現。
運算思維能力與敘述對照表
運算思維 敘述
抽象化 當題目需要以表格記錄資料時,我會想到用「列表」。
問題分解 當題目比較複雜時,我會嘗試把問題分解成多個小問題以便個別解決。
演算法思維 看到題目時,我會先嘗試思考出問題解決步驟。
模式辨識 在每週作業中,我能看出各題相同與不同之處。
除錯 當程式出錯時,我會嘗試用邏輯思考找出問題點,再加以修正。
統計結果如圖 14,大多數學生會在看到題目時,嘗試思考出問題解決步驟,
圖15 課程學習成就