蘇新梅
(烏魯木齊職業(yè)大學(xué) 基礎(chǔ)教育部,新疆 烏魯木齊 830001)
網(wǎng)絡(luò)選修課程是高校學(xué)生文化素質(zhì)和綜合能力的體現(xiàn),目前,高等本科院校和高職院校都開設(shè)了網(wǎng)絡(luò)選修課程,作為綜合教育選修課的重要補充。各互聯(lián)網(wǎng)教育運營商,都提供了海量的豐富的網(wǎng)絡(luò)課程資源,幫助各高校的學(xué)子們實現(xiàn)跨校課程共享和學(xué)分互認,完成跨校選課修讀,并獲得學(xué)分。網(wǎng)絡(luò)選修課的在線學(xué)習方式靈活多樣,宿舍、教室、操場、居家等成為重要的選修課學(xué)習場所,學(xué)生通過學(xué)習所選課程視頻完成相應(yīng)作業(yè)、提問、討論、考試等環(huán)節(jié)便可獲取學(xué)分[1-2]。
以烏魯木齊職業(yè)大學(xué)為例,網(wǎng)絡(luò)選修課程2015年開始運行,主要是和超星爾雅和智慧樹在線教育平臺合作,每年的開設(shè)課程和選課人數(shù)都在增加。現(xiàn)在每名學(xué)生在校期間,要求選修課學(xué)分不低于8個學(xué)分, 2020年上學(xué)期開設(shè)課程113門,總選課人次數(shù)是23 229人次,總選課學(xué)生數(shù)6 366人。
網(wǎng)絡(luò)選修課程是學(xué)校教務(wù)管理系統(tǒng)的重要組成部分,是全校學(xué)生公共任選課程的主要學(xué)習方式。每學(xué)期完成網(wǎng)絡(luò)選修課程,需要統(tǒng)計學(xué)期整體情況、課程學(xué)習的人數(shù)、課程學(xué)習成績分數(shù)段的人數(shù)、按課程統(tǒng)計學(xué)生成績的及格率等。針對網(wǎng)絡(luò)選修課程的管理,傳統(tǒng)方式是手工完成統(tǒng)計和查詢,很費時費力。為高效、快速地實現(xiàn)網(wǎng)絡(luò)選修課情況統(tǒng)計分析,本文設(shè)計了該統(tǒng)計分析程序,解決了教務(wù)管理老師的困惑,使其可以方便、全面地了解學(xué)生網(wǎng)絡(luò)選修課課程的學(xué)習情況,輕松得到統(tǒng)計數(shù)據(jù)[3]。
該程序作為高校教務(wù)系統(tǒng)的延伸應(yīng)用,使得學(xué)校各學(xué)院老師都可以方便、快速、高效地了解每學(xué)期網(wǎng)絡(luò)選修課的情況。學(xué)生在學(xué)習中出現(xiàn)“刷課”等現(xiàn)象,公司平臺會反饋不良記錄的成績清單,在系統(tǒng)查詢學(xué)生課程信息時,會有“不良記錄”的標注,以示該成績可能不是學(xué)生真實學(xué)習得到的成績。
網(wǎng)絡(luò)選修課程統(tǒng)計分析系統(tǒng)為各網(wǎng)絡(luò)平臺上課程的設(shè)計提供依據(jù)和參考,如改進平臺上課程的成績構(gòu)成比例,增加課程見面課的內(nèi)容,課程考試難易程度的調(diào)整等。在課程的選擇上,除了學(xué)校必須要求的,從選課人數(shù)上反映現(xiàn)代大學(xué)生的學(xué)習興趣和愛好偏向。
高校都使用了功能完善的教務(wù)管理系統(tǒng),烏魯木齊職業(yè)大學(xué)使用青果教務(wù)系統(tǒng)和喜鵲兒手機APP,可以實現(xiàn)成績的查詢打印等功能。網(wǎng)絡(luò)選修課成績都導(dǎo)入到教務(wù)系統(tǒng),所以前期不需要再重復(fù)建立數(shù)據(jù)庫,直接用公司平臺的Excel原始數(shù)據(jù)作為信息源。
本系統(tǒng)是為統(tǒng)計分析網(wǎng)絡(luò)選修課而設(shè)計開發(fā)的,主要包括3項功能:(1)統(tǒng)計全體學(xué)生每學(xué)期學(xué)習整體情況;(2)根據(jù)學(xué)生學(xué)號查詢個人各科成績;(3)統(tǒng)計各科目學(xué)生成績情況。
本系統(tǒng)使用Python語言進行開發(fā),并外加PyQt5、Pandas、matPlotlib 3個軟件包。Python語言簡練,外接軟件包豐富,開發(fā)效率高。本系統(tǒng)包括注釋等只有600多行程序,可以想象其精煉程度。PyQt5、Pandas、matPlotlib是為Python提供的功能強大的軟件包。PyQt5是開發(fā)界面的工具;Pandas是數(shù)據(jù)分析的工具,為處理報表數(shù)據(jù)提供了豐富的函數(shù)和方法;matPlotlib是繪制二維圖的工具,功能強大,使用方便,本例中只用了10行程序,就繪制了精美的成績分數(shù)統(tǒng)計直方圖。系統(tǒng)運行環(huán)境:Windows 7,Windows 10及以上版本。
“人生苦短,我要用Python。”;選用該語言的另一個原因是Python語言是目前較為廣泛流行的語言,是世界上使用人員最多的語言,在大數(shù)據(jù)處理、人工智能開發(fā)更是首選語言,并且烏魯木齊職業(yè)大學(xué)剛開始開設(shè)該語言課程,因此選用該語言展示其魅力,以便促進各程序語言的使用者喜愛并熟練使用此語言。
輸入數(shù)據(jù)文件為Excel文件,可以接受擴展名為(.xls,.xlsx)兩種格式的文件。要求每個學(xué)期數(shù)據(jù)由兩個sheet組成,前一個為學(xué)員成績表、后一個為學(xué)員不良記錄表,可以存放多個學(xué)期的數(shù)據(jù)。但一個學(xué)期的兩個sheet要挨著存放,即使該學(xué)期無有不良記錄表,也要存放一個只有表頭而無數(shù)據(jù)的sheet。每個sheet數(shù)據(jù)表格的格式可以不受限制,但要求要有如下幾個數(shù)據(jù)項[‘課程名稱’,‘課程ID’,‘學(xué)生姓名’,‘學(xué)號/工號’,‘綜合成績’],而且數(shù)據(jù)項名稱不得改變。
程序的難點是3個軟件包的使用,Pandas是做數(shù)據(jù)分析使用的,其使用環(huán)境更適合于行運行,直接應(yīng)用于桌面程序中是一嘗試;PyQt5是做界面的,matPlotlib是作圖軟件包有自己的界面。本系統(tǒng)中將matPlotlib封裝為一個類作為Qt的一個控件,嵌套于Qt界面中,具有重復(fù)應(yīng)用性。
烏魯木齊職業(yè)大學(xué)網(wǎng)絡(luò)選修課統(tǒng)計分析如圖1所示,可以看出,界面包括一行簡單的菜單欄和窗口區(qū),菜單欄實現(xiàn)數(shù)據(jù)表文件的加載,是打開Excel文件的多個工作表。窗口區(qū)是實現(xiàn)程序的3項功能:總體評價、學(xué)生成績查詢、按課程統(tǒng)計。依次從上到下,每個功能使用的控件包含在一個組合框內(nèi),以便于用戶區(qū)分。
圖1 烏魯木齊職業(yè)大學(xué)網(wǎng)絡(luò)選修課統(tǒng)計分析
(1)總體評價:使用了一個選擇框,4個單行文本框,5個靜態(tài)文本框。選擇框供用戶選擇學(xué)期,其內(nèi)容根據(jù)加載的文件自動更新;4個文本框用于顯示統(tǒng)計得到的結(jié)果,為了防止用戶在文本框中輸入信息,文本框做了只讀限制;靜態(tài)框用于上述控件的標注。
(2)學(xué)生成績查詢:輸入的是學(xué)號,系統(tǒng)查詢顯示姓名和4門課程信息,使用了文本框和靜態(tài)框。其中一個文本框是用于輸入學(xué)生號,只允許輸入數(shù)字,不能超過12位;其余文本框用于顯示查詢的結(jié)果,均已做了只讀處理;用于顯示相應(yīng)數(shù)據(jù)是正常還是不良記錄標識使用了靜態(tài)框。
(3)按課程統(tǒng)計:使用了3組控件,用于同時3門課程成績的查詢,每組控件包括一個選擇框、兩個文本框、3個靜態(tài)框。選擇框用于選擇課程,其內(nèi)容隨學(xué)期選擇而自動改變;兩個文本框用于顯示查詢統(tǒng)計的內(nèi)容,都做了只讀處理;一個繪圖控件,用于繪制3門成績分數(shù)區(qū)間的直方圖,圖帶有軸標題、軸標注、圖例與網(wǎng)格。
數(shù)據(jù)預(yù)處理是指數(shù)據(jù)自文件到內(nèi)存,是用戶看不到的功能,卻是為后續(xù)功能提供支持而不可或缺的。系統(tǒng)將每個季度的兩個sheet的數(shù)據(jù),通過處理存儲在一個Pandas的一個DataFrame對象中,為后續(xù)的計算提供了方便,盡管數(shù)據(jù)文件數(shù)據(jù)項很多,但裝入內(nèi)存的只是需要的有限的幾列數(shù)據(jù),從而節(jié)約了內(nèi)存。
系統(tǒng)功能包括總體評價、學(xué)生成績查詢、課程情況查詢3項。雖然Python語言是解釋性語言,執(zhí)行性能差,但在功能實現(xiàn)上均使用Pandas提供的內(nèi)部函數(shù),因為其是用C語言實現(xiàn)的,因此系統(tǒng)的執(zhí)行效率并沒有下降。
2.7.1 總體評價
整體情況統(tǒng)計的數(shù)據(jù)包括:考試人次、考生數(shù)、開設(shè)課程門數(shù),還有及格人次數(shù)??荚嚾舜螖?shù)是數(shù)據(jù)中心的總行數(shù),通過DataFrame的shape屬性完成;選課學(xué)生數(shù)是學(xué)生號不重復(fù)的所有行數(shù),學(xué)生號不重復(fù)數(shù)據(jù)通過DataFrame的函數(shù)unique()提取得到,返回的是一個數(shù)列,求取長度即可得到所需要的值;開設(shè)課程門數(shù)用求取學(xué)生數(shù)同樣的方法可以得到;及格人次數(shù)通過DataFrame條件查找語句DataFrame([‘綜合成績’]>59.99)即可提取到所有及格的數(shù)據(jù),在對其統(tǒng)計行數(shù)即可得到。
2.7.2 學(xué)生成績查詢
本功能是通過學(xué)生號找到相應(yīng)的記錄,通過DataFrame查找條件為[‘學(xué)號/工號’] == 輸入的學(xué)生號的一個查找語句完成,查找到的結(jié)果是包含多個記錄的數(shù)據(jù)列,對其進行遍歷,將數(shù)據(jù)寫入相應(yīng)的控件。
說明:成績狀態(tài)是顯示“正?!焙汀安涣加涗洝?,“不良記錄”是該學(xué)號的學(xué)生在“不良記錄”表里存在,否則顯示“正常”。
2.7.3 按課程統(tǒng)計
本功能是參加某課程的人數(shù)以及及格人數(shù)的獲取,上文已詳細介紹。在此重點介紹Pandas提供的數(shù)據(jù)分割分類功能。假如已經(jīng)提取了某門課程的所有數(shù)據(jù)集于data(其為DataFrame結(jié)構(gòu),是所有數(shù)據(jù)的一個子集),需要設(shè)計分割器數(shù)據(jù)表,本系統(tǒng)中如下:
cutdata=[-0.01,0.01,9.99,19.99,29.99,39.99,49.99,59.99,69.99,79.99,89.99,101]
這是一個列表,是由數(shù)據(jù)分割的分割點值組成,其分割采用下邊界開放,上邊界閉合的方式,也就是對于上述設(shè)計的分割器所做的結(jié)果是(-0.01,0.01],(0.01,9.99],(9.99,19.99],(19.99,29.99],(29.99,39.99],(39.99,49.99],(49.99,59.99],(59.99,69.99],(69.99,79.99],(79.99,89.99],(89.99,101]]共11段,如此設(shè)計是考慮成績分數(shù)的特點以及避開浮點數(shù)進行等于判斷。實際達到的分割效果如下:
[0],(0,10),[10,20),[20,30),[30,40),[40,50),[50,60),[60,70),[70,80),[80,90),[90,100]準備好了數(shù)據(jù)及數(shù)據(jù)分割器,就可以分割:
cj_cut = Pandas.cut(data[‘綜合成績’],bins=self.cutdata )該函數(shù)實現(xiàn)了對每一個數(shù)據(jù)進行分割歸類,分類后對各類數(shù)據(jù)個數(shù)進行統(tǒng)計:
classdata = cj_cut.value_counts(sort=False)對分割分類的數(shù)據(jù)進行統(tǒng)計,也就是每類有多少個數(shù)據(jù),參數(shù)為假,表示統(tǒng)計結(jié)果不排序,按上述提供的分段區(qū)間順序。說明:0分學(xué)生大部分是選修了課程,但沒有參加學(xué)習的情況,需要單獨統(tǒng)計。
2.7.4 打開文件模塊設(shè)計
由于原始Excel文件數(shù)據(jù)量大,打開文件需要時間等待,考慮增加提示信息狀態(tài)欄self.statusBar().showMessage(“正在打開文件!”)。目前,只考慮源文件格式是xls和xlsx,否則,用信息框顯示提示信息“該程序不支持該格式文件!”。本文使用pd.read_excel()函數(shù)來讀取Excel文件:data_df =pd.read_excel(filename,sheet_name=None),將數(shù)據(jù)存入包含sheet表、行、列的三維表中,循環(huán)依此處理每個學(xué)期的成績數(shù)據(jù)和對應(yīng)該學(xué)期的不良記錄。
目前,該系統(tǒng)只是單機版的基于Excel表格的統(tǒng)計分析系統(tǒng)。后期可以考慮將每年的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,建立基于C/S或B/S的網(wǎng)絡(luò)版系統(tǒng)軟件,建立有權(quán)限控制的網(wǎng)上查詢,給教學(xué)秘書、導(dǎo)學(xué)教師、學(xué)生分配不同的查詢和管理權(quán)限。系統(tǒng)可以增加歷年的課程成績比較圖表、以表格形式展現(xiàn)一個班學(xué)生的成績、成績的查詢結(jié)果實時打印等功能,還可以實現(xiàn)手機端APP查詢功能等。
網(wǎng)絡(luò)課程線上資源豐富,通過該平臺,學(xué)生可以領(lǐng)略各高校知名學(xué)者教授的風采,學(xué)習其精心完成的課程內(nèi)容,對提高各專業(yè)教師能力也是很好的平臺。因此,網(wǎng)絡(luò)課程可以是全員參與的較好學(xué)習方式,建議學(xué)校的管理層后期可以考慮學(xué)校教務(wù)處和各個學(xué)院老師溝通,建立專業(yè)教師的個人學(xué)習發(fā)展平臺,督促教師拓展和提高知識和技能。完善學(xué)校網(wǎng)上選課系統(tǒng)和公司網(wǎng)絡(luò)課程平臺的相互鏈接,建立老師和學(xué)生都可以參與的網(wǎng)絡(luò)課程學(xué)習系統(tǒng)。