一种新型习题系统设计与实现*

    张敏 王诗 孙浩 张昊霖

    

    

    

    摘 要:习题是评估学生学习效果和教师教学效果的重要手段。但目前高校传统的习题布置方式存在习题固定、易于抄袭等问题,学生完成习题的准确率不能准确反映教学效果。而使用常见的题库系统为学生定制个性化习题,又存在难以统一难度、系统自动化程度低、更新题库工作量大等缺点。针对这一问题,文章使用Python和LaTeX设计了一套新型习题系统,能够批量生成相同题型但题中参数具体数值各不相同的习题,且能自动生成准确清晰的图表和参考答案。将该系统应用于辽宁工程技术大学两个专业的《电磁场与电磁波》课程,经实验证明,使用该系统能够有效减少抄袭,使学生完成习题的准确率能更准确地反映真实教学效果,为评估教学效果提供客观依据,并且能调动学生学习积极性,提高教学质量。

    关键词:习题系统;习题难度;习题准确率;教学效果评估;LaTeX

    中图分类号:G642.0? ? ? ?文献标志码:A? ? ? ? ?文章编号:1673-8454(2020)20-0091-03

    一、引言

    习题是教学中一个重要的环节。学生通过做习题,检验自己对知识点的掌握程度,及时调整学习状态;教师通过学生完成习题的准确率掌握学生对知识点的掌握情况,及时调整教学设计。这对于知识点前后连贯性较强的科目尤为重要。而实现上述效果的前提是学生完成习题的准确率能够真实反映学生学习情况。目前,针对习题准确率已有不少研究。陈刘旗利用学生作业习题的正确率,整理并分析了学生的学习情况[1]。曹战新指出,作业试题难度会影响学生的作业正确率,并且在学生独立完成作业的情况下,难度较高的题目正确率较高,因此教师需要在作业难度上根据学生差异情况来布置[2]。徐敏调查了学生独立完成作业的情况,并结合习题正确率,指出存在抄袭情况时习题正确率会提高[3]。从这些研究可以看出,要让习题准确率真实反映学生学习情况,需要考虑作弊和习题难度两方面的因素。

    但是目前,许多高校各门学科的习题仍然仅限于固定教材上的习题。学生很容易通过上网搜索等方式获得答案,通过简单抄袭来完成习题,习题准确率普遍偏离学生真实学习情况。为了解决这一问题,有效的方法是针对学生定制个性化习题。但是这需要教师针对各个知识点更改题目的形式、数值、绘制图表、计算习题答案,一方面需要任课教师额外付出很大的精力,导致很难坚持实施和推广,另一方面也很难保证习题质量和控制难度。而常见题库系统软件采用的是录入现成题库的方式,不能自动生成新的试题,更不能自动绘制与题目对应的图表、计算结果,无法从根本上解决问题。

    针对上述情况,本文使用Python和LaTeX设计了一个新型习题系统,可以快速批量生成相同知识点、相同题型但是参数的具体数值完全不同的习题,且能自动排版、绘制对应图表和生成参考答案。通过相同题型的习题解决难度统一问题,通过改变习题中参数的具体数值避免学生简单抄袭,通过系统的高自动化,从根本上降低教师的工作量,保证系统的可持续推广。最后,通过两次对比实验,验证了系统的有效性。

    二、习题系统

    Python是一种跨平台、开源、免费、面向对象的动态解释型高级编程语言。LaTeX是一种完全开源免费的科学格式化的排版系统,对于生成各种符合标准的数学公式、符号、复杂文字、图表的排版有简单但功能强大的命令。因此,本习题系统使用Python+LaTeX的方式来实现。

    1.设计方法

    本习题系统的基本设计方法为:使用Python代码完成习题内容生成和参考答案计算,并创建一个.tex文件。该.tex文档内容为LaTeX代码,LaTeX代码实现的内容为:习题对应图表生成、按要求排版。然后,使用LaTeX对.tex文件进行编译,并生成最终的PPT文件。

    2.习题与参考答案生成

    习题的生成主要任务是:随机生成题干中参数的具体数值,并修改题干文字框架中参数的具体数值。参考答案的生成主要任务是:通过预设的解题步骤进行计算,并修改参考答案文字框架中的对应数值。这两项任务本质相同,都是修改预设文字框架中某个参数的具体数值。同时确保数值改变后不影响显示的效果。数值改变对显示会造成比较大影响的主要是数值的正负号。

    (1)数值生成与修改

    以习题生成为例。首先,确定题干中需要改变的参数的数据类型。使用Python代码,为每个参数生成N组不重复的、相互独立的、符合其参数类型的随机数组,形成一个CSV文件,即逗号分隔文件。然后,将题目中的数值参数定义为一个数组,调用之前生成的CSV文件,CSV中的一组数据对应一道题目。N组数据即生成了N道题目。

    以图1中展示的题型为例,题中需要改变的参数为线段的两个端点,分别设为(XA,YA)和(XB,YB)。设生成N=3道同题型题目,生成的CSV文件如表1所示,程序运行后生成的3道习题如图1所示。

    (2)正负号显示控制

    在一些固定的公式和表达式中,参数的正负号会影响题干显示的效果。比如某表达式为“e-b”,其中e为常量,b为需要改变数值的参数,类型为整数。显然,如果只考虑随机生成整数,当b为负数时,比如-1,如果不做额外处理,最后生成的表达式显示的将是“e--1”。这显然不符合规范和阅读习惯。因此在本系统中,Python程序式会对生成的表达式进行检查。对于“+”号,如果后面的数值为负数,则在顯示时省略掉表达式中的“+”。对于“-[”号,如果后面的数值为负数,则将表达式中的“-”号改为“+”号,数值显示其绝对值。

    3.自动排版与图表生成

    生成习题和参考答案后,需要对其进行排版输出。目前大多数的题库软件采用Word编辑与管理题库,比如张春霞设计研发的基于Matlab的自动组卷系统[4],石兰设计的基于SQL Server和C#的试题库管理系统[5]等。Word对普通的试题具有较好的排版效果。但是,理工科的习题往往有较多的数学表达式,对数学公式和文字混排需求较大。而且理工科的习题往往需要配有图表,当习题中参数的具体数值发生变化时,图表相应地会有所变化,比如坐标系中的坐标,几何图形的形状、位置等。使用Word编辑管理难以实现自动化,排版和图表生成工作重复繁琐,效率低下[6]。

    LaTeX是以排版文字和数学公式为目的的软件,在公式和文字混排方面,有其他软件无可比拟的优势,非常适用于生成高印刷质量的科技和数学类文档[7]。LaTeX提供了简单而又功能强大的基础命令,一旦设定好模板,用户只需专注于文档内容,无需操心文档的版面设计。可以使用命令来绘制图表,图表的所有元素的大小、颜色、线型、坐标等都可以控制,且LaTeX的源文件(.tex文件)为纯文本,因而利用LaTeX易于编程实现自动化。

    在本系统中,使用Python编程创建.tex文件,通过控制写入该文件的LaTeX命令与参数值,来实现对排版格式和图表的控制。写入后,将生成的.tex文件交给LaTeX编译,获得最终的PPT文件。图1显示了同时生成的三道题。题中线段的端点值各不相同,自动生成的示意图中,线段和辅助线的位置准确与端点值对应。

    三、实验

    将本系统应用于辽宁工程技术大学两个专业的《电磁场与电磁波》课程,进行了两次实验。参与学生为电子与信息工程专业(以下简称电信)17级2个班,以及通信工程专业(以下简称通信)17级4个班,共180人。

    1.实验方法

    将学生分为实验组和对照组,为排除专业影响,每组都含有两个专业的学生。随着课程教学进度,选择课程中的基本知识点,编写一套习题,称为A卷。将这套题录入本习题系统,并生成N套同题型但题中参数的具体数值各不相同的题卷,分别称为B1、B2…BN卷。在布置课后作业时,实验组使用本习题系统生成的题卷,第i个学生完成Bi卷,即每个学生完成不同的题卷。对照组使用传统的习题布置方式,即全组人都完成A卷。学生完成后,采用统一标准批阅,每道题只判为正确、错误和未答。每组分别统计每题正确的人数,计算每题的准确率,准确率=本组该题正确人数/本组有效答卷总数。

    2.实验数据

    (1)第一次实验

    选取了12道题,难易题穿插排列。实验组为:电信17-2班、通信17-1班、通信17-2班、通信17-4班,收到有效答卷119份;对照组为:电信17-1班、通信17-3班,收到有效题卷60份。统计得到各组每题准确率和准确率平均值如图2所示。

    (2)第二次实验

    选取了与第一次实验完全不同的知识点,设计了7道题,难度较第一次实验大。实验组为:电信17-1班、通信17-1班、通信17-2班、通信17-3班,收到有效答卷114份;对照组为:电信17-2班、通信17-4班,收到有效答卷57份。统计得到每题准确率和准确率平均值如表2所示。

    3.实验结果分析与结论

    (1)使用本系统可以有效减少作弊行为,能够更真实准确地反映学生对知识点的掌握情况。实验数据显示,对照组的每题准确率普遍高于实验组。第一次实验,对照组准确率平均值为61.25%,高于实验组的52.03%,第二次实验,对照组准确率平均值为39.10%,高于实验组的26.82%。这是因为实验组每个人的习题虽然题型一样,但具体数值各不相同,学生无法通过简单抄袭完成作业,而对照组所有人的习题完全相同,学生易于简单抄袭。因而对照组准确率普遍较高。通过检查雷同卷和调查回访,证实了本结论。

    (2)使用本系统可以调动学生学习积极性。实验数据显示,实验组难题的准确率反而高于对照组的准确率。这是因为当所有人使用完全相同的习题时,学生面对难题更趋向于等待和抄袭好学生的答案,态度相对消极。而当每个人需要完成不同的作业时,迫使更多的学生主动学习和互相探讨,态度反而更积极。之后的调查回访结果也印证了本结论。

    四、结论

    习题是教师掌握学生学习情况的重要手段。但通过学生完成习题的准确率掌握学生学习效果的前提是习题难度统一和尽量减少抄袭。因此,本文使用Python和LaTeX设计了新型习题系统,能够批量生成同题型但题干中参数的具体数值各不相同的习题,且能自动生成对应的图表和参考答案,自动组卷和排版。同题型保证了习题难度统一,题干中参数的具体数值各不相同,避免了学生简单抄袭。经过两次实验,结果证明,使用本系统可以有效减少作弊行为,使得准确率能够更真实准确地反映学生对知识点的掌握情况,为评估学生学习效果和教师教学效果提供更客观的依据;此外,使用本系统能够调动学生学习积极性,有利于教学质量的提高。

    参考文献:

    [1]陈刘旗.小学高年级数学作业现状及优化策略研究[D].济南:山东师范大学,2017.

    [2]曹战新.高中化学作业教学现状的调查与分析[D].石家庄:河北师范大学,2017.

    [3]徐敏.高中化学课外作業现状调查与对策研究[D].武汉:华中师范大学,2014.

    [4]张春霞. 基于Matlab的自动组卷系统的设计与实现[D].呼和浩特:内蒙古大学,2018.

    [5]石兰.试题库管理系统的设计与实现[D].哈尔滨:黑龙江大学,2018.

    [6]叶勇,刘秀华,叶琰,等.基于LaTeX的题库管理与组卷系统设计[J].西南师范大学学报(自然科学版),2018,43(3):181-186.

    [7]赵新科. LaTeX系统在新疆大学学报排版的应用与实践[J].新疆大学学报(自然科学版),2013,30(4):497-499. (编辑:鲁利瑞)