逄靚
摘要:目前各高校程序設計類課程的考試模式發(fā)生了改變,以往單純筆試或上機編程的考試方式逐步改為使用在線考試系統(tǒng)進行。但是針對大部分考試系統(tǒng),不能適應客觀性試題與主觀性試題混合隨機組卷、判卷的弊端。該文設計開發(fā)一款基于 B/S 模式混合組卷的在線考試系統(tǒng),重點對隨機組卷和主觀題自動判卷兩個功能進行詳細研究,學生登錄系統(tǒng)后,進行程序設計類課程的階段考試或期末考試,教師既能及時了解學生學習效果,同時也能減輕教師的工作壓力。
關鍵詞:在線考試系統(tǒng);B/S;程序設計
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)08-0085-02
1 背景
在互聯(lián)網(wǎng)遍布的時代,在線教學在如今傳統(tǒng)課堂中的地位很高,隨著在線教學不斷建設與發(fā)展,成為一種超前的教學方式,發(fā)展空間非常廣闊,是教學改革的重要方向。同時,對應在線教學的考試方式也要進行改革,要順應考試發(fā)展的新趨勢。改變傳統(tǒng)的考試方式,將線上考試融入課程中。高校中程序設計類課程是實踐性很強的課程,主要培養(yǎng)學生的邏輯思維能力、創(chuàng)新思維能力以及實踐動手能力。這類課程的考核重點是考查學生對理論知識和實踐技能的綜合運用情況。在高校程序設計類課程的傳統(tǒng)考試方式主要有三種類型:紙質(zhì)閉卷考試、上機編程考試、期末答辯考試。本文根據(jù)這類課程的特點,構建出適合該類課程的考試系統(tǒng)。
隨著“在線考試系統(tǒng)”在教學領域的不斷應用,人工進行出出題、閱卷的方式已不能適應考試需求,各高校逐步使用在線考試系統(tǒng)對學生的學習效果進行考核評估。目前,適用于程序設計類課程的在線考試系統(tǒng)都存在一定的弊端,主要出現(xiàn)在以下三個方面:1)沒有針對程序設計類課程專業(yè)的在線考試系統(tǒng),對于程序設計類課程依然采用通用考試系統(tǒng),該系統(tǒng)適用于多類課程,系統(tǒng)操作復雜;2)大多數(shù)系統(tǒng)僅有客觀題,沒有編程填空、程序實操等主觀題,所以很難考查學生動手編程能力。即使有主觀試題,系統(tǒng)也不支持主觀題自動判卷,需要教師人工判卷給出成績;3)依賴于開源的程序評測系統(tǒng)進行考試,雖然實現(xiàn)了主觀題的自動判卷功能,但這類考試系統(tǒng)僅支持主觀性試題,沒有客觀題型的設置,不能全面地考查學生的理論知識。
針對以上的三種問題,設計并開發(fā)出適合程序設計類課程的在線考試系統(tǒng),全面考查學生的理論知識和實踐技能。將客觀性試題(單選、多選、判斷等)與主觀性試題(如程序填空,在線編程等)混合組卷,實現(xiàn)在線自動判卷,既能及時地檢測學生的學習效果,又大大減少了教師的工作量。
2 系統(tǒng)設計
2.1 概要設計
在線考試系統(tǒng)共分為三種角色,分別為學生、教師、管理員。學生登錄系統(tǒng)后按照考試要求選擇科目進行試卷答題,系統(tǒng)會自動計時,學生在規(guī)定的時間內(nèi)提交試卷,否則系統(tǒng)會自動提交試卷。教師登錄系統(tǒng)后,對本學科的題庫進行維護,根據(jù)考試要求進行手動組卷或制作試卷模板,同時可以查詢學生的考試成績,以及試卷分析。管理員登錄系統(tǒng)后,可以對各類用戶進行管理,按班級對學生進行分類,然后創(chuàng)建學生用戶,維護系統(tǒng)數(shù)據(jù)等。
2.2 模塊設計
為確保系統(tǒng)的安全及考試的公正,不同角色用戶擁有的系統(tǒng)權限不同,對于教師角色來說,教師僅可以查看或管理所教授課程的學生成績和課程題庫。而對于學生角色來說,學生僅可以查看到本次考試的試卷信息。這樣的好處既可以歸集各類數(shù)據(jù),填充更新數(shù)據(jù)庫,又能保證數(shù)據(jù)庫的安全性,此系統(tǒng)又分為以下幾個模塊。
1)課程信息模塊。該模塊是由管理員角色進行管理,需要管理員完成所有程序設計類課程和課程所對應的班級的信息錄入。課程管理對考試課程的添加、修改、刪除、查詢等功能。班級管理是對參加考試的班級進行設置,以及對各班級中學生的信息批量導入,在班級中實現(xiàn)增加、修改、刪除、查詢學生信息等功能。
2)題庫管理模塊。該模塊是由教師角色進行管理,負責管理課程考試中所需要的試題庫。不同課程的教師登錄后,按照知識點分類對該課程的試題庫進行增、刪、改、查等操作,批量導入試題時必須按照指定的格式。試題設置的類型分為客觀題和主觀題兩部分,題目數(shù)量、題目分值和難易程度都要由教師進行把控。試題難度分為容易、中等、較難三個等級。每個題目都包含題目序號、題目內(nèi)容和標準答案。為后期自動組卷和自動判卷提供保障[3]。
3)試卷管理模塊。該模塊是由教師角色進行管理,主要包括同卷混排和隨機組卷兩種形式,教師可任意選擇。同卷混排方式可以根據(jù)教師考查的重難點進行合理出題,教師根據(jù)題庫中試題所考查的知識點任意挑選題目并設置題量和分值,在試卷的排列中試卷內(nèi)容是相同的,題目順序可設為相同或隨機混合排序,最終生成試卷。隨機組卷方式可以根據(jù)教師制定的組卷模板,自動生成制定指定數(shù)量的試卷。每位學生的試卷題目不相同。試卷模板包括考試科目、客觀題題型和數(shù)量、主觀題題型和數(shù)量、各類題型中各題目的分值,每部分知識點占比等。
4)在線考試模塊。在線考試模塊是系統(tǒng)中最重要的部分,學生登錄系統(tǒng)后,系統(tǒng)會分配應考試卷,學生按照要求答題即可。在試卷頁面會有計時功能,在系統(tǒng)規(guī)定時間內(nèi)提交試卷,否則計時結束后會自動提交。提交試卷后,系統(tǒng)會對整個試卷進行自動評分并顯示在頁面中,同時該成績被保存到數(shù)據(jù)庫中,不能進行更改。
5)成績管理模塊。教師登錄后,可查詢自己所有教授課程班級學生的考試成績,可以按專業(yè)、班級、學生姓名分類進行查詢。同時可以以授課班型為單位導入Excel文件格式成績單。
6)統(tǒng)計分析模塊。該模塊由教師角色進行管理。包括學生成績分析,試卷分析等功能。學生成績分析功能中分別對各專業(yè)所有學生、某班級所有學生某一課程的考試成績進行分析,分析包括參加考試人數(shù)、缺考人數(shù)、平均分、各分數(shù)段人數(shù)占比、不及格人數(shù)比率、最高最低成績等情況,最終形成成績分布圖。試卷分析功能是分析試卷題型設置、題目難易程度測試、各章節(jié)題目比例及對考試時間統(tǒng)計最早交卷、最遲交卷、最長耗時、最短耗時等情況,系統(tǒng)可以導出Excel文件格式的成績分析表。
7)系統(tǒng)管理模塊。該模塊由管理員角色進行管理,管理用戶基本信息、角色管理。管理員可以對用戶進行增、刪、改、查,定位每位用戶的角色,為每個用戶設置權限。完成系統(tǒng)運行相關參數(shù)設置后,系統(tǒng)將其存入數(shù)據(jù)庫中。
3 系統(tǒng)實現(xiàn)
3.1 在線考試實現(xiàn)
學生登錄系統(tǒng)后,判斷考試是否開始,如果未開始考試,學生點擊開始按鈕,系統(tǒng)為學生生成試卷并記錄試卷,學生按要求進行答題,試卷頁面采用一題一頁的形式,頁面最右側添加題目選項,學生可以隨時切換到對應的題號頁,對答案進行修改[2]。
在頁面的最下方有提交按鈕,學生在規(guī)定的時間內(nèi)完成答案,可以進行試卷提交,提交試卷后,提交后退出試卷頁面,進入成績顯示頁面,頁面中會顯示本次考試的總成績。并將總成績保存到數(shù)據(jù)庫中。如果在規(guī)定時間內(nèi)沒有提交試卷,考試時間到系統(tǒng)會自動提交并顯示成績,本次考試結束[3]。
3.2 隨機組卷實現(xiàn)
題庫的設計主要涉及選擇題表、知識點表、程序填空題表、題目類型表、編程題表等。并設置對應字段例如知識點id、題目id等。學生進入系統(tǒng)后點擊開始考試,系統(tǒng)會自動生成試卷??陀^題組卷方式采用隨機排序算法,客觀題中涉及的知識點進行排序,并將id保存到數(shù)組中。每個知識點對應多類題目,從數(shù)據(jù)庫中讀取對應知識點中的確定個數(shù)的題目,根據(jù)學生人數(shù)和知識點對應題目數(shù)量,對題目進行多次隨機排序,確定題目id后,讀取題目描述和題目中各個選項,對該題目的選項進行隨機排序,保證即使題目相同,選項順序也不相同,最終生成客觀題[4]。
這種組卷方式降低了試卷的重復率和學生作弊的可能。主觀題組卷方式和客觀題類似,但主觀題題型沒有選項,所以不需要多個選項之間的排序。
3.3 題庫管理實現(xiàn)
題庫管理模塊側重于教師對題目數(shù)據(jù)進行操作,主要有三個主頁面,題目錄入頁面、題目管理頁面和題庫管理頁面。
題目錄入頁面中有四部分,知識點部分(科目,所屬知識點)、題型(單選、多選、判斷、程序填空、程序設計)、題干、選項。讀取試題數(shù)據(jù)后檢測試題是否錄入重復,檢測通過后存儲試題數(shù)據(jù)。題目管理頁面提供了多維度的題目查詢功能,包括試題id、關鍵字、課程id、知識點id、題目類型和題目難度。搜索出試題后點擊題干可顯示題目詳細信息。
題庫管理頁面通過三個變量分別用于數(shù)據(jù)交互、讀取教師請求、加載試題,通過7種方法分別用于添加、修改、刪除、批量刪除課程知識點、按知識點導出后下載試題庫、與用戶交互、課程中教師列表。在題庫管理頁面中按照考試的課程和知識點兩層順序展開,頁面以列表的形式展示當前所有內(nèi)容。頁面中有操作部分提供添加、修改、刪除、批量刪除等選項。另外對于課程這一層級,實現(xiàn)了對于教師的權限管理,不同的教師只能對自己所教授的課程進行操作。
3.4 自動判卷實現(xiàn)
本系統(tǒng)有客觀題和主觀題兩種題型,兩種題型都實現(xiàn)在線主動判卷模式。對于客觀題,在導入試題時同時導入了標準答案,所有在學生提交試卷后,與生成試卷時的答案的字符串做比較即可,與答案一致則判定學生答案正確,否則判定失敗。
對于主觀試題中完整的程序設計試題,引用開源的HUSTOJ在線評測系統(tǒng)實現(xiàn)自動判題,對于HUSTOJ中的題庫中的試題,在本系統(tǒng)中的程序試題均有一個屬性進行標記改題目,這樣就實現(xiàn)兩個系統(tǒng)的連接,兩個系統(tǒng)中的題目一一對應。在系統(tǒng)中對學生提交的數(shù)據(jù)進行監(jiān)控,由USTOJ 完成判題,通過運行時間、內(nèi)存占用、數(shù)據(jù)邊界等,判斷代碼是否正確輸出判題結果[4]。系統(tǒng)定時從 HUSTO數(shù)據(jù)庫返回題目結果。
4 結束語
本文專門針對程序設計類課程開發(fā)了一款基于B/S模式的在線考試系統(tǒng),該系統(tǒng)從軟件工程體系結構角度和程序設計類課程知識體系出發(fā)[5],對智能組卷進行深入研究,將客觀題和主觀題混合組卷。同時也著重研究了主觀題目自動判卷功能。
系統(tǒng)基本實現(xiàn)了在線考試的需求,可用于課堂中的隨機測驗,也可以用于期末綜合測驗,大大減少了教師出卷、判卷的工作量,既能全面考查學生綜合程序設計類能力,同時提高了課程考試評估的科學性和準確性。
參考文獻:
[1] 龐希愚,王成.高校程序設計類課程網(wǎng)上考試自動組卷方法的研究[J].中國教育信息化·基礎教育,2020(7):93-96.
[2] 蔡崇超.基于 Web 的在線判題系統(tǒng)設計與實現(xiàn)[J].軟件導刊,2016,15(3):107-109.
[3] 錢曉賢,宋超.基于B/S架構的在線考試系統(tǒng)在高職中的應用[J].電子制作,2017(10):99-100.
[4] 鐵治欣,林永興,冉宇瑤.基于B/S架構的C語言在線考試系統(tǒng)設計與實現(xiàn)[J].軟件導刊,2019,18(10):103-106,110.
[5] 彭易波.基于B/S在線考試系統(tǒng)的研究與設計[J].科技傳播,2010,2(12):188,193.
[6] 張杰.B/S模式高校在線考試系統(tǒng)的研究與設計[J].淮北職業(yè)技術學院學報, 2020(2):107,109.
[7] 鐵治欣,林永興,冉宇瑤.基于B/S架構的C語言在線考試系統(tǒng)設計與實現(xiàn)[J].軟件導刊,2019(10):103-106.
【通聯(lián)編輯:謝媛媛】