李昕 張學輝 李傳秀



摘要:隨著信息化時代的到來,程序設計語言課程已經進入到在線教育的時代。大量教育信息的電子化給教育工作者更多的參考依據,但是龐大的數據量給分析和總結工作帶來了巨大的難度。本文針對程序設計課程的特點,將課程信息進行可視化,通過總結得到的規律進一步促進教學,提升了程序設計課程的教學質量。
關鍵詞:可視分析;程序設計;教育分析;影響因子
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)04-0064-03
程序設計是計算機基礎教育的核心課程。它覆蓋面廣、影響大,是大學生參加課程設計、畢業設計、創新實驗、科技制作、學科競賽等活動的重要基礎。同時,它也是一門非常注重實踐的課程,與一些傳統的理論課程不同,學生日常編程練習的完成情況對最終的掌握程度影響很大。
斯隆聯盟連續十一年發布美國在線教育調查報告顯示,高校在線教育保持穩定發展的態勢[1]。中國在線教育發展如火如荼,各種新產品不斷涌現[2]。中國石油大學(華東)從2010年開始引入程序設計的在線測試平臺,學生日常編程都提交到該平臺上,因此積累了大量的數據。在線測試平臺對程序設計語言教學的輔助作用非常巨大。目前平臺的平均日訪問量在2000人次以上,最高訪問量達到8000人次。某教師在一個學期的學生人數為92人,一學期接收學生提交的程序超過1萬。龐大的數據量使教學工作者很難對教學情況做出有效的分析。
教育分析是對教育過程中所獲得的各種信息進行定性定量分析,為教學內容、教育方式、教育手段的選擇提供依據,為教育決策提供信息[3]。本文將教學與可視化技術[4]相融合,利用新的技術、新的理念和新的學習理論嘗試構建新的教學模式。課程組將在線測試平臺上學生的日常完成狀況進行了可視分析,總結出了做題數量、一次性提交成功率、重復率等多個影響因子,將這些影響因子與學生的考試成績做了綜合分析,并利用分析得到的結論,輔助于程序設計語言的教學。
一、做題數量與學生的學習成績成正比
將學生的做題數量和成績進行了關聯分析,如圖1所示,每個點代表一個班級,橫軸表示平均做題數量,縱軸表示該班學生的平均成績。對該圖做了一個線性回歸后,得到的回歸線為y=0.3136x+45.025,斜率0.3136表明做題數量和成績成正比。將圖1中代碼重復率高于40%的班級剔除掉,斜率進一步得到提升,正比關系更加明顯。也就是說,在學生獨立完成的情況下,做題數量是影響學生對程序設計語言掌握程度的一個重要因素。
進一步分析,圖1中的右上角圈選部分明顯離群,該班平均做題76道,平均分82分。該班為我校的理科實驗班,成績明顯高于其他班級,而較高的做題數量保障了該班取得良好的成績。圖1中的左側圈選部分也離群較遠,做題數量明顯偏少,成績整體偏低。
從圖1的左、中、右位置上各選取一個班級,深入分析三個班級的做題數量和學生成績的關聯狀況。首先,無論成績狀況,每個班級的絕大部分學生的習題總量接近該班教師布置的數量;其次,三個班級平均做題數量依次上升,平均分也依次上升;最后,做題少的同學很難得高分。通過這三個發現,一方面再次證明了做題數量對學生成績的影響較大,另一方面也說明了大多數學生都能盡量去完成布置的作業,教師應該根據學生的承受能力,盡量多布置習題的數量。
二、平均提交次數、一次性提交成功率和抄襲的可能性
學生編程時,都是在本地編譯運行通過后,提交到在線測試平臺上。因為一方面本地編譯器與在線編譯器略有區別,另一方面學生做題時考慮問題不夠全面,較難一次性通過該問題對應的所有測試用例,所以學生的平均提交次數很難接近1。將全校學生根據平均提交次數進行人數統計,其中平均提交次數對應人數最多的位置為1.58,全校學生的平均提交次數為2.02,平均提交次數非常接近于1的學生數量較少,把這些學生稱為E類學生。本文針對E類學生進行了深入的研究。將平均提交次數對應的學生成績做了一個加權平均,得到圖2。從圖2中可以看出,E類學生的平均成績比較低。平均提交次數接近1的學生平均成績僅為30分。隨著平均提交次數的增加,成績逐步提高。在平均提交次數大于2之后,平均成績開始趨于穩定。較低的成績說明絕大多數E類學生不是因為對課程內容掌握的非常好才形成較低的平均提交次數,從而推斷這部分學生具有較大的抄襲可能性。
在此基礎上,一次性提交成功率也能說明相同的問題。這個參數是指學生僅需一次提交就能編譯成功,并通過所有測試用例的題目數量占總做題數量的比例。經過回歸分析證實了一次性提交成功率和平均提交次數成反比。也就是說在一般情況下,學生在需要多次提交才能通過所有測試用例的題目越多,其他題目能夠一次性提交成功的概率就越低。圖3將全校學生的平均提交次數(橫軸)、平均成績(縱軸)和一次性提交成功率(不同顏色)進行了綜合分析和數據統計,每一個點代表一個學生。其中的顏色能夠大體上沿橫軸依次變化,也同樣說明了兩個對應的參數存在著比例關系。黃色和青色部分的學生占總人數的80%,代表了學生的整體狀況,他們的平均提交次數在1.5~3.5,一次性提交成功率在60%~80%。因為代碼是在本地系統上編譯運行通過后才提交到平臺,所以這個范圍的提交成功率比較正常。而對于前文提到的E類學生,在圖中顯示為粉色和紅色,他們一次性提交成功率大于90%,平均提交次數小于1.2,從較低的平均成績上推斷,這些學生復制他人代碼的可能性較高。E類學生只占學生總數的4%,說明絕大多數學生能夠獨立完成題目。
圖4中展示了三名學生在不同日期(橫軸)的提交狀況(縱軸)。其中綠線表示題目的完成數量,黃線表示嘗試的提交次數。左圖中兩條線保持比較均勻并相對較短的距離,平均提交2次可以成功完成一道題目。這是一個比較正常的學生,他在圖3中顯示為青色。圖4中圖的兩條線基本重合,平均提交次數為1.01,一次性提交成功率大于97%,也就是說幾乎所有題目都是一次性提交成功??紤]到編譯器的不同和初學者的能力狀況,推斷出該學生抄襲的可能性非常高。29分的考試成績說明該生對課程掌握程度較差。他在圖3中顯示為紅色。
圖1中右下角圈選部分的兩個班級,相對做題較多,但班級平均分較低,這不符合做題多則成績相對好的規律,可以認為是一種異常狀況。通過分析發現,兩個班級的平均提交次數分別為1.48和1.33,一次性提交成功率分別為0.79和0.82,與全體學生的平均提交次數2.02和一次性提交成功率0.61相比,有較大差距。因此推斷兩個班級的整體抄襲狀況比較嚴重,從而較好地解釋了這種異常狀況的出現。
三、堅持不懈地給予學生更多的關注
在圖3左圖中的綠色點所對應的學生,平均提交次數都比較高,這說明他們在做題時多需要花費較大的精力。圖4右圖顯示了一個平均提交次數為5.08的學生,做題數量和提交次數兩條線之間距離較遠。以4月1日為例,該生完成4道題目,卻提交了30次,這說明他們在做題時遇到了問題,是靠堅持不懈的努力來學習這門課程的。圖2中橫軸大于3.5的部分對應著這部分學生,折線的震蕩狀況說明這部分學生分為兩種:一種是已經掌握的相對較好,通過不斷提交努力尋找更好的方法;另一種是沒有掌握程序設計語言的核心,但他們一直保持著較大的學習熱情。在圖3右圖中顯示該部分學生的平均成績高達72.40,說明他們的努力得到了回報。占總人數5%的比例說明一個人數為30人的班級,平均只有1~2個同學會出現這樣的狀況。如果任課教師能在教學過程中盡早發現這些學生,給予足夠的幫助并幫助他們突破瓶頸,那么這些學生依靠自己的努力應該可以取得更好的成績。
四、結論
本文將學生在程序設計課程中提交的數據與學生的成績進行了關聯分析,提取出了做題數量、平均提交次數和一次性提交成功率等影響因子,發現學生的掌握程度與做題數量成正比,當平均提交次數接近1,且一次性提交成功率很高時,學生有很大的抄襲可能,而平均提交次數很高的學生非常努力,但付出的代價很大,需要更多的教師輔導。教師可以把這些結論當作程序設計課程的指導標準,改善教學環節,提高教育質量。
參考文獻:
[1]朱永海,韓錫斌,楊娟,程建鋼.高等教育借助在線發展已成不可逆轉的趨勢——美國在線教育11年系列報告的綜合分析及啟示[J].清華大學教育研究,2014,(04):92-100.
[2]管佳,李奇濤.中國在線教育發展現狀、趨勢及經驗借鑒[J].中國電化教育,2014,(08):62-66.
[3]薛琴娣.教育分析及其在思想教育管理中的運用[J].無錫教育學院學報,1995,(01):52-54.
[4]葉新東.未來課堂環境下的可視化教學研究[D].上海:華東師范大學,2014.