楊東寬 趙曉俠 楊微微 寇衛(wèi)利
摘要:隨著Python編程語言的流行與廣泛應用,隨之各高校開設的Python課程越來越多。傳統(tǒng)Python課程考試在考前準備、考試過程、考后管理等方面存在工作煩瑣、工作效率低、人力財力耗費多等問題。針對傳統(tǒng)Python考試方式存在的問題,現(xiàn)研究采用C/S模式分析設計了一套Python在線考試系統(tǒng),通過實現(xiàn)Python在線考試、自動判分、隨機出題、成績統(tǒng)計等功能,以減少教師的工作量,提高工作效率,并保證了考試的公平性。
關(guān)鍵詞:Python;考試系統(tǒng);自動判分;隨機組卷;成績查詢
中圖分類號:TP311.1? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)11-0071-03
Analysis and Design of Python Online Examination System
YANG Dong-kuan1, ZHAO Xiao-xia2,YANG Wei-wei3,KOU Wei-li1*
(1. College of Big Data and Intelligent Engineering, Southwest Forestry University, Kunming 650224, China;2. Computing Center, Kunming University of Science and Technology, Kunming 650500, China)
Abstract: With the popularity and wide application of the Python programming language, thereafter, colleges set more and more Python courses. The traditional examination manner of Python has many problems including lots of tedious work, inefficiency, intensive cost of human and finance in aspects of pre-examination, examination process, post-examination management. Aiming to solve these problems in traditional Python examination manner, this study analyzed and designed a suite of Python online examination system based on C/S mode. Through the realization of Python online examination, automatic score, random questions, score statistics and other functions, to reduce the workload of teachers, improve work efficiency, and ensure the fairness of the exam.
Key words: Python; examination system; automatic score; random questions;score query
1 引言
隨著計算機技術(shù)的不斷發(fā)展,越來越多智能手段代替了傳統(tǒng)依靠大量人力、物力才能解決的問題。目前,Java認證、DB2認證、全國計算機等級考試等均采用了在線考試的方式進行[1]。Python作為一種先進的計算機語言,具有簡潔、易讀、可擴展等特性,被各個企業(yè)廣泛應用,進而導致社會對Python人才的需求急劇增長。為了適應社會的需求,開設Python課程的高校越來越多[2]。然而,傳統(tǒng)Python考試工作需要人工完成出題、印刷以及判分等工作,需要花費大量時間和精力。通過Python在線考試系統(tǒng)達到了簡化考試流程的目的,實現(xiàn)了試卷批閱、統(tǒng)計成績等的自動化,減輕了教師和管理人員的工作量[3]。
2 Python在線考試系統(tǒng)需求分析
通常情況下,高校的考試方式是考前授課然后教師提前命題,考后對試卷進行批改、統(tǒng)計、錄入等工作;管理人員需要完成試卷印刷、安排考試,以及后續(xù)成績登記等諸多環(huán)節(jié)。這種方式需要長時間的工作,使得教師和管理人員容易出現(xiàn)一些工作失誤和不客觀的情況。為解決這些問題,亟待構(gòu)建一套Python在線考試系統(tǒng),以有效的改善現(xiàn)階段傳統(tǒng)考試方法中存在的問題。Python考試系統(tǒng)的整體邏輯結(jié)構(gòu)應該要相對簡單,自動化程度要高,這樣在減少人力物力的同時還可以提高考試的公平性和準確性[4]。通過分析,系統(tǒng)應該具體實現(xiàn)以下功能(表1)。
3 Python在線考試系統(tǒng)數(shù)據(jù)庫分析
Python在線考試系統(tǒng)的設計開發(fā)中,一方面要考慮到前臺界面能否滿足用戶對系統(tǒng)功能性、實用性和易用性的要求;另一方面還要考慮到后臺數(shù)據(jù)庫能否滿足系統(tǒng)對數(shù)據(jù)存儲和安全可靠的需求。因此,選擇合適的開發(fā)模式、網(wǎng)站開發(fā)工具和后臺數(shù)據(jù)庫十分重要[5]。
數(shù)據(jù)庫用來儲存考生信息、試卷信息、標準答案、考生試卷、考試成績等相關(guān)信息[6]。該系統(tǒng)采用基于微軟公司的分布式網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)Microsoft SQL Server 2012版本的關(guān)系型數(shù)據(jù)庫來實現(xiàn)。圖1是Python在線考試系統(tǒng)數(shù)據(jù)庫的ER圖。
4 Python在線考試系統(tǒng)實現(xiàn)
4.1 考試系統(tǒng)開發(fā)與運行環(huán)境
Python在線考試系統(tǒng)的開發(fā)語言使用Python 3.7,數(shù)據(jù)庫采用了Microsoft SQL Server 2012的版本。Web應用框架采用基于MVC模型的Django 2.1搭建,網(wǎng)頁界面使用超文本標記語言HTML編寫以及CSS樣式表進行修飾。為提高考生完成考試操作的便捷性,還需在系統(tǒng)內(nèi)重視考試環(huán)境的設置,即在考試系統(tǒng)中的操作界面建立與Python相似的啟動考試的圖形窗口,使學生在開啟考試系統(tǒng)界面Python Shell后快速進入考試操作環(huán)節(jié)[7]。
4.2 考生登錄
輸入正確的網(wǎng)址考生們將進入如圖2所示的界面,主要有登錄、注冊、考試、成績查詢等功能。
4.2.1 賬戶登錄及注冊功能
如果考生是首次使用該系統(tǒng),則需要用自己的學號進行注冊并設置密碼。如果注冊成功系統(tǒng)會自動在后臺數(shù)據(jù)庫中存入考生的學號和對應的密碼。下次登錄時,考生就可以直接輸入正確的學號和密碼登錄系統(tǒng)參加考試,流程圖如圖3所示。
4.2.2 在線考試功能
考生成功登錄系統(tǒng)后,點擊在線考試即可開始答題??荚嚂r間結(jié)束后,系統(tǒng)會自動保存考生已答部分題目的答案并提交到后端數(shù)據(jù)庫;若考生想提前交卷,則需要自己點擊提交按鈕完成交卷,流程圖如圖4所示。
4.2.3 成績查詢功能
成績管理模塊可以對考生成績進行計算與統(tǒng)計,教師可以通過該考試系統(tǒng)查閱學生的成績信息[8]??忌傻卿涀约旱馁~號進入系統(tǒng)進行查詢個人考試成績、查看考試成績排名、下載成績單等操作,流程圖如圖5所示。
4.3 隨機組卷功能
Python在線考試系統(tǒng)的核心功能就是隨機組卷功能。其工作原理是根據(jù)題庫中的題目隨機選出指定數(shù)量的題目和對應題目附件(如圖片),自動組成考試試卷[9]。為保證考試的公平性,該系統(tǒng)會自動為考生分配一套試卷,并且保證相鄰考號考生的試卷不重復,能夠有效避免互相抄襲的問題。而且將每位考生考號和試卷號一一對應存儲在數(shù)據(jù)庫中,以方便系統(tǒng)計算考生成績等操作??忌卿浵到y(tǒng)后即可開始在線考試答題,流程圖如圖6所示。
考生在點擊開始考試后,系統(tǒng)會自動調(diào)用create_test(n,m)函數(shù)遍歷題庫,核心代碼如下:#參數(shù)n為題庫中的題目的總數(shù),參數(shù)m為考試試卷的總題數(shù):
def create_test(n,m):
#隨機抽取題目序號
for i in range(5) :
tino = random.sample(range(1,n),m)
f = xlrd.open_workbook('題庫.xls')
worksheet = f.sheet_by_name('Sheet1')
#從題庫中提取對應題目序號的題目內(nèi)容
for i in range(len(tino)):
content=content + [worksheet.cell_value(tino[i]+1,1)]
return content
后臺數(shù)據(jù)庫通過函數(shù)的返回值content將系統(tǒng)生成的隨機試卷的信息存入數(shù)據(jù)庫中。
4.4 自動判分功能
為了減輕教師的工作量,系統(tǒng)利用數(shù)據(jù)庫中每道題目的關(guān)鍵詞、詞序通過正則表達式匹配判分。通過遍歷考生所給對應題目的答案如果匹配成功則加分,否則不給分。最后系統(tǒng)將考生每道題的分值自動進行相加求出總分,然后自動進行排序得到這次考試考生的總排名。同時,系統(tǒng)會自動統(tǒng)計出考生對不同知識點的掌握情況,然后針對不足對教育方案進行完善提高教學水平,流程圖如圖7所示。
系統(tǒng)在收到前端傳來的考生作答信息后,會調(diào)用get_score()函數(shù)通過判斷是否存在關(guān)鍵詞進行判分,代碼如下:
for i in range(len(keyword)):
if keyword[i] in studanswer:
score[i] += 3
return score
隨后系統(tǒng)會根據(jù)每題返回的得分進行累加計算出總分并返回總分:
for i in range(len(all_test)):
all_score += all_test[i]
return all_score
5 結(jié)論
高校教務管理工作紛繁復雜,每個教學環(huán)節(jié)對于人才培養(yǎng)來說都至關(guān)重要,考試作為教學效果反饋的最有效手段更應該得到足夠的重視,探索考試管理工作新策略、新手段、新方法成為熱點問題[10]。隨著計算機技術(shù)的發(fā)展和計算機網(wǎng)絡的普及應用,“互聯(lián)網(wǎng)+”的方式越來越受到教師和考生的青睞[11]。網(wǎng)絡在線考試系統(tǒng)已經(jīng)成為當前的主要考試方式,考生可以方便地通過互聯(lián)網(wǎng)參加在線考試。針對Python傳統(tǒng)考試方式存在的實際問題,本文分析設計了一套Python在線考試系統(tǒng),主要分析設計了系統(tǒng)的功能、數(shù)據(jù)庫存儲、關(guān)鍵業(yè)務流程,并編寫了核心關(guān)鍵代碼,進行了原型系統(tǒng)的開發(fā)與試用。研究結(jié)果表明:本文提出的Python在線考試模型能夠有效完成考核工作,考試精度較高;采用Python在線考試方式能夠有效解決傳統(tǒng)人工Python考試方式存在的工作量大、評分存在主觀性等問題。本研究將為高校Python課程在線考試系統(tǒng)提供應用模型參考,將有力促進高校教學考試全面自動化的進程。
參考文獻:
[1] 周晨, 陸正, 高鶯,等. 基于 SSH2 的無紙化考試系統(tǒng)的設計與實現(xiàn)[J]. 軟件,2013(12):103-106+113.
[2] 饒東.Python語言在自動化考卷系統(tǒng)中的應用研究[J].信息與電腦(理論版),2018(23):50-51.
[3] 劉永輝.基于PHP的網(wǎng)絡考試系統(tǒng)的開發(fā)與設計[J].電子設計工程,2018,26(24):27-31.
[4] 王孟婷.基于Java的在線考試系統(tǒng)設計與實現(xiàn)[J].中國教育技術(shù)裝備,2019(24):25-27.
[5] 郭文榮,高宗余,于麗杰.大學網(wǎng)上考試系統(tǒng)的設計與實現(xiàn)[J].計算機與網(wǎng)絡,2014,40(18):59-61.
[6] 蘇玉龍,吳桂濤,曾鴻.內(nèi)河船機電設備虛擬拆裝考試系統(tǒng)設計與實現(xiàn)[J].大連海事大學學報,2014,40(2):101-104,108.
[7] 藍貞珍.Python程序設計考試系統(tǒng)的研究與分析[J].信息記錄材料,2020,21(8):103-104.
[8] 劉賽娥, 任友理, 浦理娥, 等. 在線考試系統(tǒng)的設計與實現(xiàn)——以云南國土資源職業(yè)學院為例[J]. 教育教學論壇,2020(5):144-145.
[9] 王沛.基于SSH框架的在線考試系統(tǒng)設計與實現(xiàn)[D].濟南:山東師范大學,2018.
[10] 楊世超,王劍波.基于B/S的高??荚嚬芾硐到y(tǒng)設計與實現(xiàn)[J].電腦知識與技術(shù),2020,16(15):124-125.
[11] 劉師良,王淑艷,賈福運.在線考試管理系統(tǒng)的研究與開發(fā)[J].電腦知識與技術(shù),2019,15(32):89-90.
【通聯(lián)編輯:王力】