• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      程序設(shè)計(jì)類SPOC課程綜合教學(xué)支撐平臺的設(shè)計(jì)與實(shí)現(xiàn)

      2017-02-25 07:10:06徐雅靜劉玉濤李智超羅安根
      計(jì)算機(jī)教育 2017年1期
      關(guān)鍵詞:程序設(shè)計(jì)代碼功能

      徐雅靜,劉玉濤,李 通,李智超,羅安根

      (北京郵電大學(xué) 信息與通信工程學(xué)院,北京 100876)

      程序設(shè)計(jì)類SPOC課程綜合教學(xué)支撐平臺的設(shè)計(jì)與實(shí)現(xiàn)

      徐雅靜,劉玉濤,李 通,李智超,羅安根

      (北京郵電大學(xué) 信息與通信工程學(xué)院,北京 100876)

      程序設(shè)計(jì)類課程教學(xué)模式的改變必然要依賴強(qiáng)大的教學(xué)平臺的支撐,針對該類課程實(shí)踐性強(qiáng)的特點(diǎn),分析基于SPOC的課堂教學(xué)、課后自學(xué)的教學(xué)實(shí)際以及教學(xué)反饋的需求,設(shè)計(jì)并實(shí)現(xiàn)一種支持SPOC全教學(xué)環(huán)節(jié)的綜合教學(xué)支撐平臺,并總結(jié)該平臺在數(shù)據(jù)結(jié)構(gòu)SPOC課程中的應(yīng)用效果。

      SPOC;OJ平臺;App Cloud;代碼相似度

      0 引 言

      程序設(shè)計(jì)類課程的核心是培養(yǎng)學(xué)生的編程能力,這涉及教師的“教”與學(xué)生的“學(xué)”兩方面內(nèi)容。教師面臨的問題是:針對性地設(shè)計(jì)課堂教學(xué)內(nèi)容,有效提升有限課堂時(shí)間內(nèi)的教學(xué)效果,及時(shí)獲取學(xué)生學(xué)習(xí)情況的反饋。學(xué)生面臨的問題是:需要更輕松更方便的學(xué)習(xí)工具或平臺,更好地安排學(xué)習(xí)時(shí)間和學(xué)習(xí)內(nèi)容,加強(qiáng)學(xué)習(xí)效果。如何使教師的教和學(xué)生的學(xué)更有效率,是大學(xué)計(jì)算機(jī)教育改革亟待解決的問題[1]。因此,基于上述教學(xué)實(shí)際,筆者設(shè)計(jì)并實(shí)現(xiàn)了一種適合程序設(shè)計(jì)類SPOC課程的綜合教學(xué)支撐平臺,經(jīng)過數(shù)據(jù)結(jié)構(gòu)SPOC課程的實(shí)際應(yīng)用和效果反饋,該平臺不僅能有效提升教與學(xué)的效率,而且能減輕教師的教學(xué)負(fù)擔(dān),支撐教師進(jìn)行更廣泛的教學(xué)模式創(chuàng)新。筆者提出的綜合教學(xué)支撐平臺(Integrated Teaching Platform, ITP)設(shè)計(jì)理念,綜合利用網(wǎng)絡(luò)、計(jì)算機(jī)、信息和通信技術(shù),架起教與學(xué)之間的信息溝通橋梁,使學(xué)生的“學(xué)”更有效地支撐教師的“教”、教師的“教”更有針對性地指導(dǎo)學(xué)生的“學(xué)”。

      1 平臺設(shè)計(jì)需求

      SPOC[2]是英文small private online course的簡稱,意為“小規(guī)模限制性在線課程”,最初由加州大學(xué)伯克利分校的MOOC負(fù)責(zé)人Armando Fox提出。SPOC教學(xué)理念是學(xué)生課下通過教學(xué)視頻學(xué)習(xí)新知識、參與在線討論、完成規(guī)定的作業(yè)和考試等,教師在課堂教學(xué)中通過提問、回答和討論,了解學(xué)生的學(xué)習(xí)情況,加深其對知識的理解,這種方式也稱為“翻轉(zhuǎn)教學(xué)”。

      SPOC教學(xué)的前提是學(xué)生課下必須保證足夠的學(xué)習(xí)時(shí)間和學(xué)習(xí)強(qiáng)度,否則直接被淘汰,但這種方式在國內(nèi)高校明顯有些“水土不服”。究其原因,一是中國大學(xué)教育的淘汰機(jī)制限制,無法保證學(xué)生的課下學(xué)習(xí)強(qiáng)度;二是中國學(xué)生多年的被動(dòng)式學(xué)習(xí)習(xí)慣,使討論式課堂教學(xué)難以調(diào)動(dòng)學(xué)生的積極性,導(dǎo)致課堂信息量不足。針對上述問題,基于SPOC理念和程序設(shè)計(jì)類課程編程實(shí)踐強(qiáng)等特點(diǎn),筆者設(shè)計(jì)了一套適合程序設(shè)計(jì)類SPOC課程的教學(xué)流程指導(dǎo)ITP平臺的設(shè)計(jì),見圖1。該教學(xué)流程兼顧學(xué)生的課下學(xué)習(xí)(視頻、課件和課外資料學(xué)習(xí))、課下自我評估(問題思考、在線測試和編程實(shí)踐)和教師課堂教學(xué)(基于教學(xué)反饋的課堂教學(xué))及討論,有效地利用有限的課堂時(shí)間指導(dǎo)學(xué)生。

      圖1 教學(xué)流程設(shè)計(jì)圖

      該教學(xué)流程必須依賴ITP平臺來實(shí)施, ITP平臺的架構(gòu)及功能服務(wù)模塊都圍繞該教學(xué)流程進(jìn)行設(shè)計(jì)和劃分。ITP平臺必須能夠支撐所有教學(xué)環(huán)節(jié),即支撐程序設(shè)計(jì)類SPOC課程全部教學(xué)環(huán)節(jié)的電子化、信息化、數(shù)據(jù)化和網(wǎng)絡(luò)化,因此ITP平臺的設(shè)計(jì)需求如下:

      (1)學(xué)習(xí)環(huán)節(jié):支撐學(xué)生分階段學(xué)習(xí),包括視頻、課件、各種課外資料的學(xué)習(xí)。

      (2)驗(yàn)證環(huán)節(jié):支撐學(xué)生獨(dú)立思考,即每一學(xué)習(xí)階段思考問題的提出、回答、共享;支撐階段學(xué)習(xí)效果測試,即在線單元測試和評分;支撐編程實(shí)踐,即分階段的編程練習(xí)、編程作業(yè)和實(shí)驗(yàn)的提交及驗(yàn)證。

      (3)系統(tǒng)分析:支持自動(dòng)收集、分析和統(tǒng)計(jì)學(xué)習(xí)過程的所有數(shù)據(jù)。

      (4)教學(xué)反饋:支撐教師實(shí)時(shí)查看、瀏覽和下載學(xué)生學(xué)習(xí)的各項(xiàng)統(tǒng)計(jì)數(shù)據(jù)。

      (5)教學(xué)設(shè)計(jì):支撐教師對教學(xué)內(nèi)容的遠(yuǎn)程電子化管理,包括課件、視頻等資料的查找、上傳和更新;支撐遠(yuǎn)程資源管理,包括評論、問題、試題、測試、作業(yè)和實(shí)驗(yàn)的撰寫、刪除、更新、導(dǎo)人和評價(jià)。

      (6)課堂指導(dǎo):支撐教師實(shí)時(shí)題目推送,支撐學(xué)生答題實(shí)時(shí)統(tǒng)計(jì)。

      基于以上需求分析,筆者提出并設(shè)計(jì)了集Web平臺、OJ(Online Judge)平臺[3]、App Cloud平臺為一體的綜合教學(xué)支撐平臺設(shè)計(jì)方案,多角度、全方位支撐以上教學(xué)環(huán)節(jié)。其中OJ平臺支持在線編程的相關(guān)服務(wù)和功能,App Cloud平臺支持移動(dòng)端的相關(guān)功能,其他功能主要由Web平臺提供支持。

      2 ITP平臺設(shè)計(jì)

      根據(jù)需求分析,筆者設(shè)計(jì)的ITP平臺架構(gòu)如圖2所示。該平臺采用分層結(jié)構(gòu)設(shè)計(jì),自下而上分為數(shù)據(jù)層、服務(wù)層、應(yīng)用層和界面層。此外,各層都設(shè)計(jì)了獨(dú)立的安全管理,保證平臺穩(wěn)定運(yùn)行。數(shù)據(jù)層負(fù)責(zé)所有視頻、PPT等資料文件、數(shù)據(jù)庫文件的存儲;服務(wù)層根據(jù)提供的不同功能分為OJ平臺、Web平臺和App Cloud平臺,其中OJ平臺和Web平臺為B/S系統(tǒng)、App Cloud平臺為C/S 系統(tǒng);應(yīng)用層負(fù)責(zé)具體功能模塊的實(shí)現(xiàn);界面層為用戶人機(jī)接口,系統(tǒng)支持Web瀏覽器和手機(jī)App兩種方式訪問ITP平臺提供的功能。

      2.1 Web平臺功能設(shè)計(jì)

      Web平臺集成了Apache Web服務(wù)器、MySQL數(shù)據(jù)庫服務(wù)和Darwin流媒體服務(wù),以PHP為開發(fā)語言。Web平臺的設(shè)計(jì)原則是以Web服務(wù)為基礎(chǔ),提供基本的瀏覽和下載服務(wù);以數(shù)據(jù)庫服務(wù)為核心,提供資源管理、在線試題、在線評論等功能;以流媒體服務(wù)器為基礎(chǔ),提供視頻相關(guān)功能。

      1) 基本功能。

      a. 信息瀏覽:課程MAP瀏覽、教師信息瀏覽;

      圖2 ITP平臺架構(gòu)圖

      b. 資料下載:PPT下載、電子書下載、代碼下載等;

      c. 數(shù)據(jù)統(tǒng)計(jì):試題錯(cuò)誤率統(tǒng)計(jì)、單元測試成績統(tǒng)計(jì)、在線考試統(tǒng)計(jì)、視頻調(diào)看統(tǒng)計(jì)、OJ平臺編程錯(cuò)誤率統(tǒng)計(jì)、優(yōu)秀學(xué)生統(tǒng)計(jì)等;

      d. 系統(tǒng)管理:權(quán)限管理、人員信息管理、密碼修改、系統(tǒng)配置等。

      2)在線測試系統(tǒng)。

      a. 單元測試:自動(dòng)出題、自動(dòng)打分、自動(dòng)統(tǒng)計(jì)錯(cuò)誤率、自動(dòng)計(jì)人學(xué)生平時(shí)成績;

      b. 在線考試:根據(jù)題目難度、所屬章節(jié)、類型、分?jǐn)?shù)自動(dòng)出題,自動(dòng)計(jì)時(shí)、打分、提醒;

      c. 題庫管理:支持單選題、填空題、綜合題和編程題4種題型的添加、編輯、刪除和導(dǎo)人。

      3)在線視頻。

      視頻在線瀏覽、視頻簡介、視頻查找、進(jìn)度控制、音量調(diào)節(jié)、每周視頻推薦等。

      4)在線評論。

      教師預(yù)留問題、評論撰寫、刪除、提交和置頂。

      2.2 OJ平臺功能設(shè)計(jì)

      OJ平臺專門為程序設(shè)計(jì)類課程提供在線編譯、鏈接、運(yùn)行和判別服務(wù),支持多種編程語言的在線編譯和信息反饋,其依賴的編譯服務(wù)原理如圖3所示。OJ平臺的核心功能由編譯服務(wù)提供,主要負(fù)責(zé)代碼的編譯運(yùn)行和判別;輔助功能均圍繞核心功能展開,由Web服務(wù)提供,使用與Web平臺相同的開發(fā)運(yùn)行環(huán)境。

      1)核心功能。

      支持CC++、Python、Java、PHP等多種編程語言的即時(shí)編譯、鏈接、運(yùn)行、正誤判別和判別信息反饋。

      2)輔助功能。

      a. 人員管理:學(xué)生、助教、教師、班級信息的增、刪、改、查和導(dǎo)人,權(quán)限管理;

      b. 題庫管理:編程題目的增、刪、改、查和驗(yàn)證,題目分類;

      c. 作業(yè)管理:代碼撰寫和提交、運(yùn)行結(jié)果的人庫和瀏覽,教師布置/刪除作業(yè),代碼批改和評分,相似度計(jì)算和聚類,查看作業(yè)提交進(jìn)度、查看相似度、查看正確率和分?jǐn)?shù)統(tǒng)計(jì)等。

      圖3 編譯服務(wù)原理圖

      2.3 App Cloud平臺功能設(shè)計(jì)

      雖然智能手機(jī)屏幕小、計(jì)算功能有限,但豐富的應(yīng)用使智能手機(jī)逐漸成為人類不可或缺的伙伴。利用智能手機(jī)作為學(xué)習(xí)工具不僅便捷而且更容易利用碎片時(shí)間提升學(xué)習(xí)效率。基于此,筆者設(shè)計(jì)了App Cloud平臺模塊,利用Socket通信技術(shù)實(shí)現(xiàn)推送服務(wù)支撐翻轉(zhuǎn)課堂的移動(dòng)學(xué)習(xí)環(huán)節(jié)和課堂討論環(huán)節(jié)。

      App Cloud平臺目前支持Android 4.0及以上版本的手機(jī),該平臺根據(jù)不同角色,分別提供相應(yīng)的功能,圖4展示了基于App Cloud平臺的課堂討論功能的實(shí)施流程,教師在課堂有限的時(shí)間內(nèi)即能掌握學(xué)生對知識的理解程度,并進(jìn)行有針對性的引導(dǎo)和二次討論。

      圖4 課堂討論流程

      App Cloud平臺支持手機(jī)前端的主要功能如下:

      (1)移動(dòng)學(xué)習(xí):支持手機(jī)視頻調(diào)看、進(jìn)度控制、音量調(diào)節(jié)、視頻簡介。

      (2)學(xué)習(xí)反饋:支持手機(jī)端評論撰寫、刪除、提交和共享。

      (3)課堂討論:支持教師思考問題的實(shí)時(shí)推送和實(shí)時(shí)統(tǒng)計(jì),支持學(xué)生實(shí)時(shí)獲取問題、答題和提交。

      (4)系統(tǒng)功能:權(quán)限控制、視頻播放進(jìn)度保存、密碼修改等。

      3 關(guān)鍵算法

      程序設(shè)計(jì)類課程對學(xué)生學(xué)習(xí)效果的評估主要從學(xué)生代碼中體現(xiàn)。為了防止學(xué)生之間抄襲,ITP平臺的OJ子平臺專門設(shè)計(jì)了代碼相似度檢測模塊,調(diào)用算法自動(dòng)檢測代碼的抄襲程度、抄襲來源和范圍,該模塊減輕了教師對學(xué)生代碼評估的負(fù)擔(dān)。

      3.1 代碼相似度檢測

      代碼相似度檢測是抄襲檢測(Plagiarism detection)的重要組成部分,其任務(wù)是盡可能識別常規(guī)的復(fù)制、粘貼、替換、變形等編輯手段,正確獲取代碼源文件之間的相似度值,相似度值越大表示兩份代碼越相似,抄襲的可能性越大。

      指紋技術(shù)(Finger print)是一種較實(shí)用的代碼相似度檢測方法,它能夠簡單有效地獲得文檔間的相似度。由Google在2007年提出用來處理海量文本去重的算法——simhash[4]是一種適合快速檢測海量代碼的方法,該算法是局部敏感哈希(locality sensitive hash)的一種,其主要思想是將高維的特征向量映射成低維的特征向量,通過兩個(gè)向量的漢明距離確定文檔是否近似。OJ平臺采用該方法進(jìn)行代碼相似度檢測。代碼相似度檢測的算法流程見圖5。

      1)預(yù)處理。

      用于去除代碼中的注釋、預(yù)編譯和常見的main()、using namespace std等標(biāo)識符。

      2)分詞。

      一般通過識別代碼中的空格、Tab鍵、大小括號、運(yùn)算符、標(biāo)點(diǎn)符號來實(shí)現(xiàn)分詞,即區(qū)分出獨(dú)立的標(biāo)識符;計(jì)算標(biāo)識符的權(quán)重,標(biāo)識符可以是變量、常量或關(guān)鍵字;分詞后,每種相同標(biāo)識符出現(xiàn)的次數(shù)即為權(quán)重,比如for出現(xiàn)4次則weight(for)=4,if出現(xiàn)3次則weight(if) = 3。一般來說,權(quán)重越大代表越重要。

      3)計(jì)算simhash。

      通過hash、加權(quán)、合并、降維4步為每份代碼生成一個(gè)64bit的simhash值。

      圖5 代碼相似度檢測流程

      hash:通過hash函數(shù)[5]計(jì)算各個(gè)標(biāo)識符的hash值,稱為特征值,比如for的hash值為110101,if的hash值為101001。

      加權(quán):在hash值的基礎(chǔ)上,根據(jù)W = hash * weight公式為每一個(gè)特征值加權(quán),且遇到1則hash值和權(quán)值正相乘,遇到0則hash值和權(quán)值負(fù)相乘。例如for的hash值110101加權(quán)得到W(for) = 110101*4 = 4 4-4 4-4 4,if的hash值101001加權(quán)得到W(if)=101001*3 = 3-3 3-3-3 3。

      合并:將每一個(gè)特征值按位加權(quán)結(jié)果累加,生成一個(gè)序列串,比如W(for) + W(if) =“4 4-4 4-4 4”+“3-3 3-3-3 3”=“7 1-1 1-7 7”。

      降維:對于64-bit特征值的每一位累加結(jié)果,如果大于0則置1,否則置0,從而得到整個(gè)代碼的simhash值。例如,上面計(jì)算的“7 1-1 1-7 7”降維得到“1 1 0 1 0 1”,稱為simhash簽名。

      4)計(jì)算相似度。

      計(jì)算每份代碼的simhash簽名之間的漢明距離。在信息論中,兩個(gè)等長字符串之間的漢明距離是兩個(gè)字符串對應(yīng)位置的不同字符的個(gè)數(shù)。例如1011101 與 1001001 之間的漢明距離是 2。

      5)聚類。經(jīng)過上述步驟,可以得到任意兩份代碼之間的相似度。一般來說,若代碼之間simhash簽名的漢明距離小于等于n(n一般取值為3[4]),就可以判斷兩份代碼相似。因此,將所有代碼進(jìn)行編號,若任意兩個(gè)編號相似則賦值為1,否則為0,進(jìn)而可以生成圖的鄰接矩陣A,該矩陣表示無向圖的拓?fù)浣Y(jié)構(gòu),結(jié)點(diǎn)表示代碼,若結(jié)點(diǎn)相連則表示代碼之間相似。利用該圖,筆者采用圖聚類算法中的快速NEWMAN[6]算法對矩陣A進(jìn)行聚類,通過極大化網(wǎng)絡(luò)模塊度(modularity)評價(jià)函數(shù),實(shí)現(xiàn)聚類。若多份代碼屬于同一聚類,則認(rèn)為該聚類的所有代碼均涉嫌抄襲,同時(shí)根據(jù)代碼提交的時(shí)間順序,確認(rèn)最先提交的代碼為抄襲源。

      以上算法步驟采用C++語言實(shí)現(xiàn),OJ平臺通過Web服務(wù)的進(jìn)程調(diào)用方式啟動(dòng)該算法,算法運(yùn)行結(jié)束后,將聚類結(jié)果返回給Web服務(wù)進(jìn)行輸出。

      4 結(jié) 語

      ITP平臺自2015年9月開始應(yīng)用于數(shù)據(jù)結(jié)構(gòu)SPOC課程,在數(shù)據(jù)結(jié)構(gòu)課堂中先后經(jīng)過18個(gè)教學(xué)班共約540名學(xué)生和6位教師使用,絕大多數(shù)學(xué)生較為推崇這種全信息化的教學(xué)模式,可自由支配學(xué)習(xí)時(shí)間;教師則能全程監(jiān)督學(xué)生的學(xué)習(xí)活動(dòng),自動(dòng)獲取各種統(tǒng)計(jì)成績,極大地減輕了平時(shí)的工作量。因此,ITP平臺不僅構(gòu)筑了學(xué)生和教師溝通的橋梁,還積累了大量的教學(xué)數(shù)據(jù),為今后的教育大數(shù)據(jù)挖掘研究提供原始的數(shù)據(jù)積累。

      [1] 屈微, 姚琳, 汪紅兵. 程序設(shè)計(jì)課程中的翻轉(zhuǎn)教學(xué)模式[J]. 計(jì)算機(jī)教育, 2016(1): 142-145.

      [2] 康葉欽. 在線教育的“后MOOC時(shí)代”——SPOC解析[J]. 清華大學(xué)教育研究, 2014(1): 1-9.

      [3] 范立新, 黃龍軍. 利用OJ平臺進(jìn)行探究式教學(xué)模式的探索[J]. 教育教學(xué)論壇, 2014(1): 216-217.

      [4] Manku G S, Jain A, Das Sarma A. Detecting near-duplicates for web crawling[C]//Proceedings of the 16th international conference on World Wide Web. ACM, 2007: 141-150.

      [5] Arash P. General purpose hash function algorithms [EB/OL].[2016-09-05]. http://www.partow.net/programming/hashfunctions/.

      [6] Newman M. Fast algorithm for detecting community structure in networks[J]. Physical Review E, 2004, 69(6): 66-133.

      (編輯:孫怡銘)

      1672-5913(2017)01-0147-05

      G642

      徐雅靜,女,副教授,研究方向?yàn)闄C(jī)器學(xué)習(xí)和模式識別,xyj@bupt.edu.cn。

      猜你喜歡
      程序設(shè)計(jì)代碼功能
      也談詩的“功能”
      中華詩詞(2022年6期)2022-12-31 06:41:24
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      關(guān)于非首都功能疏解的幾點(diǎn)思考
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      云梦县| 惠来县| 邳州市| 溆浦县| 高要市| 宁都县| 青海省| 孟津县| 洞头县| 松滋市| 怀宁县| 七台河市| 延长县| 交城县| 郴州市| 镇远县| 宣汉县| 吴忠市| 方城县| 天台县| 长岭县| 开原市| 房山区| 洛宁县| 高安市| 新郑市| 会昌县| 邵阳市| 济南市| 缙云县| 黑龙江省| 隆尧县| 新平| 兴安县| 大石桥市| 铁岭市| 西宁市| 拉萨市| 皮山县| 梅州市| 沈阳市|