陳 琦,胡 楊,姜瑩瑩
(徐州醫科大學 信息化處,江蘇 徐州 221004)
為防控“新冠”疫情,很多高校采取線上授課、封校等嚴格的管理措施,讓原本習慣于線下授課的師生感到不適。 如何利用信息化手段保持學生學習動力,提高學習興趣,成為研究熱點。 黃亞婷等[1]研究了疫情背景下混合教學中本科生學習投入的影響機制;錢雪峰[2]闡述了疫情防控新常態下學校體育教學的應對方法;張麗娟等[3]提出了疫情下高校線上教學質量評價的新方法。 為激發學生在疫情防控期間的學習動力,同時貫徹落實中共中央、國務院《關于加強和改進新形勢下高校思想政治工作的意見》提出的“三全育人”要求,本研究利用信息化大數據手段分析本科生成績,通過電子獎狀的形式鼓勵取得優異成績或巨大進步的莘莘學子,增強本科生學習動力,激發其學習興趣。
對于本科生來講,成績是決定順利畢業并獲取學位的關鍵因素。 因此,對本科生來說,成績的好壞至關重要。 對取得好成績或取得巨大進步的學生給予學校層面的證書獎勵,無疑對學生心理上產生良好的正反饋作用,同時激發周邊同學競爭意識,帶動學習積極性。 根據對教務處以及各學院的調研,本科生成績主要分為期末成績和階段性成績。
本科生的學習成績主要在每學期末產生,通過集中考試,取得考試成績錄入教務系統。 同時,各學科老師會根據學生日常表現得出平時成績錄入系統。 兩個成績根據一定比例合計成為該課程最終成績。
本科生的課程一般分為必修課、專業選修課和公共選修課。 其中,必修課與專業選修課在同年級、同學院中有較好的可比較性。 公共選修課種類繁多,包含專業無關課程;學生選課靈活,基本不受限制;授課老師評分標準差別大,有的按照正態分布曲線進行,有的平均學分績點卻達到4 分以上;因此,可比較性較差。
每學期僅在期末采取激勵措施,對于部分二級學院來說次數太少。 有些學院在設置課程時,會設置期中考試等階段性考試,這類考試成績一般不會進入教務系統,主要由任課教師掌握,用于了解學生階段性學習情況以及用于期末考試中平時成績的參考。 針對有階段性成績分析需求的學院,需要預留成績Excel 導入入口,用于階段性成績的導入,進而形成階段性成績的評價結果。
Python 語言使用類似腳本語言的精簡語法、擁有良好的編程語言生態及強大的通用編程能力,同時由于對接其他編程語言優勢明顯,被業內公認“為膠水語言”,隨著NumPy、Pandas 等Python 開源擴展包的出現,Python 成了數據分析處理的不二之選[4]。
3.1.1 基于NumPy 的Pandas
NumPy 是Python 的開源擴展包,主要用于數值計算,提供強大的維度數組與矩陣運算能力,針對數組運算也提供大量簡單易用的數學函數庫。
Pandas 是基于Numpy 的Python 開源擴展包,提供Series(一維數據)和DataFrame(二維數據)兩種主要數據格式,在處理一維序列或二維表格數據時有著天然優勢[5]。
根據業務分析,本科生成績主要為存儲在結構化數據庫中的期末成績和以Excel 表格為主的階段性成績,均為二維表格數據形式,正是Pandas 處理數據優勢所在。
3.1.2 基于Tkinter 的CS 模式
Tkinter 是Python 的標準圖形用戶界面(Graphical User Interface,GUI)庫。 使用Tkinter 可以快速創建GUI 應用程序。 對于簡單的圖形界面,Tkinter 可以應付自如[6]。
研究中激勵系統的用戶界面主要用于階段性成績的Excel 導入以及發放證書使用。 主要用戶為個別學院的教學辦老師、教務處以及學工處的個別老師,用戶面相對較窄,使用重客戶端的客戶端服務(Client Server,CS)模式即可很好地滿足需要,而且避免了系統服務器的安裝與維護,只需保證客戶端與校內數據庫及互聯網可以正常通信即可。
3.1.3 基于騰訊樂享的證書頒發
騰訊樂享是騰訊科技有限公司打造的企業社區平臺,具有包括電子證書頒發在內的眾多免費應用。 證書模塊提供證書編輯器功能,管理員可以用圖形化方式快速創建或編輯證書;提供證書管理功能,可以查看、導出明細并批量頒發、收回證書;提供證書自動頒發功能,支持通過應用程序編程接口(Application Programming Interface,API)頒發證書[7-8]。
由于騰訊樂享免費及提供API 對接的特性,本研究中激勵系統的獎狀制作使用騰訊樂享證書功能;同時利用騰訊樂享與同為騰訊產品的企業微信可以無縫對接的特性,通過企業微信為學生發送電子證書。
根據上述業務需求與技術分析,可以將系統設計如圖1 所示。

圖1 系統結構
3.2.1 業務邏輯實現
本科生的課程因專業、年級不同而存在較大差異,需根據學院、年級進行分類;因個人選修不同,課程和課程數量也不相同,因此成績需要折算。 根據折算成績分學院、年級進行排名。
計算學生成績需要使用到的相關數據:學號、課程號、姓名、學院編號、年級、成績類型、課程性質、學分、考試學期、折算成績。 根據業務邏輯數據需要,根據成績類型及分數進行清洗:其中,應排除免修、緩考、取消成績;將曠考、違紀、休學、作弊成績置為0;為避免掛科學生參選,將掛科學生折算成績直接記為0;去除重修和補考成績;去掉只有公共選修課成績的學生。
將清洗后的數據折算為成績。 記每個學生的折算成績為T,每門考試成績為Si,每門課程學分數為Ci,該學生參與計算折算成績的課程數量為n,得到如下公式:

根據計算結果,將折算成績由高到低進行排序,根據人數取出前3%即獲得“學霸”證書獲得者。
計算進步情況時,記上次排名為R0,本次排名為R1,上次參與排名總人數為N0,本次總人數為N1,進步占比記為P,得到如下公式:P為正值則為進步,反之為退步,根據P大小進行排序,取前3%作為“飛躍進步”證書獲得者。

3.2.2 界面設計實現
根據業務需要,利用Tkinter GUI 庫,設計并實現系統界面如圖2 所示。

圖2 界面設計實現
界面上標注5 個記號點為相關功能點設計,下面逐一分析。
(1)對于階段成績,需要上傳Excel 表,點擊“選擇文件”按鈕可以選擇本地上傳文件,上傳完成后,點擊“開始分析”按鈕,對Excel 數據進行分析。
(2)對于期末成績,針對教務系統數據庫中數據最近一次的期末成績進行分析。 因發放獎狀須有時效性,故每次啟動直接分析最近一次成績。
(3)提供Excel 分析結果下載功能。 對于業務部門,獎狀誤發是極大的業務隱患,提供Excel 結果確認,增加業務部門對系統的認可度及接受度。
(4)根據下拉選項選擇要頒發的證書,并確認頒發。
(5)提供信息提示框,提示用戶目前可進行的操作,并提示結果。
3.2.3 證書頒發實現
證書的頒發需要利用騰訊樂享API 進行,主要使用兩個API 接口,證書列表查詢和證書頒發。 騰訊樂享API 使用時需先根據App_Key 和App_Secret 獲取token(令牌,一種API 認證機制),然后將token 放入API 請求中進行二次請求,以進行相關業務操作。(1)證書列表查詢。 為確保用戶界面中的證書列表中證書均為可用證書,并確保該系統未來的擴展性,顯示的證書列表從API 中直接獲取。 (2)證書頒發。 證書頒發的API 每次僅能為一人頒發證書,需要根據分析結果循環調用API,根據學生學號進行頒發操作。 調用API 時設置is_notify 屬性為true,即可通過企業微信通知證書接收人。
本研究詳細闡述了使用成績排名發放電子獎狀以激勵學生學習的業務需求,同時對技術選型進行了詳盡分析,對技術架構和用戶界面進行了詳細的設計,并利用Python 中Pandas 的數據分析能力、Tkinter 的圖形用戶界面交互能力及騰訊樂享證書功能,完成了本科生學習激勵系統建設。 系統已在實踐中測試運行,并在激勵學生方面取得了良好的效果,可以為有同樣需求的高校提供一種合理的解決思路及可行的實現路徑。