張素紅 陳淑妮 劉震
摘??要:高等數(shù)學(xué)試題程序化生成方法是使用計算機編程方式生成高質(zhì)量的高數(shù)試題??紤]高等數(shù)學(xué)試題中獨特形式的公式、符號和圖表等,試題程序化生成方法選擇Python作為編程語言,通過調(diào)用LaTeX的Python實現(xiàn)庫PyLaTex生成試題。該文中,首先介紹了高等數(shù)學(xué)試題程序化出題的必要和需求性,然后從基本步驟、試題屬性和可行性3個方面討論了高等數(shù)學(xué)試題程序化生成方案。隨后在開發(fā)環(huán)境和相關(guān)技術(shù)中簡要介紹了LaTeX排版軟件、Python編程語言和PyLaTex庫。最后在程序化生成系統(tǒng)的實現(xiàn)過程中詳細介紹了軟件開發(fā)規(guī)范、基本要求和功能實現(xiàn)方式。
關(guān)鍵詞:試題???LaTeX???程序化??高等數(shù)學(xué)
中圖分類號:F303?????????????文獻標(biāo)識碼:A
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?programming?to?generate?high-quality?Advanced?Mathematics?test?questions.?Considering?the?unique?forms?of?formulas,?symbols?and?charts?in?Advanced?Mathematics?test?questions,?the?programmed?generation?method?of?test?questions?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?question?setting?of?Advanced?Mathematics?test?questions,?and?then?discusses?the?programmed?generation?scheme?of?Advanced?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?development?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
高等數(shù)學(xué)作為大學(xué)教育的基礎(chǔ),是高等教育課程中最重要的基礎(chǔ)理論課程之一。高等數(shù)學(xué)的學(xué)習(xí)可以有效培養(yǎng)學(xué)生的邏輯思維能力、空間想象能力和靈活運用所學(xué)知識解決問題的能力。高等數(shù)學(xué)教學(xué)過程中的知識測試有著多重目的和作用。測試可以考核學(xué)生對高等數(shù)學(xué)知識、理論和技巧的掌握情況,可以反映學(xué)生應(yīng)用知識解決問題的能力,可以考查學(xué)生創(chuàng)新能力。靈活多變的試題通過抽象概括出知識點的核心內(nèi)容,引導(dǎo)學(xué)生進行深入思考、分析和創(chuàng)新,提高學(xué)生的數(shù)學(xué)素養(yǎng)。如何定制合適的試題模式有效地測評并實現(xiàn)學(xué)生和知識的互動是教育工作者關(guān)注的重要問題。
計算機技術(shù)的發(fā)展促進了教育領(lǐng)域中技術(shù)的發(fā)展和變革。利用計算機技術(shù)可以輔助教師命題組卷,建立科學(xué)管理的試題數(shù)據(jù)庫,提高命題選題的效率和科學(xué)性。何國亮等人[1]使用在線測試平臺研究了高等數(shù)學(xué)過程性評價體系。李江洪、黨燕[2,3]分別分析了建立高等數(shù)學(xué)試題庫的策略和使用計算機軟件方法分析解決問題。許佳婷等人[4]探索了問題驅(qū)動式方法的卡諾循環(huán)教學(xué)設(shè)計方法。李常寶[5]研究了在線題庫組卷系統(tǒng)并且一些智能算法被用于試題庫的生成和組卷系統(tǒng)的建立[6-8]。池佳鐘[9]使用CTEX排版軟件設(shè)計與實現(xiàn)試卷模板和組卷系統(tǒng)。計算機軟件相關(guān)的輔助教學(xué)系統(tǒng)可以突破傳統(tǒng)的教學(xué)方法,減少老師的工作壓力并提升教學(xué)質(zhì)量。高等數(shù)學(xué)試題具有運算符號和公式較多的特點,使用LaTeX樣式的排版是一種便利的選擇方式。文章將使用PyLaTeX實現(xiàn)數(shù)學(xué)試題程序化系統(tǒng),并給出試題詳細的構(gòu)造方式。
1?高等數(shù)學(xué)試題程序化出題的必要和需求性
高等數(shù)學(xué)測試在教師教學(xué)和學(xué)生學(xué)習(xí)過程中起到重要的作用。一方面,標(biāo)準(zhǔn)化的測試在學(xué)生的學(xué)習(xí)過程中起到標(biāo)尺的作用。測試結(jié)果可以有效檢測學(xué)生對所學(xué)知識內(nèi)容和解題技巧掌握程度,反映學(xué)生學(xué)習(xí)能力和學(xué)習(xí)狀態(tài)的各種情況。學(xué)生可以根據(jù)測試結(jié)果更正自己學(xué)習(xí)方法和學(xué)習(xí)態(tài)度。另一方面,有效的測試在教師教學(xué)過程中起到檢測教學(xué)成果的作用。通過測試,教師可以了解學(xué)生對講授知識的掌握程度,對講課方法和技巧的適應(yīng)程度。通過測試結(jié)果,教師適當(dāng)調(diào)節(jié)自己講課內(nèi)容和節(jié)奏更加適應(yīng)學(xué)生的學(xué)習(xí)。
目前在試題的產(chǎn)生階段,教師采用的是傳統(tǒng)主觀構(gòu)造的方式。教師個體不同的知識積累和教學(xué)經(jīng)驗使得試題結(jié)構(gòu)存在主觀性和片面性等缺點。這樣測試的效果對于學(xué)生和教師都很難達到測試的目的。高等數(shù)學(xué)試題的程序化出題可以使試題構(gòu)造規(guī)范化和標(biāo)準(zhǔn)化。在教學(xué)過程中,例題的講解、作業(yè)的布置、單元小結(jié)和測試需要題型多變的數(shù)學(xué)試題和題型。學(xué)生在學(xué)習(xí)過程中,需要完善的學(xué)習(xí)教輔測試習(xí)題。靈活多樣的試題、正確解題和分析過程可以大大促進學(xué)生學(xué)習(xí)和提高學(xué)習(xí)效果。
2?高等數(shù)學(xué)試題程序化生成方案分析
2.1?試題屬性分析
2.1.1?試題題型
根據(jù)高等數(shù)學(xué)試題的特點,試題分為主觀題和客觀題兩大部分。主觀題主要有簡答題、計算題,客觀題主要有選擇題、填空題、判斷題等題型。試卷中具體題型分布由教師按照考試需求來選擇。
2.1.2?試題難度
難度是試題的核心屬性之一,可以反映學(xué)生對所學(xué)知識的掌握程度。試題的難度值是結(jié)合教師教學(xué)經(jīng)驗和學(xué)生歷史測試結(jié)果來確定。難易度取值范圍為0.0~1.0之間,值越大對應(yīng)難度越大。試題生成時要根據(jù)測試目的、學(xué)生情況等因素靈活地組合不同難度的試題,使試題題型、難度分布合理。
2.1.3?試題對應(yīng)知識點
試題中考核的內(nèi)容要做到重要知識點的全覆蓋。生成的試題可以根據(jù)教學(xué)進度、內(nèi)容和目標(biāo)給出對應(yīng)的試題以考查學(xué)生對相應(yīng)知識點的掌握情況,并要求知識點對應(yīng)的試題分布合理。
2.2??試題程序化生成可行性分析
計算機信息技術(shù)的發(fā)展使改善傳統(tǒng)的高等數(shù)學(xué)試題產(chǎn)生模式成為可能。高等數(shù)學(xué)試題不同于其他學(xué)科具有大量復(fù)雜公式和特殊字符,使用傳統(tǒng)的排版軟件如Word不太便利,而且這些軟件不具有編程功能,不能實現(xiàn)程序化地生成試題。LaTeX是一種基于TEX的排版系統(tǒng),已經(jīng)成為數(shù)學(xué)、物理、計算機等科技領(lǐng)域?qū)I(yè)排版的標(biāo)準(zhǔn)軟件,其處理的文稿版面美觀,特別擅長排版數(shù)學(xué)公式和符號,被廣泛應(yīng)用于數(shù)學(xué)、科技類的文檔排版。PyLaTeX作為Python和LaTeX之間一個簡單的可擴展接口,使得開發(fā)出一種高效的數(shù)學(xué)試題程序化生成方案成為可能。
使用Python編程和代碼實現(xiàn)的方式生成高等數(shù)學(xué)試題,任課教師可以根據(jù)自己的教學(xué)目標(biāo)、教學(xué)內(nèi)容自動生成針對相同知識點的各種不同試題。在課堂小測時,程序代碼將生成多組相同題型、相同難度、不同參數(shù)的試題。教師通過測試結(jié)果得知學(xué)生對于知識點的掌握情況和熟練程度。在期末測驗時,軟件生成一系列不同題型、不同難度、不同知識點的試題,通過合理的隨機組合策略生成多種測試試卷。這樣可以實現(xiàn)不同的學(xué)生使用相同難度的不同試卷進行測試,提高測試試題和測試時間選擇的靈活性。
2.3??試題程序化生成的基本步驟
數(shù)學(xué)試題程序化生成方案是使用Python編程調(diào)用PyLatex庫,通過執(zhí)行編寫好的試題生成程序從而得到一份完整的試卷。在編程過程中生成的試卷需要滿足教學(xué)大綱、知識點分布情況、難易程度等條件的要求。通過測試,試卷內(nèi)容能夠科學(xué)地考查學(xué)生對知識實際的掌握情況,同時對應(yīng)的測試結(jié)果也可以反映教師的教學(xué)效果,對課堂整體情況的把握程度等教學(xué)情況。試題程序化生成的基本步驟如下。
首先選擇試題測試內(nèi)容和知識點,試題難易程度,各種題型占用比例。然后給出試卷標(biāo)題、學(xué)號、班級和姓名的排版。通過系統(tǒng)已設(shè)定好的程序和算法對試題各指標(biāo)進行優(yōu)化。接著判斷試卷是否符合要求,如果符合要求則繼續(xù)進行下一步,如果不符合要求則返回繼續(xù)對試卷進行優(yōu)化。最后輸出試卷。
3??高等數(shù)學(xué)試題程序化開發(fā)環(huán)境
3.1??LaTeX編輯排版軟件
LaTeX是一款基于TEX的高質(zhì)量文件排版系統(tǒng),是由美國計算機科學(xué)家萊斯利蘭波特開發(fā),常應(yīng)用于大中型技術(shù)和科學(xué)文檔的寫作中。LaTeX是建立在Plain?TeX軟件基礎(chǔ)上,TeX的強大功能可以被方便使用。特別對于高等數(shù)學(xué)這種排版含有大量復(fù)雜數(shù)學(xué)公式科目,該系統(tǒng)提供了命令形式的排版方式可以生成復(fù)雜文檔的形式。在科技論文相關(guān)的寫作方面顯示出了獨特的優(yōu)越性。
LaTex排版可以遵循傳統(tǒng)的規(guī)則,在排版質(zhì)量、穩(wěn)定性、靈活性和可移植性等方面都顯示出超常等優(yōu)越性。隨著排版需求和軟件的不斷更新,LaTex排版結(jié)果可以提供多樣化的輸出方式。在提供傳統(tǒng)的紙質(zhì)媒體輸出的基礎(chǔ)上,提供了以PDF電子文檔的格式投影儀上的輸出,還提供了把LaTex的源文件直接輸出成HTML格式文件,這樣就方便了互聯(lián)網(wǎng)上的文件的發(fā)布。
不同于Word這種所見即所得的排版方式,LaTeX的排版過程要求作者明確說明文檔的邏輯結(jié)構(gòu),通過代碼命令的方式?jīng)Q定整個文檔的排版形式。LaTeX文檔有序言和主體兩個主要部分組成。序言碼是LaTeX文件的第一部分,它包含有關(guān)文檔的詳細信息,例如文檔類、作者姓名、標(biāo)題等。LaTeX文檔的主體部分包括表格、數(shù)學(xué)方程式、圖形等,文檔的所有內(nèi)容都在"\begin{document}"和"\end{document}"中。高等數(shù)學(xué)試題同普通試題相比,符號繁多、公式復(fù)雜,LaTeX系統(tǒng)能提供專業(yè)級的排版設(shè)計,輕松生成復(fù)雜的數(shù)學(xué)公式和精美的圖表,實現(xiàn)數(shù)學(xué)試題的美感。
3.2??Python語言與PyLaTeX庫
高等數(shù)學(xué)試題程序化生成方案使用Python語言進行開發(fā)。Python是一種面向?qū)ο蟮摹⒏呒壍?、解釋性的和通用的開發(fā)語言。它支持結(jié)構(gòu)化、面向?qū)ο蠛秃瘮?shù)式編程多種編程范例。Python語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言。Python語言免費、開源的優(yōu)點使得它同時具有可移植性、可擴展性、可擴充性以及可嵌入性。Python還提供了除了龐大的標(biāo)準(zhǔn)庫以外許多高質(zhì)量的庫。本文就是基于Python中的PyLaTex庫開發(fā)出一個高等數(shù)學(xué)試題程序化生成系統(tǒng)。
PyLaTeX是一個用于創(chuàng)建和編譯LaTeX文件的Python庫。這個庫的目標(biāo)是成為Python和LaTeX之間一個簡單但可擴展的接口。PyLaTeX主要圍繞兩個任務(wù)進行構(gòu)建:生成LaTeX代碼和編譯LaTeX文檔。我們可以使用此模塊訪問Python中LaTeX的所有功能,可以用更少的代碼行來制作文檔。但是,PyLaTeX并不僅僅是常規(guī)LaTeX代碼的包裝器。關(guān)于LaTeX語法的許多相關(guān)部分是形式化的,因此LaTeX命令可以很容易地用存儲在Python數(shù)據(jù)結(jié)構(gòu)中的參數(shù)調(diào)用,并且文檔本身可以從Python代碼中以靈活的方式生成。
4??高等數(shù)學(xué)試題程序化生成系統(tǒng)的實現(xiàn)過程
4.1?試題程序化生成系統(tǒng)的基本要求
軟件系統(tǒng)可以根據(jù)任課教師需要程序化生成高等數(shù)學(xué)試題對學(xué)生進行測試。為了生成一份高質(zhì)量高等數(shù)學(xué)試題,試題生成系統(tǒng)應(yīng)滿足以下要求。
(1)系統(tǒng)生成的試題具有科學(xué)性、目的性、層次性原則。試題的生成能夠按照考試大綱要求恰當(dāng)?shù)剡x擇試題難度、類型和數(shù)量。能夠針對不同階段的授課時段生成合適的測試試題,如課程章節(jié)測試、期中檢測和期末檢測等。試卷的生成能夠充分考慮學(xué)生對知識掌握程度的差異,生成具有難度梯度的試題進行區(qū)別測試。
(2)試卷的程序化生成要具有多樣性,試題可以適用于隨堂測驗、期中測試和期末測試等多種場合。在隨堂測試中,教師可以根據(jù)課程內(nèi)容生成多組相同題型、相同難度、不相同的試題,并且每次運行系統(tǒng)所生成的試題都具有差異性。對于期中和期末的綜合試題,內(nèi)容應(yīng)該全面覆蓋要求檢測的知識點,能夠按照教師要求的各項指標(biāo)完成試卷的生成。教師可以按照教學(xué)大綱和學(xué)生整體學(xué)習(xí)情況靈活設(shè)置考試范圍、內(nèi)容、難度等條件。
(3)對于不同學(xué)期的試卷,系統(tǒng)要求生成相似度較低的試題,這樣可以增強試題的保密性。系統(tǒng)可以通過設(shè)置隨機參數(shù)等方式實現(xiàn)這個過程。系統(tǒng)生成的試題應(yīng)便于管理,試題的增刪、查改等功能應(yīng)安全、高效,方便教師正常使用和維護。
(4)系統(tǒng)生成的試題語言應(yīng)當(dāng)簡潔準(zhǔn)確并做到具有科學(xué)性、專業(yè)性、權(quán)威性等特征。系統(tǒng)生成的試題應(yīng)對學(xué)生的繼續(xù)學(xué)習(xí)具有指導(dǎo)意義。通過成績結(jié)果和詳細解說過程,能夠讓學(xué)生了解掌握知識的程度,認(rèn)識到自己不足和需要改進之處。
4.2??試題程序化生成系統(tǒng)的功能實現(xiàn)
高等數(shù)學(xué)試題程序化生成系統(tǒng)是建立在一個生成LaTeX文件的Python庫PyLaTeX基礎(chǔ)上的。PyLaTeX作為Python和LaTeX之間一個簡單的可擴展接口,主要圍繞兩個任務(wù)進行構(gòu)建:生成LaTeX代碼和編譯LaTeX文檔。對于試題生成系統(tǒng)中重要的單元測試和期末測試,下面將詳細介紹它們程序化生成的過程。
單元測試一般要求題型簡單、題目數(shù)量較少和解題難度較低,是為了考查學(xué)生當(dāng)堂課上或最近課程時段掌握課程內(nèi)容的程度。程序化生成方案是通過隨機生成參數(shù)調(diào)整題目的不同,生成10道反映相關(guān)知識點的試題。同時系統(tǒng)自動生成答案,方便任課教師的批閱和學(xué)生的自我檢查。學(xué)生的單元測試可以多次進行,系統(tǒng)每次都可生成同等難度的,考察相同知識點的不同試題。
期末試卷考查知識點覆蓋面廣,試題難度和數(shù)量相比單元測試都有所提高。在試卷程序化生成前,教師需要對題型和知識點對應(yīng)的程序參數(shù)進行設(shè)置??紤]到期末測試參與學(xué)生的廣泛性并保證試題對學(xué)生的公平性,系統(tǒng)生成的試題要進行二次篩選。系統(tǒng)對比以前期末試題和試題庫,生成與已有期末試題相關(guān)性較小和題型新穎的測試試卷。同時自動生成答案,方便教師考試成績的評定和學(xué)生考試后的自我檢查。
4.3??試題程序化生成系統(tǒng)的軟件開發(fā)規(guī)范
試題程序化開發(fā)規(guī)范對提高試題生成的效率具有非常重要的作用。LaTeX中的數(shù)學(xué)公式有兩種形式,分別是行中公式和獨立公式。行中公式在文中與其他文字混編,用如下方法表示?$?數(shù)學(xué)公式?$。獨立公式單獨成行,用如下方法表示$$?數(shù)學(xué)公式?$$。數(shù)學(xué)公式包括絕對值、根號、運算符、求和、求積、極限、積分、矩陣、方程組、微分及導(dǎo)數(shù)等。字體的選擇中可以用?{\字體?{需轉(zhuǎn)換的部分字符}}?命令來實現(xiàn)。正文中數(shù)學(xué)公式默認(rèn)為意大利體,可以使用?\color{顏色}{文字}?來更改文字顏色。
PyLaTeX可以實現(xiàn)高等數(shù)學(xué)試題程序化的生成。試卷中重要的試題排版和內(nèi)容設(shè)計如下:
頁邊距設(shè)置:使用軟件中的geometry宏包調(diào)整頁邊距,使用命令行{"tmargin":?"1cm",?"lmargin":?"1cm"},實現(xiàn)上邊距1?cm,左邊距1?cm。
標(biāo)題的設(shè)置:對于試卷大標(biāo)題選擇居中并加大字號顯示。使用PyLaTeX庫中的“LargeText”設(shè)置實現(xiàn)加大字號功能,并對題目選擇居中對齊方式顯示。
對齊方式的設(shè)置:命令align='c'、align='l'?分別實現(xiàn)居中和左對齊,正文中部分內(nèi)容使用命令A(yù)lignat(numbering=False,?escape=False)居中對齊。這與align='c'不同的是該部分設(shè)置的內(nèi)容可以識別特殊的LaTeX公式,而不是以簡單字符形式直接輸出。
公式的設(shè)置:在LaTeX中公式一般默認(rèn)居中對齊顯示。正文中為了排版的美觀,分別使用了noescape、align=l、$$等命令實現(xiàn)公式的不同顯示風(fēng)格。
語言的選擇:系統(tǒng)默認(rèn)語言為英文??紤]到試題面向?qū)ο?,系統(tǒng)調(diào)用中文宏包ctex實現(xiàn)數(shù)學(xué)試題的中文顯示。
5??結(jié)語
文章介紹了基于PyLaTex實現(xiàn)的高等數(shù)學(xué)試題程序化生成方法。通過編寫代碼的方式,可以實現(xiàn)高等數(shù)學(xué)試題的多樣化。這種輔助教學(xué)系統(tǒng)突破傳統(tǒng)的教學(xué)方法可以使教師把注意力集中到課程的知識點的傳授上,減少教師的工作壓力和提升教學(xué)質(zhì)量。靈活多變和難度適中的試題對教師的教學(xué)和學(xué)生的學(xué)習(xí)都起到很好的促進作用。在學(xué)生完成作業(yè)和考試時,可以最大限度地避免抄襲和作弊等出現(xiàn)的問題。下一步,我們準(zhǔn)備該方法應(yīng)用到高等數(shù)學(xué)試題庫建設(shè)中,通過更新軟件運行算法,針對不同知識點對試題進行有效分類和難度分級,有效擴充試題庫容量。同時使用Web和App開發(fā)的方式實現(xiàn)試題庫在線共享和試題解答的智能分析和判斷。
參考文獻
[1]何國亮,何琳,曲雙紅.基于在線測試平臺的高等數(shù)學(xué)過程性評價研究[J].高教學(xué)刊,2020(13):69-72.
[2]李江洪.基于院校實際建立高等數(shù)學(xué)試題庫的對策探析[J].輕紡工業(yè)與技術(shù),2019,48(12):191-192.[3]黨燕.基于B/S架構(gòu)的試題庫管理系統(tǒng)設(shè)計與實現(xiàn)[J].網(wǎng)絡(luò)安全和信息化,2022(2):60-62.
[4]許佳婷,王紅霞,孫紅輝.基于問題驅(qū)動式方法的卡諾循環(huán)教學(xué)設(shè)計探究[J].科技創(chuàng)新導(dǎo)報,2020,17(3):192-194.
[5]李常寶.基于RestAPI的在線題庫組卷系統(tǒng)的開發(fā)[J].數(shù)字通信世界,2021(12):18-20.
[6]胡榮.基于動態(tài)抽題算法的智能組卷系統(tǒng)設(shè)計[J].信息與電腦,2021,33(12):42-44.
[7]邱桂華,李賢陽,肖寶,等.一種基于智能組卷的試題庫隨機分段抽題算法[J].北部灣大學(xué)學(xué)報,2020,35(11):31-35.
[8]張海洋.基于遺傳算法的自動組卷系統(tǒng)優(yōu)化設(shè)計及應(yīng)用[D].馬鞍山:安徽工業(yè)大學(xué),2019.
[9]池佳鐘.基于CTEX排版軟件的試卷模板和組卷系統(tǒng)的設(shè)計與實現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2019.