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

        ?

        基于Sakai的程序設(shè)計(jì)語(yǔ)言課程教學(xué)管理系統(tǒng)*

        2015-12-26 06:54:03蔡向高劉華泓
        中國(guó)教育信息化 2015年15期
        關(guān)鍵詞:子項(xiàng)目源代碼實(shí)驗(yàn)報(bào)告

        蔡向高,劉華泓

        (1.中山大學(xué)資訊管理學(xué)院,廣東 廣州510006;2.中山大學(xué)信息科學(xué)與技術(shù)學(xué)院,廣東廣州510006)

        基于Sakai的程序設(shè)計(jì)語(yǔ)言課程教學(xué)管理系統(tǒng)*

        蔡向高1,劉華泓2

        (1.中山大學(xué)資訊管理學(xué)院,廣東 廣州510006;2.中山大學(xué)信息科學(xué)與技術(shù)學(xué)院,廣東廣州510006)

        針對(duì)開源系統(tǒng)在線學(xué)習(xí)系統(tǒng)Sakai應(yīng)用于程序設(shè)計(jì)語(yǔ)言等計(jì)算機(jī)編程類課程教學(xué)時(shí),缺乏對(duì)程序設(shè)計(jì)題目進(jìn)行自動(dòng)評(píng)測(cè)和優(yōu)化的問題,在對(duì)Sakai架構(gòu)進(jìn)行深度分析的基礎(chǔ)上,集成了程序設(shè)計(jì)語(yǔ)言題目自動(dòng)評(píng)測(cè)機(jī)制以及實(shí)現(xiàn)實(shí)驗(yàn)報(bào)告在線手寫批注等功能。在實(shí)際教學(xué)中,有助于提高教師的工作效率以及給予學(xué)生更多的反饋信息。

        程序設(shè)計(jì)語(yǔ)言;自動(dòng)評(píng)測(cè);Sakai;在線學(xué)習(xí)系統(tǒng)

        一、引言

        對(duì)于“程序設(shè)計(jì)語(yǔ)言”課程的編程作業(yè),由于時(shí)間、精力有限,不少教師都是直接閱讀代碼后給出相關(guān)分?jǐn)?shù),而沒實(shí)際運(yùn)行學(xué)生的程序。人工閱讀代碼使得教師往往忽略了學(xué)生程序中存在的語(yǔ)法和編譯問題,耗費(fèi)教師更多的時(shí)間和精力,也難以驗(yàn)證其正確性。對(duì)編程作業(yè)進(jìn)行自動(dòng)化評(píng)測(cè),不僅可以省去教師手工編譯、運(yùn)行及測(cè)試的時(shí)間,大大減輕教師的工作負(fù)擔(dān),而且通過若干從難到易的測(cè)試用例生成測(cè)試報(bào)告,也可以讓學(xué)生對(duì)自己程序中存在的問題一目了然。

        關(guān)于程序設(shè)計(jì)題目自動(dòng)評(píng)測(cè)的相關(guān)課題吸引了國(guó)內(nèi)外的許多學(xué)者進(jìn)行研究。近幾年,在國(guó)外如Aleman等人使用先靜態(tài)測(cè)試再動(dòng)態(tài)測(cè)試的方法對(duì)程序設(shè)計(jì)題目進(jìn)行自動(dòng)評(píng)測(cè)[1]。在國(guó)內(nèi),牛永浩等人[2]對(duì)關(guān)于如何進(jìn)行程序設(shè)計(jì)題目的自動(dòng)評(píng)分作了詳細(xì)的分析。但是大部分的研究或系統(tǒng)更多只關(guān)注自動(dòng)評(píng)測(cè)或代碼相似性這幾大關(guān)鍵技術(shù),缺乏與之相配套、功能齊整的在線學(xué)習(xí)系統(tǒng)。

        Sakai在線學(xué)習(xí)系統(tǒng)是由美國(guó)印地安那大學(xué)、密西根大學(xué)、斯坦福大學(xué)和麻省理工學(xué)院于2004年共同發(fā)起的一個(gè)開源項(xiàng)目[3],2005年發(fā)布第一個(gè)版本,目前最新版本號(hào)是10.3。Sakai平臺(tái)包含了課程大綱、課程內(nèi)容、平時(shí)作業(yè)、練習(xí)測(cè)驗(yàn)、成績(jī)查詢、成員名冊(cè)、日程管理、系統(tǒng)通知和課程信息等數(shù)十個(gè)模塊。Sakai平臺(tái)采用插件機(jī)制,開發(fā)者可以很容易在上面開發(fā)新的模塊。目前,Sakai已經(jīng)在教育、培訓(xùn)和科研等領(lǐng)域得到了廣泛的應(yīng)用。

        本文將在Sakai平臺(tái)之上,討論基于Sakai平臺(tái)的源代碼自動(dòng)評(píng)測(cè)、源碼和報(bào)告評(píng)閱等功能的實(shí)現(xiàn)。

        二、關(guān)鍵技術(shù)

        實(shí)現(xiàn)基于Sakai的程序設(shè)計(jì)語(yǔ)言課程教學(xué)管理系統(tǒng),必須深入理解Sakai平臺(tái)架構(gòu)進(jìn)行二次開發(fā),并掌握自動(dòng)評(píng)測(cè)等關(guān)鍵技術(shù)。

        1.Sakai平臺(tái)架構(gòu)

        Sakai采用插件式架構(gòu),每一個(gè)插件 (Sakai應(yīng)用,Sakai Application)對(duì)應(yīng)于一個(gè)具體的功能模塊,如作業(yè)、考試等功能模塊。每一個(gè)Sakai應(yīng)用的結(jié)構(gòu)如圖1所示。主要分為四個(gè)子項(xiàng)目:第一個(gè)子項(xiàng)目為共享(Shared)的接口部分,關(guān)于所有的業(yè)務(wù)邏輯接口、Getter/Setter接口以及數(shù)據(jù)存取接口都在這一項(xiàng)目中聲明。第二個(gè)子項(xiàng)目是組件(Components)定義部分,主要是Spring容器的配置文件,指明各個(gè)接口的實(shí)現(xiàn)類。第三個(gè)子項(xiàng)目為Web用戶界面,所有關(guān)于用戶輸入輸出的操作都在這一項(xiàng)目中實(shí)現(xiàn);實(shí)際上通過Maven生成的標(biāo)準(zhǔn)Sakai應(yīng)用,包含四個(gè)子項(xiàng)目。第四個(gè)子項(xiàng)目為實(shí)現(xiàn)部分,所有接口的實(shí)現(xiàn)類都在這一項(xiàng)目中創(chuàng)建。Sakai應(yīng)用與Sakai框架進(jìn)行通信是通過共享子項(xiàng)目的公共API實(shí)現(xiàn),通過這些公共API,可以獲取用戶信息以及所屬課程等信息。以上劃分規(guī)劃必須嚴(yán)格遵循,不同子項(xiàng)目間的協(xié)作只能通過接口進(jìn)行,否則由于同一個(gè)實(shí)現(xiàn)類被不同的子項(xiàng)目加載容易導(dǎo)致類不兼容。

        圖1 Sakai應(yīng)用結(jié)構(gòu)

        進(jìn)行Sakai應(yīng)用的開發(fā),數(shù)據(jù)庫(kù)存取的實(shí)現(xiàn)擁有多種選擇方式,包括JDBC、Spring JDBC和Hibernate。表示層的實(shí)現(xiàn)可以選擇Velocity、JSP、JSF、RSF、Wicket以及Spring MVC等方式。對(duì)于普通的開發(fā)者而言,選擇Hibernate+Spring MVC是一種比較理想的組合方式。然而對(duì)Sakai進(jìn)行二次開發(fā)時(shí),不同的Sakai應(yīng)用采用不同的數(shù)據(jù)庫(kù)存取方式以及表示形式,要求開發(fā)者掌握各種相關(guān)技術(shù)以及理解Sakai現(xiàn)有的代碼,會(huì)一定程度上增加開發(fā)者的學(xué)習(xí)成本和降低開發(fā)效率。

        2.自動(dòng)評(píng)測(cè)

        程序設(shè)計(jì)題的自動(dòng)評(píng)測(cè)技術(shù)主要包括靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)分析主要指針對(duì)源代碼進(jìn)行分析,不要求源代碼完整或者可編譯。動(dòng)態(tài)分析是指將源代碼編譯成程序后,采用黑盒測(cè)試的方法,使用測(cè)試用例對(duì)程序進(jìn)行測(cè)試,并比較運(yùn)行結(jié)果和期望結(jié)果來確定學(xué)生的分?jǐn)?shù)。本系統(tǒng)主要采用動(dòng)態(tài)測(cè)試,在Windows使用Visual Studio的編譯器CL.EXE對(duì)源代碼進(jìn)行編譯,在Linux中調(diào)用GNU編譯器套件GCC進(jìn)行編譯。然后運(yùn)行程序進(jìn)行測(cè)試。

        為了防止程序運(yùn)行、編譯異?;蜻M(jìn)入死循環(huán),本系統(tǒng)采用JAVA線程創(chuàng)建編譯或測(cè)試進(jìn)程,并進(jìn)行監(jiān)控。如果超時(shí)仍未完成相關(guān)任務(wù),將強(qiáng)制性停止該進(jìn)程,確保服務(wù)器不會(huì)因?yàn)樽枞萑腴L(zhǎng)時(shí)間等待。進(jìn)行結(jié)果對(duì)比時(shí),系統(tǒng)將會(huì)對(duì)程序的輸出進(jìn)行處理并智能提取關(guān)鍵數(shù)據(jù)與期望結(jié)果進(jìn)行比較,防止因?yàn)檩敵龈袷交蛱崾疚谋镜脑驅(qū)е聹y(cè)試不通過。此外,系統(tǒng)可以進(jìn)行文件分割支持多源文件輸入,從而可以應(yīng)用于“數(shù)據(jù)結(jié)構(gòu)”等計(jì)算機(jī)編程課程。

        3.相似度檢測(cè)

        學(xué)生的誠(chéng)信問題一直是廣大教師在授課時(shí)所關(guān)注的重點(diǎn)所在。檢查學(xué)生提交的程序源代碼是否存在抄襲,在國(guó)內(nèi)外的研究都已經(jīng)比較成熟。主要包括屬性計(jì)數(shù)法、結(jié)構(gòu)度量法、最長(zhǎng)公共子序列等方法。并且在應(yīng)用檢測(cè)算法之前,還可以對(duì)程序源代碼進(jìn)行預(yù)處理或詞法、語(yǔ)法分析,以消除格式(如空格和換行)、順序或改名等操作的影響。本系統(tǒng)對(duì)源代碼進(jìn)行預(yù)處理后,采用類似Linux diff命令的算法,以行為單位使用最長(zhǎng)公共子序列進(jìn)行檢測(cè)。

        4.在線手寫批注

        對(duì)于程序設(shè)計(jì)作業(yè),除要求提交源代碼外,一般還要求學(xué)生提交實(shí)驗(yàn)報(bào)告,即作業(yè)內(nèi)容。各類主流的在線學(xué)習(xí)系統(tǒng),基本都提供了作業(yè)管理功能,少數(shù)平臺(tái)也提供對(duì)作業(yè)內(nèi)容進(jìn)行批注的功能,如Sakai,可以在學(xué)生提交的作業(yè)文本中插入一些特定符號(hào),使在學(xué)生界面可以實(shí)現(xiàn)批注的效果。但是效率和效果都不理想,比不上現(xiàn)實(shí)中教師使用紅筆在紙質(zhì)作業(yè)本上或?qū)嶒?yàn)報(bào)告上直接批改來得方便。

        得益于下一代HTML,即HTML5技術(shù)的發(fā)展,使用HTML5中的Canvas畫布功能,可以在瀏覽器上實(shí)現(xiàn)類似畫圖軟件中的涂鴉功能和文本框功能。為了支持教師可以對(duì)實(shí)驗(yàn)報(bào)告進(jìn)行在線手寫批注,首先將學(xué)生提交的實(shí)驗(yàn)報(bào)告(PDF)轉(zhuǎn)換為圖片,然后以背景的方式裝載進(jìn)入畫布,批注保存后系統(tǒng)后臺(tái)自動(dòng)生成已批注的PDF供學(xué)生下載。如果需要對(duì)源代碼進(jìn)行評(píng)閱,可以要求學(xué)生將源代碼粘貼進(jìn)入實(shí)驗(yàn)報(bào)告。

        5.其他

        除開上述核心技術(shù)外,出于教學(xué)效率和學(xué)習(xí)效率、用戶體驗(yàn)等方面的考慮,本系統(tǒng)集成了語(yǔ)法高亮、源代碼在線編輯器、源代碼格式化和報(bào)表輸出等功能。

        三、功能實(shí)現(xiàn)

        系統(tǒng)基于著名開源在線學(xué)習(xí)系統(tǒng)Sakai之上,實(shí)現(xiàn)源代碼自動(dòng)評(píng)測(cè),并對(duì)平時(shí)作業(yè)、考試測(cè)驗(yàn)和成績(jī)查詢等模塊進(jìn)行改進(jìn)。系統(tǒng)針對(duì)中山大學(xué)教學(xué)環(huán)境做了相關(guān)優(yōu)化,支持中山大學(xué)教務(wù)相關(guān)報(bào)表的輸出以及對(duì)Sakai的漢化、樣式做了改進(jìn)。以下將以基于Sakai平臺(tái)的源代碼自動(dòng)評(píng)測(cè)和實(shí)驗(yàn)報(bào)告在線評(píng)閱兩大改進(jìn)功能進(jìn)行說明。

        1.源代碼自動(dòng)評(píng)測(cè)

        在Sakai的基礎(chǔ)上,集成C++編程作業(yè)類型,教師需要將作業(yè)類型選擇為“C++作業(yè)”,然后輸入測(cè)試用例。學(xué)生在相應(yīng)的用戶界面可以輸入源碼等信息。系統(tǒng)集成了C++源碼在線編輯器,使用源碼在線編輯器,學(xué)生可以在瀏覽器中很方便地進(jìn)行代碼編輯。系統(tǒng)將根據(jù)事先定制好的測(cè)試用例對(duì)C++源碼進(jìn)行評(píng)測(cè),將會(huì)為每一位學(xué)生生成一份詳細(xì)的閱讀報(bào)告,如圖2所示。并且系統(tǒng)支持對(duì)所有作業(yè)進(jìn)行批量的評(píng)測(cè),進(jìn)行批量評(píng)測(cè)還將包含作業(yè)相似度的檢查。

        圖2 自動(dòng)評(píng)測(cè)結(jié)果

        2.實(shí)驗(yàn)報(bào)告評(píng)閱

        為了幫助教師對(duì)程序作業(yè)進(jìn)行打分,系統(tǒng)集成了各種工具對(duì)源代碼進(jìn)行處理,如顯示自動(dòng)評(píng)測(cè)的結(jié)果以及源代碼高亮、格式化,如圖3所示。此外如圖4所示,系統(tǒng)實(shí)現(xiàn)了PDF報(bào)告在線手寫批注的功能。系統(tǒng)提供畫筆功能,實(shí)現(xiàn)自主批注功能。也提供了文字批注功能、橡皮擦等功能。這些功能基本滿足了教師對(duì)實(shí)驗(yàn)報(bào)告進(jìn)行批注的需求。保存后,學(xué)生就可以在自己的用戶界面中下載已批注的報(bào)告。

        四、系統(tǒng)使用情況

        針對(duì)程序設(shè)計(jì)題目自動(dòng)化評(píng)測(cè)模塊在2009年、2010年已經(jīng)在中山大學(xué)信息科學(xué)與技術(shù)學(xué)院C++高級(jí)程序設(shè)計(jì)語(yǔ)言課程中試用。每周布置兩道的編程題目,學(xué)生提交源代碼和實(shí)驗(yàn)報(bào)告。預(yù)先定義從易到難的測(cè)試用例,較難的測(cè)試用例主要針對(duì)邊界測(cè)試或?qū)W生容易疏忽的地方進(jìn)行設(shè)計(jì)。使用自動(dòng)化評(píng)測(cè)模塊,可以快速生成成績(jī)報(bào)告,減少作業(yè)評(píng)改的時(shí)間和提高評(píng)改的準(zhǔn)確性。學(xué)生根據(jù)反饋的測(cè)試報(bào)告,可以快速定位程序存在的問題,一定程度上提高學(xué)生的學(xué)習(xí)效率。

        圖3 源代碼評(píng)閱界面

        圖4 實(shí)驗(yàn)報(bào)告在線手寫批注

        Sakai平臺(tái)已經(jīng)在中山大學(xué)資訊管理學(xué)院的兩門課程進(jìn)行試用,大大提高了教師與學(xué)生之間的協(xié)作效率,為作業(yè)、考試提供了一個(gè)優(yōu)秀的管理平臺(tái)?;赟akai平臺(tái)的自動(dòng)化評(píng)測(cè)系統(tǒng)在開發(fā)完畢后,使用2009年、2010年的數(shù)據(jù)針對(duì)C++程序設(shè)計(jì)語(yǔ)言課程的作業(yè)自動(dòng)化測(cè)評(píng)進(jìn)行評(píng)估,初步驗(yàn)證其可行性,并將在2015年春季學(xué)期于中山大學(xué)資訊管理學(xué)院數(shù)據(jù)結(jié)構(gòu)等課程中試用。

        五、總結(jié)

        本文探討了基于Sakai程序設(shè)計(jì)語(yǔ)言課程教學(xué)管理系統(tǒng)的設(shè)計(jì)開發(fā),利用當(dāng)前開源平臺(tái)以及程序自動(dòng)化評(píng)測(cè)技術(shù),在Sakai的基礎(chǔ)上,進(jìn)行了深度的二次開發(fā),實(shí)現(xiàn)了“程序設(shè)計(jì)語(yǔ)言”實(shí)驗(yàn)自動(dòng)評(píng)測(cè)及課程管理系統(tǒng),實(shí)現(xiàn)對(duì)C++作業(yè)進(jìn)行自動(dòng)評(píng)測(cè)和管理的功能,提高教師在程序設(shè)計(jì)語(yǔ)言課程的教學(xué)效率。

        [1]Aleman JLF.Automated assessmentin aprogramm ing tools course[J].IEEE Transactionson Education,2011,54(4): 576-581.

        [2]牛永浩,張曉光.關(guān)于程序設(shè)計(jì)題自動(dòng)評(píng)分方法的研究[J].信息技術(shù),2010(11):155-159.

        [3]Apereo Foundation.Sakai Project[EB/OL].https:// www.sakaiproject.org/,2015-02-15.

        (編輯:楊馥紅)

        TP311.52

        A

        1673-8454(2015)15-0057-03

        國(guó)家自然科學(xué)基金(項(xiàng)目編號(hào):61309028);廣東省教育廳高校學(xué)科與專業(yè)建設(shè)專項(xiàng)基金科技創(chuàng)新項(xiàng)目(項(xiàng)目編號(hào):2013KJCX 0128);中山大學(xué)實(shí)驗(yàn)教改項(xiàng)目(項(xiàng)目編號(hào):20000-18008010)。

        猜你喜歡
        子項(xiàng)目源代碼實(shí)驗(yàn)報(bào)告
        人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
        服務(wù)進(jìn)程中消費(fèi)者對(duì)子項(xiàng)目順序的遵從性研究
        基于TXL的源代碼插樁技術(shù)研究
        活性炭為中心綜合項(xiàng)目總體布局
        山西化工(2021年4期)2021-01-25 14:15:18
        實(shí)驗(yàn)報(bào)告
        軟件源代碼非公知性司法鑒定方法探析
        數(shù)據(jù)挖掘算法對(duì)于提高實(shí)驗(yàn)報(bào)告質(zhì)量的作用探討
        基于案例的電子技術(shù)實(shí)踐教學(xué)內(nèi)容與教學(xué)設(shè)備的設(shè)計(jì)
        揭秘龍湖產(chǎn)品“源代碼”
        中國(guó)經(jīng)濟(jì)改革促進(jìn)與能力加強(qiáng)項(xiàng)目管理暫行辦法
        国产精品成人久久电影| 亚洲一二三四五中文字幕| 国产精品国产三级野外国产| 免费人成年激情视频在线观看 | 亚洲欧美日韩中文字幕网址 | 内射中出日韩无国产剧情| 国产熟女露脸大叫高潮| av无码av在线a∨天堂app| 午夜一区二区在线视频| 包皮上有一点一点白色的| 亚洲国产精品日韩av不卡在线 | 国产人妖xxxx做受视频| 激情五月开心五月啪啪| 男人扒开添女人下部免费视频| 亚洲碰碰人人av熟女天堂| 亚洲熟妇av日韩熟妇av| 国产精品毛片极品久久| 国产午夜伦鲁鲁| 久久精品亚洲牛牛影视| 国产自产自现在线视频地址| 桃红色精品国产亚洲av| 999久久久国产精品| 天天干夜夜躁| 91亚洲免费在线观看视频 | 久久久久久国产精品免费免费男同| 久久99国产精品尤物| 亚洲美女av二区在线观看| 国产在线观看自拍av| 精品淑女少妇av久久免费| 国产成人精品亚洲午夜| 青青草视频在线观看9| 亚洲av无码一区二区三区天堂| 99精品一区二区三区无码吞精| 亚洲av日韩av综合aⅴxxx| 一区二区三区免费自拍偷拍视频| 公与淑婷厨房猛烈进出| 九九九精品成人免费视频小说| 极品美女尤物嫩模啪啪| 国产日本精品一二三四区| 少妇人妻偷人精品免费视频| 欧美成人精品福利在线视频|