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