APP下载

一种大规模教育监测问卷填答系统实现方法

2024-01-02袁晓敏吴德操谭必玉陈洪余

软件导刊 2023年12期
关键词:校验逻辑维度

袁晓敏,吴德操,万 君,谭必玉,陈洪余

(1.重庆市教育评估院;2.重庆理工大学 电气与电子工程学院,重庆 400020)

0 引言

问卷调查是用于收集资料的一种常用工具,根据载体不同,可分为纸质问卷填答和网络问卷调查两种形式。传统纸质问卷调查方式费时费力、效率低。随着网络技术的发展,网络问卷调查以简单、快速、跨地域的优势[1]被广泛应用于学术研究领域。

为满足信息采集需求,很多单位和部门研究开发了问卷调查系统。例如,王君[2]为及时了解患者需求,为医院改善医疗环境、提升服务质量提供参考意见,开发了基于大数据技术的患者满意度问卷调查系统;李云皓等[3]针对“对分课堂”教学模式的学习效果进行调查,设计了基于Web 的在线问卷调查系统,可使教师快速了解学生对课程的意见或建议;蒋艳华等[4]设计并实现了基于移动平台的课程目标达成度问卷调查系统,该系统支持教师在线发布调查问卷,轻松了解学生对各知识点的掌握情况,有利于后续教学设计的优化;陆毅等[5]从医院管理的角度出发对各类学会和期刊进行分类,对常见学术任职进行整理,并借助问卷星平台构建了一套学术任职登记系统。

有别于一般的简单社会调查,教育监测领域观察指标维度丰富[6-7],调查对象复杂多样,涉及学科门类众多,网络问卷调查的开展仍存在诸多难点,以上方法尚无法很好地解决。首先,大规模监测中的教师问卷环节涉及角色众多,且存在一人兼任多种角色的现象,不同角色组合需要完成的题目亦不相同。传统解决方式是对角色进行各种组合,分别制定不同问卷,人为根据角色进行分发。这种方式过于依赖前期采集数据,存在教师所答问卷与实际基本信息不相符的情况;而且问卷覆盖范围局限,容易造成兼任多角色的对象调查疏漏,这就要求网络问卷调查系统具备问卷分发功能。此外,教育监测问卷题库按照系列观测指标与维度进行分组设置。在问卷填写过程中,理想状态是根据同一类角色的不同答题结果实时调整后续题组,从而实现调查结果的准确性与全面性。以往的系统题组跳转功能不够完善,通常只能采用不分角色全题库、多学科联合调查的方式替代,极易造成受试者疲劳,系统使用满意度低,短时间、大规模、多学科测评的教学评价难以实现。现有商用问卷系统不能很好地满足上述功能需求,且教育监测数据具有保密性,故亟需设计一种适用于教育行业大规模监测的专用问卷调查系统。

本课题组长期致力于大规模测试中问卷调查系统功能的研究,于2013 年提出一种支持逻辑跳转与填答约束的网络问卷调查系统实现方法[8]。该方法于2013-2017 年在重庆市基础教育质量监测教师问卷调查中得到应用。随着计算机技术的发展,以及教育行业监测需求及复杂程度的增加,课题组自2018 年起在已有功能的基础上对系统进行了重构,作出以下改进:①基于指标与题目之间的逻辑关系,在系统中根据指标和观测点对题目进行分类与层级管理;②增加大量新题型,题目和选项均采用富文本编辑,提高其趣味性和互动性;③在指标和观测点上设置触发跳转功能,分角色控制好题目分类。在测试过程中,以观测点为最小单位,依据受试者已有的答案组合和触发跳转设置属性自动逻辑判断,动态跳转至后续题组;④在题目作答校验中,除提供单题校验外,还增加多题联合约束功能。如此以来,既能保证被试者在合理测试时间内完成测验,又能保证全面采集到有效数据。

本文结合2020 年和2022 年重庆市基础教育质量监测教师问卷调查系统的设计与实现,具体探讨如何在网络问卷调查系统中基于Angular 技术[9]实现多组合逻辑跳转和多题联合约束功能。

1 系统设计

1.1 系统整体功能

为方便管理与维护,将整个系统分为管理端和填答端,部分功能结构如图1 所示。管理端主要功能包括用户登录、角色管理、角色授权、功能管理、机构管理、信息修改、项目管理、教师基本信息管理、学生基本信息管理、指标设计、题目设计、问卷管理、问卷填答统计等。填答端界面自适应手机、平板和电脑客户端,支持微信认证登录,主要功能包括发送验证码、用户登录、用户测验等。

Fig.1 System functional structure(partial)图1 系统功能结构(部分)

1.2 系统架构

依据高内聚、低耦合的原则,系统采取业务逻辑层、显示层、数据层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 问卷答题字段结构

1.3 数据库结构设计

本文在2013年数据库设计的基础上进行了改进,将用户表和结果集合成一张表,设计了以下几个集合(部分表结构),分别为教师答案表(Q_TEA_ANS)、问卷集合(QSURVEYS)、问卷题目对应集合(Q_SURVEY_QUESTIONS)、维度集合(Q_DIMENSIONS)和题目集合(Q_QUESTIONBASE),具体如图2 所示。教师答案集合主要存储教师基础信息(包括教师登录问卷系统所需的账号和密码)和回收的调查数据;问卷集合用于存储问卷基本信息,包括问卷标题、问卷指导语、评价对象、微信授权登录、开始时间、结束时间等属性;问卷题目对应集合用于存储问卷集合与题目集合的对应关系,以及所属维度信息;维度集合存储指标、观测点基本信息,包括名称、所属阶段、所属对象等及其层级关系;题目集合用于存储题目信息,包括标题、题目类型、所属观测点和维度、填答约束规则、跳转逻辑设置等。

Fig.2 Database design图2 数据库设计

1.4 系统平台搭建

服务器具体配置信息如表2所示。

2 关键技术设计与实现

2.1 指标设计

在评估领域,指标体系具有评价功能[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 多题约束设置

2.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]。

2.4 多组合条件触发跳转

随着教育行业监测需求的增加,调研题目设置愈加复杂,根据单道题答案逻辑跳转的功能已不能满足需求[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的页码。

3 系统应用

目前,本文系统已成功应用于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 教师问卷中各级各类角色填答题量

4 结语

本文提出一种以观测点为最小单位,多组合逻辑跳转与多题联合约束的网络调查问卷系统技术实现方法。该方法通过增加新题型、丰富校验方式提升题目的趣味性和互动性;通过对题目进行分类归档提高筛查效能,大大减轻了后期数据清理压力;通过多组合逻辑跳转至观测点的方式增强了问卷的灵活性和适应性;通过分级分类管理设置触发条件后重复使用的方式减少下一次问卷属性设置时间,减轻了管理人员的组卷和检查压力。实践结果表明,该系统具有采集过程高效、采集结果精准的特点,能够以最短的时间获取最全面真实的信息,在大规模测试中适用性较强。

然而,该系统尚存在一些不足之处,例如在进行数据修改时缺乏对题目信息的保存机制。为解决该问题,拟在后期开发中将指导语、维度、题目等与问卷相关的信息冗余存储于一张专用表中。如此以来,用户在填写问卷时可减少对维度表和题目中间表数据的检索频率,从而有效提高系统返回数据的效率,为用户提供更为卓越的使用体验。

猜你喜欢

校验逻辑维度
刑事印证证明准确达成的逻辑反思
逻辑
创新的逻辑
炉温均匀性校验在铸锻企业的应用
光的维度
“五个维度”解有机化学推断题
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法
锅炉安全阀在线校验不确定度评定
人生三维度