999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

計算機專業程序設計類題目在線評閱方法的研究

2018-12-01 05:11:42龐希愚
計算機教育 2018年11期

王 成,龐希愚

(山東交通學院 信息科學與電氣工程學院,山東 濟南 250357)

1 現狀分析

計算機專業程序設計類課程是指C語言程序設計、Java語言程序設計、C#程序設計等培養學生編程能力的課程,這些課程有其獨有的特點,既需要考查學生的基礎知識、算法設計,又需要更多地考查學生利用語言解決實際問題的能力,為了更好的考查學生設計算法和編寫程序的能力,國內外各大高校正在逐步使用在線考試系統代替傳統的筆試方式。

計算機專業程序設計類課程的考試題目一般分為選擇題、填空題和程序設計題。對于選擇題、填空題,現有的在線考試系統已經實現了準確率很高的自動評閱;對于程序設計題,現有的在線考試系統還無法實現準確率較高的評閱,因為考生的邏輯思路不同,編寫出來的程序也各不相同,從而導致了程序設計題目的自動評閱難度很大。現有的在線考試系統一般采用結果評分方法,也就是依據運行出的結果來給出相應的分數,在這種評分機制下,一個小小的錯誤就會導致一個基本上正確的題目一分未得,也可能出現解題思路錯誤而結果恰好正確卻得滿分的情況,考生成績呈現兩極化,考試得分不能真正體現考生的能力;也有一些在線考試系統對程序設計類題目實現過程評分,但是這類考試系統對于題目的設計、標準答案的輸入有著嚴格的要求,使得老師花費大量的時間精力去設計滿足這類考試系統的題目[1]。

目前,國內外對于主觀題目的自動評閱展開了深入的研究,但是關于計算機專業課程程序設計類題目自動評閱方面的專項研究不多,相關文獻較少,雖然程序設計類題目屬于主觀題的范疇,但是程序設計類題目與作文、簡答題等主觀題目是有區別的,適用于作文、簡答題的語義分析等有關方法并不適合程序設計類題目,程序設計類題目有其自身的特征屬性[2-3]。

2 基于程序設計類題目特征的在線評閱方法

程序設計類題目可以分為以下幾類。

第一類:題目有一個或多個確定的運行結果。例如C語言程序設計課程考試題目:請編寫程序實現1~100的和。

第二類:由輸入數據導致的題目運行結果不確定。例如Java程序設計題目:請定義一個圓類,類中包含圓心x坐標、y坐標和半徑等屬性,有計算圓面積和周長的方法;或請從鍵盤上讀入2個數,求2個數的和。

第三類:題目運行結果的順序不確定。例如線程類程序設計題目,由于線程運行順序的不確定性,每次程序的運行結果都有變化。例如Java程序設計課程考試題目:請創建并啟動兩個線程,一個線程輸出1~100的所有偶數,一個線程輸出1~100的所有奇數。

對于上述3類題目,可以在題目特征和模擬人工閱卷的基礎上,采用一套程序設計類題目的在線評閱方案,在該方案中將基于多級關鍵詞組合的過程評分引入到評分機制中。在過程評分中,將關鍵詞進行分級,一級關鍵詞組合是指本題目考查的知識點,將知識點轉化為關鍵詞,將關鍵詞按照程序代碼中的正確順序列出,對于同一順序可能出現的多個關鍵詞都將其列在同一序列,一級關鍵詞組合是程序代碼中最重要的關鍵詞;二級關鍵詞組合的重要性僅次于一級關鍵詞組合,把這種關鍵詞按照程序代碼中出現的正確順序列出,對于同一順序可能出現的多個關鍵詞都將其列在同一序列;三級關鍵組合的重要性次于一二級關鍵詞組合,以此類推,N級關鍵詞組合是指將程序代碼中重要性次于前N-1級、大于N+1級的關鍵詞按照程序代碼中出現的正確順序列出,對于同一順序可能出現的多個關鍵詞都將其列同一序列。關鍵詞劃分成多少級別,由教師可根據題目的性質、考查的知識點等因素靈活進行制定。

2.1 第一類題目的評閱

第一類題目,由于其運行結果確定,運行結果對于評閱是很重要的依據。對于這種程序設計題目,首先根據結果對其進行評閱,這一步稱為結果評分;然后進行基于多級關鍵詞組合的過程評分,這一步稱為過程評分,在過程評分中將考生答案根據情況按照順序逐級與關鍵詞組合進行匹配,每級關鍵詞組合匹配結束時,將已成功匹配的關鍵詞從考生答案中刪除,為進行下一級的關鍵詞組合匹配做準備。

在結果評分時,首先判斷考生的程序是否能正常運行,如果不能運行,則進入基于多級關鍵詞組合的過程評分;如果考生的程序能正常運行,結果評分有正確或者錯誤兩種情況,如果結果正確,則在基于多級關鍵詞組合的過程評分中,只進行基于一級關鍵詞組合的過程評閱。

如果考生的運行結果不正確,在第二步的過程評分中,則采用基于多級關鍵詞組合的過程評閱,首先將考生的程序代碼與一級關鍵詞組合進行匹配,如果成功匹配的關鍵詞數目大于臨界值則繼續與二級關鍵詞組合進行匹配,如果與二級關鍵詞組合成功匹配的數目大于臨界值則繼續與下一級關鍵詞組合進行匹配,直至與N級關鍵詞組合匹配完畢。一旦出現與某一級關鍵詞組合成功匹配的數目小于臨界值則終止基于關鍵詞組合的過程評分,進行最終評分。具體的流程如圖1所示。

例如C語言程序設計課程考試題目:請編寫程序實現1~100的和。由于題目比較簡單,這道題目只設2級關鍵詞組合,一級關鍵詞組合為{for}或{do,while}或{while,do},二級關鍵詞組合為{main,int,(+ =),printf}。如果結果正確,在第二步過程評分中,只進行基于一級關鍵詞組合的過程評閱,如果學生的程序不能正常運行或者結果不正確,則在第二步的過程評分中,采用基于多級關鍵詞組合的過程評閱。

最后進行最終評分,考生最終分數的計算公式為

在公式(1)中,Fscore表示這道程序設計題目的最終分數;Ascore表示結果評分的分數;Pscore表示過程評分的分數;β表示結果分數在最終分數中的比重,0≤β≤1,教師可根據題目的性質、考查的知識點等因素設置β的值;Sanswers表示本題正確結果所包含的答案數目;Ranswers表示本題考生成功匹配的答案數;Skeywords表示過程評分中所依據的關鍵詞的總數目,Rkeywords表示過程評分中考生成功匹配的關鍵詞數目。

2.2 第二類題目的評閱

這類題目的運行結果是由輸入數據來決定的,對于這類題目,可以首先采用基于輸入輸出組合的評分,根據題目特征列出多組輸入輸出組合,輸入輸出組合的數量是由教師根據題目的性質、以往學生的答題情況以及教師的經驗確定的。

圖1 第一類題目的評分流程圖

在基于輸入輸出組合的評分過程中,運行學生程序,將輸入數據輸入到程序中, 得到輸出數據,再與該題目的輸入輸出組合進行匹配,如果全部成功匹配,則在下一步基于多級關鍵詞組合的過程評分中,僅進行基于一級關鍵詞組合評分,否則進行基于多級關鍵詞組合評分。

在基于多級關鍵詞組合的過程評分中,將考生的程序代碼首先與一級關鍵詞組合進行匹配,如果成功匹配的關鍵詞數目大于臨界值則繼續與二級關鍵詞組合進行匹配,如果與二級關鍵詞組合成功匹配的數目大于臨界值則繼續與下一級關鍵詞組合進行匹配,直至與N級關鍵詞組合匹配完畢。

在過程評分中,一旦出現與某一級關鍵詞組合成功匹配的數目小于臨界值,則終止基于關鍵詞組合的過程評分,進行最終評分。具體的流程如圖2所示。

最終評分時,考生最終分數的計算公式為

圖2 第二類題目的評分流程圖

在公式(2)中,Fscore表示最終分數;IOscore表示基于輸入輸出組合評分的分數;Pscore表示基于多級關鍵詞組合的過程評分的分數;β表示基于輸入輸出組合評分的分數在最終分數中的比重,0≤β≤1,教師可根據題目的性質、考查的知識點等因素設置β的值;IOanswers表示本題輸入輸出組合的數目;Rioanswers表示本題考生成功匹配的輸入輸出組合數目;Skeywords表示基于多級關鍵詞組合的過程評分中所依據的關鍵詞的總數目,Rkeywords表示本題考生成功匹配的關鍵詞數目。

2.3 第三類題目的評閱

這類題目運行結果順序是不確定的,但是經研究發現,其題目運行結果的范圍往往是確定的。例如題目:請創建并啟動兩個線程,一個線程輸出1~100的所有偶數,一個線程輸出1~100的所有奇數。由于兩個線程執行的順序是隨機的,導致這道題目的答案不確定,但是1~100之間的范圍是確定的。

對于這類題目,可以首先采用基于多級關鍵詞組合的過程評分方法,在過程評分中,將考生的程序代碼首先與一級關鍵詞組合進行匹配,如果成功匹配的關鍵詞數目大于臨界值則繼續與二級關鍵詞組合進行匹配,如果與二級關鍵詞組合成功匹配的關鍵詞數目大于臨界值則繼續與下一級關鍵詞組合進行匹配,直至與N級關鍵詞組合匹配完畢。

在過程評分中一旦出現與某一級關鍵詞組合成功匹配的關鍵詞數目小于臨界值,則終止基于關鍵詞組合的過程評分,跳過基于結果范圍的評分,直接進行最終評分;如果在整個過程評分中,沒有出現考生成功匹配的關鍵詞數目小于臨界值的情況,也就說與題目的N級關鍵詞組合全部進行了匹配,則下一步進行基于結果范圍的評分,再進行最終評分。具體的流程如圖3所示。

最終評分時,考生最終分數的計算公式為

在公式(3)中,Fscore表示題目的最終分數;Rscore表示基于結果范圍的評分;Kanswers表示考生程序運行結果的集合;Ranswers表示本題正確結果范圍的集合,如果考生所有的運行結果都能在正確結果范圍中找到,則基于結果范圍的評分為100,如果考生的程序不能正常運行或者有1個或多個運行結果在正確結果范圍中找不到,則基于結果范圍的評分為0;Pscore表示過程評分的分數;Skeywords表示過程評分中所依據的關鍵詞的總數目;Rkeywords表示本題考生成功匹配的關鍵詞數目;β表示基于結果范圍的評分在最終分數中的比重,0≤β≤1,教師可根據題目的性質、考查的知識點等因素設置β的值。

圖3 第三類題目的評分流程圖

例如題目:請創建并啟動兩個線程,一個線程輸出1~100的所有偶數,一個線程輸出1~100的所有奇數。首先進行基于多級關鍵詞組合的過程評分,找出這道題目的多級關鍵詞組合,一級關鍵詞組合如下:

二級關鍵詞組合如下:

在過程評分中,將考生程序代碼逐級與本題目的二級關鍵詞組合進行匹配,一旦出現與某一級關鍵詞組合成功匹配的數目小于臨界值,則直接終止過程評分,跳過基于結果范圍的評分方法,直接進行最終評分;如果在評分過程中,沒有出現成功匹配的數目小于臨界值的情況,則進行基于結果范圍的評分,再計算最終分數。這道題目的結果范圍是1~100的整數,最終分數依據公式(3)計算。

3 結 語

計算機專業程序設計類課程的教學目的是培養學生的動手能力,讓學生學會通過編寫程序解決實際問題,對于這類課程,如何更加準確的考核學生的實際編程能力是十分重要的。

在在線評閱方法中,多級關鍵詞組合是需要教師根據自己的經驗進行制定的,這就需要花費教師一定的時間,但是隨著機器學習的快速發展,一些專家學者針對主觀題自動閱卷的難點,將機器學習中深度學習(Deep Learning)的理念應用到主觀題自動閱卷系統設計中,所以未來,隨著大數據庫的不斷完善以及深度學習的不斷發展,本文中的多級關鍵詞組合可以借助深度學習的方法自動生成[4-5]。

主站蜘蛛池模板: 日韩欧美中文字幕在线精品| 日韩视频免费| 午夜在线不卡| 国产女同自拍视频| 亚洲日本www| 女人毛片a级大学毛片免费| 精品欧美日韩国产日漫一区不卡| 国产真实乱人视频| 国产91小视频在线观看| 久久性视频| 福利姬国产精品一区在线| 好吊妞欧美视频免费| AV网站中文| 亚洲国产日韩视频观看| 99久久精品免费视频| 午夜色综合| 亚洲精品国产精品乱码不卞| 国产精品福利一区二区久久| 亚洲精品国产精品乱码不卞| 国产91av在线| 久久婷婷五月综合97色| 欧美成人区| 亚洲伊人久久精品影院| 国产丝袜第一页| 日韩AV无码免费一二三区| 在线无码九区| www.狠狠| 成人伊人色一区二区三区| 国产在线视频二区| 亚洲成a人片77777在线播放| 香港一级毛片免费看| 免费在线国产一区二区三区精品| 成人在线视频一区| 欧美午夜理伦三级在线观看| 91破解版在线亚洲| 国产美女主播一级成人毛片| 福利在线免费视频| 久久久久国产精品免费免费不卡| 中文字幕资源站| 国产尤物jk自慰制服喷水| 国产激爽大片高清在线观看| 午夜日本永久乱码免费播放片| 免费在线色| 中文字幕久久亚洲一区| 全部免费毛片免费播放| 亚洲精品无码抽插日韩| 亚洲成人动漫在线观看| 1024国产在线| AⅤ色综合久久天堂AV色综合| 久久精品免费看一| 亚洲一区二区三区在线视频| 99这里精品| 啪啪啪亚洲无码| 国产精品免费露脸视频| 久久精品国产免费观看频道| 国产一区二区精品高清在线观看 | 操国产美女| 久久香蕉国产线看观看式| 另类欧美日韩| 免费播放毛片| 亚洲VA中文字幕| 亚洲一区二区精品无码久久久| 国产精品美乳| 国产情精品嫩草影院88av| 国产xx在线观看| 尤物成AV人片在线观看| 最新精品国偷自产在线| 免费a在线观看播放| 国产欧美高清| 国产精品密蕾丝视频| 日韩专区欧美| 青青草原国产精品啪啪视频| 成人国产小视频| 毛片基地视频| 国产95在线 | 少妇精品久久久一区二区三区| 激情综合图区| 亚洲区一区| 国产女人在线| 四虎影视库国产精品一区| 国产99精品久久| 久久久久亚洲Av片无码观看|