專利名稱::一種程序設計題的考評系統(tǒng)的制作方法
技術領域:
:本發(fā)明涉及計算機技術,特別地涉及一種程序設計題的考評系統(tǒng)。
背景技術:
:隨著網絡技術、計算機技術的不斷發(fā)展,計算機輔助考試系統(tǒng)目前不僅在許多學校的校內考試中得到使用,而且在諸如TOFEL、GRE、通用英語等級考試等大型社會公共考試中得到越來越多地使用。所謂計算機輔助考試一般在計算機上進行,計算機可以根據實際需要對特定的測試者提供符合預定規(guī)則試題的試巻,測試者在計算機上完成相應試題的解答后,將完成的程序源代碼文件提交,由判巻者利用計算機聯網或者脫網進行判分。各種語言的程序設計課程是計算機課程中經??己说目颇?,其考試方法為向測試者布置題目,要求測試者用指定程序語言(如C、C++、Java、Pascal、Basic等)來編制程序,其考核內容主要包括程序結構、數據類型、控制結構、表達式、函數、程序語句、文件處理等等。在程序設計題的考試中,通常會根據考核知識點的需要設置若干個需要測試者進行解答的判分點。在一種現有技術中,程序設計題的出題采取描述式出題的方法,其中,描述式出題是考核者將題目內容與考核知識點用語言敘述的形式記錄到試題中;當出題人完成程序設計題的組題后,將其通過計算機發(fā)布,以供測試者在考試中使用。測試者在考試過程中,通過終端計算機完成其對程序設計題的解答,并將完成的程序源代碼通過網絡進行提交或者在本地計算機中保存并提交。此后,判巻者依順序人工打開每份試巻的程序源代碼文件,并將測試者提交的程序源代碼與題目中要求的判分標準相比較,手動給出相應的答題分數。在這個判分過程中,判巻者對所有試巻是逐份進行人工手動判分的,即,對一份試巻判分完成后才進行下一份試巻的判分。程整個構成了一次計算機輔助考試中程序設計題的考評過程,而上述現有技術中程序設計題的考評方法存在如下缺點當以描述式的方法出題時,其形成的試巻不能進行自動判分,判巻時需要判巻者逐巻打開測試者提交的程序源代碼文件,從而進行人工手動判分,由此會出現勞動強度大、工作效率低等問題,且還容易出現判巻者在不同時段對于不同測試者的相同程序源代碼存在判分不一致的結果,這對于測試者而言也顯然是不公平的。在另一種現有技術中,在程序設計題的出題過程中,考核者將判分點直接編寫到判分程序中,此時可以由程序進行簡單的判分操作。但這種現有技術存在以下重大缺陷(1)每次考試均需要重新修改程序,考核者無法自主出題,對程序的依賴性非常大;(2)程序判分機制比較簡單,一般只有"正確給分,,和"不正確給零分"兩種判分機制,使得部分與預置答案不完全相符的程序源代碼被誤判為錯誤而不得分。
發(fā)明內容本發(fā)明要解決的技術問題是提供一種程序設計題的考評系統(tǒng),使得在計算機輔助考試時的程序設計題出題與判分過程中,考核者靈活性增加,判巻者效率提高、勞動強度降低、且準確率提高,該系統(tǒng)包括樣本模塊,用于預先設置所述程序設計題的判分點及其對應的判分標準,所述的判分標準包括代碼關鍵字及關鍵字順序構成的判分條件和判分分值;程序采集模塊,用于采集待判分程序設計題中的程序源代碼;處理模塊,用于在所采集的程序源代碼與預置判分點的判分條件匹配時,指示判分模塊按照預置判分分值對該判分點進行計分;且將未進行計分的判分點及其對應的程序源代碼提供給外部接口模塊;外部接口模塊,用于接收外部為未進行計分的判分點所輸入的判分分值,并指示判分模塊以所輸入的判分分值對該判分點進行計分。進一步地,該系統(tǒng)還包括顯示模塊,用于顯示未進行計分的判分點及待判分程序源代碼。進一步地,所述處理模塊,還用于在所采集的程序源代碼中不存在與預置判分點的判分條件中首個關鍵字匹配的代碼時,指示判分模塊對該判分點計為零分。進一步地,該系統(tǒng)還包括預匹配模塊,用于在待判分程序設計題中,當所采集的程序源代碼與某個判分點的預置判分條件部分匹配、且上述相同的部分匹配在所有待判分程序設計題中所占比例高于預定值時,按照預置的判分標準生成策略將該部分匹配的信息增加至該判分點所對應的預置判分條件,或者將該部分匹配信息作為待確認的判分條件。進一步地,該系統(tǒng)還包括匹配模塊,用于在所述外部接口模塊接收外部為一未進行計分的判分點所輸入的判分分值后,將其余未輸入判分分值的其它待判分程序設計題中判分點所對應代碼進行匹配,并指示所述計分模塊以該已判分分值對匹配成功的判分點進行計分。進一步地,該系統(tǒng)還包括統(tǒng)計模塊,用于在所述外部接口模塊中不存在未進行計分的判分點時,對屬于同一程序設計題的計分分值進行統(tǒng)計。進一步地,所述外部接口模塊,還用于接收外部輸入的試題信息;此時,所述判分系統(tǒng)還包括試題選定模塊,用于根據所述外部接收模塊與現有技術相比,利用本發(fā)明實施例中的程序設計題的考評系統(tǒng)具有如下顯著優(yōu)點(1)在出題過程中,考核內容仍然以描述的方式提供給測試者,而判分點可以由考核者根據實際需要任意確定。這使判分點的判分標準容易修改,且方便了考核者的組題過程;(2)在判分過程中,對于與預置判分標準中判分條件(包括程序左串、的,判巻者不必反復選定試巻和查閱判分點,而是集中進行連續(xù)判分,這樣判分者思維的連續(xù)性較好,且效率會較高。在另一個方面,也避免了出現判巻者6在不同時段對于不同測試者的相同程序源代碼存在判分不一致的現象。當然,判巻者亦可針對某個或某些測試者的試巻獨立判分,這增加了判巻者判巻時的靈活性。圖1為本發(fā)明實施例的程序設計題的出題過程流程圖;圖2為本發(fā)明實施例的程序設計題的判分過程流程圖;圖3為本發(fā)明實施例的程序設計題的考評系統(tǒng);圖4為本發(fā)明又一實施例的程序設計題的考評系統(tǒng)。具體實施例本發(fā)明提供一種程序設計題的考評系統(tǒng),如圖3所示,該系統(tǒng)包括樣本模塊,用于預先設置所述程序設計題的判分點及其對應的判分標準,所述的判分標準包括代碼關鍵字及關鍵字順序構成的判分條件及判分分值;程序采集模塊,用于采集待判分程序設計題中的程序源代碼;處理模塊,用于在所采集的程序源代碼與預置判分點的判分條件匹配時,指示判分模塊按照預置判分分值對該判分點進行計分;且將未進行計分的判分點及其對應的程序源代碼提供給外部接口模塊;外部接口模塊,用于接收外部為未進行計分的判分點所輸入的判分分值,并指示判分模塊以所輸入的判分分值對該判分點進行計分。進一步地,該系統(tǒng)還包括顯示模塊,用于顯示未進行計分的判分點及待判分程序源代碼。進一步地,所述處理模塊,還用于在所采集的程序源代碼中不存在與預置判分點的判分條件中首個關鍵字匹配的代碼時,指示判分才莫塊對該判分點計為零分。進一步地,該系統(tǒng)還包括預匹配模塊,用于在待判分程序設計題中,當所采集的程序源代碼與某個判分點的預置判分條件部分匹配、且上述相同的部分匹配在所有待判分程序設計題中所占比例高于預定值時,按照預置的判分標準生成策略將該部分匹配的信息增加至該判分點所對應的預置判分條件,或者將該部分匹配信息作為待確認的判分條件。進一步地,該系統(tǒng)還包括匹配模塊,用于在所述外部接口模塊接收外部為一未進行計分的判分點所輸入的判分分值后,將其余未輸入判分分值的其它待判分程序設計題中判分點所對應代碼進行匹配,并指示所述計分模塊以該已判分分值對匹配成功的判分點進行計分。進一步地,該系統(tǒng)還包括統(tǒng)計模塊,用于在所述外部接口模塊中不存在未進行計分的判分點時,對屬于同一程序設計題的計分分值進行統(tǒng)計。進一步地,所述外部接口模塊,還用于接收外部輸入的試題信息;此時,所述判分系統(tǒng)還包括試題選定模塊,用于根據所述外部接收模塊接收到的試題信息,確定符合條件的待判分的程序設計題。在本發(fā)明的又一個具體實施例中提供的一種程序設計題的判分系統(tǒng),如圖4所示,包括樣本模塊、程序采集模塊、處理模塊、外部接口模塊、顯示模塊、計分模塊、預匹配模塊、匹配模塊、統(tǒng)計模塊和試題選定模塊。為了更好的說明本發(fā)明所述方案,一種程序設計題的考評系統(tǒng),還包括下述步驟預先設置所述程序設計題的判分點及其對應的判分標準,所述的判分標準包括代碼關鍵字及關鍵字順序構成的判分條件和判分分值,然后執(zhí)行下述步驟采集待判分程序設計題中的程序源代碼;當所采集的程序源代碼與預置判分點的判分條件匹配時,對該判分點按照預置判分分值進行計分;接收外部為未進行計分的判分點所輸入的判分分值,并以此判分分值對該判分點進行計分。從上述過程可見,在本發(fā)明實施例提出的程序設計題的考評過程中,對于分的,判巻者不必反復選定試巻和查閱判分點,而是集中進行連續(xù)判分,這樣判分者思維的連續(xù)性較好,且效率會較高。當然,判巻者亦可針對某個或某些測試者的試巻獨立判分,這增加了判巻者判巻時的靈活性。以下結合附圖和具體實施例對本發(fā)明作進步地介紹,但不作為對本發(fā)明的限定。在計算機輔助考試系統(tǒng)中,通常通過計算機將考題呈現到測試者面前,測試者聯機進行解答,并將完成解答的試巻通過網絡提交或在本地計算機保存并提交。作為考試中普遍采用的程序設計題,由于其采分點較多,采分答案可能不唯一的特殊性,可以將程序設計題中的各個判分點進行抽取,以便實現獨立判分。分過程,以下對這兩個過程中所使用的方法進行分別i兌明在程序設計題的出題過程中,采用如下步驟步驟IOI,確定需要考察測試者的考核內容,將考核內容以描述的方式記錄,作為呈現給測試者的試題內容,且將確定的考核內容拆分成與若干個知識點對應的判分點。步驟102,將與判分點對應的預設判分標準分別按照一定的數據結構進行存儲,例如以下表l所示的數據結構分別進行存儲,并以此作為對測試者判巻的標準。表1判分點編號知識點判分條件判分值程序左串程序中串程序右串……………其中判分點編號,可以是按照某種預置特殊策略進行編制,也可以是按照題面的判分點順序編制;知識點,為判分點的知識點分類,例如,程序結構、輸入語句、輸出語句、條件語句等。判分條件,包括程序左串、程序中串和程序右串,為確定測試者程序源代碼為正確答案的標準;所述的程序左串、程序中串和程序右串按照樣本代碼關鍵字及關鍵字順序所設置;判分分值,為該判分點對應的程序源代碼正確時應記入的分值。步驟103,將包括以描述方式形成的程序設計題的試巻提供給測試者,且對于該程序設計題的判分標準則在計算機輔助考試系統(tǒng)中存儲,且與該程序設計題的編號等標識信息建立對應關系。以下以一個進一步的實例來描述上述的出題方法,在該實例中以描述的方式提供給測試者的試題信息如下"Pascal程序設計題輸入兩個數a,b,輸出較大的數。"該試題信息包含在提供給測試者使用的程序設計題中,為測試者考試時所見試題信息。該試題的標準答案如下programtt;vara,b:integer;beginwrite('pleaseinputa,b:');readln(a,b);ifa>bthenwriteln(a)elsewriteln(b);end.對于上述考核內容確定需要考察測試者的知識點為程序結構、輸入語句、輸出語句、條件語句。上述知識點即為測試者反饋中的判分點。由此,可以建立如下表2所述的該份Pascal程序設計題的判分標準。表2判分點編號知識點判分條件判分值程序左串程序中串程序右串1程序結構programbeginend12程序結構programvarinteger13程序結構varintegerbegin110<table>tableseeoriginaldocumentpage11</column></row><table>上述判分標準以某種預定格式保存,且與對應程序設計題標識信息建立相應關系。例如判分標準可以以集合的形式來進行存儲,如下{12345,7,8,{1,程序結構,[program,begin,end},1}{2,程序結構,[program,var,integer},1}{3,程序結構,[var,integer,begin},1}{4,輸入語句,[readln,a,b},1}{5,輸入語句,[write,readln,},1}{6,專#出語句,[write,,},1}{7,車俞出i吾句,{writeln,,},1}{8,條件語句,{if,then,else},1}{9,條件語句,{if,a>b,thenJ,1}{10,條件語句,{else,writeln(b),},1}說明在上述集合中,第l行的"{12345,7,8,"中的12345為假定的該程序設計題在題庫中的編號,7表示題型為機判操作題,8表示提交的是程序源代碼文件,由此,上述三個要素組成了所述程序設計題的標識信息,上述例中,判分標準與對應的程序設計題標識信息之間也可以采用其他的方式建立對應關系。參照上述過程,即可以完成一份程序設計題的出題,并可通過計算機輔助考試系統(tǒng)將該試題提供給測試者。當測試者完成上述程序設計題的解答,并將程序源代碼提交后,判巻者對接收到的所有試巻按照批處理的方式判巻,該判巻過程包括步驟201,接收外部輸入的試題信息,確定本次需要進行判分的程序設計題;所述的試題信息可以為測試時間、測試號、批量試題數等信息,由此可以方便地根據實際需要選擇要進行判分的程序設計題,而不是對所有待判分程序設計題進行判分。步驟202,提取測試者試巻中的程序源代碼文件,根據該程序源代碼文件生成其對應的實例對象。步驟203,根據采集到的程序設計題標識信息對應確定需要進行判分的判分點,并從實例對象采集待判分程序源代碼,該采集過程的一個實現實例為按遍歷程序源代碼文件讀取字符串的方式讀取程序左串、程序中串和程序右串;在此步驟中,采集待判分程序源代碼的同時,獲得判分點信息及其所在試題信息,具體可以是判分點所對應程序設計題標識信息、判分點編號;而程序設計題的標識信息還可以包括題號信息和該試題所在試巻的編號。具體地說,在上述的實例中,根據判分點所依次采集的程序源代碼,其可以具體地以下述步驟來實現根據上述步驟202中的實例對象,打開測試者提交的包含程序源代碼的文件,此時可能出現下述情況(1)不存在任何文檔,這表示測試者并沒有上傳附件,則對該程序設計題直接計為零分,完成本試題的判分;(2)存在不能以文本方式打開的文檔,這表示測試者提交的可能不是程序源代碼文件(例如,可能進行壓縮提交了.RAR壓縮文檔,也可能是用Word編制的.doc文檔),則將該份試巻轉入異常試巻,由后續(xù)的人工手工處理;(3)存在能夠正常打開的程序源代碼文件,表示測試者已經成功提交程序源代碼文件。此時,針對該程序源代碼文件中的所有判分點,按判分點遍歷程序源代碼文件提取程序左串、程序中串和程序右串,即提取程序源代碼中對12應于判分點的代碼。步驟204,將所采集的程序源代碼與預先存儲的判分條件進行比較,并根據比較的結果進行如下的相應處理(1)當測試巻中無法提取程序左串時,即當所采集的程序源代碼中不存在與預置判分點的判分條件中首個關鍵字匹配的代碼時,表明考生沒有編寫相關命令,此時直接將該判分點計為零分;(2)當所采集的程序源代碼與預置判分點的判分條件匹配時(包括程序左串、程序中串和程序右串完全相同)時,直接按照預置判分分值對該判分點進行計分;(3)當不屬于上述兩種情況時,記錄該判分點信息及試題信息,等待對該判分點進行手工判分。該手工判分可以以批量的方式進行,亦可針對某個或某些測試者進行。例如,在上述步驟實例中,某測試巻答題結果如下<table>tableseeoriginaldocumentpage13</column></row><table>例如實際提取的各個判分點處代碼及自動判分結果如下表3所示:表3<table>tableseeoriginaldocumentpage14</column></row><table>可見,第2、3、5、6、7、8與該判分點對應的判分條件相同,對其按照預置判分分值進行判分;第1、4、9、IO判分點找到程序左串,但程序中串或右串與預設答案不符,則將它們轉入人工判分待判隊列中,待系統(tǒng)完成自動判分過程后由人工批量或單獨進行判分處理。步驟205,當對所有程序源代碼與判分標準中判分條件(包括程序左串、程序中串和程序右串)完全匹配以及未編寫相關程序的判分點計分結束時,顯示所有未進行計分的判分點及程序源代碼,采用人工方式判分,即當判巻者確定所采集代碼雖與對應的判分條件不完全相同,但也正確時,手動輸入該判分點所對應的預置判分分值;當判巻者確定所采集代碼部分正確時,手動輸入該判分點可獲得分值,上述手動輸入的分值可以在判巻時的填分框處預設(可以設為完全的預置分值或零分值,也可以設置為零分值和滿分值之間的任一分值),并由人工最后確定。上述的手動輸入分值即為所對應判分點的判分分值。步驟206,當對所有程序設計題的所有判分點計分都已經完成后,對每道程序設計題分數進行統(tǒng)計。通過上述過程可以看出,對于與預置判分標準中判分條件不相同的程序源代碼是采用批處理的方式進行判分的,判巻者不必反復選定試巻和查閱判分點,而是集中進行連續(xù)判分,這樣判分者思維的連續(xù)性較好,且效率會較高。進一步地,在上述實施例的步驟205中,為了便于判巻者進行快速判巻工作,可以按照預置策略排序后顯示判分點及待判分程序源代碼時,所述的預置策略包括但不限于按照判分點排序或者按照預置判分條件中的關鍵字順序排序。由此,判巻者對相同或者相似的答案可以一目了然地判斷,而無需多次重復判斷,且對于同樣的代碼也可避免出現兩種評判結果;例如考試要求的C程序數據類型是單精度的浮點類型"float",但是所采集代碼卻是雙精度的浮點類型"double",這種情況在試巻批改時可以選定"對"或者"錯"為一個標準,然后統(tǒng)一進行批改,而無需在各種數據類型間多次考慮。再進一步地,還可以在接收外部為一未進行計分的判分點所輸入的判分分行計分。由此,更進一步地提高了判巻者的工作效率,也減輕了其勞動強度。在另一個實施例中,在待判分程序設計題中,當所采集的程序源代碼與某個判分點的預置判分條件部分匹配、且上述相同的部分匹配在所有待判分程序設計題中所占比例高于預定值時,按照預置的判分標準生成策略將該部分匹配的信息增加至該判分點所對應的預置判分條件,或者將該部分匹配信息作為待確認的判分條件,供判巻者審核確認后再增加至該判分點所對應的預置判分標準。說明一點本發(fā)明所述及的程序設計題考評系統(tǒng),不僅可以用于網絡版的計算機輔助考試系統(tǒng)中,亦可用于單機版的計算機輔助考試系統(tǒng)中。明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。1權利要求1.一種程序設計題的考評系統(tǒng),其特征在于,該系統(tǒng)包括樣本模塊,用于預先設置所述程序設計題的判分點及其對應的判分標準,所述的判分標準包括代碼關鍵字及關鍵字順序構成的判分條件和判分分值;程序采集模塊,用于采集待判分程序設計題中的程序源代碼;處理模塊,用于在所采集的程序源代碼與預置判分點的判分條件匹配時,指示判分模塊按照預置判分分值對該判分點進行計分;且將未進行計分的判分點及其對應的程序源代碼提供給外部接口模塊;外部接口模塊,用于接收外部為未進行計分的判分點所輸入的判分分值,并指示判分模塊以所輸入的判分分值對該判分點進行計分。2.如權利要求l所述的系統(tǒng),其特征在于,該系統(tǒng)還包括顯示模塊,用于顯示未進行計分的判分點及待判分程序源代碼。3.如權利要求1所述的系統(tǒng),其特征在于,所述處理模塊,還用于在所采集的程序源代碼中不存在與預置判分點的判分條件中首個關鍵字匹配的代碼時,指示判分模塊對該判分點進行計為零分。4.如權利要求l所述的系統(tǒng),其特征在于,該系統(tǒng)還包括預匹配模塊,用于在待判分程序設計題中,當所采集的程序源代碼與某個判分點的預置判分條件部分匹配、且上述相同的部分匹配在所有待判分程序設計題中所占比例高于預定值時,按照預置的判分標準生成策略將該部分匹配的信息增加至該判分點所對應的預置判分條件,或者將該部分匹配信息作為待確認的判分條件。5.如權利要求l所述的系統(tǒng),其特征在于,該系統(tǒng)還包括匹配模塊,用于在所述外部接口模塊接收外部為一未進行計分的判分點所輸入的判分分值后,將其余未輸入判分分值的其它待判分程序設計題中判分點所對應代碼進行匹配,并指示所述計分模塊以該已判分分值對匹配成功的判分點進行計分。6.如權利要求l所述的系統(tǒng),其特征在于,該系統(tǒng)還包括統(tǒng)計模塊,用于在所述外部接口模塊中不存在未進行計分的判分點時,對屬于同一程序設計題的計分分值進行統(tǒng)計。7.如權利要求1所述的系統(tǒng),其特征在于,所述外部接口模塊,還用于接收外部輸入的試題信息;此時,所述判分系統(tǒng)還包括試題選定模塊,用于根據所述外部接收模塊接收到的試題信息,確定符合條件的待判分的程序設計題。全文摘要本發(fā)明公開了一種程序設計題的考評系統(tǒng),包括樣本模塊、程序采集模塊、處理模塊、外部接口模塊和計分模塊。利用本發(fā)明所提供的系統(tǒng)不僅可以簡化組題過程,還可以提高判卷的速度,提高判卷的一致性。文檔編號G06F9/44GK101593107SQ200810114028公開日2009年12月2日申請日期2008年5月30日優(yōu)先權日2008年5月30日發(fā)明者尤曉東申請人:北京智慧東方信息技術有限公司