我國現階段高校C語言課程考試一般是在任課教師結束一學期的教學之后自行命題和組織閱卷,教師命題時要花費大量的時間去搜集考試題目,要做大量的重復工作,而以往很多高質量的考題沒有保存下來。同時,考試結束往往會導致每年高校進行考試的試題質量、難度、區分度、可信度、閱卷的復雜度等有所差異,缺乏一個按照教學要求建立的統一的標準C語言試題庫系統。基于此,本文提供一個專門的C語言試題庫系統。本系統提供C語言試題庫的建立、試卷生成、試題庫管理和評卷系統的完整解決方案。利用本系統可以通過一些簡單的操作和設置,在短時間內生成一套帶評卷系統的考試試卷。該系統在很大程度上減輕任課教師的工作量,建立一種靈活性好,可修改、可擴展的試題庫機制。
1 題庫系統的國內外研究現狀
20世紀40年代中后期,由于戰后經濟的不斷發展,職業的需求對于專業人員的知識技術技能提出更高的要求。這樣使得考試獲得前所未有的發展。隨著考試次數的增多,命題工作量的增大,對考試的要求日益嚴格。這迫使人們尋找更先進的測驗技術,以保證能夠客觀、準確、及時地選拔出合適的人才,考試的命題方式亟待革新,題庫正是順應這一時代潮流需要的產物。
在國內教育測量理論水平的提高和統計軟件的發展的基礎上,我國在題庫建設進行多次嘗試,到目前為止,投入使用且取得顯著成果的是全國英語等級考試(PETS)。該題庫建立于1999年,用于存儲和管理PETS五個級別的試題和生成各級別逐次考試的試卷,有效地保證了PETS考試實施的機動性、命題的靈活性與科學性、考試標準的穩定性,并為相關考試研究(如CBT、IBT等)奠定基礎。
2 試題庫系統編程環境的選擇
試題庫系統就是數據庫管理系統。現在有很多數據庫開發系統,但是由于本系統規模不大,用Visual Basic6.0比較合適。
該C語言試題庫系統以VB語言為基礎,以Access數據庫技術為核心來建立軟件系統。Visual Basic是微軟公司出品的基于Windows應用程序的開發工具,它以簡單易學而受廣大程序員的喜愛。Visual Basic由Basic發展而來,至今仍保留Basic中的上百條語句、函數等。但是與早期Basic不同的是,Visual Basic是可視化的集成開發環境,它以對象為基礎,運用事件驅動機制實現對Windows操作系統事件的響應。Visual Basic提供大量的控件,用于設計用戶的界面,編程人員可以通過拖放操作來完成界面的設計工作,這樣做不僅減輕工作量,簡化界面設計過程,而且有效地提高開發效率及可靠性。
3 系統的總體設計
系統按照結構化分析的方法,采用自頂向下、逐步求精的原則,確定系統數據流程圖。在設計階段與結構設計方法相結合,運用“模塊化設計”構想,把系統分為若干個功能子系統,再根據需要把每個功能子系統進一步劃分。
3.1 系統模塊總體結構
如圖1所示,該系統的總體結構由試題庫管理、試題管理、試卷管理、系統維護四大模塊組成。
3.2 二級模塊結構
1)試題庫管理模塊。如圖2所示,該模塊由填空題庫、選擇題庫、編程填空題庫、編程改錯題庫、編程閱讀題庫、編程題庫6個模塊組成。利用該模塊可以對不同類型的試題模塊進行瀏覽和刪除,對不同題型的分數設置、題型難度進行設置。
2)試題管理模塊。如圖3所示,該模塊主要是對試題進行瀏覽、查詢、添加、修改和刪除操作。利用該模塊教師可以輕松實現對試題庫中試題的修改和錄入,也可以方便地將過時的試題刪除。
3)試卷管理模塊。如圖4所示,該模塊由試卷生成、標準答案生成、瀏覽試卷和打印試卷4個模塊組成。其中試卷生成又分成人工生成和自動生成兩部分。自動生成試卷模塊是該模塊實現根據用戶對所要求試卷的難易程序不同(分為簡單、適中和較難3種),隨機地產生一張考試范圍確定、知識點規定在某個范圍、題目隨機、符合用戶要求的標準試卷。組卷算法利用流逝的時間秒、微妙產生隨機種子值,再由均勻分布的隨機函數產生一個章號、節號,用正態分布的隨機函數從此章節中的這類題目中抽取題號,并且可以實現試卷的瀏覽和打印等操作。人工生成試卷模塊是通過該模塊,用戶可以根據自己的需要生成難易程度不同和不同類型題目個數且試卷格式不同的試卷,同時實現試卷的瀏覽和打印等操作。其中不同類型題目個數范圍為1~50。試卷格式常見的有兩種,用戶可以根據情況決定是否產生程序改錯題。
4)系統維護。如圖5所示,該模塊由用戶設置模塊、管理員設置模塊、退出系統模塊組成。通過用戶設置模塊可以實現一般用戶修改登錄該系統的口令,以便更好地實現該系統的安全性,防止非法用戶的進入和破壞;高一級用戶或者系統管理員可以通過管理員設置模塊添加一些合法用戶、刪除用戶,以及當一般用戶忘記密碼時,由管理員進行密碼的查詢;進入該系統的用戶可以通過退出模塊正常地退出該系統。
4 系統需解決的關鍵問題
如何有效地對不同類型的試題進行管理以及利用已有試題隨機地產生滿足用戶不同需求的試卷,這是在開發該系統的過程中的重點問題,其中隨機地生成試卷又是重點中的難點部分。本系統通過試卷的難易程度、試題的難度系數、一張試卷中不同類型的題目個數以及試卷的格式等參數來實現試卷產生的隨機性。對于一張試卷的難易程度以及合理性,主要是通過學生的應考成績或者其他參數來評價,通過相應的參數可以把試卷的難度分為:簡單,即試卷比較簡單或者沒有什么難度;適中,即難易程度比較合理;較難,即有一定的難度。根據這三點,該系統可以生成以上3種不同難易程度的試卷。
在具體實現的過程中,系統要求每套試題有一個大概的難度系統參數,在試卷生成過程中,系統能合理有效地對試題庫中的試題進行篩選。下面是該系統對于試題的難度系統規定。
1)難度系數的范圍:1~8。
2)試題的難度系數分為4等級。
A.1~2:此難度范圍的試題均是對C語言基本知識的考查,沒有任何難度,屬于基本得分題目。
B. 3~4:此難度范圍的試題均是對C語言基本知識的考查,需要稍加考慮,比較容易得分。
C. 5~6:此難度范圍的試題有一定的難度和綜合性。
D. 7~8:此難度范圍的試題的難度和綜合性都很強,需要對C語言知識有較深的認識和理解。
對于C語言知識的考查,一般可以通過程序基本知識、C語言編程基礎知識、閱讀和理解程序以及編制程序等方面來進行。試題的類型大致可以分為選擇題、填空題、編程填空題、編程改錯題、編程閱讀題和編程題6種。一張試卷中不同類型題目的個數可以根據情況加以選擇,同時編程改錯題這一類型的題目可以根據情況進行取舍。也就是說試卷的格式可以分為包含編程改錯題和不包括編程改錯題兩種。
5 結束語
本系統的設計思想和設計方法行之有效,尤其是自動組卷可達到難度控制,使難易適中。可以方便有效地管理大量的C語言試題,將任課教師從繁瑣的出試卷的工作中解脫出來,很大程度上提高工作的效率。當然本系統還要根據實際的需要不斷地對版本進行更新和升級,以便使它更好地為教學服務。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文