唐 麟,汪華登
(桂林電子科技大學計算機與信息安全學院,廣西桂林 541004)
實驗教學是一項重在過程的教學工作[1-2],實驗教學過程登記管理是實驗教學過程不可缺少的環節。加強實驗教學過程登記管理,有利于促進實驗教學目標的達成。持續改進是工程教育專業認證的核心理念之一[3-4],要實現實驗的持續改進,需要對實驗教學過程中的記錄數據進行分析,完善的實驗教學過程登記能為持續改進分析提供完整真實數據。
實驗教學過程登記具有登記實驗項目個數多、學生人數多、數據量大等特點。實驗成績通常由平時成績和實驗考核成績組成,平時成績由多個實驗項目成績組成。各實驗項目需要登記實驗驗收成績和實驗報告成績。實驗課程結束時,平時成績由各實驗項目成績按照大綱規定比例計算得出,并與考核成績共同組成學生最終的實驗成績。
傳統的實驗教學過程登記載體是紙質實驗教學過程登記表,后續也有電子版實驗教學過程登記表。紙質實驗教學過程登記表易攜帶,但在數據查找登記、備份、統計分析上有缺陷。電子版實驗教學過程登記表不能同時滿足便于攜帶和方便登記要求,并且在進行數據統計分析時需要根據不同課程大綱要求編寫復雜的公式進行計算。
伴隨著移動應用開發的普及,一些移動軟件用于教學管理[5-9],但現有文獻未有實驗教學過程登記管理相關APP 記載。為滿足實驗教學需求,依據多年實驗教學經驗,筆者設計基于Android 的實驗教學過程登記軟件并運用于實驗教學活動。軟件緊扣實驗教學過程登記環節設計多個實用功能,能克服包括電子版在內的原有實驗教學過程登記方案缺點,具備便攜、登記信息一目了然、易于備份、統計數據方便等優點。
實驗教學過程登記軟件設計時需要考慮如何方便教師進行實驗教學過程數據的記錄與統計,以便及時發現個別學生的實驗異常情況。根據多年實驗教學經驗,一個方便易用的實驗教學過程登記軟件需要的主要功能如圖1所示。

Fig.1 Main functional modules of experimental teaching process registration software圖1 實驗教學過程登記軟件主要功能模塊
如何將各項功能設計得方便易用,切合實際,具備使用價值,是需要重點考慮的問題。
實驗教學過程信息記錄通過SQLite 數據庫[10]進行保存。
數據庫設計使用課程信息表保存實驗基本信息;使用實驗項目表保存實驗的全部項目信息;每門實驗都有單獨的學生學習情況記錄表,用于保存學生實驗完成情況。
(1)課程信息表保存實驗基本信息,如表1 所示。

Table 1 Course information表1 課程信息
(2)項目信息表中記錄所有實驗課程全部項目信息,如表2 所示。

Table 2 Project information表2 項目信息
(3)每門課程都有單獨的學生學習情況記錄表,表中字段數會因不同課程具有不同項目數而有所不同,如表3所示。用戶新建課程時輸入實驗項目個數,系統會根據實驗項目個數動態創建本課程學生學習情況記錄表。限于篇幅,表3 僅列出1 個實驗項目的特殊情況作為例子。實驗項目數都會超過1 個,因此有關項目情況的字段會成倍增加。

Table 3 Records of students'learning(one for each course)表3 學生學習情況記錄(每門課程一張表)
基于Android 平臺功能強大、開源以及便攜等優點[11],系統使用Android Studio 作為開發工具進行開發。
界面設計采用Material Design 并使用Design Support庫。Design Support 庫將Material Design 中最具代表性的控件和效果進行封裝,比如Toolbar、FloatingActionButton、Snackbar、RecyclerView 等[12]。
實驗教學過程登記軟件設計多個activity,并使用Toolbar 作為自定義的標題欄,使用浮動控制按鈕FloatingActionButton 方便用戶在保存實驗課程和保存學生平時記錄時點擊,使用Snackbar 在數據保存時給予用戶提示信息。
圖2 為實驗教學過程登記軟件主界面。為方便教師選擇課程,各門課程按創建時間先后排列,新創建的課程在最上方顯示。課程基本信息顯示中左側是課程名稱,右側是選課人數。通過主界面中兩個浮動控制按鈕進行課程的添加和刪除。
(1)學生平時實驗情況登記實現。學生平時實驗情況登記是實驗教學過程登記軟件的重要功能。使用RecyclerView 替代ListView 顯示學生成績信息。在界面上方有兩個按鈕,點擊后會加載不同的Fragment。
點擊“學生”按鈕,在打開的頁面中通過搜索方式列出需要登記平時實驗情況的學生。學生的搜索方式分為模糊查找和從csv 文件導入名單這兩種方式。點擊“項目”按鈕,在打開的頁面中選擇需要登記的實驗項目,可精準設置需要登記的實驗項目具體內容。
圖3 所示界面中將相鄰學生記錄用不同色塊標識。教師在學生平時實驗情況登記處使用下拉列表方式錄入成績,可自由選擇百分制或等級制。當點擊位于界面右下角的浮動控制按鈕時,用戶選擇就會被保存到數據庫對應課程的學習情況記錄表中。

Fig.2 Main interface圖2 主界面

Fig.3 Registration interface of students'usual experiments圖3 學生平時實驗情況登記界面
(2)實驗過程登記表預覽實現。實驗教學過程登記軟件可通過預覽功能隨時查看所有學生實驗情況。能根據教師設置的各項成績比例快速生成成績匯總并顯示,如圖4 所示。因篇幅原因,圖4 僅截取部分顯示內容。預覽采用github.com 上的開源項目TableFixHeaders 進行表格顯示[13]。該開源項目中的表格支持固定表頭上下和左右兩個方向滾動,并能通過配色將每行的數據更清晰地顯示。使用TableFixHeaders 時需要設置表頭、表格中顯示記錄條數以及表格中需要顯示的數據。預覽生成前,用戶需要根據實驗大綱設置成績比例。表格中顯示的數據信息都是從數據庫中學生學習情況記錄表中提取,或按用戶設置比例計算得到。預覽平時成績時會根據當前記錄以及用戶之前設置計算得出。預覽功能能查看學生各個項目學習情況,及時發現學習異常情況,方便督促學生學習。

Fig.4 Preview effect of registration form of experimental teaching process(part)圖4 實驗教學過程登記表預覽效果(部分)
(3)實驗教學過程登記表導出實現。實驗教學過程登記軟件可隨時導出符合存檔要求的電子版實驗教學過程登記表并存放到手機上。電子版實驗教學過程登記表導出采用github.com 上成熟的開源項目Android-Multiplefile-Selector-Dialog[14],該開源項目能在用戶指定位置創建文件夾并可同時選擇多個文檔進行操作,從文件批量導入學生名單或批量導入學生平時實驗情況時也可使用。
JXL 和POI 都是常用的通過Java 操作Excel 表格的工具類庫,但在Android 平臺上因需導出的實驗過程登記數據量較大,如果直接使用現有的JXL 或者POI 會出錯。解決方案為先構造網頁形式的教學過程登記表,再將其轉換為Excel 格式。
具體開發過程:先將符合存檔要求的實驗教學過程登記表模板保存為單個文件網頁類型,之后用記事本打開該文件進行分析。該文件由3 部分組成,第一部分和第三部分都是有關文件格式的內容,所有采用同樣模板格式的實驗教學過程登記表這兩部分內容都是一樣的。文件中間部分是學生各實驗項目的學習情況記錄,每個實驗不一樣。因此,將相同的第一部分和第三部分單獨復制出來,分別命名為labfront.txt 和labrear.txt,并放到Android 應用開發的assets 目錄中。當用戶需要導出電子版的實驗教學過程登記表時,從數據庫的學生學習情況記錄表中提取出信息,通過程序循環生成文檔的第二部分,再與assets 目錄中保存的文檔第一部分和第三部分合并,最終生成符合存檔格式要求的電子表格文檔,并將最終文檔命名為xls 文檔。生成的電子表格文檔可像普通電子表格文檔一樣編輯使用。
基于Android 的實驗教學過程登記軟件能保存教師歷年指導的所有實驗課程記錄信息。教師實驗前先創建實驗課程,并將學生名單從教務系統或從存放有學生名單信息的文件導入。
教師在登記學生實驗完成情況時,可攜帶安裝本軟件的手機到學生座位處進行記錄。軟件可單獨搜索需要登記實驗情況的學生和需要登記的實驗項目,并采用醒目方式顯示出來,相比傳統實驗教學過程登記表能避免登記錯行情況發生。同時,軟件能隨時預覽全體學生實驗情況,在預覽時能同步計算當前學生平時成績,也能通過搜索方式查找學生,查看指定學生的學習情況。
教師可根據大綱為不同課程設置不同成績計算比例,平時成績和總評成績能根據用戶所設置的比例自動計算得出。同時軟件能進行基本的成績統計,可在填寫各項分析數據時使用,教師也可隨時導出電子版實驗教學過程登記表用于存檔。
基于Android 的實驗教學過程登記軟件于2016 年初步設計完成并陸續在多門實驗課中使用,為規范實驗教學過程登記管理提供支持。軟件使用過程中,根據用戶建議不斷完善操作細節并增加一些功能。改進后軟件操作簡便,能方便收集與統計基礎數據,為工程教育專業認證提供翔實的基礎數據,并為實驗教學過程管理的規范化、數字化提供支持。未來可考慮繼續提升軟件使用靈活性,如根據用戶選擇導出多種樣式的過程登記表格,擴大軟件適用范圍。