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

        ?

        編程能力評估模型研究進展

        2019-03-02 02:35:26楊宇霞
        現(xiàn)代計算機 2019年2期
        關(guān)鍵詞:程序能力研究

        楊宇霞

        (四川大學計算機學院,成都 610065)

        0 引言

        在教學領(lǐng)域中,無論是在線教育還是傳統(tǒng)教育,計算機編程能力都是計算機科學和軟件工程課程要培養(yǎng)的核心能力[1],而教育者/考核者評判編程能力水平的方式是以學生課程期末考核表現(xiàn)為依據(jù),即總結(jié)性評估。目前,總結(jié)性評估方法主要分為兩大類:線下筆試和線上測驗,如圖1所示。

        圖1 編程能力評估方法

        線下筆試大多是以理論知識為主,代碼編寫為輔。通過多項選擇、填空及問答等方式考核學生的知識點覆蓋廣度和深度,對學生實際操作關(guān)注較少。這種按圖索驥的測驗存在諸多不合理性:

        首先,計算機編程是一門以理論為指導(dǎo),以解決實際問題為目的的實踐學科。其本質(zhì)在于對計算機的實際應(yīng)用,而上述評估方法未能充分體現(xiàn)其核心思想;其次,這種不以實踐為中心的考核模式會導(dǎo)致錯誤的學習思維,學生在學習過程中舍本逐末,重理論輕實踐,最終與學習的初衷背道而馳;最后,這種評估方式費時費力,而且評價標準因人而異,難以達到評估的一致性。

        Bennedsen和Caspersen提出[2],程序?qū)嶋H上是學生使用計算機上標準的開發(fā)環(huán)境生成的,在這種開發(fā)環(huán)境中,學生可以反復(fù)提交程序,并且立即獲得反饋,根據(jù)測試出現(xiàn)的錯誤(trial-and-error)來調(diào)試程序。根據(jù)建設(shè)性調(diào)準(Constructive Alignment)理論[3],學生的學習活動會影響最終的學習結(jié)果,因此布置的評估任務(wù)應(yīng)與學習活動保持一致。

        因此線上測驗以及自動化評估的必要性對編程能力的評估而言則顯得尤為重要。由圖1可知,線上測驗評估方法可以分為兩種,基于編程產(chǎn)物(源碼)的評估和基于編程行為的評估。本文對現(xiàn)有研究中線上測驗自動化評估的評價指標進行分析總結(jié),并針對其存在的問題提出改進思路。

        1 基于編程產(chǎn)物的研究

        目前以在線開發(fā)環(huán)境為背景,實現(xiàn)學生編程能力自動化評估的研究已有40多年了,如??途W(wǎng)、Leetcode等在線平臺。這些研究/工具大多以產(chǎn)物評估為主,即分析學生提交的代碼。其設(shè)計思想分為兩類:

        (1)動態(tài)分析方法(Dynamic Analysis),評分系統(tǒng)首先根據(jù)編程問題的需求生成一個測試集,然后將學生提交的程序在該測試集上運行,最后程序的評分標準以運行的程序在該測試集上通過的測試用例數(shù)量為依據(jù)[4-6]。早期的自動化評估研究,如TRY[7]、CourseMarker[8]、Online Judge[9]等,大部分都采用動態(tài)分析的方法對待測程序的功能完整性。近年來,動態(tài)分析的研究重點主要在測試用例構(gòu)造的改進[10],和針對程序的子功能或結(jié)構(gòu)的局部測試上[11]。

        (2)靜態(tài)分析方法(Static Analysis),將提交的源碼用抽象的表達方式表示,計算學生的源程序與正確答案的程序代碼之間的相似性,從而實現(xiàn)對程序的評分。如文獻[12]中作者基于程序的語義結(jié)構(gòu)相似性,針對給定編程任務(wù)生成一個標準解空間,采用SDG作為中間表示形式,采用語義保留(Semantic Preserving)轉(zhuǎn)化法對形同依賴圖進行標準化處理,根據(jù)標準化后的學生程序與模板程序系統(tǒng)依賴圖的匹配結(jié)果評分。文獻[13]中作者提出了基于控制流的抽象語法樹(CFAST)來表示源程序,通過控制結(jié)構(gòu)的數(shù)目,計算與正確程序之間的距離。文獻[14]中作者結(jié)合詞法、語法和語義分析源程序,采用模式匹配理解程序,抽象語法樹(AST)判斷語義相似性,通過設(shè)定不同的權(quán)值獲得最終的評分結(jié)果。此外,Shashank和Gursirman等人提出采用機器學習的方法,通過對待測代碼的CFG和PDG進行特征提取,訓練單層的神經(jīng)網(wǎng)絡(luò)回歸模型,用以對人工評分進行預(yù)測[15-16]。

        采用動態(tài)分析方法的好處在于其易于實現(xiàn),并且適用于解空間開放的問題。但是動態(tài)分析要求待測程序通過編譯,無法解決無限循環(huán)的問題,會造成分析過程中斷,更重要的是,動態(tài)分析無法判斷程序是否真正實現(xiàn)了任務(wù)需求,也很難為學習者提供有效的支持。而靜態(tài)方法可以支持對錯誤程序的評估,且可以檢測出剽竊和投機取巧的現(xiàn)象。然而,這種評估方法也存在局限性,除了需要更多的專業(yè)知識以外,其評估結(jié)果依賴于模板程序和分析方法的選擇。當程序越復(fù)雜,解空間越大的時候,模板程序的設(shè)計難度越高,相似性比較難度也隨之激增。

        因此許多研究考慮動態(tài)與靜態(tài)分析相結(jié)合,通過靜態(tài)分析解決編譯和運行失敗以及可解釋性問題,通過動態(tài)分析彌補解空間龐大導(dǎo)致的模板程序設(shè)計不全面的問題。

        2 基于編程行為的研究

        現(xiàn)有研究主要是通過分析學生編程產(chǎn)生的日志文件,或者通過一定粒度的代碼快照,分析學生在編程過程中的某些編程行為,從這些編程行為中提取可量化的特征指標,建立模型,來預(yù)測學生的表現(xiàn)或者根據(jù)某一屬性對學生進行分類。其編程行為主要分為兩類:

        (1)基于擊鍵(Keystroke)的編程行為研究。Thomas[17]表明,編程者會將注意力集中于思考解決方法上,從敲擊一個單詞的角度出發(fā),編程者的打字模式是不受影響的。所以許多研究都在基于單詞水平研究擊鍵行為于編程能力之間的關(guān)系,如文獻[18]中作者通過細粒度的代碼快照的方式記錄學生的兩個鍵敲擊的延遲時間,將字符類型分為5個類,如表1所示;將兩字符(Bigraph)之間的關(guān)系分為三大類,如表2所示。

        表1 按鍵類型

        表2 字符之間的關(guān)系分類

        目前基于擊鍵的研究大多止于底層行為,即主要是基于鍵敲擊延遲、強度、持續(xù)時間、Bigraph、Trigraph等原始數(shù)據(jù)的特征。但編程能力更多是體現(xiàn)在各種底層行為的組合運用中,因此僅僅研究底層的編程行為是遠遠不夠的,其能夠反映的編程能力的信息十分有限,應(yīng)從這些底層行為中挖掘出高階的編程行為來進行建模。

        (2)基于日志(Log Data)的編程行為研究。編程者在編程過程中反復(fù)進行的代碼編譯和編輯操作。大量實證研究也表明,日志文件可以十分準確地表達編程者編譯和調(diào)試的熟練度,而編譯和調(diào)試能力的強弱會影響編程者編譯錯誤的個數(shù)和類型,從而影響最終的考核結(jié)果[19-20]。

        如文獻[21]中作者通過日志文件收集學生在編程過程中產(chǎn)生的四種數(shù)據(jù):編譯、運行、代碼編輯以及提示使用,根據(jù)編譯和使用提示的次數(shù)以及先后順序,給學生在該編程任務(wù)上的表現(xiàn)評分,根據(jù)一段時間多次任務(wù)的表現(xiàn)評分軌跡,預(yù)測學生是否能夠順利通過課程;文獻[22]中作者通過日志文件中的對同一文件的連續(xù)編譯的行為,根據(jù)編譯是否成功,錯誤信息,錯誤類型,錯誤行以及編輯時間等特征預(yù)測學生的編程能力;文獻[23]中作者選擇基于Web的開源編輯器Cloud-Coder作為開發(fā)平臺,通過日志文件收集學生的編程過程中產(chǎn)生的三種數(shù)據(jù):編譯、運行和代碼編輯。研究學生編譯產(chǎn)生的錯誤數(shù)量,錯誤類型,錯誤位置以及編輯位置等特征與編程結(jié)果的關(guān)系。

        基于日志的研究在某種程度上確實可以很好地反映學生的編譯調(diào)試行為與編程能力之間的關(guān)系,包含了很多高階的編程行為,與編程能力的相關(guān)性也更強。但是,它依然只是編程過程中的一部分,不能代表編程過程中的所有行為,因而也無法準確表示編程能力的強弱;此外,基于日志的編譯調(diào)試行為是廣義上的編程行為,只知道最后一次的編輯結(jié)果,而兩次編譯之間的其他行為無法記錄。因此準確地說,基于日志的方法不能記錄完整的編譯調(diào)試行為。

        3 總結(jié)與展望

        通過對現(xiàn)有研究的總結(jié)分析,目前對編程能力的評估仍然存在以下幾點問題值得深入研究和改進:

        (1)基于理論以及實證研究提出一種標準的編程能力結(jié)構(gòu),對學生編程能力的全面定義,以促進編程能力自動化評估的發(fā)展。無論是基于產(chǎn)物還是基于行為的編程能力評估,研究者并未對編程能力進行標準化定義,這造成評估人員對能力的主觀因素直接影響實驗結(jié)果,此外,由于缺乏統(tǒng)一的能力結(jié)構(gòu)定義,自動化評估方面的研究依然具有主觀性。

        (2)建立一個編程行為集合,記錄編程過程中產(chǎn)生的所有編程行為,通過集合評估學生的編程能力,如圖2所示?,F(xiàn)有研究中,基于產(chǎn)物的評估模型丟失了未能傳播到代碼中的行為,基于擊鍵的編程行為特征選取大多基于底層,如鍵敲擊延遲、強度、持續(xù)時間等,會丟失部分語義信息;基于日志的編程行為直接記錄上層行為,如編譯、運行、調(diào)試等,丟失了部分底層數(shù)據(jù)。上述方法均存在行為丟失的現(xiàn)象,所以建立一個編程行為集合是有必要的。

        圖2 基于編程行為的理想能力框架

        (3)對底層編程行為集合進行抽象,獲得高層的行為模式,建立編程行為與編程能力之間的映射關(guān)系模型,如圖2所示?;诰幊绦袨榈难芯恐校邔有袨樘卣靼S富的語義信息,其實驗結(jié)果更具有價值。

        猜你喜歡
        程序能力研究
        消防安全四個能力
        FMS與YBT相關(guān)性的實證研究
        遼代千人邑研究述論
        視錯覺在平面設(shè)計中的應(yīng)用與研究
        科技傳播(2019年22期)2020-01-14 03:06:54
        EMA伺服控制系統(tǒng)研究
        試論我國未決羈押程序的立法完善
        大興學習之風 提升履職能力
        你的換位思考能力如何
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        久久97久久97精品免视看| 国产日产亚洲系列av| 国产精品高清一区二区三区人妖| 亚洲成人av大片在线观看| 亚洲大尺度无码无码专区| 日本精品无码一区二区三区久久久| 无遮挡边吃摸边吃奶边做| 娇柔白嫩呻吟人妻尤物| 女同性恋看女女av吗| 亚洲 欧美 偷自乱 图片| 日韩毛片免费无码无毒视频观看| 这里只有久久精品| 日韩在线视频不卡一区二区三区 | 日本久久精品国产精品| 蜜桃视频在线在线观看| 无码人妻一区二区三区免费看| 午夜dj在线观看免费视频| 在线天堂中文一区二区三区| 精品熟女av中文字幕| 亚洲一区二区三区影院| 国产成人精品无码播放| 女人被躁到高潮嗷嗷叫免费软| 日本视频一中文有码中文| 久久青青草原亚洲av无码麻豆| 四虎影视亚洲精品| 蜜臀久久久精品国产亚洲av| 九九九免费观看视频| 亚洲乱码av中文一区二区| 精品国产1区2区3区AV| 日本中文字幕精品久久| 久久精品国产免费观看| 日韩精品区欧美在线一区| 国产色婷亚洲99精品av网站| 亚洲一区二区三区尿失禁| 色偷偷一区二区无码视频| 中文字幕日本人妻一区| 极品粉嫩小仙女高潮喷水网站| 国产精品9999久久久久| 精品国产一区二区三区亚洲人| 国产午夜福利小视频在线观看| 乱人伦精品视频在线观看|