基于LaTeX 的高等数学题库建设与试卷生成

2024-01-14 10:24谭学忠
韶关学院学报 2023年12期
关键词:题库文档题型

谭学忠

(广东财经大学 统计与数学学院,广东 广州 510320)

目前,我国教育发展存在一些问题,如优质教育资源总量不足、布局不合理等.对此2017年国务院印发《国家教育事业发展“十三五”规划》,确定了“十三五”时期教育改革发展的指导思想、主要目标、战略任务和保障措施[1].数字资源的建立、共享和服务是我国教育信息化改革和进程中的重要部分.作为数字化资源的重要组成部分,建设高等数学题库管理系统的重要性日益显现.

数学试卷不同于文科类课程的试卷,具有自身的特殊性. 试卷包括文本和公式及图文的混排等.利用TeX 排版系统能更完美地处理数学公式、图片排版,将内容和格式分离,可使作者更专注于内容,大大提高了录入和排版的效率.

笔者参照广东财经大学的试卷格式,设计出gdufeExam 题库管理及自动组卷系统,利用TeX 提供的用户自定义命令“newcommand”,创造性地将题目的知识点、难度、题型、题号和内容统一在一个十位字母组成的代码中,这样创建的题库pdf 文档可方便地实现浏览、修改、选题、组卷等功能;结合使用Nicola Talbot 的Probsoln.sty 宏包还能实现随机组卷功能[2];系统的所有代码开源,有利于用户学习、修改,并完善、提高其质量,还能以此为基础,设计自己所需的组卷系统.

1 研究现状

目前,大多数试题库设计主要是基于Office 办公软件和TeX 排版系统. 例如,郭兆颖提出利用Word的宏编制试卷及包宗宏等利用Access 等软件管理数据库,并将最终结果输出为Word 文件[3-4]. Word 的优点在于没有使用门槛,能很好地与其他Office 软件协同,只是其缺陷也非常明显.首先,若试题包含大量的公式和图表,Word 文档占用的存储空间将迅速变大,影响生成试卷的速度[5];其次,Word 对数学公式、理工科的专用符号的支持较差,输入公式时需不断地进行文本和公式编辑器的切换,同时还需要交替使用键盘和鼠标,这样的工作方式极大地影响工作效率、干扰作者的思路;最后,Word 输出的公式在美观性和专业性方面比TeX 排版系统要逊色. TeX 文件是纯文本文件,占空间较小,而且可从键盘完成各种公式的输入,格式与内容分离,这些特点使作者能更专注写作.TeX 排版系统更适合理工科课程的试题库的编制.

韦尔斯利学院(Wellesley College)的Philip Hirschhorn 教授于1994年推出了功能强大的Exam 文档类专门应用于排版各类试卷[6].国内的使用者盖鹤麟最早进行了对Exam 汉化的研究,并开发了colinexam中文试卷模板[7].鲍宏昌制作的BHCexam 宏包专为我国数学教师设计,提供了一个排版中学数学试卷的文档类[8].

近几年国内学者对自动组卷系统进行了大量的研究和开发,取得了许多成果.但是适合高校理工科教师命审题的理想系统却非常少.原因是其中大部分是基于Office 软件设计的,有的系统侧重于与web 结合,开发的功能主要用于线上测试[3-4,9-10].在国内各大期刊数据库能查到的基于LaTeX 设计的题库管理和组卷系统的文献非常有限[11],其中叶勇等提出了用Excel 和VBA 制作和生成题库,用LaTeX 实现随机组卷和排版试卷的方案[12];卢希等提出的系统需要借助第三方软件Java 和MySQL,对计算机专业知识要求较高,不适宜非计算机专业的老师开发使用[5].开发一个仅基于LaTeX 的题库管理与自动组卷体统,这样只要会使用LaTeX 的老师都能用它进行自动化命题了.吴凯开发设计的南京审计学院NAUexam 模板就是这样的一种系统,是较适合在高校推广的[11].以上的计算机辅助命题系统各有优点,但在题库管理的细节方面都存在不足,有的没有充分利用LaTeX 的强大功能,借助其他软件来录入试题、管理题库,而仅用到LaTeX 的排版功能;有的系统将试题的内容和试题的属性如知识点、难度、题型等分开处理.这些方案对试题的修改、维护、预览都会带来许多麻烦,增加许多工作量.实际上,借助LaTeX 的Exam 宏包和Probsoln 宏包就能设计出满足高校教师管理题库和自动随机组卷、一键生成试卷和参考答案等功能的命审题系统了.

2 设计思想及基本流程

研究目的是设计一个基于LaTeX 排版系统的可以管理题库,手动或自动随机组卷的中文TeX 模板.好的题库是自动组卷的基础,由于题库包含的题量巨大(通常含有数百道甚至上千道试题),所以一开始就要考虑周全,设计出易于修改、维护、预览的题库管理系统.笔者以广东财经大学试卷格式为参考,设计了gdufeExam 题库管及自动组卷系统,用来进行《高等代数》课程的平时测验和期中期末考试出卷.系统里模板的代码都是开源的,可稍作修改用于其他学校的理工课程参考使用.结合该系统分析基于LaTeX的Exam 文档类和Probsoln 宏包的题库管理及自动组卷系统的设计思想和基本流程.

2.1 构建试题库

利用Exam 文档类构建试题库. Exam 具有强大的试卷排版功能,几乎能满足出各种试卷的需求,例如题目自动编号、自动加分、各种风格的页眉页脚、分数表格、各种题型的排版、一键输出学生版和教师版(含有参考答案和评分标准)的试卷等[5].美中不足的是Exam 文档类是按照西方国家高校试卷排版规范设计的,为了能够用它排出符合中文格式的试卷,需要对它先进行汉化处理.笔者修改了部分代码使得分数以“分”、答案以“解”或“证明”显示,并且设计了符合中文试卷习惯的填空和选择题的排版格式.

存储、管理试题是构建题库的关键.每道试题都包含两个重要属性——内容属性和信息属性.内容属性包括题目和解答;信息属性包括4 个方面:关联的知识点、难度、题型、题目序号.与传统题库的设计思路不同的是,将每道试题的内容和信息统一起来进行管理,这样带来了极大的便利.其核心的想法是将每道试题存储在一个含有参数的宏命令中,命令的名称是一个包含4 个信息属性的10 个字母组成的字符串,参数中储存题目和解答.

若搜集了课程相关的大量试题,那么该如何分类、整理、命名?笔者将分步骤详细说明.

(1)文件管理

先建立一个文件夹,例如命名为“高等代数题库”,里面再建两个子文件夹,一个名为“figures”用来存放图片,一个名为“DataBases”用来存放按章节分类的试题子文档.子文档Chi_CMD.tex 用于存放第章的试题,题目按照填空题、选择题等题型分类;子文档Chi_questions 用于排版章节试题.在主文档main.tex的导言区用命令“input {DataBases/Chi_CMD.tex}”和“input{DataBases/Chi_questions.tex}”调用子文档(见图1).

图1 文件管理

(2)宏命令命名规则

由于LaTeX 系统的命令只能输入大小写英文字母,为了对知识点和试题进行编号,将0~9 这10 个数字与字母对应起来,见表1.

表1 命令名中的数字序号与字母的对应

题目编号规则:4 位知识点编号+2 位难度级别+2 位题型编号+2 位题目序号,如题目代码“oozoLaTKzo”表示第一章第一节第一个考点,难度为 a,题型为填空,题目序号的含义为同一知识点难度为a 的填空题的第一题.

(3)宏命令示例

下面给出一个填空题的编码示例:

ewcommand{oSzoLaTKzo}{question 多项式$f(x)=x^4-2x+2$ 除以$2x-2$ 所得的余式为fillin[$1$].}.

这里的“fillin”命令用来输入答案,将题目和答案都存入宏命令“oSzoLaTKzo”中,可通过文档类选项“answers”决定是否在试卷中显示答案;在排版试卷时使用Exam 文档类的“questions ”环境调用试题,如:

egin{questions}

oSzoLaTKzo

end{questions}.

使用这种方法,就可利用LaTeX 系统方便地录入、预览和修改包含成千上万道试题的题库了.

2.2 随机选题

题库的建设是一项艰苦、漫长而乏味的工作,然而一旦完成则可以舒心地享受高效组卷的成果.本系统提供手动组卷与系统自动组卷两种方案.手动组卷方案灵活易用,教师根据经验选择试题的宏命令,将试题手动添加到试卷模板中,然后编译生成试卷的pdf 文件.手动组卷方案与传统出题方法类似,但有效地实现了试题复用,可降低出错率,提高出卷效率;自动组卷方案更能体现试题库系统的优点.

Nicola Talbot 给出的Probsoln.sty 宏包就是为了方便教师进行随机组卷的,通过设置可使该年度的试卷与近3年的试卷不重复.当题库的题量足够大时,通过这种方法自动组出的试卷覆盖的知识点更全面,只需要稍作调整便可得到一套合理的试卷.

随机选题分为两个步骤完成.

(1)建立选题库文件.新建一个空白的tex 文档,以填空题库为例,可以命名为:tiankong.tex,按照格式将所需要的填空题导入进来,即:

ewproblem{oSzoLaTKzo}{$setminus$oSzoLaTKzo}{}.

(2)使用选题模板.打开选题模板,在导言区加入命令:

usepackage{probsoln}

PSNrandseed{year}

loadrandomproblems[Q1]{10}{tiankong}.

第三条命令的含义是从tiankong 题库中随机选10 道填空题存放到Q1 临时文件中.在“begin{document}”后加入命令“foreachproblem[Q1]{ hisproblem par}”.这样就把随机选出来的10 道题的宏命令加入到选题模板了,用同样的方法把其他题目选出来,编译后就可得到整套试题的题目宏命令列表.再将这个列表复制到试卷排版模板中,选择XeLaTeX 编译就能生成试卷的pdf 文档了.

2.3 试卷排版

试卷排版时,TeX 系统的“格式与内容”分离的理念、自动化编号等功能体现得淋漓尽致.可使用Exam 文档类文件控制包括试卷抬头、每类题型结构以及题目序号的输出等.TeX 排版的精确性可实现试卷的规范性输出,能够确保试卷的输出格式满足用户的需求,方便地利用TeX 命令(如minipage)来实现试卷抬头的设置.试卷模板能够实现试卷格式的排版,将试题编号、排版、引用、试题与答案的分离等繁琐的排版工作交给TeX 系统自动完成.通过在Exam 文档类选项中加入或者去掉“answers”命令就能输出含有参考答案的教师版或者不含答案的学生版试卷了.结合使用随机选题功能,可在5 min 内生成一套试题的A、B 卷及参考答案,大大提高了出卷效率.

3 功能和创新点

gdufeExam 题库管理及自动组卷系统的主要创新点是无需借助第三方软件,完全借助TeX 系统实现题库构建、随机组卷、试卷排版等3 大功能,只要会使用LaTeX 模板就能使用本系统.

(1)题库.将试题的内容和信息统一于1 个宏命令中,命令名本身包含试题的知识点、难度、题型和序号等4 大信息,方便统计知识点的分布,控制试卷难度,按题型将试题归类;方便调用试题、修改、预览;方便出试题册、习题集;满足高校教学平时测验题、期中和期末考试试题的需要.

(2)随机选题.选题模板已经设置好各种题型选题的数目,组卷前只需要修改一下参数,就能将需要的试题的宏命令输出为txt 文档.当题库的题量足够大时,通过系统选出的题目基本符合出题要求.

(3)试卷排版.支持判断、填空、选择、计算、证明等5 种题型,读者可在此基础上根据需要增加其它题型;具有输出各类试题题型说明的功能,按照试题类型的次序自动编号;根据大学试卷规范输出试卷抬头,包括课程名称、课程代码、试卷序号、考试时间、考试班级等信息;方便输出统计测试内容的类别,不同内容在试卷中所占的份量,各种内容采用的题型,各类试题所占的比重,考核的能力层次及分数比例等信息.

4 结束语

笔者对TeX 管理题库、随机组卷和试卷排版进行了初步探索,在不借助第三方软件和编程的情况下,实现题库的建设、维护和随机组卷等功能.本系统的设计和开发将促进TeX 在国内高校的进一步推广和应用,极大地提高出卷效率,提高试卷的客观性,降低试题出错的可能性,有助于促进我国高校教考评分离的改革.

猜你喜欢
题库文档题型
离散型随机变量常考题型及解法
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
“勾股定理”优题库
巧妙构造函数 破解三类题型
“轴对称”优题库
“轴对称”优题库
“整式的乘法与因式分解”优题库
一次函数中的常见题型
随机抽样题型“晒一晒”