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]。

主站蜘蛛池模板: 亚洲综合色区在线播放2019| 成年人免费国产视频| 亚洲成人www| 精品国产91爱| 国产香蕉国产精品偷在线观看 | 国产第二十一页| 99热这里只有免费国产精品 | 久久久久久久蜜桃| 人妻出轨无码中文一区二区| 国产欧美日韩另类| 亚洲中久无码永久在线观看软件| 成人午夜视频网站| 欧美日韩在线成人| 亚洲天堂网视频| 婷婷丁香色| 一本二本三本不卡无码| 中文字幕在线播放不卡| 国产成人高精品免费视频| 成人毛片免费观看| 国产欧美在线观看一区| 亚洲人成网站在线播放2019| 亚洲免费福利视频| 免费不卡在线观看av| 精品一区二区三区视频免费观看| 亚洲无码91视频| 88av在线看| 久久九九热视频| 99久久免费精品特色大片| 欧美激情第一欧美在线| 欧美福利在线观看| 香蕉国产精品视频| 香蕉eeww99国产精选播放| 亚洲国产欧美目韩成人综合| 欧美国产菊爆免费观看 | 激情无码视频在线看| 亚洲人成在线免费观看| 精品视频在线一区| 一区二区三区高清视频国产女人| 欧美一区二区三区国产精品| 国产综合另类小说色区色噜噜 | 中文字幕在线观| 亚洲第一黄色网| 激情無極限的亚洲一区免费| 亚洲视频a| 91精品国产综合久久不国产大片| 欧美性精品| 免费看a级毛片| 婷婷激情五月网| 久久中文字幕2021精品| 欧美在线综合视频| 性欧美久久| 一本大道在线一本久道| 亚洲欧洲日产国产无码AV| 日韩午夜伦| 91破解版在线亚洲| 无码丝袜人妻| 日韩欧美中文亚洲高清在线| 日韩欧美中文字幕在线韩免费 | 99精品在线视频观看| 一级毛片免费不卡在线视频| 国产精品永久久久久| 久久国产乱子伦视频无卡顿| 亚洲国产系列| 久久综合丝袜日本网| 亚洲综合日韩精品| 国产91高清视频| 久久香蕉国产线看观看亚洲片| 黄色三级毛片网站| 国产精品欧美日本韩免费一区二区三区不卡 | 韩国v欧美v亚洲v日本v| 欧美区一区二区三| 国产精品无码在线看| 香蕉久人久人青草青草| 香蕉久久永久视频| 四虎影院国产| 91综合色区亚洲熟妇p| 亚洲日韩精品欧美中文字幕| 91久久偷偷做嫩草影院| 日韩午夜福利在线观看| 免费无码又爽又黄又刺激网站| 正在播放久久| 成人在线欧美|