袁曉敏,吳德操,萬 君,譚必玉,陳洪余
(1.重慶市教育評估院;2.重慶理工大學 電氣與電子工程學院,重慶 400020)
問卷調查是用于收集資料的一種常用工具,根據載體不同,可分為紙質問卷填答和網絡問卷調查兩種形式。傳統紙質問卷調查方式費時費力、效率低。隨著網絡技術的發展,網絡問卷調查以簡單、快速、跨地域的優勢[1]被廣泛應用于學術研究領域。
為滿足信息采集需求,很多單位和部門研究開發了問卷調查系統。例如,王君[2]為及時了解患者需求,為醫院改善醫療環境、提升服務質量提供參考意見,開發了基于大數據技術的患者滿意度問卷調查系統;李云皓等[3]針對“對分課堂”教學模式的學習效果進行調查,設計了基于Web 的在線問卷調查系統,可使教師快速了解學生對課程的意見或建議;蔣艷華等[4]設計并實現了基于移動平臺的課程目標達成度問卷調查系統,該系統支持教師在線發布調查問卷,輕松了解學生對各知識點的掌握情況,有利于后續教學設計的優化;陸毅等[5]從醫院管理的角度出發對各類學會和期刊進行分類,對常見學術任職進行整理,并借助問卷星平臺構建了一套學術任職登記系統。
有別于一般的簡單社會調查,教育監測領域觀察指標維度豐富[6-7],調查對象復雜多樣,涉及學科門類眾多,網絡問卷調查的開展仍存在諸多難點,以上方法尚無法很好地解決。首先,大規模監測中的教師問卷環節涉及角色眾多,且存在一人兼任多種角色的現象,不同角色組合需要完成的題目亦不相同。傳統解決方式是對角色進行各種組合,分別制定不同問卷,人為根據角色進行分發。這種方式過于依賴前期采集數據,存在教師所答問卷與實際基本信息不相符的情況;而且問卷覆蓋范圍局限,容易造成兼任多角色的對象調查疏漏,這就要求網絡問卷調查系統具備問卷分發功能。此外,教育監測問卷題庫按照系列觀測指標與維度進行分組設置。在問卷填寫過程中,理想狀態是根據同一類角色的不同答題結果實時調整后續題組,從而實現調查結果的準確性與全面性。以往的系統題組跳轉功能不夠完善,通常只能采用不分角色全題庫、多學科聯合調查的方式替代,極易造成受試者疲勞,系統使用滿意度低,短時間、大規模、多學科測評的教學評價難以實現。現有商用問卷系統不能很好地滿足上述功能需求,且教育監測數據具有保密性,故亟需設計一種適用于教育行業大規模監測的專用問卷調查系統。
本課題組長期致力于大規模測試中問卷調查系統功能的研究,于2013 年提出一種支持邏輯跳轉與填答約束的網絡問卷調查系統實現方法[8]。該方法于2013-2017 年在重慶市基礎教育質量監測教師問卷調查中得到應用。隨著計算機技術的發展,以及教育行業監測需求及復雜程度的增加,課題組自2018 年起在已有功能的基礎上對系統進行了重構,作出以下改進:①基于指標與題目之間的邏輯關系,在系統中根據指標和觀測點對題目進行分類與層級管理;②增加大量新題型,題目和選項均采用富文本編輯,提高其趣味性和互動性;③在指標和觀測點上設置觸發跳轉功能,分角色控制好題目分類。在測試過程中,以觀測點為最小單位,依據受試者已有的答案組合和觸發跳轉設置屬性自動邏輯判斷,動態跳轉至后續題組;④在題目作答校驗中,除提供單題校驗外,還增加多題聯合約束功能。如此以來,既能保證被試者在合理測試時間內完成測驗,又能保證全面采集到有效數據。
本文結合2020 年和2022 年重慶市基礎教育質量監測教師問卷調查系統的設計與實現,具體探討如何在網絡問卷調查系統中基于Angular 技術[9]實現多組合邏輯跳轉和多題聯合約束功能。
為方便管理與維護,將整個系統分為管理端和填答端,部分功能結構如圖1 所示。管理端主要功能包括用戶登錄、角色管理、角色授權、功能管理、機構管理、信息修改、項目管理、教師基本信息管理、學生基本信息管理、指標設計、題目設計、問卷管理、問卷填答統計等。填答端界面自適應手機、平板和電腦客戶端,支持微信認證登錄,主要功能包括發送驗證碼、用戶登錄、用戶測驗等。

Fig.1 System functional structure(partial)圖1 系統功能結構(部分)
依據高內聚、低耦合的原則,系統采取業務邏輯層、顯示層、數據層3層架構[10]。
1.2.1 業務邏輯層
業務邏輯層根據查詢條件、配置項簡單處理返回結果,從而進行數據分發工作。系統采用C++網絡服務框架構建了一個輕量級、高性能的 Web 應用服務端程序,在初始化時按需加載維度、題目、約束條件等關鍵信息,當用戶訪問時可以直接從服務器的緩存中根據問卷ID 獲取對應的關鍵信息,從而提高系統的并發性。
1.2.2 顯示層
顯示層基于Angular 框架中豐富的組件庫進行設計。Angular 是一個應用設計框架與開發平臺,其將應用程序劃分為一系列組件,每個組件負責處理特定的功能,組件之間可以嵌套使用,形成復雜的頁面結構。組件化開發使得代碼模塊化、可重用性高,方便團隊協作和維護。在具體實現方式中,運用響應式布局適配手機、平板、電腦端。基于代碼的可重用性和可讀性考量將指標、指標層次關系、每種題型編輯、顯示、填答等封裝成組件,實現顯示與邏輯的分離,化繁為簡。
1.2.3 數據層
數據訪問層主要負責數據庫的訪問,針對數據進行增添、刪除、修改、查找等操作。在重慶市基礎教育質量監測教師問卷中,每個用戶需要填答的問卷題目不同、數量不固定、填答類型不固定,且被試者人數達到10 萬,均需在規定時間內完成。基于這些特性,本文選擇更為適用的主流非關系型數據庫MongoDB[11-12]。該數據庫除支持動態模式外,還支持海量數據存儲并且讀寫速度較快。將用戶填答的數據在一條document 中通過JSON[13]格式集中存儲(字段結構如表1 所示),不僅邏輯結構簡單,而且不需要多表查詢操作,可視性較強。

Table 1 Structure of questionnaire response表1 問卷答題字段結構
本文在2013年數據庫設計的基礎上進行了改進,將用戶表和結果集合成一張表,設計了以下幾個集合(部分表結構),分別為教師答案表(Q_TEA_ANS)、問卷集合(QSURVEYS)、問卷題目對應集合(Q_SURVEY_QUESTIONS)、維度集合(Q_DIMENSIONS)和題目集合(Q_QUESTIONBASE),具體如圖2 所示。教師答案集合主要存儲教師基礎信息(包括教師登錄問卷系統所需的賬號和密碼)和回收的調查數據;問卷集合用于存儲問卷基本信息,包括問卷標題、問卷指導語、評價對象、微信授權登錄、開始時間、結束時間等屬性;問卷題目對應集合用于存儲問卷集合與題目集合的對應關系,以及所屬維度信息;維度集合存儲指標、觀測點基本信息,包括名稱、所屬階段、所屬對象等及其層級關系;題目集合用于存儲題目信息,包括標題、題目類型、所屬觀測點和維度、填答約束規則、跳轉邏輯設置等。

Fig.2 Database design圖2 數據庫設計
服務器具體配置信息如表2所示。
在評估領域,指標體系具有評價功能[2]。根據指標體系制定相應題目可提高測評的全面性和精準性,也可使測試內容脈絡清晰,科學評估既定目標的實現程度。評估指標體系的構建應具有層次性,因此本文將指標接口返回結果組裝成樹形結構展示并進行分頁管理。初始化數據時在頁面首先加載第一層,通過判斷其是否有子節點進行迭代遞歸。每一層均具有添加子級、編輯基本信息、刪除功能。在編輯基本信息中設置以下功能:①為使指導語更醒目、有趣,采用富文本編輯器提供基本文檔格式化功能,以及視頻、圖片、表情等多種多樣的格式;②提供用戶類別、所屬階段、所屬年級設置功能,以便在組卷功能中進行動態篩選;③設置觸發條件用于問卷答題時進行多組合邏輯跳轉,支持與、或、非等多種表達式(括號{}內為題目唯一標識)的組合邏輯;④支持動態調整指標層級關系。
基于指標體系與題目的邏輯關系,本文設計了在觀測點下添加題目的功能,支持評論語、單選、多選、填空、多行文本、多項填空、矩陣填空、星級、矩陣單選、分組多選、滑塊組合題、餅狀組合題、矩陣多選、上傳圖片、多選填空組合題、材料題、時刻題、數字加減題、矩陣滿意度題、動態選項題、級聯選項題、問卷嵌套題等20 余種題型的錄入。每道題增加唯一的變量標識,標題和選項采用富文本編輯器編輯。該種方式可以設計出符合學生年齡特點的題目,增強題目的互動性和趣味性。
為減少后期問卷調查數據清理工作量,需要對用戶填答的數據格式進行約束以確保回收數據格式的統一,因此需要在問卷發布前設置好問題的填答規則[14]。本文采用模塊化思想對用戶填答校驗部分進行設計,傳入約束規則、填答結果以及題目相關信息即可獲得用戶填答的校驗結果。
除在單題校驗中提供驗證整數、小數、日期、文本、手機格式、密碼、郵件、身份證號、護照等功能,本文系統還支持多道題聯合約束。以下分別以餅狀組合題、矩陣填空題為例介紹用戶填答約束的實現方法。
(1)在餅狀圖中內置校驗,除校驗填答類型為數字外,還要求各項小題比例總計達到100%。例如在學校信息化建設中,各項經費包括網絡建設與設備購置費用、數字資源和平臺開發費用、培訓費用、運行與維護費用、研究與其他費用,總和應為100%,當用戶填答存在任一小題答案不是數字類型時,則提示用戶類型錯誤,需要修改,否則繼續判別其各項總計是否為100%,如果不是,則提示用戶重新填寫,直至填寫正確后才進入下一題。
(2)矩陣填空是一組填空題的組合,除每道題約束填寫格式和范圍外,題目間也可以相互約束。圖2 中的ACONSTRAIN 表示填答校驗約束,主要用于單題校驗規則設置。例如某項題目要求填答類型為數字,且介于14~60之間,則設置為"{"atype":"number","minvalue":14,"maxvalue":60}",通過解析調用相關校驗功能實現對用戶輸入的約束。題目間的規則約束存儲在字段INTERNAL_RULE 中(見圖2 題目表)。以圖3 的題目為例,有教師資格證的在職教師數量應小于等于在職教師總人數,填答規則設置為{PIASA_09_SC09_3}<={PIASA_09_SC09_1},{}內為題目唯一標識,同時需要滿足有教師資格證的代課教師數量應小于等于代課教師。兩項規則以分號(;)隔開,設置為{PIASA_09_SC09_3}<={PIASA_09_SC09_1};{PIASA_09_SC09_4}<={PIASA_09_SC09_2}。在用戶填答端,系統按照分號自動分解、解析填答規則,通過正則表達式將{變量名}替換為用戶填答的值,通過eval()函數判斷每項表達式的值是否正確,如果結果為false,提示用戶修改。

Fig.3 Multi-topic constraint setting圖3 多題約束設置
在用戶選擇維度后,系統根據維度基礎信息自動判定是否與用戶所選階段、評價對象相匹配,若匹配則標記為藍色,用戶可拖動至新建問卷中。進入問卷后,系統會自動篩選出符合角色(學生、教師、家長)要求的題目,并在維度右方標記題目數量。在問卷保存過程中,系統按照拖拽的維度順序對題目進行自動排序,且在保存時保持被觸發的題目位于觸發題目后方。例如選擇題A 為必答題,題B被觸發的條件為“題A 選擇a 選項”,則在排序時A 的序列號小于B 的序列號。
為考察被試者是否對測驗項目作出真實反應,通常會引入測謊題。該類題目需要被打亂順序,因此本文設計修改題號功能,在調整某道題題號后自動對其余題目進行排序。題號調整算法步驟為:
Step1:初始化序號數組ThArr,記錄當前位置index,當前序號oldid 以及調整后的序號newid。
Step2:當newid 大于 oid 時,順序循環數組ThArr(i 為當前題號),找到ThArr[i]介于oid 與newid(包括)的值減1。
Step3:當newid 小于 oid 時,順序循環數組ThArr(i 為當前題號),找到ThArr[i]介于newid(包括)與oid 的值加1。
Step4:將當前newid 賦值給ThArr[index]。
隨著教育行業監測需求的增加,調研題目設置愈加復雜,根據單道題答案邏輯跳轉的功能已不能滿足需求[15]。多組合邏輯跳轉可在測試過程中以觀測點為最小單位,根據受試者已有的答案組合和觸發跳轉設置屬性自動進行邏輯判斷,動態跳轉至后續題組。相應的實現步驟為:
Step1:初始化題目數組,并根據題目屬性構建數組paperQuestionShow。如果第i道題必答且不是被觸發跳轉題,則paperQuestionShow[i]為true,其余為false。如果用戶已經開始填答,重新遍歷題目數組,當題目i存在答案時,paperQuestionShow[i]設為true。如果不存在答案,但所屬維度或觀測點存在觸發條件且解析判斷結果為真,則設為true,同時將每道題的頁碼記錄在數組questionPage中。初始化完畢后,在界面按照排序加載所有題目,只有paper-QuestionShow[i]為true的才顯示出來。
Step2:在作答過程中,首先根據設置好的格式要求校驗用戶填答格式,然后處理當前題目的單邏輯跳轉(同一維度內的題目)。以單選題為例解析單選題的單題跳轉邏輯屬性jumpRule,存儲格式為JSON。例如題目1 設置為[{key:’1’,qid:[‘題2ID’,’題3ID’]},{key:’3’,qid:[‘‘題4ID’]}],表示題目選項為1 時,題目2、題目3 出現;當題目選項為3 時,題目4 出現;選擇其余選項時無變化。單題跳轉邏輯處理流程如圖4所示。

Fig.4 Single question jump logic processing flow圖4 單題跳轉邏輯處理流程
在處理多組合邏輯跳轉(跨維度題目)時,由于組卷時保證了被觸發題目序號始終在觸發題目序號的后方,系統自動從當前題目向后遍歷每一道題目j。若依據受試者已有的答案組合,題目j的觸發條件運算結果為真,則數組paperQuestionShow[j]設為true。多組合邏輯跳轉處理流程如圖5 所示。觸發條件設置支持與(&)、或(;與,)、非(#nin)、表達式(>,>=,<等)等多種操作組合。例如觸發條件{A}=3,4&{B}=2;{A}=1,2&{C}=7,8,表示若滿足條件一(A 題目選項為3 或4,同時B 題目為2),或滿足條件二(A 題目選項為1 或2,同時C 選項為7 或8),則邏輯處理結果為真,在數組paperQuestionShow中對應的坐標設為true。

Fig.5 Multi-combination logic jumping processing flow圖5 多組合邏輯跳轉處理流程
Step3:當用戶完成當前頁題目時,系統動態確定下一頁題目頁碼并跳轉至最近存在paperQuestionShow[i]為true的頁碼。
目前,本文系統已成功應用于2020 年和2022 年重慶市基礎教育質量監測工作中,覆蓋10 余萬教師群體,整體規模位于全國前列,具備了大規模、多指標數據采集的能力。實踐結果表明:①該系統提高了問卷題目設計效率。以9 個科目測試為例,出卷人的工作量從以往的4 天組卷84 套減少至只需提出跳轉邏輯,每個科目共用一套試卷題目,組卷時間縮短至5 h;②該系統極大減輕了多角色受測群體的答題負擔。表3 為教師問卷中各級各類角色填答題量。以具有“5 年級德育教師”“管理干部”等多角色的班主任為例,紙質版需要填寫1 000 余道試題,包含多項重復及無關項,平均測試時長為30 min;而使用本系統最多需要完成64 道題,平均測試時長縮短至5 min。據調查,教師對問卷系統的滿意度由53.1%提升至97.0%;③在教育資源有限的農村等地區會出現兼任體育老師、德育老師的現象,提前確定角色的問卷分發形式往往會出現漏采現象。本系統可使答題人自選角色自動組卷,信息采集更加全面精準。

Table 3 The number of questions filled in at each level of the teacher questionnaire for each role表3 教師問卷中各級各類角色填答題量
本文提出一種以觀測點為最小單位,多組合邏輯跳轉與多題聯合約束的網絡調查問卷系統技術實現方法。該方法通過增加新題型、豐富校驗方式提升題目的趣味性和互動性;通過對題目進行分類歸檔提高篩查效能,大大減輕了后期數據清理壓力;通過多組合邏輯跳轉至觀測點的方式增強了問卷的靈活性和適應性;通過分級分類管理設置觸發條件后重復使用的方式減少下一次問卷屬性設置時間,減輕了管理人員的組卷和檢查壓力。實踐結果表明,該系統具有采集過程高效、采集結果精準的特點,能夠以最短的時間獲取最全面真實的信息,在大規模測試中適用性較強。
然而,該系統尚存在一些不足之處,例如在進行數據修改時缺乏對題目信息的保存機制。為解決該問題,擬在后期開發中將指導語、維度、題目等與問卷相關的信息冗余存儲于一張專用表中。如此以來,用戶在填寫問卷時可減少對維度表和題目中間表數據的檢索頻率,從而有效提高系統返回數據的效率,為用戶提供更為卓越的使用體驗。