楊東寬 趙曉俠 楊微微 寇衛利



摘要:隨著Python編程語言的流行與廣泛應用,隨之各高校開設的Python課程越來越多。傳統Python課程考試在考前準備、考試過程、考后管理等方面存在工作煩瑣、工作效率低、人力財力耗費多等問題。針對傳統Python考試方式存在的問題,現研究采用C/S模式分析設計了一套Python在線考試系統,通過實現Python在線考試、自動判分、隨機出題、成績統計等功能,以減少教師的工作量,提高工作效率,并保證了考試的公平性。
關鍵詞:Python;考試系統;自動判分;隨機組卷;成績查詢
中圖分類號: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 引言
隨著計算機技術的不斷發展,越來越多智能手段代替了傳統依靠大量人力、物力才能解決的問題。目前,Java認證、DB2認證、全國計算機等級考試等均采用了在線考試的方式進行[1]。Python作為一種先進的計算機語言,具有簡潔、易讀、可擴展等特性,被各個企業廣泛應用,進而導致社會對Python人才的需求急劇增長。為了適應社會的需求,開設Python課程的高校越來越多[2]。然而,傳統Python考試工作需要人工完成出題、印刷以及判分等工作,需要花費大量時間和精力。通過Python在線考試系統達到了簡化考試流程的目的,實現了試卷批閱、統計成績等的自動化,減輕了教師和管理人員的工作量[3]。
2 Python在線考試系統需求分析
通常情況下,高校的考試方式是考前授課然后教師提前命題,考后對試卷進行批改、統計、錄入等工作;管理人員需要完成試卷印刷、安排考試,以及后續成績登記等諸多環節。這種方式需要長時間的工作,使得教師和管理人員容易出現一些工作失誤和不客觀的情況。為解決這些問題,亟待構建一套Python在線考試系統,以有效的改善現階段傳統考試方法中存在的問題。Python考試系統的整體邏輯結構應該要相對簡單,自動化程度要高,這樣在減少人力物力的同時還可以提高考試的公平性和準確性[4]。通過分析,系統應該具體實現以下功能(表1)。
3 Python在線考試系統數據庫分析
Python在線考試系統的設計開發中,一方面要考慮到前臺界面能否滿足用戶對系統功能性、實用性和易用性的要求;另一方面還要考慮到后臺數據庫能否滿足系統對數據存儲和安全可靠的需求。因此,選擇合適的開發模式、網站開發工具和后臺數據庫十分重要[5]。
數據庫用來儲存考生信息、試卷信息、標準答案、考生試卷、考試成績等相關信息[6]。該系統采用基于微軟公司的分布式網絡數據庫管理系統Microsoft SQL Server 2012版本的關系型數據庫來實現。圖1是Python在線考試系統數據庫的ER圖。
4 Python在線考試系統實現
4.1 考試系統開發與運行環境
Python在線考試系統的開發語言使用Python 3.7,數據庫采用了Microsoft SQL Server 2012的版本。Web應用框架采用基于MVC模型的Django 2.1搭建,網頁界面使用超文本標記語言HTML編寫以及CSS樣式表進行修飾。為提高考生完成考試操作的便捷性,還需在系統內重視考試環境的設置,即在考試系統中的操作界面建立與Python相似的啟動考試的圖形窗口,使學生在開啟考試系統界面Python Shell后快速進入考試操作環節[7]。
4.2 考生登錄
輸入正確的網址考生們將進入如圖2所示的界面,主要有登錄、注冊、考試、成績查詢等功能。
4.2.1 賬戶登錄及注冊功能
如果考生是首次使用該系統,則需要用自己的學號進行注冊并設置密碼。如果注冊成功系統會自動在后臺數據庫中存入考生的學號和對應的密碼。下次登錄時,考生就可以直接輸入正確的學號和密碼登錄系統參加考試,流程圖如圖3所示。
4.2.2 在線考試功能
考生成功登錄系統后,點擊在線考試即可開始答題。考試時間結束后,系統會自動保存考生已答部分題目的答案并提交到后端數據庫;若考生想提前交卷,則需要自己點擊提交按鈕完成交卷,流程圖如圖4所示。
4.2.3 成績查詢功能
成績管理模塊可以對考生成績進行計算與統計,教師可以通過該考試系統查閱學生的成績信息[8]。考生可登錄自己的賬號進入系統進行查詢個人考試成績、查看考試成績排名、下載成績單等操作,流程圖如圖5所示。
4.3 隨機組卷功能
Python在線考試系統的核心功能就是隨機組卷功能。其工作原理是根據題庫中的題目隨機選出指定數量的題目和對應題目附件(如圖片),自動組成考試試卷[9]。為保證考試的公平性,該系統會自動為考生分配一套試卷,并且保證相鄰考號考生的試卷不重復,能夠有效避免互相抄襲的問題。而且將每位考生考號和試卷號一一對應存儲在數據庫中,以方便系統計算考生成績等操作。考生登錄系統后即可開始在線考試答題,流程圖如圖6所示。
考生在點擊開始考試后,系統會自動調用create_test(n,m)函數遍歷題庫,核心代碼如下:#參數n為題庫中的題目的總數,參數m為考試試卷的總題數:
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')
#從題庫中提取對應題目序號的題目內容
for i in range(len(tino)):
content=content + [worksheet.cell_value(tino[i]+1,1)]
return content
后臺數據庫通過函數的返回值content將系統生成的隨機試卷的信息存入數據庫中。
4.4 自動判分功能
為了減輕教師的工作量,系統利用數據庫中每道題目的關鍵詞、詞序通過正則表達式匹配判分。通過遍歷考生所給對應題目的答案如果匹配成功則加分,否則不給分。最后系統將考生每道題的分值自動進行相加求出總分,然后自動進行排序得到這次考試考生的總排名。同時,系統會自動統計出考生對不同知識點的掌握情況,然后針對不足對教育方案進行完善提高教學水平,流程圖如圖7所示。
系統在收到前端傳來的考生作答信息后,會調用get_score()函數通過判斷是否存在關鍵詞進行判分,代碼如下:
for i in range(len(keyword)):
if keyword[i] in studanswer:
score[i] += 3
return score
隨后系統會根據每題返回的得分進行累加計算出總分并返回總分:
for i in range(len(all_test)):
all_score += all_test[i]
return all_score
5 結論
高校教務管理工作紛繁復雜,每個教學環節對于人才培養來說都至關重要,考試作為教學效果反饋的最有效手段更應該得到足夠的重視,探索考試管理工作新策略、新手段、新方法成為熱點問題[10]。隨著計算機技術的發展和計算機網絡的普及應用,“互聯網+”的方式越來越受到教師和考生的青睞[11]。網絡在線考試系統已經成為當前的主要考試方式,考生可以方便地通過互聯網參加在線考試。針對Python傳統考試方式存在的實際問題,本文分析設計了一套Python在線考試系統,主要分析設計了系統的功能、數據庫存儲、關鍵業務流程,并編寫了核心關鍵代碼,進行了原型系統的開發與試用。研究結果表明:本文提出的Python在線考試模型能夠有效完成考核工作,考試精度較高;采用Python在線考試方式能夠有效解決傳統人工Python考試方式存在的工作量大、評分存在主觀性等問題。本研究將為高校Python課程在線考試系統提供應用模型參考,將有力促進高校教學考試全面自動化的進程。
參考文獻:
[1] 周晨, 陸正, 高鶯,等. 基于 SSH2 的無紙化考試系統的設計與實現[J]. 軟件,2013(12):103-106+113.
[2] 饒東.Python語言在自動化考卷系統中的應用研究[J].信息與電腦(理論版),2018(23):50-51.
[3] 劉永輝.基于PHP的網絡考試系統的開發與設計[J].電子設計工程,2018,26(24):27-31.
[4] 王孟婷.基于Java的在線考試系統設計與實現[J].中國教育技術裝備,2019(24):25-27.
[5] 郭文榮,高宗余,于麗杰.大學網上考試系統的設計與實現[J].計算機與網絡,2014,40(18):59-61.
[6] 蘇玉龍,吳桂濤,曾鴻.內河船機電設備虛擬拆裝考試系統設計與實現[J].大連海事大學學報,2014,40(2):101-104,108.
[7] 藍貞珍.Python程序設計考試系統的研究與分析[J].信息記錄材料,2020,21(8):103-104.
[8] 劉賽娥, 任友理, 浦理娥, 等. 在線考試系統的設計與實現——以云南國土資源職業學院為例[J]. 教育教學論壇,2020(5):144-145.
[9] 王沛.基于SSH框架的在線考試系統設計與實現[D].濟南:山東師范大學,2018.
[10] 楊世超,王劍波.基于B/S的高校考試管理系統設計與實現[J].電腦知識與技術,2020,16(15):124-125.
[11] 劉師良,王淑艷,賈福運.在線考試管理系統的研究與開發[J].電腦知識與技術,2019,15(32):89-90.
【通聯編輯:王力】