徐遠謀 陳奇玖
當前,很多同學在校外學習編程,部分中小學校也開設了相應的編程課程。教師一般通過查看學生提交的編程作品,歸納作品中出現的高頻錯誤,再在課堂上進行統一講解。
在編程活動中,每個學生面對同一個問題時,解決方案各不相同。這就意味著,教師需要花費大量的時間分析、指出每個學生可能出現的問題,再提出解決方案。然而教師的精力和時間有限,無法及時糾正每個學生的錯誤,以致很多學生在學習編程的過程中遇到問題卻得不到及時指導,影響了學習效率。
要想改變這一現狀,必須加深教師對學生編程行為的了解程度。換言之,需要一種方便教師更好地了解學生編程行為的工具。因此,開發并使用自動數據收集和分析技術,及時掌握學生在編程活動中的行為是非常有必要的。
收集、分析資料后我們發現,學習分析技術能幫助教師解決上述問題。學習分析技術是指收集大量的學生學習數據并進行深度分析,進而評價學生的學習進度、預測其未來的學習表現,并發現其在學習過程中的潛在問題。
如果能將學生編程活動的編程環境整合到學習分析系統中,并追蹤其編程的每個步驟,不僅能幫助教師對學生的思維和編程任務的演變過程進行分析,還能讓教師及時調整教學內容或方式,加強針對性的輔導。然而,目前學習分析技術應用于學生編程活動進行數據分析的相關研究相對較少。
為此,我們基于鼠標點擊流技術,使用Python編程語言,開發了一個收集、分析學生在編程活動中與編程環境交互數據的工具。
一、設計原理
編程行為分析工具收集學生在編程活動中的鼠標軌跡、停留時間等數據,得到在編程環境的不同區域中,學生鼠標停留時間的可視化圖形,進而對學生在編程活動中的行為模式進行分析。利用該工具還能發現學生在編程中遇到的問題,有效引導教師有針對性地幫助學生解決問題。
學生運行該工具并按照教師的說明與工具給出的提示進行操作,即可在軟件編輯環境中進行區域的劃分。然后,工具會自動收集學生在編程過程中鼠標點擊的相關數據,并將數據保存為文本文檔,通過socket局域網傳送到教師端。其工作流程如圖1所示。
通過運行該工具的教師端,教師可按照工具給出的提示,選擇以柱狀圖、散點圖或熱力圖的形式,查看每個學生在不同區域的鼠標停留時間,進而對學生的編程行為模式進行分析,及時采取有針對性的措施,提升教學效果。
二、結構組成
編程行為分析工具分為基本信息錄入、編程環境區域劃分、數據收集和數據的可視化呈現四部分。
1.基本信息錄入
學生端電腦開機后,編程行為分析工具即可自動開啟運行,并對目標程序(即學生使用的編程軟件)進行監測。若監測到目標程序啟動,則彈出相應的對話窗口,如圖2所示。
學生可以根據提示輸入其基本信息(姓名或學號等)登錄,之后選擇“開始監測”,即可對鼠標點擊行為進行監測。這種登錄方式不僅簡單快捷,而且可在學期結束后有針對性地對學生的編程學習過程進行整體呈現,便于教師指導。
2.編程環境區域劃分與數據收集
編程環境區域一般被劃分為4個。以慧編程軟件為例,分別是舞臺區、積木區、角色區和腳本區,如圖3所示。
若要更改環境區域,學生可以在程序主界面按照提示選擇進入區域劃分工具,該工具就會給出相應的提示信息。如圖4所示。
學生只需根據提示信息輸入需創建的區域個數,并按照提示,將鼠標移動到對應位置確定兩個坐標點(分別是矩形區域的左上角頂點和右下角頂點),即可劃分一個區域。重復上述過程就可以確定多個區域。
該工具使用兩個坐標點確定區域的方法,增加了工具的可移植性,意味著教師可將該工具應用于學生使用的各類編程環境。通過在不同編程環境中對區域的劃分進行更改,收集學生在編程中鼠標移動的數據,并對收集的數據進行可視化呈現,教師可識別學生的編程行為,并了解學生的編程學習情況。
待編程環境區域劃分完成之后,學生即可進行正常的編程活動。工具在指定的時間間隔內,自動記錄存儲鼠標的位置坐標數據,分析坐標數據后自動推算出其所處區域。
學生鼠標行為數據庫E-R圖如圖5所示,從圖中可以發現基本信息和鼠標行為之間的互動關系。每次互動都包含創建、開啟和響應三個階段,學生在編程中的鼠標行為數據將被統一存放在鼠標行為表中,并與基本信息表相對應。
3.數據的可視化呈現
學生關閉編程軟件后,程序自動將鼠標行為數據發送到教師端。教師端通過調用Pyecharts、matplotlib和Pygame三個模塊,對學生數據進行可視化轉化,以柱狀圖、散點圖和熱力圖等形式呈現不同學生的鼠標在四個區域停留時間的數據。
柱狀圖和散點圖便于教師理解學生的鼠標點擊流數據以及數據之間的關系,快速、直觀地讀取原始數據。熱力圖以特殊高亮的形式顯示學生鼠標停留的區域,還能通過不同區域顏色的深淺,判斷學生在哪些區域中停留的時間最久,進而推斷學生在該區域的學習是否遇到困難。
通過對可視化柱狀圖、散點圖和熱力圖的分析,教師可以了解不同學生的學習情況和整體的疑難點。
三、測試與效果評價
我們邀請幾位同學在同一局域網內進行工具的測試。測試項目案例為“彈球游戲”,這幾位同學各自在電腦上的慧編程軟件中獨立、自主地完成“彈球游戲”的制作。
在制作游戲的過程中,編程行為分析工具對被測者鼠標活動的狀態進行監測和數據收集。待“彈球游戲”制作完成,退出慧編程軟件后,工具將收集的數據發送到教師端,在教師端的程序中成功導出被測者編程數據的柱狀圖、散點圖和熱力圖。
結合圖6中二號同學在編寫彈球游戲過程中的散點圖和熱力圖可發現,該同學在屏幕左側和中間的區域鼠標停留的時間較長。由該同學使用的編程軟件慧編程及其分區可分析得出,該同學可能對編程模塊的選擇以及對展示區對象的調整用時較長。
結合圖7中三號同學在編寫“彈球游戲”過程中的散點圖和熱力圖可以發現,該同學在調整展示區對象用時較短,對編程模塊選擇用時較長,在腳本區調整程序順序的用時也很長。
因上述散點圖和熱力圖只能看出同學編程時在各個區域的使用時間占比,所以還要通過柱狀圖了解同學的編程總時長。如圖8,三號同學整體編程時間久于二號同學,可以推斷三號同學在該程序的思維或寫法上不如二號同學熟練。
不同的圖像也有各自的優缺點,比如:散點圖可以看出單位時間內鼠標停留的位置,但不能準確地顯示在各個分區停留的時長;柱狀圖呈現的數據一目了然,但更細致的數據如鼠標停留的具體位置無法展現;……
在測試結束后,我們和參與測試的同學進行了簡單的交流,發現通過數據可視化呈現的結果,判斷同學可能出現的疑難點與他們實際遇到的疑難點有較高的契合度。這進一步說明了該工具的可行性。
四、結論與展望
在整個項目中,陳奇玖負責編寫主要程序,徐遠謀負責撰寫文稿、組織學生測試。
我們基于鼠標點擊流技術,使用Python語言開發的分析學生編程行為工具并進行測試,證明了該工具對學生編程學習狀態的可視化有良好的作用,解決了以往相關研究中不能直接監控學生編程活動中的鼠標行為和不能適用于不同編程的軟件等問題。
該工具對幫助教師了解學生編程活動中的行為情況有良好的作用,能提高課堂效率,對編程教學,尤其是針對較低年級的編程教學有極大的幫助。今后將擴大參與測試工具的人數,進一步驗證工具的有效性。(指導老師:趙明? ?解蒸? ?楊楚霜)
專家點評
徐遠謀、陳奇玖同學的學生編程行為分析工具,是一個富有前瞻性和生命力的創新課題。
當今,人工智能技術發展迅猛,它是一個以計算機科學為基礎,由計算機、心理學、哲學等多學科融合的交叉學科、新興學科,而編程則是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,并最終得出相應結果的過程。因此,編程是人工智能的基礎。
兩位同學能找到這樣的課題并進行實踐,旨在突破編程教與學中的難點,其敢想、敢做的創新精神值得推崇。這個課題,從應用前景來看,如果能真正運用好,將給中小學編程教學帶來跨越式的發展。
但是,僅將鼠標停留的時間作為學生編程行為分析的依據,其科學性還值得商榷。希望兩位同學在課余時間繼續探索。
譚迪熬 中國發明協會院士專家咨詢工作委員會首任專家,中國發明協會中小學創造教育分會會長,科技創新教育特級教師,教育部國培計劃專家庫專家。