曾海,葛翔,尚鮮連
(蘇州市職業大學,蘇州215104)
近年來,高職院校教學管理的信息化程度正在不斷加深,以教務管理系統為代表的各類信息化系統已經成為工作標配,信息化技術的廣泛應用對教學管理的科學化、規范化起到了重要的促進作用。教育部《教育信息化2.0 行動計劃》指出,在1.0 時期教育信息化的基礎上,2.0 階段的教育信息化將作為推進教育現代化強大動力和教育變革的內生要素[1]。教學管理的信息化應適應新時代的要求,在系統互融互通和大數據效能發揮等方面跟上教育信息化2.0 的步伐。
高職院校的教學管理部門和二級學院教學管理機構是學校教學質量保證的重要力量,教學管理人員的信息化應用水平對教學管理的質量和效率有重要影響?,F存的教務管理、數據采集、畢業設計、頂崗實習等信息系統在給工作帶來便利的同時,在使用中也存在著一些亟待解決的問題。
(1)信息化系統之間存在“孤島效應”
“孤島效應”指的是各種信息無法順暢地各部門的信息系統之前流動,實際形成一個個孤立的、各自為政的信息系統[2]。不同的教學信息系統之間數據互通不順暢不僅會引起數據不一致,導致教學管理缺乏統一性和共享性[3],在工作中帶來的額外數據整理等操作還占用了教學管理人員大量的工作時間,降低了教學管理的效率。
(2)信息化系統應對變化能力較弱
信息系統在運行之初和業務需求契合度較高,但隨著時間的推移和教學改革的不斷深化,信息系統的功能與不斷變化的教學管理業務之間的匹配度通常會呈下降趨勢;盡管在原系統上進行增量開發可以解決部分問題,但是大型軟件開發周期長速度慢,無法及時滿足一些緊急需求;教學管理過程中急需的一些小功能開發工作量不大,公司的參與積極性不高。
(3)信息系統的功能存在缺陷和盲區
信息系統中的部分老舊功能模塊不能適應教學改革的新要求,需要通過人工操作進行例外處理,形成了功能缺陷;部分教學管理中急需使用的功能沒有得到信息系統的支持,形成了功能盲區。這些缺陷和盲區給管理人員帶來了額外的工作量,他們的精力不能完全集中于教學管理的核心業務,背離了教學管理實施信息化改革的初衷。
高職院校教學管理中使用的信息系統通常包括教務系統、數據采集系統、頂崗實習系統、畢業設計系統以及各類考試管理系統等。各個系統開發平臺不同,數據庫類型各異,軟件架構多樣。各系統數據在邏輯上互相關聯,但實際使用中這些關聯基本上需要通過手動方式實現,即關聯需要對數據進行導入、導出和校驗后才能建立。
例如,畢業設計管理系統與教務系統之間需要對接互通。每年的班級信息、專業信息、教研室主任信息均需要從教務系統中手動導出數據,將數據格式根據畢業設計管理系統要求進行整理后,使用其導入功能實現數據交換。若某個二級學院共有約1500 名學生,每屆學生500 余人,僅導入導出一次工作量并不算大,但在實際教學管理工作中,由于學籍變動等多種原因,需要反復執行數據的導入、導出、校驗等工作。
高職院校二級學院經常面臨不同場景下各類報表的填報工作,其中多來源數據歸并是此類工作場景中的共性需求。
(1)教學科研統計場景
在教學業績和科研業績的統計過程中,雖然大部分高職院校都有教科研成果統計系統,但由于統計時間、統計口徑、填報數據校驗等方面存在差異,信息系統的反應速度往往存在跟不上數據變化和統計口徑的變化,經常需要進行手工調整、制表后導入系統。統計過程中需要手工進行數據歸并、數據規范性檢查和數據交叉校驗等工作。
(2)畢業資格預審核場景
學生在畢業前需要進行畢業資格審核,即根據學生已獲取的各類學分和認證情況判斷其是否具備畢業資格。由于成績錄入、資格證書發放、重修補考等情況變化較快,存在成績暫時來不及輸入系統、已經通過考試但證書未到、畢業論文已經通過審核但還未答辯等問題,需要根據實際情況對畢業資格進行多輪手工預審。需要檢查的數據來自教學計劃、教務系統導出的成績表、負責培訓考證部門的表格等多個數據來源,在審核中需要完成數據歸并、數據規范性檢查和交叉檢驗等工作。
(3)頂崗實習學生情況跟蹤場景
在高職院校第五、第六學期,校、企、生三方可在協議保證下實施頂崗實習教學環節,對此環節進行管理的是頂崗實習系統;第六學期學生要進行畢業設計,對此環節進行管理的是畢業設計系統;學生成績的需要記錄,對此環節進行管理的是教務系統;學生參加升學考試,對此環節進行管理的是外部專用系統;在每位學生頂崗實習期間還有多份紙質過程文檔需要填寫。
對每一位學生而言,以上各系統缺一不可。多來源數據需要歸并在一張表中集中體現并動態更新,學校的教學管理機構才能及時掌控頂崗實習學生的實時動態。
作為基層教學單位,教務秘書和檔案管理員有大量的電子教學文檔需要檢查、統計、匯總。例如每門課程Word 格式的課程教學標準由學院教師各自撰寫并上交。課程教學標準的填寫規范檢查、工作進度統計匯總等常規工作卻處于信息化的真空地帶,一般由教學管理人員多次反復校對,類似的情況還存在于教學計劃核對匯總、個人科研成果簡表的填寫和匯總等。
以高職院校專業建設中需完成的課程標準為例,某二級學院在教學管理部門提供模板的基礎上組織各專業教師填寫。
在實際操作過程中,存在的問題有:①數據填寫不規范,必填字段沒有填寫或者內容不對;②數據校驗困難,在有數百份教學標準的情況下校驗費時費力;③數據統計困難,教學秘書需要手工從每個課程標準中提取作者等內容;④數據更新帶來的問題多,難以追蹤哪份教學標準改動了什么內容。
不同的信息化系統對接時經常出現數據形式不同的情況。以教務系統課表查詢結果與信息中心門禁開卡系統對接為例,每學期信息中心需要按課表為每位在某教室上課的教師開通門禁權限,兩個系統需進行數據互通。
教務系統導出的安排表中,因同一門課程可由多名教師在不同時間段授課,因此在同一行中存在授課地點重復的情況;同一教師可上多門課程,此時在不同行里同一教師的名字會出現多次,但信息中心門禁管理系統只接受教師名和教室名不重復的數據。只有將數據表現形式改變并去除重復數據后,兩個系統方能實際互通。
微軟Office 軟件內置的VBA 軟件能很好地適應以上應用場景。如孟美任利用VBA 編程實現自動化編務整合,提高了編務工作的效率[4];蘇苗苗基于VBA開發了聯合培養學生績點計算系統[5]。在高職院校教學管理領域中,以上常見問題大致可分為三類并進行解決。
多來源數據歸并是信息系統互通過程中的重要共性操作,使用VBA 開發的通用歸并函數適用于在不同場合下將多個子表中的數據并入總表的需求。數據歸并前首先要準備好一張包含主表和多張子表在內的數據文件,然后將函數插入Excel 文件并根據函數接口規范填寫參數表,最后通過Excel 的宏菜單運行程序并在主表中獲得歸并結果。函數的主要工作流程如圖1所示。
VBA 程序實現過程中的主要關鍵技術有:(1)每次表格中的數據行數不確定,須判斷當前Excel 文件中的數據行數,使用單元格的End 函數和xlUp 參數,如Range("A65536").End(xlUp).Row 可解決問題。(2)不同數據表中有不同的工作薄名和列名且行號持續變化。通過在Sheets 和Range 中使用參數即可根據實際數據表名和列名完成不同的功能,典型的代碼如下:
ThisWorkbook.Sheets(destSheetName)Range(mainKeyCol&i).Value)
程序將主表名存儲于destSheetName 中,將主表關鍵字列放在mainKeyCol 中,用變量i 控制行號掃描整個數據表。與Excel 的VLOOKUP 函數相比,自定義歸并函數的代碼可以同時處理多個數據列,具備檢查和標記錯誤、自動行號檢測和自動重復去除等功能,適用于教學科研統計、畢業資格預審核、頂崗實習學生情況跟蹤場景。
在教學管理過程中經常會遇到大批Word 或者Excel 文件需要進行規范化校驗和統計的情況。通用VBA程序要求教學管理人員將待處理的批量文件放入指定文件夾,修改程序模板,改變校驗字段名稱、規則和統計字段名稱,最后運行程序。程序根據校驗規則將校驗結果寫入目標文件,將提取的統計字段放入統計文件。即使源文件發生修改,重新運行程序時程序模板不再需要修改。函數的主要工作流程如圖2 所示。

圖2 批量文件的規范化校驗和統計流程
程序實現過程中技術難點有:
(1)文件列表獲取。通過Dir 函數獲取文件列表,用Documents 對象的Open 方法打開位于當前路徑下的文件:
myName=Dir(myPath&""&"*.doc")
Set wb=Documents.Open(myPath&""&myName)
(2)關鍵字定位。設定Selection 對象的參數,使用FindExecute 函數定位關鍵字:
Selection.Find.Text="撰寫人"
Selection.Find.Execute
(3)字段內容獲取。使用字符串功能取得字段內容
startPos=InStr(1,string1,"撰寫")
endPos=InStr(1,string1,"時間")
authorName=Mid(string1,startPos,endPos-startPos)
(4)動態生成文件。用Activate 函數激活個記錄文件后,寫入取得的字段內容。
ActiveDocument.Content.InsertAfter Text:=myName+","+authorName
(5)程序運行加速。由于程序在短時間內很快地打開和關閉大量文件,屏幕會快速刷新影響運行速度,將Application 對象的.ScreenUpdating 屬性設定為False關閉屏幕更新可顯著提高運行速度。
在此通用模板下改寫完成的各類VBA 程序適用于課程標準、各類教學計劃和各類申報表格的校驗匯總。
教務系統導出的課表、成績表等數據的教學管理中具有重要作用。教務系統導出的課表中由于存在一名教師上多門課程、多名教師上一門課程的問題,導出結果的單行數據中往往存在多名教師和多門課程,即數據方向是橫向的;實驗實訓管理系統和門禁管理系統等只接受一行中僅有一名教師或者一門課程的數據表現形式,即數據方向是縱向的。數據在橫向形式和縱向形式之間轉換后,不同的信息系統才能互通。
基于VBA 開發的通用數據轉換函數使用時,工作人員在教務系統導出文件,準備好表名、首行數據行號、關鍵字段名稱和待轉換字段名稱等參數,設定好目標工作表,運行后得到適用于其他信息化系統的規范數據。以教務系統數據向信息中心門禁管理系統數據轉換為例,工作流程如圖3 所示。

圖3 數據表現形式轉換處理流
程序實現時的技術難點主要有:
(1)橫向數據的分離及縱向化。對導出課表每一行數據執行Split(多個教師名字段,"/")函數,將結果放入val 列表;使用循環將橫向數據以縱向形式寫入目標數據表,分離課程名的技術原理相同,不同的是分隔符內容。
(2)數據自動排序。使用Sort 函數對數據進行單關鍵字或者多關鍵排序:
lastrow=.Cells(Rows.Count,1).End(xlUp).Row
.Range("A3:e"&lastrow).Sort Key1:=.Range(dCol),order1:=xlDescending…
(3)縱向數據向橫向數據格式轉換。縱向數據指的是一位教師在多個教室上課時,存在多條(教師、教室)數據,導入其他信息系統時很方便,但管理人員希望看到的報表格式更為直觀,如:(教師工號、教師姓名、以分隔符分開的教室名列表)的形式。程序掃描已排序數據并自動生成報表。
If(prevName=ThisWorkbook.Sheets("上課分布").Range("a"&i).Value)Then'名字一樣,拼接
roomString=roomString+ThisWorkbook.Sheets("上課分布").Range("b"&i).Value+"、"
prevName=ThisWorkbook.Sheets("上課分布").Range("a"&i).Value
Else'名字不一樣
reportCount=reportCount+1
ThisWorkbook.Sheets("申請報告").Range("a"&reportCount).Value=reportCount-1
End If
程序適合于教務系統和其他信息系統間的數據格式轉換,也適用于在期末考試期間生成以考場為主關鍵字的統計表格供巡考人員使用。
基于VBA 的微應用程序能顯著提高一線教學管理人員的工作效能,相關事務的處理效率可提高幾倍到幾十倍,對需要重復執行的數據操作效果尤佳。各典型應用場景下的程序實施成效如表1 所示。由于在設計中對常見問題進行了分類和抽象,形成的程序庫具備一定的通用性,在遇到新場景時只需對情況進行分析,挑選合適的函數進行直接調用或者選用程序模板進行簡單修改即可適應。

表1 基于VBA 的微應用程序實施成效
作為教學管理專用信息系統的有益補充,基于VBA 的微應用程序起到了對接各類信息系統、促進數據規范化、提升數據匯總及統計效率等重要作用。VBA 應用程序的局限性和優點同樣明顯:程序開發環境相對簡陋,只能適應一些簡單應用場景;程序以功能實現為主要目標,用戶界面簡陋,有時需要用戶根據說明書直接修改程序模板,因此開發人員要對教學管理人員進行面對面培訓;對程序開發者要求較高,在具備較強編碼能力的同時,程序設計人員還必須高度熟悉教學管理業務。在信息化基礎好、人員配置充足的院校里,程序的部署和實施成效相對更佳。在教學管理信息化水平不斷提高的過程中,基于VBA 的微應用程序在教學管理信息系統間的互通和功能的拾遺補缺等方面具備獨特的作用。