高等数学试题程序化生成方法的研究
张素红 陈淑妮 刘震*
(浙江工业大学理学院  浙江杭州  310023)
摘要:高等数学试题程序化生成方法是使用计算机编程方式生成高质量的高数试题。考虑高等数学试题中独特形式的公式、符号和图表等,试题程序化生成方法选择Python作为编程语言,通过调用LaTeX的Py‐thon实现库PyLaTex生成试题。该文中,首先介绍了高等数学试题程序化出题的必要性和需求性;其次,从基本步骤、试题属性和可行性3个方面讨论了高等数学试题程序化生成方案;再次,在开发环境和相关技术中简要介绍了LaTeX排版软件、Python编程语言和PyLaTex库;最后,在程序化生成系统的实现过程中详细介绍了软件开发规范、基本要求和功能实现方式。
关键词:试题 LaTeX 程序化 高等数学
中图分类号:F303文献标识码:A 文章编号:1672-3791(2023)11-0236-04 Research on the Programmed Generation Method of Advanced
Mathematics Test Questions
ZHANG Suhong CHEN Shuni LIU Zhen
*
(College of Science, Zhejiang University of Technology, Hangzhou, Zhejiang Province, 310023 China) Abstract:The programmed generation method of Advanced Mathematics test questions is to use computer pro‐gramming to generate high-quality Advanced Mathematics test questions. Considering the unique forms of formu‐las, symbols and charts in Advanced Mathematics test questions, the programmed generation method of test ques‐tions selects Python as the programming language, and generates test questions by calling PyLaTex of the Python implementation library of LaTeX. Firstly, this paper introduces the necessity and demand of the programmed ques‐tion setting of Advanced Mathematics test questions, and then discusses the programmed generation scheme of Ad‐vanced Mathematics test questions from three aspects: basic steps, question attributes and feasibility. Then it briefly introduces LaTeX typesetting software, the Python programming language and the PyLaTex library in the develop‐ment environment and related technologies. Finally, it details the development specifications, basic requirements and function implementation methods of  software during the implementation of the programmed generation system. Key Words: Test questions; LaTex; Programmed; Advanced Mathematics
高等数学作为大学教育的基础,是高等教育课程中最重要的基础理论课程之一。高等数学的学习可以有效培养学生的逻辑思维能力、空间想象能力和灵活运用所学知识解决问题的能力。高等数学教学过程中的知识测试有着多重目的和作用。测试可以考核学生对高等数学知识、理论和技巧的掌握情况,可以反映学生应用知识解决问题的能力,可以考查学生创新能力。灵活多变的试题通过抽象概括出知识点的核心内容,引导学生进行深入思考、分析和创新,提高学生的数学素养。如何定制合适的试题模式有效地测评并实现学生和知识的互动是教育工作者关注的重要问题。
计算机技术的发展促进了教育领域中技术的发展和变革。利用计算机技术可以辅助教师命题组卷,建立科学管理的试题数据库,提高命题选题的效率和科
DOI:10.16661/jki.1672-3791.2205-5042-3044
通信作者: 刘震(1976—),男,博士,副教授,研究方向为数学教育,E-mail:****************。
学性。何国亮等人[1]使用在线测试平台研究了高等数学过程性评价体系。李江洪、党燕[2-3]分别分析了建立高等数学试题库的策略和使用计算机软件方法分析解决问题。许佳婷等人[4]探索了问题驱动式方法的卡诺循环教学设计方法。李常宝、胡荣、张海洋[5-7]、邱桂华等人[8]研究了在线题库组卷系统并且一些智能算法被用于试题库的生成和组卷系统的建立。池佳钟[9]使用CTeX排版软件设计与实现试卷模板和组卷系统。计算机软件相关的辅助教学系统可以突破传统的教学方法,减少教师的工作压力
并提升教学质量。高等数学试题具有运算符号和公式较多的特点,使用LaTeX样式的排版是一种便利的选择方式。文章将使用Py‐LaTeX实现数学试题程序化系统,并给出试题详细的构造方式。
1 高等数学试题程序化出题的必要和需求性
高等数学测试在教师教学和学生学习过程中起到重要的作用。一方面,标准化的测试在学生的学习过程中起到标尺的作用。测试结果可以有效检测学生对所学知识内容和解题技巧掌握程度,反映学生的学习能力和学习状态的各种情况,学生可以根据测试结果更正自己的学习方法和学习态度。另一方面,有效的测试在教师教学过程中起到检测教学成果的作用。通过测试,教师可以了解学生对讲授知识的掌握程度,对讲课方法和技巧的适应程度。通过测试结果,教师适当调节自己讲课内容和节奏更加适应学生的学习。
目前,在试题的产生阶段,教师采用的是传统主观构造的方式。教师个体不同的知识积累和教学经验使试题结构存在主观性和片面性等缺点。这样测试的效果对于学生和教师都很难达到测试的目的。高等数学试题的程序化出题可以使试题构造规范化和标准化。在教学过程中,例题的讲解、作业的布置、单元小结和测试需要题型多变的数学试题和题型。学生在学习过程中,需要完善的学习教辅测试习题。灵活多样的试题、正确解题和分析过程可以大大促进学生学习并提高学习效果。
2 高等数学试题程序化生成方案分析
2.1  试题属性分析
2.1.1 试题题型
根据高等数学试题的特点,试题分为主观题和客观题两大部分。主观题主要有简答题、计算题,客观题主要有选择题、填空题、判断题等题型。试卷中具体题型分布由教师按照考试需求来选择。2.1.2 试题难度
难度是试题的核心属性之一,可以反映出学生对所学知识的掌握程度。试题的难度值是结合教师教学经验和学生历史测试结果来确定。难易度取值范围为0.0~1.0之间,值越大对应难度越大。试题生成时要根据测试目的、学生情况等因素灵活地组合不同难度的试题,使试题题型、难度分布合理。
2.1.3 试题对应知识点
试题中考核的内容要做到重要知识点的全覆盖。生成的试题可以根据教学进度、内容和目标给出对应的试题以考查学生对相应知识点的掌握情况,并要求知识点对应的试题分布合理。
2.2  试题程序化生成可行性分析
计算机信息技术的发展使改善传统的高等数学试题产生模式成为可能。高等数学试题不同于其他学科
具有大量复杂公式和特殊字符,使用传统的排版软件如Word不太便利,而且这些软件不具有编程功能,不能实现程序化地生成试题。LaTeX是一种基于TeX的排版系统,已经成为数学、物理、计算机等科技领域专业排版的标准软件,其处理的文稿版面美观,特别擅长排版数学公式和符号,被广泛应用于数学、科技类的文档排版。PyLaTeX作为Python和LaTeX之间一个简单的可扩展接口,使开发出一种高效的数学试题程序化生成方案成为可能。
使用Python编程和代码实现的方式生成高等数学试题,任课教师可以根据自己的教学目标、教学内容自动生成针对相同知识点的各种不同试题。在课堂小测时,程序代码将生成多组相同题型、相同难度、不同参数的试题。教师通过测试结果得知学生对于知识点的掌握情况和熟练程度。在期末测验时,软件生成一系列不同题型、不同难度、不同知识点的试题,通过合理的随机组合策略生成多种测试试卷。这样可以实现不同的学生使用相同难度的不同试卷进行测试,提高测试试题和测试时间选择的灵活性。
2.3  试题程序化生成的基本步骤
数学试题程序化生成方案是使用Python编程调用PyLatex库,通过执行编写好的试题生成程序从而得到一份完整的试卷。在编程过程中生成的试卷需要满足教学大纲、知识点分布情况、难易程度等条件的要求。通过测试,试卷内容能够科学地考查学生对知识实际的掌握情况,同时对应的测试结果也可以反映教师的教学效果,对课堂整体情况的把握程度等教学情况。试题程序化生成的基本步骤如下。
首先选择试题测试内容和知识点,试题难易程度,各种题型占用比例。然后给出试卷标题、学号、班级和姓名的排版。通过系统已设定好的程序和算法对试题各指标进行优化。接着判断试卷是否符合要求,如果符合要求则继续进行下一步,如果不符合要求则返回继续对试卷进行优化。最后输出试卷。
3 高等数学试题程序化开发环境
3.1  LaTeX编辑排版软件
LaTeX是一款基于TeX的高质量文件排版系统,是由美国计算机科学家莱斯利兰波特开发,常应用于大中型技术和科学文档的写作中。LaTeX是建立在Plain TeX软件基础上,TeX的强大功能可以被方便使用。特别对于高等数学这种排版含有大量复杂数学公式科目,该系统提供了命令形式的排版方式可以生成复杂文档的形式。在科技论文相关写作方面显示出了独特的优越性。
LaTex排版可以遵循传统的规则,在排版质量、稳定性、灵活性和可移植性等方面都显示出超常等优越性。随着排版需求和软件的不断更新,LaTex排版结果可以提供多样化的输出方式。在提供传统的纸质媒体输出的基础上,提供了以PDF电子文档的格式投影仪上的输出,还提供了把LaTex的源文件直接输出成HTML格式文件,这样就方便了互联网上的文件的发布。
不同于Word这种所见即所得的排版方式,LaTeX 的排版过程要求作者明确说明文档的逻辑结构,通过代码命令的方式决定整个文档的排版形式。LaTeX文档有序言和主体两个主要部分组成。序言码是LaTeX 文件的第一部分,它包含有关文档的详细信息,例如文档类、作者姓名、标题等。LaTeX文档的主体部分包括表格、数学方程式、图形等,文档的所有内容都在"\begin{document}"和"\end{document}"中。高等数学试题同普通试题相比,符号繁多、公式复杂,LaTeX系统能提供专业级的排版设计,轻松生成复杂的数学公式和精美的图表,实现数学试题的美感。
3.2  Python语言与PyLaTeX库
高等数学试题程序化生成方案使用Python语言进行开发。Python是一种面向对象的、高级的、解释性的和通用的开发语言。它支持结构化、面向对象和函数式编程多种编程范例。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。Python语言免费、开源的优点使它同时具有可移植性、可扩展性、可扩充性以及可嵌入性。Python还提供了除了庞大的标准库以外许多高质量的库。该文就是基于Python中的PyLaTex库开发出一个高等数学试题程序化生成系统。
PyLaTeX是一个用于创建和编译LaTeX文件的Python库。这个库的目标是成为Python和LaTeX之间一
个简单但可扩展的接口。PyLaTeX主要围绕两个任务进行构建:生成LaTeX代码和编译LaTeX文档。可以使用此模块访问Python中LaTeX的所有功能,可以用更少的代码行来制作文档。但是,PyLaTeX并不仅仅是常规LaTeX代码的包装器。关于LaTeX语法的许多相关部分是形式化的,因此LaTeX命令可以很容易地用存储在Python数据结构中的参数调用,并且文档本身可以从Python代码中以灵活的方式生成。
4 高等数学试题程序化生成系统的实现过程
4.1  试题程序化生成系统的基本要求
软件系统可以根据任课教师需要程序化生成高等数学试题对学生进行测试。为了生成一份高质量高等数学试题,试题生成系统应满足以下要求。
(1)系统生成的试题具有科学性、目的性、层次性原则。试题的生成能够按照考试大纲要求恰当地选择试题难度、类型和数量。能够针对不同阶段的授课时段生成合适的测试试题,如课程章节测试、期中检测和期末检测等。试卷的生成能够充分考虑学生对知识掌握程度的差异,生成具有难度梯度的试题进行区别测试。
(2)试卷的程序化生成要具有多样性,试题可以适用于随堂测验、期中测试和期末测试等多种场合。
在随堂测试中,教师可以根据课程内容生成多组相同题型、相同难度、不相同的试题,并且每次运行系统所生成的试题都具有差异性。对于期中和期末的综合试题,内容应该全面覆盖要求检测的知识点,能够按照教师要求的各项指标完成试卷的生成。教师可以按照教学大纲和学生整体学习情况灵活设置考试范围、内容、难度等条件。
(3)对于不同学期的试卷,系统要求生成相似度较低的试题,这样可以增强试题的保密性。系统可以通过设置随机参数等方式实现这个过程。系统生成的试题应便于管理,试题的增删、查改等功能应安全、高效,方便教师正常使用和维护。
(4)系统生成的试题语言应当简洁准确并做到具有科学性、专业性、权威性等特征。系统生成的试题应对学生的继续学习具有指导意义。通过成绩结果和详细解说过程,能够让学生了解掌握知识的程度,认识到自己不足和需要改进之处。
4.2  试题程序化生成系统的功能实现
高等数学试题程序化生成系统是建立在一个生成
LaTeX文件的Python库PyLaTeX基础上的。PyLaTeX 作为Python和LaTeX之间一个简单的可扩展接口,主要围绕两个任务进行构建:生成LaTeX代码和编译LaTeX文档。对于试题生成系统中重要的单元测试和期末测试,下面将详细介绍程序化生成的过程。
单元测试一般要求题型简单、题目数量较少和解题难度较低,是为了考查学生当堂课上或最近课程时段掌握课程内容的程度。程序化生成方案是通过随机生成参数调整题目的不同,生成10道反映相关知识点的试题。同时系统自动生成答案,方便任课教师的批阅和学生的自我检查。学生的单元测试可以多次进行,系统每次都可生成同等难度的,考查相同知识点的不同试题。
期末试卷考查知识点覆盖面广,试题难度和数量相比单元测试都有所提高。在试卷程序化生成前,教师需要对题型和知识点对应的程序参数进行设置。考虑到期末测试参与学生的广泛性并保证试题对学生的公平性,系统生成的试题要进行二次筛选。系统对比以前期末试题和试题库,生成与已有期末试题相关性较小和题型新颖的测试试卷。同时,自动生成答案,方便教师考试成绩的评定和学生考试后的自我检查。4.3  试题程序化生成系统的软件开发规范
试题程序化开发规范对提高试题生成的效率具有非常重要的作用。LaTeX中的数学公式有两种形式,分别是行中公式和独立公式。行中公式在文中与其他文字混编,用如下方法表示:$ 数学公式 $。独立公式单独成行,用如下方法表示:$$ 数学公式 $$。数学公式包括绝对值、根号、运算符、求和、求积、极限、积分、矩阵、方程组、微分及导数等。字体的选择中可以用{\字体{需转换的部分字符}}命令来实现。正文中数学公式默认为意大利体,可以使用\color{颜}{文字}来更改文字颜。
PyLaTeX可以实现高等数学试题程序化的生成。试卷中重要的试题排版和内容设计如下。
页边距设置:使用软件中的geometry宏包调整页边距,使用命令行{"tmargin":"1cm","lmargin":"1cm"},实现上边距1 cm,左边距1 cm。
标题的设置:对于试卷大标题选择居中并加大字号显示。使用PyLaTeX库中的“LargeText”设置实现加大字号功能,并对题目选择居中对齐方式显示。
对齐方式的设置:命令align='c'、align='l'分别实现居中和左对齐,正文中部分内容使用命令Alignat(number‐ing=False,escape=False)居中对齐。这与align='c'不同的是该部分设置的内容可以识别特殊的LaTeX公式,而不是以简单字符形式直接输出。
公式的设置:在LaTeX中公式一般默认居中对齐显示。正文中为了排版的美观,分别使用了noescape、align=l、$$等命令实现公式的不同显示风格。
语言的选择:系统默认语言为英文。考虑到试题面向对象,系统调用中文宏包CTeX实现数学试题的中文显示。
5 结语
文章介绍了基于PyLaTex实现的高等数学试题程序化生成方法。通过编写代码的方式,可以实现高等数学试题的多样化。这种辅助教学系统突破传统的教学方法可以使教师把注意力集中到课程的知识点
的传授上,减少教师的工作压力和提升教学质量。灵活多变和难度适中的试题对教师的教学和学生的学习都起到很好的促进作用。在学生完成作业和考试时,可以最大限度地避免抄袭和作弊等出现的问题。因此,各高校将该方法应用到高等数学试题库建设中,通过更新软件运行算法,针对不同知识点对试题进行有效分类和难度分级,有效扩充试题库容量。同时,使用Web 和App开发的方式实现试题库在线共享和试题解答的智能分析和判断。
参考文献
[1]何国亮,何琳,曲双红.基于在线测试平台的高等数
学过程性评价研究[J].高教学刊,2020(13):69-72. [2]李江洪.基于院校实际建立高等数学试题库的对策
探析[J].轻纺工业与技术,2019,48(12):191-192. [3]党燕.基于B/S架构的试题库管理系统设计与实现
[J].网络安全和信息化,2022(2):60-62.
[4]许佳婷,王红霞,孙红辉.基于问题驱动式方法的卡
诺循环教学设计探究[J].科技创新导报,2020,17(3): 192-194.
[5]李常宝.基于RestAPI的在线题库组卷系统的开发
[J].数字通信世界,2021(12):18-20.
[6]胡荣.基于动态抽题算法的智能组卷系统设计[J].最有前途的编程语言
信息与电脑,2021,33(12):42-44.
[7]张海洋.基于遗传算法的自动组卷系统优化设计及
应用[D].马鞍山:安徽工业大学,2019.
[8]邱桂华,李贤阳,肖宝,等.一种基于智能组卷的试题
库随机分段抽题算法[J].北部湾大学学报,2020,35
(11):31-35.
[9]池佳钟.基于CTEX排版软件的试卷模板和组卷系
统的设计与实现[D].呼和浩特:内蒙古大学,2019.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。