唐 麟,汪華登
(桂林電子科技大學(xué)計(jì)算機(jī)與信息安全學(xué)院,廣西桂林 541004)
實(shí)驗(yàn)教學(xué)是一項(xiàng)重在過(guò)程的教學(xué)工作[1-2],實(shí)驗(yàn)教學(xué)過(guò)程登記管理是實(shí)驗(yàn)教學(xué)過(guò)程不可缺少的環(huán)節(jié)。加強(qiáng)實(shí)驗(yàn)教學(xué)過(guò)程登記管理,有利于促進(jìn)實(shí)驗(yàn)教學(xué)目標(biāo)的達(dá)成。持續(xù)改進(jìn)是工程教育專業(yè)認(rèn)證的核心理念之一[3-4],要實(shí)現(xiàn)實(shí)驗(yàn)的持續(xù)改進(jìn),需要對(duì)實(shí)驗(yàn)教學(xué)過(guò)程中的記錄數(shù)據(jù)進(jìn)行分析,完善的實(shí)驗(yàn)教學(xué)過(guò)程登記能為持續(xù)改進(jìn)分析提供完整真實(shí)數(shù)據(jù)。
實(shí)驗(yàn)教學(xué)過(guò)程登記具有登記實(shí)驗(yàn)項(xiàng)目個(gè)數(shù)多、學(xué)生人數(shù)多、數(shù)據(jù)量大等特點(diǎn)。實(shí)驗(yàn)成績(jī)通常由平時(shí)成績(jī)和實(shí)驗(yàn)考核成績(jī)組成,平時(shí)成績(jī)由多個(gè)實(shí)驗(yàn)項(xiàng)目成績(jī)組成。各實(shí)驗(yàn)項(xiàng)目需要登記實(shí)驗(yàn)驗(yàn)收成績(jī)和實(shí)驗(yàn)報(bào)告成績(jī)。實(shí)驗(yàn)課程結(jié)束時(shí),平時(shí)成績(jī)由各實(shí)驗(yàn)項(xiàng)目成績(jī)按照大綱規(guī)定比例計(jì)算得出,并與考核成績(jī)共同組成學(xué)生最終的實(shí)驗(yàn)成績(jī)。
傳統(tǒng)的實(shí)驗(yàn)教學(xué)過(guò)程登記載體是紙質(zhì)實(shí)驗(yàn)教學(xué)過(guò)程登記表,后續(xù)也有電子版實(shí)驗(yàn)教學(xué)過(guò)程登記表。紙質(zhì)實(shí)驗(yàn)教學(xué)過(guò)程登記表易攜帶,但在數(shù)據(jù)查找登記、備份、統(tǒng)計(jì)分析上有缺陷。電子版實(shí)驗(yàn)教學(xué)過(guò)程登記表不能同時(shí)滿足便于攜帶和方便登記要求,并且在進(jìn)行數(shù)據(jù)統(tǒng)計(jì)分析時(shí)需要根據(jù)不同課程大綱要求編寫復(fù)雜的公式進(jìn)行計(jì)算。
伴隨著移動(dòng)應(yīng)用開發(fā)的普及,一些移動(dòng)軟件用于教學(xué)管理[5-9],但現(xiàn)有文獻(xiàn)未有實(shí)驗(yàn)教學(xué)過(guò)程登記管理相關(guān)APP 記載。為滿足實(shí)驗(yàn)教學(xué)需求,依據(jù)多年實(shí)驗(yàn)教學(xué)經(jīng)驗(yàn),筆者設(shè)計(jì)基于Android 的實(shí)驗(yàn)教學(xué)過(guò)程登記軟件并運(yùn)用于實(shí)驗(yàn)教學(xué)活動(dòng)。軟件緊扣實(shí)驗(yàn)教學(xué)過(guò)程登記環(huán)節(jié)設(shè)計(jì)多個(gè)實(shí)用功能,能克服包括電子版在內(nèi)的原有實(shí)驗(yàn)教學(xué)過(guò)程登記方案缺點(diǎn),具備便攜、登記信息一目了然、易于備份、統(tǒng)計(jì)數(shù)據(jù)方便等優(yōu)點(diǎn)。
實(shí)驗(yàn)教學(xué)過(guò)程登記軟件設(shè)計(jì)時(shí)需要考慮如何方便教師進(jìn)行實(shí)驗(yàn)教學(xué)過(guò)程數(shù)據(jù)的記錄與統(tǒng)計(jì),以便及時(shí)發(fā)現(xiàn)個(gè)別學(xué)生的實(shí)驗(yàn)異常情況。根據(jù)多年實(shí)驗(yàn)教學(xué)經(jīng)驗(yàn),一個(gè)方便易用的實(shí)驗(yàn)教學(xué)過(guò)程登記軟件需要的主要功能如圖1所示。
Fig.1 Main functional modules of experimental teaching process registration software圖1 實(shí)驗(yàn)教學(xué)過(guò)程登記軟件主要功能模塊
如何將各項(xiàng)功能設(shè)計(jì)得方便易用,切合實(shí)際,具備使用價(jià)值,是需要重點(diǎn)考慮的問(wèn)題。
實(shí)驗(yàn)教學(xué)過(guò)程信息記錄通過(guò)SQLite 數(shù)據(jù)庫(kù)[10]進(jìn)行保存。
數(shù)據(jù)庫(kù)設(shè)計(jì)使用課程信息表保存實(shí)驗(yàn)基本信息;使用實(shí)驗(yàn)項(xiàng)目表保存實(shí)驗(yàn)的全部項(xiàng)目信息;每門實(shí)驗(yàn)都有單獨(dú)的學(xué)生學(xué)習(xí)情況記錄表,用于保存學(xué)生實(shí)驗(yàn)完成情況。
(1)課程信息表保存實(shí)驗(yàn)基本信息,如表1 所示。
Table 1 Course information表1 課程信息
(2)項(xiàng)目信息表中記錄所有實(shí)驗(yàn)課程全部項(xiàng)目信息,如表2 所示。
Table 2 Project information表2 項(xiàng)目信息
(3)每門課程都有單獨(dú)的學(xué)生學(xué)習(xí)情況記錄表,表中字段數(shù)會(huì)因不同課程具有不同項(xiàng)目數(shù)而有所不同,如表3所示。用戶新建課程時(shí)輸入實(shí)驗(yàn)項(xiàng)目個(gè)數(shù),系統(tǒng)會(huì)根據(jù)實(shí)驗(yàn)項(xiàng)目個(gè)數(shù)動(dòng)態(tài)創(chuàng)建本課程學(xué)生學(xué)習(xí)情況記錄表。限于篇幅,表3 僅列出1 個(gè)實(shí)驗(yàn)項(xiàng)目的特殊情況作為例子。實(shí)驗(yàn)項(xiàng)目數(shù)都會(huì)超過(guò)1 個(gè),因此有關(guān)項(xiàng)目情況的字段會(huì)成倍增加。
Table 3 Records of students'learning(one for each course)表3 學(xué)生學(xué)習(xí)情況記錄(每門課程一張表)
基于Android 平臺(tái)功能強(qiáng)大、開源以及便攜等優(yōu)點(diǎn)[11],系統(tǒng)使用Android Studio 作為開發(fā)工具進(jìn)行開發(fā)。
界面設(shè)計(jì)采用Material Design 并使用Design Support庫(kù)。Design Support 庫(kù)將Material Design 中最具代表性的控件和效果進(jìn)行封裝,比如Toolbar、FloatingActionButton、Snackbar、RecyclerView 等[12]。
實(shí)驗(yàn)教學(xué)過(guò)程登記軟件設(shè)計(jì)多個(gè)activity,并使用Toolbar 作為自定義的標(biāo)題欄,使用浮動(dòng)控制按鈕FloatingActionButton 方便用戶在保存實(shí)驗(yàn)課程和保存學(xué)生平時(shí)記錄時(shí)點(diǎn)擊,使用Snackbar 在數(shù)據(jù)保存時(shí)給予用戶提示信息。
圖2 為實(shí)驗(yàn)教學(xué)過(guò)程登記軟件主界面。為方便教師選擇課程,各門課程按創(chuàng)建時(shí)間先后排列,新創(chuàng)建的課程在最上方顯示。課程基本信息顯示中左側(cè)是課程名稱,右側(cè)是選課人數(shù)。通過(guò)主界面中兩個(gè)浮動(dòng)控制按鈕進(jìn)行課程的添加和刪除。
(1)學(xué)生平時(shí)實(shí)驗(yàn)情況登記實(shí)現(xiàn)。學(xué)生平時(shí)實(shí)驗(yàn)情況登記是實(shí)驗(yàn)教學(xué)過(guò)程登記軟件的重要功能。使用RecyclerView 替代ListView 顯示學(xué)生成績(jī)信息。在界面上方有兩個(gè)按鈕,點(diǎn)擊后會(huì)加載不同的Fragment。
點(diǎn)擊“學(xué)生”按鈕,在打開的頁(yè)面中通過(guò)搜索方式列出需要登記平時(shí)實(shí)驗(yàn)情況的學(xué)生。學(xué)生的搜索方式分為模糊查找和從csv 文件導(dǎo)入名單這兩種方式。點(diǎn)擊“項(xiàng)目”按鈕,在打開的頁(yè)面中選擇需要登記的實(shí)驗(yàn)項(xiàng)目,可精準(zhǔn)設(shè)置需要登記的實(shí)驗(yàn)項(xiàng)目具體內(nèi)容。
圖3 所示界面中將相鄰學(xué)生記錄用不同色塊標(biāo)識(shí)。教師在學(xué)生平時(shí)實(shí)驗(yàn)情況登記處使用下拉列表方式錄入成績(jī),可自由選擇百分制或等級(jí)制。當(dāng)點(diǎn)擊位于界面右下角的浮動(dòng)控制按鈕時(shí),用戶選擇就會(huì)被保存到數(shù)據(jù)庫(kù)對(duì)應(yīng)課程的學(xué)習(xí)情況記錄表中。
Fig.2 Main interface圖2 主界面
Fig.3 Registration interface of students'usual experiments圖3 學(xué)生平時(shí)實(shí)驗(yàn)情況登記界面
(2)實(shí)驗(yàn)過(guò)程登記表預(yù)覽實(shí)現(xiàn)。實(shí)驗(yàn)教學(xué)過(guò)程登記軟件可通過(guò)預(yù)覽功能隨時(shí)查看所有學(xué)生實(shí)驗(yàn)情況。能根據(jù)教師設(shè)置的各項(xiàng)成績(jī)比例快速生成成績(jī)匯總并顯示,如圖4 所示。因篇幅原因,圖4 僅截取部分顯示內(nèi)容。預(yù)覽采用github.com 上的開源項(xiàng)目TableFixHeaders 進(jìn)行表格顯示[13]。該開源項(xiàng)目中的表格支持固定表頭上下和左右兩個(gè)方向滾動(dòng),并能通過(guò)配色將每行的數(shù)據(jù)更清晰地顯示。使用TableFixHeaders 時(shí)需要設(shè)置表頭、表格中顯示記錄條數(shù)以及表格中需要顯示的數(shù)據(jù)。預(yù)覽生成前,用戶需要根據(jù)實(shí)驗(yàn)大綱設(shè)置成績(jī)比例。表格中顯示的數(shù)據(jù)信息都是從數(shù)據(jù)庫(kù)中學(xué)生學(xué)習(xí)情況記錄表中提取,或按用戶設(shè)置比例計(jì)算得到。預(yù)覽平時(shí)成績(jī)時(shí)會(huì)根據(jù)當(dāng)前記錄以及用戶之前設(shè)置計(jì)算得出。預(yù)覽功能能查看學(xué)生各個(gè)項(xiàng)目學(xué)習(xí)情況,及時(shí)發(fā)現(xiàn)學(xué)習(xí)異常情況,方便督促學(xué)生學(xué)習(xí)。
Fig.4 Preview effect of registration form of experimental teaching process(part)圖4 實(shí)驗(yàn)教學(xué)過(guò)程登記表預(yù)覽效果(部分)
(3)實(shí)驗(yàn)教學(xué)過(guò)程登記表導(dǎo)出實(shí)現(xiàn)。實(shí)驗(yàn)教學(xué)過(guò)程登記軟件可隨時(shí)導(dǎo)出符合存檔要求的電子版實(shí)驗(yàn)教學(xué)過(guò)程登記表并存放到手機(jī)上。電子版實(shí)驗(yàn)教學(xué)過(guò)程登記表導(dǎo)出采用github.com 上成熟的開源項(xiàng)目Android-Multiplefile-Selector-Dialog[14],該開源項(xiàng)目能在用戶指定位置創(chuàng)建文件夾并可同時(shí)選擇多個(gè)文檔進(jìn)行操作,從文件批量導(dǎo)入學(xué)生名單或批量導(dǎo)入學(xué)生平時(shí)實(shí)驗(yàn)情況時(shí)也可使用。
JXL 和POI 都是常用的通過(guò)Java 操作Excel 表格的工具類庫(kù),但在Android 平臺(tái)上因需導(dǎo)出的實(shí)驗(yàn)過(guò)程登記數(shù)據(jù)量較大,如果直接使用現(xiàn)有的JXL 或者POI 會(huì)出錯(cuò)。解決方案為先構(gòu)造網(wǎng)頁(yè)形式的教學(xué)過(guò)程登記表,再將其轉(zhuǎn)換為Excel 格式。
具體開發(fā)過(guò)程:先將符合存檔要求的實(shí)驗(yàn)教學(xué)過(guò)程登記表模板保存為單個(gè)文件網(wǎng)頁(yè)類型,之后用記事本打開該文件進(jìn)行分析。該文件由3 部分組成,第一部分和第三部分都是有關(guān)文件格式的內(nèi)容,所有采用同樣模板格式的實(shí)驗(yàn)教學(xué)過(guò)程登記表這兩部分內(nèi)容都是一樣的。文件中間部分是學(xué)生各實(shí)驗(yàn)項(xiàng)目的學(xué)習(xí)情況記錄,每個(gè)實(shí)驗(yàn)不一樣。因此,將相同的第一部分和第三部分單獨(dú)復(fù)制出來(lái),分別命名為labfront.txt 和labrear.txt,并放到Android 應(yīng)用開發(fā)的assets 目錄中。當(dāng)用戶需要導(dǎo)出電子版的實(shí)驗(yàn)教學(xué)過(guò)程登記表時(shí),從數(shù)據(jù)庫(kù)的學(xué)生學(xué)習(xí)情況記錄表中提取出信息,通過(guò)程序循環(huán)生成文檔的第二部分,再與assets 目錄中保存的文檔第一部分和第三部分合并,最終生成符合存檔格式要求的電子表格文檔,并將最終文檔命名為xls 文檔。生成的電子表格文檔可像普通電子表格文檔一樣編輯使用。
基于Android 的實(shí)驗(yàn)教學(xué)過(guò)程登記軟件能保存教師歷年指導(dǎo)的所有實(shí)驗(yàn)課程記錄信息。教師實(shí)驗(yàn)前先創(chuàng)建實(shí)驗(yàn)課程,并將學(xué)生名單從教務(wù)系統(tǒng)或從存放有學(xué)生名單信息的文件導(dǎo)入。
教師在登記學(xué)生實(shí)驗(yàn)完成情況時(shí),可攜帶安裝本軟件的手機(jī)到學(xué)生座位處進(jìn)行記錄。軟件可單獨(dú)搜索需要登記實(shí)驗(yàn)情況的學(xué)生和需要登記的實(shí)驗(yàn)項(xiàng)目,并采用醒目方式顯示出來(lái),相比傳統(tǒng)實(shí)驗(yàn)教學(xué)過(guò)程登記表能避免登記錯(cuò)行情況發(fā)生。同時(shí),軟件能隨時(shí)預(yù)覽全體學(xué)生實(shí)驗(yàn)情況,在預(yù)覽時(shí)能同步計(jì)算當(dāng)前學(xué)生平時(shí)成績(jī),也能通過(guò)搜索方式查找學(xué)生,查看指定學(xué)生的學(xué)習(xí)情況。
教師可根據(jù)大綱為不同課程設(shè)置不同成績(jī)計(jì)算比例,平時(shí)成績(jī)和總評(píng)成績(jī)能根據(jù)用戶所設(shè)置的比例自動(dòng)計(jì)算得出。同時(shí)軟件能進(jìn)行基本的成績(jī)統(tǒng)計(jì),可在填寫各項(xiàng)分析數(shù)據(jù)時(shí)使用,教師也可隨時(shí)導(dǎo)出電子版實(shí)驗(yàn)教學(xué)過(guò)程登記表用于存檔。
基于Android 的實(shí)驗(yàn)教學(xué)過(guò)程登記軟件于2016 年初步設(shè)計(jì)完成并陸續(xù)在多門實(shí)驗(yàn)課中使用,為規(guī)范實(shí)驗(yàn)教學(xué)過(guò)程登記管理提供支持。軟件使用過(guò)程中,根據(jù)用戶建議不斷完善操作細(xì)節(jié)并增加一些功能。改進(jìn)后軟件操作簡(jiǎn)便,能方便收集與統(tǒng)計(jì)基礎(chǔ)數(shù)據(jù),為工程教育專業(yè)認(rèn)證提供翔實(shí)的基礎(chǔ)數(shù)據(jù),并為實(shí)驗(yàn)教學(xué)過(guò)程管理的規(guī)范化、數(shù)字化提供支持。未來(lái)可考慮繼續(xù)提升軟件使用靈活性,如根據(jù)用戶選擇導(dǎo)出多種樣式的過(guò)程登記表格,擴(kuò)大軟件適用范圍。