亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于編輯距離的自適應(yīng)反饋程序評測方法

        2022-08-23 07:16:48薄鈞戈喬亞男房琛琛
        關(guān)鍵詞:學(xué)生

        薄鈞戈,喬亞男,齊 琪,黃 鑫,房琛琛

        (西安交通大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710049)

        0 引 言

        程序設(shè)計類課程是計算機(jī)類專業(yè)的專業(yè)基礎(chǔ)課,是數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析等計算機(jī)核心課程的先修課[1]。程序設(shè)計類課程教學(xué)目標(biāo)是培養(yǎng)學(xué)生應(yīng)用計算機(jī)去求解實(shí)際問題的能力,為了達(dá)到此目標(biāo),同學(xué)們需要反復(fù)的上機(jī)編程訓(xùn)練。由于傳統(tǒng)的程序設(shè)計類課程考核方式(紙面試卷)有很多缺點(diǎn),比如教師需要花大量的時間和精力來批改作業(yè)、學(xué)生無法及時獲得學(xué)習(xí)效果反饋、缺乏在編程中的自我判斷能力等,導(dǎo)致學(xué)習(xí)興趣逐漸減退[2-3],因此近幾年有不少高水平本科院校程序設(shè)計類課程將程序在線評測系統(tǒng)(Online Judge,OJ)引入到實(shí)踐教學(xué)環(huán)節(jié)中[4-5],以提高學(xué)生編程熱情和壓力情況下解決編程問題的能力,以正確的計算思維去理解和構(gòu)建復(fù)雜的程序系統(tǒng)[6-7]。

        對于編程題的自動評閱,目前主要有兩種方法,一種是將學(xué)生程序代碼編譯為可執(zhí)行文件,然后輸入“預(yù)設(shè)測試用例輸入”,得出“學(xué)生代碼輸出”,再和“預(yù)設(shè)測試用例輸出”比對,給出相應(yīng)得分情況,該方法在基礎(chǔ)教學(xué)和算法競賽中皆有長時間廣泛而成熟的應(yīng)用[8];另一種是結(jié)合程序代碼特征和復(fù)雜性度量,如學(xué)生代碼的行數(shù)、變量個數(shù)、復(fù)雜度以及語法樹等去評價學(xué)生程序代碼的質(zhì)量并給出得分[9-10],并結(jié)合一些分類、聚類、可視化等數(shù)據(jù)挖掘的方法進(jìn)行圖表顯示[11-13],這兩種方法都有明顯的缺點(diǎn):當(dāng)學(xué)生代碼編譯錯誤,或者測試用例評測不對,在沒有得全分的情況下,面對編譯、運(yùn)行等問題,學(xué)生還是很難改對代碼;尤其是在編譯通過而測試用例不通過的情況下,學(xué)生在修改代碼時有可能只是因?yàn)闇y試用例輸出的大小寫出錯、缺失標(biāo)點(diǎn)符號、順序出錯、有無空格等簡單格式問題而花費(fèi)大量時間進(jìn)行調(diào)試(為了保證測試用例的安全,測試用例不能公開)。

        為了解決上述問題,該文提出一種基于編輯距離的自適應(yīng)反饋程序評測方法,通過檢測學(xué)生代碼的編譯信息和測試用例信息,應(yīng)用編輯距離,自適應(yīng)給出學(xué)生代碼出錯原因并給出反饋指導(dǎo),幫助學(xué)生快速找到代碼出錯位置并有針對的進(jìn)行修改。該方法應(yīng)用到了本校面向大面積計算機(jī)基礎(chǔ)課程的作業(yè)系統(tǒng)中(該系統(tǒng)由教學(xué)團(tuán)隊自主研發(fā),相關(guān)界面見圖1),該系統(tǒng)基于ASP.NET MVC框架開發(fā),主要有題庫管理、在線練習(xí)、實(shí)時評測、系統(tǒng)監(jiān)控、學(xué)習(xí)預(yù)警等功能。學(xué)生注冊后,根據(jù)題目在線提交多種編程語言(C,C++,C#等)源代碼,系統(tǒng)編譯源代碼后執(zhí)行,采用黑盒測試的方式,通過和預(yù)設(shè)測試用例的比對來檢驗(yàn)源代碼編譯和運(yùn)行的正確性。

        圖1 計算機(jī)基礎(chǔ)課程作業(yè)系統(tǒng)截圖

        實(shí)踐證明,通過結(jié)合自適應(yīng)反饋程序評測方法的OJ系統(tǒng),可以有效促進(jìn)程序設(shè)計類課程的教學(xué)質(zhì)量[14]。

        1 研究方法和過程

        該文提出的基于編輯距離的自適應(yīng)反饋程序評測方法,整體的步驟如圖2所示[8]。

        圖2 自適應(yīng)反饋程序評測方法步驟

        第一步,教師端布置編程題目信息,如題目描述、參考答案、開始完成和截止時間、預(yù)設(shè)測試用例等,其中測試用例根據(jù)題目考察點(diǎn),可設(shè)置多個測試用例;

        第二步,學(xué)生根據(jù)題目要求通過在線編輯器完成題目編寫并上傳至代碼評測服務(wù)器,其中在線編輯器有代碼高亮顯示、折疊、縮進(jìn)等模擬真實(shí)開發(fā)環(huán)境功能;

        第三步,在評測學(xué)生程序代碼之前,需檢測過濾學(xué)生程序,對學(xué)生程序中出現(xiàn)不安全代碼進(jìn)行過濾,所述不安全代碼包括fdisk-硬盤分區(qū)、format-格式化、shutdown-關(guān)機(jī)等命令,防止惡意代碼;

        第四步,編譯學(xué)生程序,代碼中如果由于語法錯誤導(dǎo)致編譯失敗,獲取編譯錯誤信息,如圖3所示,通過對編譯器返回的編譯錯誤信息進(jìn)行篩選整理,分別獲得下面信息:

        圖3 獲取編譯錯誤信息

        (1)編譯錯誤代碼,通過編譯錯誤代碼,彈出相應(yīng)錯誤代碼幫助文檔,如MSDN文檔,或者打開相應(yīng)錯誤代碼幫助網(wǎng)頁;

        (2)編譯錯誤行號,通過編譯錯誤行號,學(xué)生可以快速定位找到程序錯誤位置;

        (3)編譯錯誤詳細(xì)說明,通過編譯錯誤詳細(xì)說明,可以幫助學(xué)生理解編譯錯誤原因,有針對地修改錯誤代碼。

        第五步,如果學(xué)生程序編譯通過,而運(yùn)行不通過,則表示學(xué)生程序通過“預(yù)設(shè)測試用例的輸入”生成的輸出結(jié)果和“預(yù)設(shè)測試用例輸出”兩段文本不相等。因此,如果需要提供給學(xué)生一個比較準(zhǔn)確的錯誤反饋信息,則需比對分析學(xué)生程序的輸出和“預(yù)設(shè)測試用例輸出”的異同,然而,學(xué)生編寫練習(xí)的程序和一般軟件產(chǎn)品不同,比如結(jié)構(gòu)簡單,大多數(shù)有固定的算法模塊,如果編譯通過而運(yùn)行不通過,大概率總有這樣的情況:學(xué)生代碼通過“預(yù)設(shè)測試用例的輸入”生成的輸出總是朝著“預(yù)設(shè)測試用例輸出”靠近。因此對于學(xué)生代碼編譯通過而運(yùn)行不通過的錯誤原因可能是常見簡單錯誤,所述常見簡單錯誤包括:學(xué)生代碼輸出結(jié)果大小寫出錯、中英文標(biāo)點(diǎn)符號錯誤、缺失或存在多余的空格、順序出錯、錯位問題、數(shù)值間存在倍數(shù)擴(kuò)大或縮小等。

        該文將重點(diǎn)討論第五步 “程序編譯通過而運(yùn)行不通過” 這種情況,將在下一小節(jié)詳細(xì)介紹。

        2 基于編輯距離的自適應(yīng)反饋程序評測方法

        2.1 判斷測試用例考察類型

        基于編輯距離的自適應(yīng)反饋程序評測方法首先判斷測試用例考察類型,可以結(jié)合“預(yù)設(shè)測試用例輸出”,得出測試用例考察類型,根據(jù)程序設(shè)計類課程歷史中同學(xué)們常見問題總結(jié)考察類型為四種,分別為:“單一字符串型”、“多個字符串型”、“單一純數(shù)值型”、“多個純數(shù)值型”。測試用例考察類型確定方法如圖4所示。

        圖4 測試用例考察類型判斷方式

        當(dāng)預(yù)設(shè)測試用例輸出文本內(nèi)容有字符或符號時,且字符串間沒有空格隔開,判斷測試用例類型為“單一字符串型”;

        當(dāng)預(yù)設(shè)測試用例輸出文本內(nèi)容有字符或符號時,且字符串間以空格隔開,判斷測試用例類型為“多個字符串型”;

        當(dāng)預(yù)設(shè)測試用例輸出文本內(nèi)容只有純數(shù)值(包括小數(shù))時,判斷測試用例類型為“單一純數(shù)值型”;

        當(dāng)預(yù)設(shè)測試用例輸出文本內(nèi)容只有純數(shù)值或小數(shù)點(diǎn)或空格,并數(shù)值間以空格隔開時,判斷測試用例類型為“多個純數(shù)值型”。

        2.2 計算編輯距離

        對于四種不同的測試用例考察類型,需要計算學(xué)生代碼的輸出結(jié)果和“預(yù)設(shè)測試用例輸出”的編輯距離(Minimum Edit Distance,MED)。

        編輯距離是由俄羅斯科學(xué)家Vladimir Levenshtein在1965年提出的,因此編輯距離也稱為 Levenshtein Distance。在信息論、語言學(xué)和計算機(jī)科學(xué)領(lǐng)域,編輯距離是用來度量兩個序列相似程度的指標(biāo)。簡單的說編輯距離就是指在兩個單詞之間,由其中一個單詞A轉(zhuǎn)換為另一個單詞B所需要的最少單字符編輯操作次數(shù)[15]。

        在自然語言中的拼寫檢查時,根據(jù)一個拼錯的字符串和其他正確的字符串的編輯距離,可以判斷哪一個或哪幾個是比較可能的字符串。對于兩段字符串A和B,其中字符串A的長度為m,字符串B的長度為n,其計算方法如下:

        d[0][0]=0

        d[i][0]=0, 1≤i≤m

        d[0][j]=0, 1≤j≤n

        d[i][j]=

        其中,d表示一個[m+1][n+1]大小的二維數(shù)組(d的數(shù)組比字符串長度長1個,是因?yàn)樾枰粋€[1][1]大小的數(shù)組記錄其編輯距離為0),d[i][j]表示完成從A(0,i)到B(0,j)的編輯次數(shù)。wdel(ai)表示把A[i]刪除的一次操作,wins(bj)表示把B[j]插到A[i]的一次操作,wsub(ai,bj)表示把A[i]用B[j]替換的一次操作。

        相應(yīng)的符號如圖5所示。

        圖5 文中相應(yīng)的符號及表示內(nèi)容

        2.3 “單一字符串型”用例結(jié)果錯誤

        對于測試用例考察類型為“單一字符串型”,首先判斷學(xué)生代碼輸出結(jié)果和預(yù)設(shè)測試用例輸出長度是否相等。

        (1)學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串長度相等時,依次做如下處理:

        將學(xué)生代碼輸出結(jié)果字符串大、小寫轉(zhuǎn)換(大寫字符轉(zhuǎn)為小寫字符、小寫字符轉(zhuǎn)為大寫字符、全部轉(zhuǎn)為大寫字符、全部轉(zhuǎn)為小寫字符)后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“字符大小寫問題”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果字符串標(biāo)點(diǎn)符號中英文轉(zhuǎn)換后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“標(biāo)點(diǎn)符號中英文問題”導(dǎo)致運(yùn)行不通過;

        調(diào)整修改學(xué)生代碼輸出結(jié)果字符串的順序后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“順序錯誤”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果字符串旋轉(zhuǎn)(從首字符到最后一個字符進(jìn)行多次旋轉(zhuǎn))后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“存在輸出錯位問題”導(dǎo)致運(yùn)行不通過;

        計算學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串的編輯距離edit_Dis,以及編輯距離計算中刪除字符次數(shù)Ndel,編輯距離計算中添加字符次數(shù)Nins,且計算編輯距離占預(yù)設(shè)測試用例輸出比例R=edit_Dis/Lt,其中Lt為預(yù)設(shè)測試用例輸出字符串的長度,如果R<0.5,則中英文反饋指導(dǎo)學(xué)生由于“輸出與測試用例輸出長度相等,但是一半的字符無法匹配”導(dǎo)致運(yùn)行不通過;如果編輯距離edit_Dis和預(yù)設(shè)測試用例輸出字符串長度相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出與測試用例輸出長度相等,但是所有字符均無法匹配”導(dǎo)致運(yùn)行不通過。

        (2)學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串長度不相等時,依次做如下處理:

        刪除學(xué)生代碼輸出結(jié)果字符串中所有標(biāo)點(diǎn)符號(主要是空格、回車等)后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出了多余的標(biāo)點(diǎn)符號”導(dǎo)致運(yùn)行不通過;

        刪除預(yù)設(shè)測試用例輸出字符串中所有標(biāo)點(diǎn)符號(主要是空格、回車等)后和學(xué)生代碼輸出結(jié)果字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“缺少某些標(biāo)點(diǎn)符號”導(dǎo)致運(yùn)行不通過;

        計算學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串的編輯距離edit_Dis,以及編輯距離計算中刪除字符次數(shù)Ndel,如果編輯距離edit_Dis和刪除字符次數(shù)Ndel相等,則中英文反饋指導(dǎo)學(xué)生由于“多輸出了某些字符,與預(yù)設(shè)測試用例輸出無法匹配”導(dǎo)致運(yùn)行不通過;

        計算學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串的編輯距離edit_Dis,以及編輯距離計算中添加字符次數(shù)Nins,如果編輯距離edit_Dis和添加字符次數(shù)Nins相等,則中英文反饋指導(dǎo)學(xué)生由于“少輸出了某些字符,與預(yù)設(shè)測試用例輸出無法匹配”導(dǎo)致運(yùn)行不通過;

        計算學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串的編輯距離edit_Dis,以及計算編輯距離占預(yù)設(shè)測試用例輸出比例R=edit_Dis/Lt,其中Lt為預(yù)設(shè)測試用例輸出字符串的長度,如果R<0.5,則中英文反饋指導(dǎo)學(xué)生由于“輸出與測試用例輸出長度不相等,且一半的字符無法匹配”導(dǎo)致運(yùn)行不通過;否則顯示“輸出與測試用例輸出長度不相等,且超過一半的字符無法匹配”導(dǎo)致運(yùn)行不通過。

        2.4 “多個字符串型”用例結(jié)果錯誤

        對于測試用例考察類型為“多個字符串型”,需先判斷學(xué)生代碼輸出結(jié)果字符串個數(shù)Ns(以空格隔開)和預(yù)設(shè)測試用例輸出字符串個數(shù)Na(以空格隔開)是否相等。

        (1)學(xué)生代碼輸出結(jié)果字符串個數(shù)和預(yù)設(shè)測試用例輸出字符串個數(shù)相等時,依次做如下處理:

        判斷刪除學(xué)生代碼輸出結(jié)果字符串空格、回車后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出內(nèi)容與測試用例要求大體一致,有多余的空格、回車”導(dǎo)致運(yùn)行不通過;

        判斷刪除預(yù)設(shè)測試用例輸出字符串空格、回車后和學(xué)生代碼輸出結(jié)果字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出內(nèi)容與測試用例要求大體一致,缺失題目要求的空格或回車(可在輸出頭、尾檢查)”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果字符串大、小寫轉(zhuǎn)換(大寫字符轉(zhuǎn)為小寫字符、小寫字符轉(zhuǎn)為大寫字符、全部轉(zhuǎn)為大寫字符、全部轉(zhuǎn)為小寫字符)后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“字符大小寫問題”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果字符串標(biāo)點(diǎn)符號中英文轉(zhuǎn)換后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“標(biāo)點(diǎn)符號中英文問題”導(dǎo)致運(yùn)行不通過;

        調(diào)整修改學(xué)生代碼輸出結(jié)果字符串的順序后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“順序錯誤”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果字符串旋轉(zhuǎn)(從第一個字符串到最后以個字符串進(jìn)行多次旋轉(zhuǎn))后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“存在輸出錯位問題”導(dǎo)致運(yùn)行不通過。

        (2)學(xué)生代碼輸出結(jié)果字符串個數(shù)和預(yù)設(shè)測試用例輸出字符串個數(shù)不相等時,依次做如下處理:

        學(xué)生代碼輸出結(jié)果字符串個數(shù)Ns大于預(yù)設(shè)測試用例輸出字符串個數(shù)Na時,判斷學(xué)生代碼輸出結(jié)果字符串中前Na個字符串是否和預(yù)設(shè)測試用例輸出字符串相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“前Na個字符串和預(yù)設(shè)測試用例輸出匹配,但多輸出了某些字符串”導(dǎo)致運(yùn)行不通過;

        學(xué)生代碼輸出結(jié)果字符串個數(shù)Ns小于預(yù)設(shè)測試用例輸出字符串個數(shù)Na時,判斷學(xué)生代碼輸出結(jié)果字符串中前Ns個字符串是否和預(yù)設(shè)測試用例輸出字符串相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“前Ns個字符串和預(yù)設(shè)測試用例輸出匹配,但少輸出了某些字符串”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果調(diào)整順序后,判斷學(xué)生代碼輸出結(jié)果字符串中前min{Ns,Na}個字符串是否和預(yù)設(shè)測試用例輸出字符串相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出字符串個數(shù)有誤,且存在輸出順序問題”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果按照字符串間隔旋轉(zhuǎn)后和預(yù)設(shè)測試用例輸出字符串比較是否部分相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出字符串個數(shù)有誤,且存在輸出錯位問題”導(dǎo)致運(yùn)行不通過;

        去除掉學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出中的所有空格,并計算學(xué)生代碼輸出結(jié)果字符串和預(yù)設(shè)測試用例輸出字符串的編輯距離edit_Dis,以及計算編輯距離占預(yù)設(shè)測試用例輸出比例R=edit_Dis/Lt,其中Lt為去除掉空格后的預(yù)設(shè)測試用例輸出字符串的長度,如果R<0.5,則中英文反饋指導(dǎo)學(xué)生由于“輸出字符串個數(shù)與測試用例輸出字符串個數(shù)不相等,且一半的字符無法匹配”導(dǎo)致運(yùn)行不通過;否則顯示“輸出字符串個數(shù)與測試用例輸出字符串個數(shù)不相等,且超過一半的字符無法匹配”導(dǎo)致運(yùn)行不通過。

        2.5 “單一純數(shù)值型”用例結(jié)果錯誤

        對于測試用例考察類型為“單一純數(shù)值型”,依次做如下處理:

        將學(xué)生代碼輸出結(jié)果字符串和和預(yù)設(shè)測試用例輸出字符串轉(zhuǎn)為數(shù)值型,按照10的倍數(shù)放大或縮小學(xué)生代碼輸出結(jié)果,再與預(yù)設(shè)測試用例輸出比較,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出字符串與預(yù)設(shè)測試用例輸出無法匹配,但是存在10的倍數(shù)關(guān)系”導(dǎo)致運(yùn)行不通過;

        判斷學(xué)生代碼輸出結(jié)果字符串和和預(yù)設(shè)測試用例輸出字符串長度是否相等,如果不相等,計算學(xué)生代碼輸出結(jié)果字符串和和預(yù)設(shè)測試用例輸出字符串的編輯距離edit_Dis,再比較前min{Ls-edit_Dis, Lt-edit_Dis}(Ls為學(xué)生代碼輸出結(jié)果字符串長度,Lt為預(yù)設(shè)測試用例輸出字符串長度)個學(xué)生代碼輸出結(jié)果字符串是否和預(yù)設(shè)測試用例輸出字符串相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出字符串與預(yù)設(shè)測試用例輸出無法匹配,但是有效位保留出錯”導(dǎo)致運(yùn)行不通過。

        2.6 “多個純數(shù)值型”用例結(jié)果錯誤

        對于測試用例考察類型為“多個純數(shù)值型”,需先判斷學(xué)生代碼輸出結(jié)果數(shù)值個數(shù)Ns(以空格隔開)和預(yù)設(shè)測試用例輸出數(shù)值個數(shù)Na(以空格隔開)是否相等。

        (1)學(xué)生代碼輸出結(jié)果數(shù)值個數(shù)和預(yù)設(shè)測試用例輸出數(shù)值個數(shù)相等時,依次做如下處理:

        判斷刪除學(xué)生代碼輸出結(jié)果字符串空格、回車后和預(yù)設(shè)測試用例輸出字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出內(nèi)容與測試用例要求大體一致,有多余的空格、回車”導(dǎo)致運(yùn)行不通過;

        判斷刪除預(yù)設(shè)測試用例輸出字符串空格、回車后和學(xué)生代碼輸出結(jié)果字符串比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出內(nèi)容與測試用例要求大體一致,缺失題目要求的空格或回車(可在輸出頭、尾檢查)”導(dǎo)致運(yùn)行不通過;

        調(diào)整修改學(xué)生代碼輸出結(jié)果數(shù)值的順序后和預(yù)設(shè)測試用例輸出數(shù)值比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“多個數(shù)值間存在輸出順序錯誤”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果多個數(shù)值進(jìn)行旋轉(zhuǎn)(從第一個數(shù)值到最后一個數(shù)值進(jìn)行多次旋轉(zhuǎn))后和預(yù)設(shè)測試用例輸出數(shù)值比較是否相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“多個數(shù)值間存在輸出錯位問題”導(dǎo)致運(yùn)行不通過。

        (2)學(xué)生代碼輸出結(jié)果數(shù)值個數(shù)和預(yù)設(shè)測試用例輸出數(shù)值個數(shù)不相等時,依次做如下處理:

        學(xué)生代碼輸出結(jié)果數(shù)值個數(shù)Ns大于預(yù)設(shè)測試用例輸出中數(shù)值個數(shù)Na時,判斷學(xué)生代碼輸出結(jié)果數(shù)值中前Na個數(shù)值是否和預(yù)設(shè)測試用例輸出相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“前Na個數(shù)值和預(yù)設(shè)測試用例輸出匹配,但多輸出了某些數(shù)值”導(dǎo)致運(yùn)行不通過;

        學(xué)生代碼輸出結(jié)果數(shù)值個數(shù)Ns小于預(yù)設(shè)測試用例輸出中數(shù)值個數(shù)Na時,判斷學(xué)生代碼輸出結(jié)果數(shù)值中前Ns個數(shù)值是否和預(yù)設(shè)測試用例輸出相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“前Ns個數(shù)值和預(yù)設(shè)測試用例輸出匹配,但多輸出了某些數(shù)值”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果調(diào)整順序后,判斷學(xué)生代碼輸出結(jié)果中前min{Ns,Na}個數(shù)值是否和預(yù)設(shè)測試用例輸出相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出數(shù)值個數(shù)有誤,且存在輸出順序問題”導(dǎo)致運(yùn)行不通過;

        將學(xué)生代碼輸出結(jié)果按照數(shù)值間隔旋轉(zhuǎn)后和預(yù)設(shè)測試用例輸出比較是否部分相等,如果相等,則中英文反饋指導(dǎo)學(xué)生由于“輸出數(shù)值個數(shù)有誤,且存在輸出錯位問題”導(dǎo)致運(yùn)行不通過。

        3 自適應(yīng)反饋程序評測方法的實(shí)施與成效分析

        將基于編輯距離的自適應(yīng)反饋程序評測方法引入到本校面向大面積計算機(jī)基礎(chǔ)課程的作業(yè)系統(tǒng)中,學(xué)生使用該系統(tǒng)的相關(guān)截圖如圖6和圖7所示。通過連續(xù)3年的應(yīng)用,發(fā)現(xiàn)學(xué)生在線提交作業(yè)后,由于自適應(yīng)的指導(dǎo)反饋,可以有效提高學(xué)生編程的積極性。通過該系統(tǒng)學(xué)生不再局限于時間和地點(diǎn)的約束,并且系統(tǒng)有學(xué)習(xí)狀況分析功能,能夠看到同班級學(xué)生的完成情況,營造競爭和激勵的良好學(xué)習(xí)氛圍,也有利于同學(xué)們的自主學(xué)習(xí)。同時,教師從傳統(tǒng)的向?qū)W生傳授知識轉(zhuǎn)變?yōu)閰f(xié)助學(xué)生解決任務(wù),有利于教師提前發(fā)現(xiàn)充滿熱情的學(xué)生,對其進(jìn)行有針對性的培養(yǎng)。

        圖6 編譯不通過反饋提示界面

        基于編輯距離的自適應(yīng)反饋程序評測方法除了在本校大面計算機(jī)基礎(chǔ)課程的教學(xué)有應(yīng)用外,還用于競賽的培訓(xùn),實(shí)現(xiàn)有效銜接。課程組老師指導(dǎo)的學(xué)生多次獲得ACM國際大學(xué)生程序設(shè)計競賽、“藍(lán)橋杯”全國軟件和信息技術(shù)專業(yè)人才大賽以及團(tuán)體程序設(shè)計天梯賽獎項。在2019-2021年,本校連續(xù)三屆均有團(tuán)隊獲得全國總決賽團(tuán)隊一等獎。

        圖7 編譯通過運(yùn)行不通過反饋提示界面

        4 結(jié)束語

        近年來,團(tuán)隊老師在計算機(jī)基礎(chǔ)課程體系、能力培養(yǎng)模式、教學(xué)資源、人才培養(yǎng)等方面取得了重要成果,應(yīng)用效果顯著。對于其他兄弟院校、專業(yè)開設(shè)程序設(shè)計課程和實(shí)踐能力培養(yǎng)具有較好的借鑒和示范作用。

        實(shí)踐證明,結(jié)合自適應(yīng)反饋程序評測方法的在線評測系統(tǒng),可以有效激發(fā)學(xué)生的學(xué)習(xí)熱情,通過在實(shí)踐中學(xué)習(xí)掌握正確的計算機(jī)思維和行動方法,促進(jìn)程序設(shè)計類課程的教學(xué)質(zhì)量。同時,系統(tǒng)引入了線上學(xué)習(xí)新的教學(xué)評價體系和學(xué)習(xí)成績考核機(jī)制,取得了良好的教學(xué)效果。另一方面,在實(shí)際的應(yīng)用過程中,也存在一些不足和不完善的地方,例如系統(tǒng)沒有考慮到學(xué)生的自律性和主動性存在差異,以及如何擴(kuò)展學(xué)習(xí)深度和難度,為更優(yōu)秀的學(xué)生提供深層次的教學(xué)擴(kuò)展等,這些不足還需要在后續(xù)研究和應(yīng)用中進(jìn)一步改進(jìn)和探索。

        猜你喜歡
        學(xué)生
        快把我哥帶走
        親愛的學(xué)生們,你們并沒有被奪走什么
        英語文摘(2020年9期)2020-11-26 08:10:12
        如何喚醒學(xué)生自信心
        甘肅教育(2020年6期)2020-09-11 07:45:16
        怎樣培養(yǎng)學(xué)生的自信
        甘肅教育(2020年22期)2020-04-13 08:10:54
        如何加強(qiáng)學(xué)生的養(yǎng)成教育
        甘肅教育(2020年20期)2020-04-13 08:04:42
        “學(xué)生提案”
        《李學(xué)生》定檔8月28日
        電影(2018年9期)2018-11-14 06:57:21
        趕不走的學(xué)生
        學(xué)生寫話
        學(xué)生寫的話
        久久综合九色综合久久久| 天天躁人人躁人人躁狂躁| 亚洲自拍愉拍| 美腿丝袜一区在线观看| 久久伊人这里都是精品| 色橹橹欧美在线观看视频高清| 在线成人福利| 日本二区三区视频免费观看| 国内揄拍国内精品人妻久久| 国产精品久久国产精品99| 久久免费视频国产| 中文乱码字幕在线中文乱码 | 国产91色综合久久高清| 免费无码a片一区二三区| 成人三级在线| 亚洲伊人成综合人影院| 产美女被爽到高潮免费a| 99国产精品无码| 国产精品大屁股1区二区三区| 日本中文字幕人妻精品| 日本三级片在线观看| 亚洲旡码a∨一区二区三区| 99国产精品无码专区| 日韩精品中文字幕第二页| 亚洲av无码国产精品草莓在线| 丰满少妇被猛烈进入无码| 亚洲青涩在线不卡av| 亚洲精选自偷拍一区二| 久久精品免费观看国产| 国产成人精品亚洲午夜| 伊人久久大香线蕉av色婷婷| 国产精品免费无遮挡无码永久视频| 日日躁夜夜躁狠狠躁超碰97| 永久免费毛片在线播放| 一本久道竹内纱里奈中文字幕| 久久精品国产亚洲av麻豆| 国产AV无码专区亚洲AV桃花庵| 中文字幕视频一区懂色| 中文字幕人妻无码视频| 亚洲色图+国产精品| 日本一级二级三级在线|