摘要:隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展與迭代,萬物互聯(lián)的時代逐步開啟。學(xué)校教育體系和設(shè)備正朝著更加便捷和智能的方向發(fā)展,在線考試也必將成學(xué)校未來的主流的考核方式。在線考試系統(tǒng)是一種智能化、網(wǎng)絡(luò)化的考核模式,它可以節(jié)省更多的人力、物力以及提高考試的效率。該系統(tǒng)以Python語言為基礎(chǔ),通過Flask框架的MTV(Model View Template)模式,結(jié)合前端框架Bootstrap和Jquery技術(shù)實現(xiàn),實現(xiàn)了注冊、登錄、密碼修改、題庫管理、管理員管理、主觀題自動閱卷以及學(xué)生成績的分析與可視化,使得教師和學(xué)生本人能夠直觀地觀測到學(xué)習(xí)情況,以便做出更好的調(diào)整,同時對預(yù)防作弊等問題提出解決方案。
關(guān)鍵詞:教育;在線考試系統(tǒng);Python;Flask;自動閱卷
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2025)02-0047-03 開放科學(xué)(資源服務(wù)) 標識碼(OSID) :
0 引言
考試作為檢測學(xué)生學(xué)習(xí)成果的重要方式之一。線上考試系統(tǒng)能夠代替?zhèn)鹘y(tǒng)的紙質(zhì)考核方式,不僅能夠節(jié)省大量的人力和物力而且能夠更加客觀公正地閱卷。相對于紙質(zhì)試卷的批閱,機器評閱的速度更快且出錯率極小,能夠減少大量重復(fù)且煩瑣的工作[1]。
本次研究以Python語言為基礎(chǔ),通過Flask框架的MTV(Model View Template) 模式,結(jié)合前端框架Bootstrap 和Jquery技術(shù)設(shè)計的一套在線考試系統(tǒng)[2]。系統(tǒng)整體架構(gòu)如圖1所示。
研究內(nèi)容:在線考試系統(tǒng)的角色有老師和學(xué)生。主要實現(xiàn)功能為:1)賬號管理包括但不限于登錄、注冊、密碼修改;2)設(shè)計及上傳題目和參考答案,題型包括選擇、簡答、論文等;3)限時答題;4)客觀題自動閱卷,主觀題人工閱卷;5)查看并下載批閱后的試卷及參考答案;6)成績可視化分析。
1 技術(shù)概述
1.1 Flask 框架
Flask是一個輕量級的Python Web框架,它提供了簡單而靈活的方式來構(gòu)建Web應(yīng)用程序。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎能夠快速構(gòu)建Web應(yīng)用程序。Flask框架采用MTV的模式,即Model(模型) 、View(視圖) 、Template(模板) 來構(gòu)建系統(tǒng)[3](圖2) 。使用該模式能將數(shù)據(jù)、業(yè)務(wù)邏輯和界面展示分離,使得各部分可以獨立進行修改和優(yōu)化,提高了開發(fā)效率。由于三者之間職責(zé)明確,當(dāng)需要進行修改或升級時,開發(fā)者可以更加聚焦于特定的模塊,從而降低了維護的難度和成本。模型、模板和視圖都被視為獨立的組件,可以在多個項目中重復(fù)使用,提高代碼的復(fù)用[4]。由于數(shù)據(jù)、網(wǎng)頁和后臺邏輯之間的互相解耦,某一部分的錯誤不容易影響到其他部分,從而降低了整體的錯誤風(fēng)險。
1.2 Bootstrap 框架
Bootstrap是一個流行的前端框架,它提供了一套用于構(gòu)建網(wǎng)站和Web應(yīng)用界面的HTML、CSS和JavaS?cript 組件[5]。Bootstrap 提供了響應(yīng)式的網(wǎng)頁設(shè)計框架,可以確保網(wǎng)站在不同設(shè)備上(如桌面電腦、平板電腦、智能手機) 都能夠良好地展示和使用。它同樣包含了大量常用的界面組件,如導(dǎo)航欄、按鈕、表單、模態(tài)框、輪播圖等,開發(fā)者可以直接使用這些組件來構(gòu)建網(wǎng)頁[6]。這樣能夠提高開發(fā)者的開發(fā)效率。
2 需求分析與數(shù)據(jù)庫總體設(shè)計
2.1 功能需求分析
此系統(tǒng)分為五大主要的功能模塊,系統(tǒng)功能結(jié)構(gòu)如圖3所示。
2.1.1 賬號管理
此模塊的功能包括學(xué)生賬號管理和教師賬號管理。教師和學(xué)生能夠?qū)ψ约旱馁~號信息進行修改操作且教師能查看及修改學(xué)生的賬號信息。
2.1.2 題庫管理
此模塊的功能包括上傳、修改、刪除、查看試題及參考答案,管理試題。學(xué)生無此權(quán)限。
2.1.3 考試管理
此模塊的功能包括智能組卷、發(fā)布考試信息、修改考試時間、發(fā)布試卷等。
2.1.4 成績管理
此模塊的功能包括學(xué)生可查看個人歷次考試成績且教師能查看及修改所屬學(xué)生的成績,并對考試成績進行可視化分析與匯總。
2.1.5 試卷管理
此模塊的功能包括學(xué)生和教師能夠下載和查看某一次的答題情況(包括參考答案) 。
2.2 數(shù)據(jù)庫整體設(shè)計
2.2.1 數(shù)據(jù)庫設(shè)計
在線考試系統(tǒng)數(shù)據(jù)庫的概念結(jié)構(gòu)主要分為7個實體,包括學(xué)生、教師、選擇題、簡答題、論文題、試卷、成績。學(xué)生實體的屬性有學(xué)號、姓名、性別、學(xué)院、專業(yè)、班級、密碼、聯(lián)系方式;教師實體的屬性有工號、姓名、性別、學(xué)院、密碼、聯(lián)系方式;選擇題實體的屬性有章節(jié)、題號、科目、題目、ABCD選項、參考答案;論文題實體的屬性有章節(jié)、題號、科目、題目、參考答案;試卷實體的屬性有試卷編號、組卷教師工號、考試科目、考試時間;成績實體的屬性有學(xué)號、姓名、試卷編號、科目、分數(shù)。
2.2.2 表關(guān)系
上述七個實體中表與表之間的關(guān)系:對于教師表(表1) 和學(xué)生表,在一個班級中有多個教師且有多個學(xué)生,因此教師表和學(xué)生表為n∶m;對于學(xué)生表和成績表,一個學(xué)生可以參加多門考試,會有多個成績,因此學(xué)生表和成績表為1∶n;對于教師表和試卷表,一個老師可以發(fā)布多一套試卷,因此教師表和試卷表為1∶n;對于試卷表和題庫表,一套試卷包含多道題,題庫里的每道題也可出現(xiàn)在多個試卷中,因此試卷表和題庫表為n∶m。
3 系統(tǒng)功能實現(xiàn)
3.1 學(xué)生端
3.1.1 賬號注冊及登錄
在賬號的注冊及登錄界面,學(xué)生可根據(jù)已經(jīng)注冊的賬號及密碼進行登錄[7];如若賬號或密碼輸入錯誤則會進行相應(yīng)提示;如若未進行注冊,可通過點擊注冊按鈕進入賬號注冊界面填寫相關(guān)信息進行注冊;如若忘記密碼,學(xué)生可通過點擊忘記密碼按鈕跳轉(zhuǎn)至賬號密碼修改界面進行密碼的修改,注冊及修改成功后會自動跳轉(zhuǎn)到賬號登錄界面進行賬號的登錄[8]。重置密碼功能能夠解決部分學(xué)生記不住密碼的問題,使得整個系統(tǒng)更加便捷。
3.1.2 個人信息
學(xué)生可查看和修改個人的基本信息,例如學(xué)生的姓名、性別、學(xué)院、專業(yè)、班級、密碼、聯(lián)系方式以及注銷賬號??梢酝ㄟ^直接修改輸入框中的信息對學(xué)生的個人信息進行修改。能夠靈活地變更學(xué)生信息,便于學(xué)生對自己基本信息的管理。
3.1.3 在線考試
學(xué)生可通過教師發(fā)布的考試入口開始考試。考試界面,如圖4所示。
在考試界面的左下角,添加有考試倒計時,當(dāng)?shù)褂嫊r結(jié)束時,系統(tǒng)自動提交試卷。左側(cè)部分是題目序號,右側(cè)部分是對應(yīng)的每道題目,可通過點擊左側(cè)題目的序號使得右側(cè)顯示相應(yīng)的題目。如若存在未作答的題目,提交按鈕不生效,在作答完所有題目后點擊提交按鈕或者倒計時結(jié)束之后將自動提交結(jié)束考試。自動提交,避免了學(xué)生忘記提交的情況發(fā)生。
3.1.4 試卷查看
學(xué)生可通過試卷查看界面,點擊查看所有已作答的試卷信息,包括試卷的參考答案、解析,以及學(xué)生書寫的答案和考試成績??梢酝ㄟ^導(dǎo)出功能,將試卷信息以pdf文件的方式導(dǎo)出。在已考試卷的列表清單中,每一條信息后面有查看和下載按鈕,通過此按鈕,可以查看學(xué)生已考試卷的答題情況,通過下載按鈕,可以將已考試卷通過pdf文件下載到本地中。
3.2 教師端
3.2.1 賬號注冊及登錄
在賬號登錄界面,教師可通過工號和密碼進行登錄,根據(jù)已經(jīng)注冊的賬號及密碼進行登錄;如若賬號或密碼輸入錯誤則會進行相應(yīng)提示;如若未進行注冊,可通過點擊注冊按鈕進入賬號注冊界面填寫相關(guān)信息進行注冊;如若忘記密碼,教師可通過點擊忘記密碼按鈕跳轉(zhuǎn)至賬號密碼修改界面進行密碼的修改,注冊及修改后會自動跳轉(zhuǎn)到賬號登錄界面進行賬號的登錄。
3.2.2 信息管理
信息管理可分為教師信息管理和學(xué)生信息管理。教師信息管理主要是教師管理個人信息,如工號、密碼、姓名、性別、手機號碼等信息。學(xué)生信息管理主要是管理學(xué)生的個人信息,例如刪除某個學(xué)生信息、修改某個學(xué)生的信息等。
3.2.3 題庫構(gòu)建
教師可以通過題庫構(gòu)建界面分類的、有選擇性地向題庫加入不同類型的試題,教師同樣可以檢索題庫中的信息以及以pdf文件的方式導(dǎo)出篩選過后的題目或者題庫中所有的題目信息。
3.2.4 智能組卷
教師能夠通過此界面進行智能組卷,提前選擇各個章節(jié)題目所占的比重,以及題目的類型,隨機從試題庫中抽取一定數(shù)量的題目組成試卷,并將生成的試卷分發(fā)到學(xué)生端,學(xué)生可通過接口加載試卷并進行考試。
3.2.5 成績中心
成績中心匯總了所有學(xué)生所有考試的成績,以不同場次的考試分類展示。學(xué)生的考試成績,能夠以Excel文件從成績中心保存到本地??蓪W(xué)生的學(xué)習(xí)情況有一個全面的了解,能夠提升教師的關(guān)注效率,幫助教師,更快更準確地了解到學(xué)生成績的基本情況[9]。
在成績中心,根據(jù)學(xué)生考試的成績,生成學(xué)生的單科成績波動的折線圖,通過折線圖,能準確了解學(xué)生個人的學(xué)習(xí)情況。也可通過餅圖的方式展示出整個班級不同分數(shù)段的學(xué)生人數(shù),通過不同的顏色來區(qū)分不同分數(shù)段的學(xué)生及占比,教師能通過學(xué)生個人成績的折線圖和全班成績的分布圖,了解和分析學(xué)生個人及班級整體的掌握情況,以便教師做出教學(xué)調(diào)整。更加高效地教導(dǎo)學(xué)生。
3.2.5 閱卷
教師可通過閱卷界面對某一次考試的主觀題進行批閱。教通過查看學(xué)生已考試卷列表選擇出要批閱的試卷,然后再對學(xué)生所答的題目進行批閱并給出得分[10]。
4 結(jié)束語
本系統(tǒng)以Flask框架構(gòu)建的在線考試系統(tǒng),在一定的程度上學(xué)生能夠在不限制場地,不限制時間實現(xiàn)在線考試、查看考卷和打印考卷。對于教師,該系統(tǒng)可以通過系統(tǒng)進行考卷發(fā)布、在線批改試卷、發(fā)布成績、查看學(xué)生成績、導(dǎo)入試題和自動化閱卷等功能。此系統(tǒng)能夠極大地減少教師的工作量以及更好地管理學(xué)生以及對學(xué)生的作業(yè)進行考核。提高教師的工作效率[11]。同時能極大地抑制和減少作弊等情況的出現(xiàn),能極大程度地保證公平公正的原則。
參考文獻:
[1] 范路橋,段班祥,高潔,等.基于Python+Flask+MySQL的知寶問答系統(tǒng)[J].現(xiàn)代計算機,2022,28(22):93-98.
[2] 翟惠良,張曉藝.基于MVC結(jié)構(gòu)的油罐容量計算系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2016(7):29-33.
[3] 高思洋,孫秋灼,牛盼盼.基于Python的在線考試系統(tǒng)設(shè)計與實現(xiàn)[J].信息與電腦,2023,35(5):124-127.
[4] 范路橋,高潔,段班祥.基于Python+Flask+ECharts的國內(nèi)熱門旅游景點數(shù)據(jù)可視化系統(tǒng)[J].現(xiàn)代電子技術(shù),2023,46(9):126-130.
[5] 何佳穎,熊峰,潘永平,等.基于程序題的自動批改系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2022(4):54-57.
[6] 董付國.Python程序設(shè)計實用教程[M].北京:北京郵電大學(xué)出版社,2020.
[7] 牛作東,李捍東.基于Python與flask工具搭建可高效開發(fā)的實用型MVC框架[J].計算機應(yīng)用與軟件,2019,36(7):21-25.
[8] 劉曉光.基于MySQL的分布式SQL數(shù)據(jù)庫的設(shè)計與實現(xiàn)[D].北京:中國科學(xué)院大學(xué),2016.
[9] 田宗軍,王桂峰.基于B/S模式的在線考試系統(tǒng)[J].計算機與信息技術(shù),2009(3):90-91.
[10] 肖洋,王驍,劉鳳新.在線考試組卷算法研究[J].北京化工大學(xué)學(xué)報(自然科學(xué)版),2006,33(4):44-47.
[11] 陳薈慧,張新顏.在線考試系統(tǒng)的分析與設(shè)計[J].計算機技術(shù)與發(fā)展,2009,19(10):214-217,221.
【通聯(lián)編輯:朱寶貴】
基金項目:本課題得到鄭州地方高校急(特) 需專業(yè)數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)項目:ZZLG202301;黃河科技學(xué)院校級教改項目,編號:kg233xm009