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

程序設計類課程在線評測教輔系統的設計與實現

2018-12-01 05:11:40陳仁祥
計算機教育 2018年11期
關鍵詞:程序作業用戶

薛 景,陳仁祥,張 敏,周 劍

(1. 南京郵電大學 計算機學院,江蘇 南京 210023;2.南京工業大學 交通運輸工程學院,江蘇 南京 210009)

1 大學程序設計類課程MOOC化教學中存在的問題

C++、Java、Python等高級語言程序設計課程,是普通高校各專業的計算機基礎課程。這類課程的培養目標是學習面向對象程序設計的思想和方法,掌握程序設計的流程和技巧,具備分析問題和利用計算機求解問題的能力。對于該類課程,學生只有通過大量實踐練習才能提高編程水平和培養使用計算機解決問題的能力。

中國大學MOOC面向大眾提供種類繁多的優質教學資源,其中也包括為數眾多的程序設計類課程。筆者以該網站為例,說明現有的程序設計類課程的在線教學系統存在的問題。

1.1 缺乏功能完善的在線評測教輔系統

大學程序設計類課程的授課內容不僅包含面向過程編程的基本數據類型、程序流程控制等知識點,還包含類和對象、繼承和多態、異常處理、用戶圖形界面、多線程編程等眾多面向對象編程的特性。目前中國大學MOOC網站的程序評測系統采用的是使用測試用例進行程序正確性判定的方法,該方法無法對包含這些面向對象特性的程序進行有效的判定[1],進而影響評測效果。

1.2 班級管理混亂

目前中國大學MOOC網站教學管理模塊并未提供“分班”管理功能,所有選擇同一課程的學生都集中在同一個班級里,然而現實中,同一門課程往往由課程組內教師分別負責不同的班級,這種線上線下的差異就造成任課教師在該網站中管理自己班級的學生變得十分困難,無法快速方便查看授課班級內學生的相關信息。

1.3 缺乏強有力的數據挖掘

雖然中國大學MOOC網站中儲存了大量的學生學習數據,但是并未向教師提供任何數據挖掘的功能,如“成績預警”“抄襲檢測”等。數據挖掘技術可以對學生的學習數據進行整理分析,教師可以根據分析結果進行更有針對性的教學活動,這將大幅度提高課程的教學效果,最終提升課程的通過率。

2 系統總體架構

基于HUSTOJ平臺的在線評測教輔系統集程序在線評判、智能問答、成績預警、抄襲檢測、日常教學輔助等功能為一體。系統采用MTV(model-template-view)設計模型,分為數據層、應用層和表現層,如圖1所示。

數據層是整個系統的數據資源保障,按照應用場景不同分為5類:在線評測數據、問答數據、成績預測數據、作業代碼數據和教輔模塊數據。各類數據單元既可以獨立支撐上層應用的數據需求,又可以相互聯系在一起構成數據挖掘的數據集。

圖1 基于HUSTOJ平臺的在線評測教輔系統架構

應用層是系統邏輯功能的實現,根據不同的需求分為在線評測模塊、智能問答模塊、成績預警模塊、抄襲檢測模塊和日常教輔模塊,其中在線評測模塊包含在線判題、題庫管理和作業管理3個子功能;智能問答模塊包含實時問答和異步問答兩個子功能;成績預警模塊包含成績預測和風險提示兩個子功能;抄襲檢測模塊包含代碼比對和作業分類兩個子功能;日常教輔模塊包含隨堂測驗和出勤管理兩個子功能。各個模塊從功能性上相互獨立,可單獨使用,又從邏輯上相互聯系、相輔相成,貫穿整個教學活動。

表現層是系統最終呈現的形式,通過Web前端將應用功能展現給師生用戶,用戶正常登錄后即可操作不同的模塊,滿足教師或者學生不同的用戶需求。

3 各模塊功能設計

3.1 在線評測模塊

針對目前中國大學MOOC缺乏功能完善的在線評測教輔系統[2]的問題,我們基于HUSTOJ[3]平臺進行了二次開發:將在線答題的教學環節分為普通作業、實驗課和隨堂測驗3種不同類型;增加更多的測試題型,包括選擇題、編程題、程序填空、程序改錯以及看程序寫結果;豐富判題評分策略,除了傳統OJ編譯運行學生提交的代碼與測試樣例對比的方法外,增加基于代碼相似度的評分方法。

3.1.1 角色設置

作為完善的在線作業評測系統,傳統OJ簡單的用戶角色劃分已經不能滿足實際教學的需要,因此,為了更加方便地管理課程中的相關資源,該模塊中設置課程負責人、任課教師、學生3種用戶角色,不同角色對應著不同的操作權限和使用功能,如圖2所示。

圖2 基于HUSTOJ平臺的在線評測模塊不同角色功能示意圖

1)課程負責人。

指某個課程的建立者,該角色可以管理課程的各類電子資源(包括在線視頻、電子課件、課后閱讀材料等)、管理課程的知識點劃分、建立公共作業以及添加任課教師賬號到課程組。系統中,各課程組相互獨立、互不干擾,即屬于某一課程組的任課教師只能管理、使用和修改本課程組的資源而沒有權限使用其他課程組的課程資源。

2)任課教師。

任課教師對于學生的學習行為,起著引導和敦促的作用,擁有的權限包括題庫的管理(僅限于管理自己添加的題目資源)、私有作業的管理以及普通的教學過程管理。

(1)題庫管理:提供對各類型題目的增加、修改、刪除、查詢操作。

(2)私有作業管理:包括組織管理自己建立的私有作業,私有作業既可以是任課教師自己創建的,又可以從課程負責人創建的公共作業中復制而來;定時發布作業到自己管理的班級,隨時查看和分析學生的作業數據。

(3)教學過程管理:該功能允許任課教師創建授課班級并批量導入學生賬號,很好地填補了中國大學MOOC缺乏班級管理功能的空白,為批量化管理學生數據提供了極大的便利。

3)學生。

學生用戶主要使用完成作業、查看作業發布情況和評測結果、下載教學資料等功能。3.1.2 編程題判分策略

現有平臺中的編程題判分策略主要是將待測程序的輸出結果與預先設置的測試用例進行字符串文本匹配。該策略無法適應當前主流程序設計語言的面向對象特性,如無法判定帶有圖形用戶界面的程序、包含多線程特性的程序及包含文件讀取特性的程序的正確性。為了解決上述問題,制定本模塊的判分策略如下。

(1)將用戶提交的程序輸入至HUSTOJ的自動判分環境中,等待HUSTOJ使用傳統判分策略對其進行判分。

(2)讀取使用HUSTOJ傳統判分后得到的結果,如果本題被判為滿分,則將提交來的正確程序與數據庫中的已有正確版本進行相似性比對,保存相似度不足80%的正確程序版本至數據庫中,判題結束。如果本題經過傳統判分后未得到滿分,則進入第3步。

(3)讀取包含待測程序的作業信息,如果作業中不允許使用程序相似度算法進行判分,則直接返回使用傳統判分方法得到的判分結果,判題結束。如果作業中允許使用程序相似度算法進行判分,則進入第4步。

(4)將待測程序與數據庫中相同題目的所有正確版本程序進行程序相似度計算(取值范圍為0~1),取相似度最高的結果為計算結果,并將相似度×本題總分的值與使用傳統判分策略得到的判分結果進行對比,取兩者中較高的分值作為該題目的最后得分,保存至作業數據中,判題結束。

3.2 智能問答模塊

3.2.1 異步問答

異步問答是對在線評測功能的補充,對應于實際教學過程的答疑環節。在學習、完成作業的過程中遇到的問題可直接在該模塊中進行提問,任意角色的用戶都可以對相關問題進行回答。論壇式的異步問答模塊[4]39,不僅突破傳統答疑的時空限制,而且能夠充分調動學生的學習積極性,引導學生發現新問題,鼓勵學生相互分享知識與經驗。這種針對特定人群和特定領域的問答模塊,相較于泛領域的問答,可以提供更加專業、更具針對性、更全面的答案,目的就是更好地幫助學生解決在學習過程中遇到的問題。

異步問答模塊從功能劃分上看可以分為系統功能模塊、用戶功能模塊和管理員功能模塊。系統功能模塊主要包含一般性事務處理,如消息通知、問題與答案推送等;用戶功能模塊是異步問答的主體,主要滿足用戶實現問答的基本需求,如提問、回答、評論、點贊、收藏等;管理員功能模塊主要包含對問答模塊中的數據進行監管,如刪除無效的問題、回答等。

3.2.2 問答機器人

為了解決異步問答的時效性問題,系統設計并實現了在線問答機器人[4]32,這種針對程序設計類課程的問答機器人功能可以提供常見問題的精準答案,不僅可以提高用戶問答的學習效率,還可以提高優質答案的復用率,節約教師的工作精力。

問答機器人具體算法流程如下:①根據異步問答模塊中的數據,構建包含有效問答對的知識庫;②提取用戶輸入的合法問題;③基于雙數組Trie樹生成輸入問題的分詞圖[5];④基于動態規劃法搜索概率最大路徑,提取學生用戶輸入問題的關鍵字;⑤從知識庫中搜索與關鍵字最匹配的答案并展示。若搜索失敗,繼續第6步;⑥將用戶問題存入異步問答數據庫,等待相關用戶回答。若該問題得到其他用戶的回答,則系統將回答內容以郵件和站內消息的方式通知提問用戶。

3.3 成績預警模塊

為了解決學生不能及時了解自身學習狀況的問題,進一步挖掘利用學生在使用系統過程中產生的行為特征數據,設計開發基于樸素貝葉斯[6]的成績預警模塊。該模塊利用學生日常使用系統時產生的行為特征數據,最大可能地評估并預測學生的學習狀況,并及時向教師匯報存在不及格風險的學生信息。這種及時的成績預警不僅可以為教師提供教學參考,制訂具有針對性的教學計劃,還能讓教師提醒學生端正學習態度和幫助學生優化學習方法。

該模塊的具體實現方法如下:①將在線作業完成次數、在線作業分數、在線提問次數、在線回答次數、課堂出勤率、隨堂測驗分數作為學生的特征屬性,綜合評價上述特征屬性將學生分為不及格、及格、中等、良好、優秀5個級別;②從以往學生用戶的學習數據中挑選構建訓練樣本;③依據訓練樣本訓練樸素貝葉斯分類器,訓練過程如圖3所示;④應用訓練好的分類器對正在使用系統的學生進行分類;⑤依據分類結果,對分類結果在不及格中的學生用戶進行風險提示。

圖3 樸素貝葉斯分類原理

3.4 抄襲檢測模塊

在線評測帶來極大便利的同時,也使得作業抄襲變得比以往更加容易[7]。為了遏制這種現象,保證教學效果,系統設計實現了代碼抄襲檢測模塊,對同一班級中不同學生作業中的程序代碼進行相似度檢測,按照相似性將這些作業進行分類,任課教師可以根據分類結果警告存在抄襲行為的學生。

該模塊的具體實現方法如下:①對作業程序進行標準化處理,包括去除代碼中的注釋、規整代碼格式、統一函數名和變量名等;②將標準化程序中每一行代碼的關鍵語句進行拼接,生成該程序的特征值;③將待判定程序的特征值與系統中已提交程序的特征值進行相似度比對,依據比對結果將代碼相似度較高的作業進行聚類操作,同時將新提交程序的特征值存入數據庫;④將作業聚類結果發送給任課教師,供教師參考。

3.5 日常教輔模塊

為了提高教學工作的效率,系統設計開發了諸如基于地理位置的學生出勤、隨堂測驗等教學輔助功能模塊,以方便將傳統教學事務進行數字化管理。

4 安全性設計

為了給廣大師生提供高效穩定的服務,安全性設計尤為重要,一方面為了保護眾多用戶的個人信息,另一方面為了保障服務器資源不被盜用。

4.1 在線評測模塊惡意程序防御

服務器編譯運行用戶提交的程序,可能有危害系統安全的行為[2],這些惡意程序可能是編程者不成熟的編程水平造成的,也有可能是人為故意攻擊引起的。目前,在線評測攻擊[8]主要分為兩種方式:編譯時攻擊和運行時攻擊。

編譯時攻擊的特點包括:①編譯超時,讓評測進程卡死在編譯階段;②輸出巨大文件;③頭文件包含攻擊行為。

運行時攻擊的特點包括:①運行系統指令,如執行 system(“shut down now”),立刻關閉服務器;②無休止fork,耗盡服務器系統資源;③利用腳本短時間內頻繁提交。

針對以上問題,系統采用的解決方案有設置編譯時間限制;設置可執行文件大小限制;設置文件的讀寫權限,限制用戶程序讀取系統核心文件;采用沙盒運行評測程序,將用戶提交的程序與系統環境隔離;提交作業代碼時引入人機驗證機制,防止利用機器人程序高頻率提交代碼。

4.2 跨站請求偽造防御

跨站請求偽造(cross-site request forgery),是一種限制用戶在當前已登錄的Web應用程序上執行非本意操作的攻擊方法。為了避免此類危險,系統采用的解決方案為在首次響應某個客戶端的請求時,在服務器端生成隨機Token,將該Token保存在客戶端Cookie中,之后的客戶端POST請求必須帶上這個Token,服務器驗證Token的合法性再進行下一步操作,服務器將直接拒絕無法通過合法性檢查的請求。

4.3 SQL防注入保護

為避免SQL注入攻擊,系統將用戶在網站界面輸入的所有內容均視為危險內容,不直接將使用用戶輸入的內容嵌入SQL語句中進行執行。使用Django框架中的Queryset對象可以將SQL語句在內部進行轉義,保證只能由系統內合法程序執行對數據庫的操作。

5 教學效果及優勢

5.1 使用情況及教學效果

目前,在線評測教輔系統正在南京郵電大學全校范圍內使用,已經使用系統的課程包括Python語言程序設計、Java程序語言設計、C語言程序設計以及C++面向對象程序設計。題庫模塊中包含編程題數據200余條、選擇題數據400余條,公共作業模版40余套。校內師生用戶已達8 000余人,自2016年9月上線至今,已記錄43 000余條各類教學活動數據。

系統不僅為學校學生提供專業、便捷的計算機編程學習和交流平臺,還為教師提供便捷的教學過程管理和教學資源管理平臺,通過及時向任課教師發送教學效果反饋,有效地提高了程序設計類課程中教與學的效率。

5.2 優 勢

5.2.1 易于部署、維護、管理

整個系統建立在通用Web平臺上,可以簡單、快捷地搭建運行環境,編寫自動化安裝腳本,實現通過簡單命令完成環境搭建。使用后臺管理模塊,可管理各級用戶權限和監管數據庫內的已有數據。系統中的日志記錄模塊,詳細地記錄系統運行的狀態,為排除系統故障提供有力的支持。

5.2.2 節約人力成本

在線完成各種編程練習,不僅節約紙張資源和教學活動中消耗的教師人力資源,而且可以全天候為學生提供必不可少的實踐練習機會。與傳統作業方式相比,在線學習參與者可以隨時提交并運行程序代碼,并立刻得到程序正確性的反饋。通過上述自動化的教學手段,學生能夠更好地掌握學習節奏,提升學習效果。

5.2.3 提高教與學的效率

通過使用系統,教師可便捷地組織作業、發布作業、進行課堂點名、隨堂測驗以及查看班級內學生的學習狀況,及時提醒存在不及格風險的學生;學生也可以方便地在系統中完成作業并即時得到作業結果,還可以在線上與教師進行專業領域的交流以學習更多的擴展知識。系統上線的一年多來,任課教師的教學過程管理效率有了大幅度的提升,學生的學習效率也得到提高。據任課教師反饋,在程序設計類課程的教學中引入本系統之后,學生的學習成績有了明顯的提高。

6 結 語

程序設計類課程的MOOC建設是高校計算機學科MOOC教學的重點內容,基于HUSTOJ平臺的在線評測教輔系統提供了形式多樣的在線編程實踐教學方法、完備便捷的教學過程管理功能以及實時高效的師生交流平臺,實踐證明其有效提高了傳統教學和MOOC教學的教學活動效率。針對現代社會對個性化教育的強烈需求,系統還有一些可以改進的方面,如通過分析學習者的在線學習數據,找出學習者所掌握知識點的薄弱環節,推送包含該知識點的相關學習資源供學習者進行自主學習等。

猜你喜歡
程序作業用戶
快來寫作業
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
作業
故事大王(2016年7期)2016-09-22 17:30:08
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 国产91在线|日本| 亚洲精品欧美日本中文字幕| 亚洲天堂自拍| 婷婷六月色| 亚洲国产黄色| 亚洲综合色婷婷| 亚洲人成网站日本片| 大香网伊人久久综合网2020| www精品久久| 成人国产免费| 亚洲色图欧美视频| 超清无码一区二区三区| 毛片免费在线视频| 精品无码日韩国产不卡av| 男女精品视频| 欧美精品H在线播放| 成年av福利永久免费观看| 国产丝袜一区二区三区视频免下载| 中文纯内无码H| 少妇人妻无码首页| 狠狠v日韩v欧美v| 成人字幕网视频在线观看| 精品福利视频导航| 在线视频亚洲欧美| 国产福利免费视频| 国产欧美精品一区二区| 日韩在线视频网站| 在线欧美一区| 亚洲热线99精品视频| 国模在线视频一区二区三区| 久久伊伊香蕉综合精品| 欧美色99| 爱色欧美亚洲综合图区| 国产在线观看精品| 色天天综合久久久久综合片| 国产玖玖玖精品视频| 99九九成人免费视频精品| 免费无码AV片在线观看中文| 丰满少妇αⅴ无码区| 色有码无码视频| 国产成人无码Av在线播放无广告| 美女被躁出白浆视频播放| 91福利免费| 亚洲福利视频网址| 久久黄色一级片| 欧美性天天| 亚洲,国产,日韩,综合一区| 日韩一区二区三免费高清| 特级毛片免费视频| 国产视频一区二区在线观看| 日本免费高清一区| 高潮毛片免费观看| av一区二区三区高清久久| 2021国产在线视频| 91美女视频在线| 老司国产精品视频| 国产91小视频| 青青草原国产精品啪啪视频| 国产精品福利尤物youwu | 国产资源免费观看| 麻豆精品久久久久久久99蜜桃| 久久精品免费看一| 国产日韩欧美视频| 国产人免费人成免费视频| www.91中文字幕| 久青草国产高清在线视频| 日韩麻豆小视频| 婷婷丁香在线观看| 亚洲第一成人在线| 综合网久久| 无码 在线 在线| 喷潮白浆直流在线播放| 99re精彩视频| 久久久受www免费人成| 精品无码一区二区在线观看| 黄色网址免费在线| 国产精品护士| 91九色国产在线| 91最新精品视频发布页| 日日噜噜夜夜狠狠视频| 亚洲日韩久久综合中文字幕| 免费一级α片在线观看|