国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

編程網(wǎng)格:一個(gè)基于Online?。剩酰洌纾宓某绦蛟O(shè)計(jì)類課程教學(xué)輔助系統(tǒng)

2009-02-24 07:02:48羅英偉汪小林張正熠
計(jì)算機(jī)教育 2009年2期
關(guān)鍵詞:虛擬機(jī)

羅英偉 汪小林 張正熠

文章編號:1672-5913(2009)02-0087-06

摘要:我院以傳統(tǒng)的Online Judge系統(tǒng)為基礎(chǔ)設(shè)計(jì)開發(fā)了針對在線程序設(shè)計(jì)實(shí)踐和教學(xué)輔助的編程網(wǎng)格系統(tǒng)。本文首先介紹該系統(tǒng)的目標(biāo)和總體功能結(jié)構(gòu),然后詳細(xì)說明系統(tǒng)中的虛擬教學(xué)資源和教學(xué)活動(dòng),并闡述了系統(tǒng)在此過程中的教學(xué)輔助功能。

關(guān)鍵詞:程序設(shè)計(jì)類課程;Online Judge;教學(xué)輔助;編程網(wǎng)格;虛擬機(jī)

中圖分類號:G642

文獻(xiàn)標(biāo)識碼:B

1引言

隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)教育與計(jì)算機(jī)輔助教學(xué)引發(fā)了一場深刻的教育模式和教育觀念的變革。一方面計(jì)算機(jī)技術(shù)減輕了教育者的工作量,提供了更豐富的教育表現(xiàn)形式,并可在教育資源和教育對象之間建立聯(lián)系;另一方面互聯(lián)網(wǎng)技術(shù)使得更為廣泛的群體可以遠(yuǎn)程接受到更高質(zhì)量的教育。在這方面,人們已經(jīng)有了不少的工作成就,MIT的開放課件系統(tǒng)OCW[1]和Moodle課程管理系統(tǒng)[2]即是其中的兩個(gè)。

在面向程序設(shè)計(jì)類課程的教學(xué)輔助方面,以PKU ACM JudgeOnline[3]為代表的Online Judge系統(tǒng)能夠?qū)τ脩籼峤坏某绦蜻M(jìn)行“黑盒判定”來自動(dòng)生成判題結(jié)果。但從另一方面來說,傳統(tǒng)的Online Judge系統(tǒng)針對的是解題訓(xùn)練,并不針對課程教學(xué)輔助的場景[4]。為了彌補(bǔ)這一不足,為程序設(shè)計(jì)類課程提供一定程度的網(wǎng)絡(luò)教學(xué)輔助,我們基于Online Judge功能,開發(fā)了一個(gè)針對程序設(shè)計(jì)類課程的教學(xué)輔助系統(tǒng)——編程網(wǎng)格系統(tǒng)(Programming Grid,PG)。

PG利用Online Judge的功能提供了程序設(shè)計(jì)類課程對學(xué)生編程能力的鍛煉,通過將現(xiàn)實(shí)中的教學(xué)中的資源、場景、活動(dòng)引入系統(tǒng),在虛擬教學(xué)活動(dòng)中提供教學(xué)輔助功能,為使用該系統(tǒng)的師生展現(xiàn)了一個(gè)虛擬的程序設(shè)計(jì)類課程的編程訓(xùn)練、教學(xué)輔助、教學(xué)互動(dòng)的平臺。同時(shí),為了方便各學(xué)校或者組織加入到此系統(tǒng)并充分利用其中的資源和功能,PG采用了分布式的系統(tǒng)結(jié)構(gòu),為系統(tǒng)未來的部署和發(fā)展奠定了很好的基礎(chǔ)。

2PG系統(tǒng)概述

PG面向的是程序設(shè)計(jì)類課程及其師生,以及網(wǎng)絡(luò)上的編程愛好者和計(jì)算機(jī)相關(guān)課程的自學(xué)者。對于PG來說,主要的用戶包括:一般用戶、學(xué)生用戶、教師用戶以及管理員。顯然,學(xué)生和教師用戶是系統(tǒng)中主要活動(dòng)的發(fā)起者與參與者。

PG以O(shè)nline Judge為基礎(chǔ)功能,為用戶解決編程問題提供自動(dòng)判別能力,同時(shí)針對程序設(shè)計(jì)類課程,引入了題目、題集、文摘、課程等教學(xué)資源,以這些教學(xué)資源為核心形成了眾多的虛擬教學(xué)場景,利用這些虛擬教學(xué)場景中的教學(xué)活動(dòng)為系統(tǒng)中的師生用戶提供教學(xué)輔助,特別在這些教學(xué)活動(dòng)中增加了師生之間教學(xué)互動(dòng)的功能,為教學(xué)中的一對一輔導(dǎo)提供一定的支持。下面幾節(jié)就分別概述一下系統(tǒng)的這幾個(gè)方面。

2.1Online Judge

Online Judge系統(tǒng)的最大特點(diǎn)是可以對用戶提交的程序“在線判定”其對錯(cuò)。在Online Judge系統(tǒng)中,用戶可以在線提交程序多種語言(如C、C++)源代碼,系統(tǒng)對源代碼進(jìn)行編譯和運(yùn)行,并通過預(yù)先設(shè)計(jì)的輸入/輸出測試數(shù)據(jù)來檢驗(yàn)程序源代碼的正確性,并對代碼生成的程序質(zhì)量做一定的監(jiān)控——譬如對程序運(yùn)行時(shí)所使用的內(nèi)存大小或運(yùn)行時(shí)間進(jìn)行限制。

目前,這一功能的實(shí)現(xiàn)方式主要是“黑盒判定”。對于每一個(gè)算法,我們知道,它有0個(gè)到多個(gè)輸入,1個(gè)到多個(gè)輸出,并且具有窮性、確定性和可行性等特征,而每一個(gè)算法都是解決一類問題。Online Judge系統(tǒng)上有很多的編程題目,對于每一道題目,都存儲(chǔ)了關(guān)于此題的多個(gè)輸入輸出對,這些輸入輸出對已經(jīng)經(jīng)過驗(yàn)證符合題意要求。當(dāng)用戶提交一道題目的源碼之后,系統(tǒng)會(huì)把這個(gè)源碼放入系統(tǒng)中編譯運(yùn)行,并針對題目的每一個(gè)輸入輸出對比較用戶程序的輸入輸出。最后系統(tǒng)會(huì)根據(jù)結(jié)果返回給用戶一個(gè)狀態(tài):通過(Accepted)、答案錯(cuò)誤(Wrong Answer)、超時(shí)(Time Limit Exceed)、超內(nèi)存(Memory Limit Exceed)、運(yùn)行時(shí)錯(cuò)誤(Runtime Error)、編譯錯(cuò)誤(Compile Error),并同時(shí)返回程序使用的內(nèi)存、運(yùn)行時(shí)間等數(shù)據(jù)信息。

Online Judge功能對于程序設(shè)計(jì)類課程的教學(xué)來說十分有用,它可以代替教師對學(xué)生的程序正確性和一定程度上的效率作出判斷并自動(dòng)給出結(jié)果,減輕了教師的工作量,教師可以在此基礎(chǔ)之上從更高的角度對學(xué)生學(xué)習(xí)效果和課程教學(xué)成果作出評估[4][5]。

2.2虛擬教學(xué)資源和場景

一般Online Judge系統(tǒng)針對的是編程訓(xùn)練,更多看重的是用戶的解題數(shù)、解題質(zhì)量和解題效率,并不關(guān)注在程序設(shè)計(jì)類課程教學(xué)過程中所可能有的教學(xué)活動(dòng)和教學(xué)輔助。PG以O(shè)nline Judge系統(tǒng)為基礎(chǔ),但表現(xiàn)形式更為活潑多樣,并提供與程序設(shè)計(jì)類課程相對應(yīng)的虛擬教學(xué)資源和場景,幫助虛擬教學(xué)活動(dòng)的展開。本節(jié)中我們介紹一下PG中所引入的虛擬教學(xué)資源和教學(xué)場景,第3節(jié)中將詳細(xì)說明以這些教學(xué)資源和場景為中心,系統(tǒng)所提供的教學(xué)輔助功能,這是PG的特色所在。

PG中所包含的主要教學(xué)資源對象如圖1所示。

既然系統(tǒng)以O(shè)nline Judge為基礎(chǔ),那么PG中首先不可或缺的教學(xué)資源自然就是題目對象Problem。PG中的每道題目有它自己的描述,用戶可以針對每道題目提交自己的源碼,由Online Judge子系統(tǒng)來判定。PG中的題目都是由教師用戶更新維護(hù)的,并提供給系統(tǒng)的每一個(gè)用戶使用。題目有一個(gè)重要的屬性就是“題目數(shù)據(jù)”。在2.1節(jié)中我們已經(jīng)了解到Online Judge的基本實(shí)現(xiàn)原理是利用了算法的輸入輸出特性,題目數(shù)據(jù)就是預(yù)存的關(guān)于一道題目所描述問題的正確輸入輸出對,在用戶提交源碼時(shí),系統(tǒng)就是根據(jù)它們來判定用戶源碼所編譯生成的程序是否滿足題意。

與題目相關(guān)的資源對象還有解答對象Solution。所謂解答,就是PG所記錄的用戶針對一道題目的某一次提交結(jié)果,它的屬性包括這次提交的結(jié)果、提交者、提交時(shí)間、程序運(yùn)行時(shí)間、程序運(yùn)行所用內(nèi)存大小等等。通過解答對象,為用戶——主要是學(xué)生的每次解題保留了歷史記錄,一方面便于教師針對指導(dǎo),另一方面也方便學(xué)生自己自學(xué)復(fù)習(xí)。

PG針對題目和解答設(shè)置了相關(guān)的評論對象Comment。對于這些評論,系統(tǒng)做了嚴(yán)格的權(quán)限限制:只有教師(包括助教)才可以對題目和解答作出評論,這是為了促進(jìn)教學(xué)輔導(dǎo)的開展——教師對于題目作出評論,可以方便出題者修改題目中的錯(cuò)誤,促進(jìn)更高質(zhì)量題目的產(chǎn)生;教師對于解答作出評論,可以與此解答的學(xué)生進(jìn)行互動(dòng),產(chǎn)生更好的教學(xué)輔導(dǎo)效果。

利用PG中的題目和在線評測的功能,可以讓用戶很好地訓(xùn)練自己的編程能力,評價(jià)自己對于學(xué)習(xí)內(nèi)容的掌握程度。但是,單純的題目對象,對于提高學(xué)生的學(xué)習(xí)效果并不是最有效的。在學(xué)習(xí)時(shí),用戶可以采取多種方法選擇題目。譬如可以按修改時(shí)間排序選擇最新更新的題目,或者利用某個(gè)關(guān)鍵詞檢索一類題目,或者利用某些關(guān)鍵詞分別檢索出一些題目等等。但是,無論采取用戶采取哪種方法來檢索題目,對于教學(xué)來說,都是盲目且不理想的。也就是說,在僅僅有題目的概念下,系統(tǒng)所擁有的資源不過就是一個(gè)線性的題目集合。

所以,為了達(dá)到更好的教學(xué)效果,我們將現(xiàn)實(shí)中的練習(xí)、作業(yè)、考試等概念平移到系統(tǒng)中,并設(shè)計(jì)了題集ProblemList這樣一個(gè)對象來更好地管理和組織題目。題集是由教師用戶根據(jù)一定的教學(xué)目的組織成的一些題目的有序集合,是練習(xí)、作業(yè)、考試等的一個(gè)抽象概念。在引入這樣一個(gè)概念后,一些面向某種教學(xué)目的教學(xué)方案就在PG這個(gè)虛擬世界中有了承載體,教師可以創(chuàng)建這樣的承載體以體現(xiàn)他的教學(xué)目標(biāo)并布置給學(xué)生,而學(xué)生則可以利用這個(gè)承載體來更加系統(tǒng)地檢驗(yàn)自己的某一方面的學(xué)習(xí)成果。

關(guān)于題集的另一個(gè)重要對象是題集解答對象ProblemListSolution。在PG中,題目解答對象Solution應(yīng)該是數(shù)據(jù)量增長最為快速的一個(gè)對象,任何用戶的每一次提交都會(huì)生成一個(gè)新的Solution對象,所以,從Solution對象集合中快速尋找出所需要的對象就成為了系統(tǒng)需要解決的一個(gè)重要功能。在面向題集的時(shí)候,對于題集中的題目的提交,詳細(xì)的信息都會(huì)記錄到Solution對象中。在用戶查看一個(gè)題集的相應(yīng)解答結(jié)果時(shí),系統(tǒng)就需要去Solution對象中尋找提交了該題集題目的對象,這個(gè)相對于一般的尋找某道題目的Solution對象是一個(gè)比較耗費(fèi)資源的過程。從性能的角度考慮,同時(shí)也為了系統(tǒng)更好地對題集對象的管理,系統(tǒng)設(shè)置了ProblemListSolution對象,它存儲(chǔ)了某一個(gè)用戶針對某道題集的綜合的提交結(jié)果。

至此,在PG中,題目是基礎(chǔ),題集是從管理題目的角度出發(fā),為了更好地表現(xiàn)和完成某一個(gè)教學(xué)目的而設(shè)計(jì)出來的。但是,這些對于課程教學(xué)輔導(dǎo)來說是不夠的。很自然的,我們將現(xiàn)實(shí)中的課程引入到系統(tǒng)中來,這才算完成了針對課程教學(xué)輔導(dǎo)的虛擬教學(xué)資源的主體建設(shè)。

PG的目標(biāo)針對的是程序設(shè)計(jì)類課程,在引入課程這個(gè)對象之后,才可以說是覆蓋了程序設(shè)計(jì)類課程教學(xué)的大部分過程。只有引入了課程對象,系統(tǒng)中的題目、題集等對象才能夠更有效地被組織管理起來,在課程的整體要求和目的下,對教學(xué)發(fā)揮更大也更具組織規(guī)劃性的作用。綜合言之,課程是PG中最基本的表現(xiàn)形式和教學(xué)輔助模式。

課程相關(guān)的對象很多,這是由它的地位和復(fù)雜性決定的。這些對象包括資源、通知、學(xué)生、授課老師、助教,當(dāng)然,對于PG的功能來說,最為重要的是從題集對象引申的練習(xí)、作業(yè)、考試等課程題集對象。這些對象將是系統(tǒng)教學(xué)活動(dòng)最主要的開展場所,這一點(diǎn)將在第3節(jié)中詳細(xì)說明。

PG的另一類特殊的教學(xué)資源是文摘。所謂文摘,就是一篇關(guān)于某個(gè)主題的文章,可能是關(guān)于某個(gè)技術(shù),也可能是關(guān)于學(xué)習(xí)方法的PG來源于Online Judge,所以實(shí)際上,它是以解題為中心的一個(gè)系統(tǒng),通過解題以及反饋來幫助師生達(dá)到教學(xué)目的。而文摘的出現(xiàn)則是系統(tǒng)為了進(jìn)一步拓展以解題為中心的功能,同時(shí)希望從理論的角度鞏固學(xué)生所學(xué)而設(shè)計(jì)的一類輔助的資源,它的目的是為了給學(xué)生一些課外的參考資料,擴(kuò)大學(xué)生的認(rèn)知范圍和知識面,拓展學(xué)生學(xué)習(xí)的深度;同時(shí),在以課程為主題的PG中,文摘的出現(xiàn),可以配合題目題集等資源,在學(xué)生通過解題檢驗(yàn)自己學(xué)習(xí)水平的時(shí)候通過相應(yīng)知識點(diǎn)理論的鞏固來進(jìn)一步加深自己的學(xué)習(xí)效果。文摘在系統(tǒng)中可以與題目、題集、課程等其他資源相結(jié)合來達(dá)到這樣的教學(xué)目的。

綜上所述,PG的實(shí)現(xiàn)邏輯模塊圖如圖2所示。

2.3分布式系統(tǒng)結(jié)構(gòu)

PG的分布式結(jié)構(gòu)是要使得系統(tǒng)具有良好的性能,可以承受更多的訪問量。分布式結(jié)構(gòu)最大的好處就是可以使得更多的院?;蛘呓M織可以根據(jù)自己的需求來搭建部署環(huán)境,只需要一定的步驟,就可以加入PG,獲得其中的全部資源和功能。一方面方便了各種學(xué)校和組織的加入,另一方面也拓展了系統(tǒng)的安裝部署。

對于PG來說,它包含了兩類不同的節(jié)點(diǎn):PGM和PROGRAMMING,見圖3。

1. PGM:管理出題平臺。PGM是PROGRAMMING GRID MANAGER的簡稱。PGM相當(dāng)于一個(gè)“基本教學(xué)資源”的儲(chǔ)備和管理平臺。在PGM上的“基本教學(xué)資源”包括題目、題集、文摘等,這些資源,都是課程的基礎(chǔ)。課程作為系統(tǒng)中最重要的教學(xué)場景,它的教學(xué)活動(dòng)離不開對題目、題集、文摘的利用。PGM的功能就是供教師創(chuàng)建更新管理這些基本資源的,它關(guān)注于教學(xué)活動(dòng)課程之前的“備課”階段。

2. PROGRAMMING:課程教學(xué)輔助平臺。對于PROGRAMMING 平臺來說,它的任務(wù)一方面是在資源上(題目、題集、文摘等)與PGM同步,確保自己平臺上的資源是最新的、準(zhǔn)確的,另一方面PROGRAMMING更重要的任務(wù)是以課程為脈絡(luò),所有資源——利用前面同步功能所獲得——以課程為骨架構(gòu)建,為師生提供一個(gè)課程教學(xué)的虛擬環(huán)境。

PGM面向的用戶主要是教師,關(guān)注于教學(xué)活動(dòng)中的課程教學(xué)資源的準(zhǔn)備環(huán)節(jié),目的是為教師提供一個(gè)教學(xué)資源的管理環(huán)境,為課程等其他教學(xué)活動(dòng)的開展提供豐富可靠的資源保證;PROGRAMMING面向教師和學(xué)生,關(guān)注于教學(xué)活動(dòng)中的課程環(huán)節(jié),利用PGM提供的基本教學(xué)資源,以課程為組織線索,目的是構(gòu)建一個(gè)針對程序設(shè)計(jì)類課程的虛擬化網(wǎng)絡(luò)課程環(huán)境,是系統(tǒng)中教學(xué)輔助的主要場所,是系統(tǒng)最終價(jià)值和用途的體現(xiàn)。

PG中的數(shù)據(jù)同步模塊保證了PGM和PROGRAMMING在題目、題集、文摘等教學(xué)資源上的一致性。這樣,任何學(xué)校和組織只需要安裝部署好PROGRAMMING節(jié)點(diǎn),那么他們可以通過系統(tǒng)的數(shù)據(jù)同步功能得到PGM上的所有資源,同時(shí)獲得PG的全部功能,對于各學(xué)校和組織來說十分方便。

3系統(tǒng)的教學(xué)輔助

3.1題目

針對題目相關(guān)的教學(xué)活動(dòng)包括:

1. 出題。這是題目的創(chuàng)建過程,題目只有被創(chuàng)建出來之后才能為教學(xué)所發(fā)揮作用。

2. 解題。這是編程網(wǎng)格的基礎(chǔ)功能

3. 統(tǒng)計(jì)。在解題過程中,系統(tǒng)會(huì)記錄下各種信息,并且會(huì)對解題情況的各種記錄做統(tǒng)計(jì)并由此為教學(xué)輔導(dǎo)提供幫助。

題目教學(xué)活動(dòng)的場景如圖4所示。

在題目這個(gè)教學(xué)場景中,有題目、題目附帶資源、題目數(shù)據(jù)、解答、題目評論和解答評論多達(dá)6個(gè)相關(guān)的資源對象。這6個(gè)對象涵蓋了此教學(xué)場景從出題、解題到統(tǒng)計(jì)的所有過程。

PG基于Online Judge功能開發(fā),題目是所有教學(xué)活動(dòng)開展的基礎(chǔ)。所以,必須有良好的題目資源作為保障,才能使得系統(tǒng)其他教學(xué)活動(dòng)順利展開。

從教師出題來說,對于一道題目而言,包括題目本身以及題目附帶資源和題目數(shù)據(jù)的更新。特別是題目和題目數(shù)據(jù)對于一道題目實(shí)現(xiàn)其全部價(jià)值來說是不可或缺的。所以,在一道題目中,我們將面對教師用戶提供題目數(shù)據(jù)和題目附帶資源的管理鏈接,提示幫助他們更全面的管理題目的資源。

一般而言,我們對于系統(tǒng)中的資源有3個(gè)方面的要求:(1)豐富,即系統(tǒng)中所擁有的資源比較多,能夠滿足師生的需要,吸引用戶;(2)準(zhǔn)確,即用戶能夠比較精確的定義描述一個(gè)資源,方便使用和檢索,更進(jìn)一步說是絕大部分用戶能夠?qū)τ谝粋€(gè)資源的描述有相同的看法;(3)協(xié)調(diào),即資源之間需要滿足一定的關(guān)系,比如應(yīng)當(dāng)確保不要出現(xiàn)不同的教師出了相類似的幾道題目,導(dǎo)致資源浪費(fèi)。

從針對題目的角度出發(fā),豐富方面需要我們提供更好的用戶界面和流程來幫助用戶出題;準(zhǔn)確方面可以由標(biāo)簽(Tag)來完成。對于一道題目,它所表現(xiàn)的內(nèi)涵,教師希望它所達(dá)到的教學(xué)訓(xùn)練目的等外延,都可以記錄于Tag中,使得系統(tǒng)在檢索、使用和進(jìn)行教學(xué)輔助時(shí)都可以從中獲得更好的支持;協(xié)調(diào)方面主要從題目的標(biāo)題考慮,一個(gè)題目的標(biāo)題大體上反映了這個(gè)題目的主要內(nèi)容,在教師用戶出題時(shí),當(dāng)用戶寫完“題目標(biāo)題”屬性之后,系統(tǒng)會(huì)即時(shí)從后臺查找數(shù)據(jù)庫中與此類似的題目并在網(wǎng)頁上顯示。如果系統(tǒng)中已有類似標(biāo)題的題目,系統(tǒng)會(huì)提示給用戶相應(yīng)題目的標(biāo)題和URL,由教師用戶去判斷是否據(jù)此終止出題過程。

而在終止之后,教師用戶可以選擇另一方案:協(xié)同出題。即當(dāng)教師用戶看到與自己所要出的相似的題目后,可以終止自己的出題過程,而選擇在那個(gè)類似題目的頁面上申請協(xié)同出題。這個(gè)申請會(huì)發(fā)往出題者信箱內(nèi),出題者可以選擇接受或者拒絕。所謂協(xié)同出題,就是對于一道題目,可由多人一同進(jìn)行更新修改。協(xié)同出題不僅可以用于此場景,任何教師用戶對于一道題目產(chǎn)生興趣之后都可以申請協(xié)同出題。

新出題目均默認(rèn)為“測試”狀態(tài),其含義是此題的描述,特別是題目數(shù)據(jù)在測試當(dāng)中,可能有些地方還需要修改。只有當(dāng)出題者認(rèn)為題目已經(jīng)經(jīng)過了測試正常無誤(如果有協(xié)同出題者,則需要半數(shù)以上的協(xié)同出題人員同意才可以),則可以選擇發(fā)布題目,并選擇發(fā)布為公開狀態(tài)或者隱藏狀態(tài)。隱藏狀態(tài)的題目集合作為一個(gè)秘密題庫,可以供教師在布置考試的時(shí)候從中選擇題目,確??荚嚨谋C苄?。如果題目有協(xié)同出題者,那么在選擇發(fā)布之后,系統(tǒng)將會(huì)把信息發(fā)送到所有協(xié)同出題者的信箱供他們確認(rèn)同意或者否決,在每次的確認(rèn)過程中,一旦發(fā)現(xiàn)超過半數(shù)同意,則將題目的狀態(tài)置為相應(yīng)的公開狀態(tài)或者隱藏狀態(tài),完成題目的“發(fā)布”流程。

解題及查看解答。解題是PG的一個(gè)基礎(chǔ)功能,普通用戶只能解答“公開”狀態(tài)的題目,而教師用戶可以解答任何狀態(tài)下的題目。在解題之后,系統(tǒng)會(huì)記錄此次解題的結(jié)果存入解答對象中。解答的內(nèi)容包括此次解題的狀態(tài)結(jié)果、對于各題目數(shù)據(jù)的運(yùn)行時(shí)間和內(nèi)存大小,提交用戶名,提交時(shí)間等等。用戶可以查看解答歷史,普通用戶對于自己的解答可以查看其中的源碼,對于別人的解答只可看到一般的結(jié)果信息——包括結(jié)果狀態(tài)、提交者、提交時(shí)間等等。教師可以查看所有的解答詳細(xì)信息。

除了這些單獨(dú)的信息之外,普通用戶還可以查看關(guān)于一道題目解答的統(tǒng)計(jì)信息,包括此題一共被解答了多少次,其中通過多少次,編譯錯(cuò)誤多少次,超時(shí)多少次等,及其這些狀態(tài)占總數(shù)的百分比。

在PGM上,教師用戶針對題目可以評論,目的在于促進(jìn)題目資源更好的建設(shè)。

在PROGRAMMING上,教師用戶針對解答也可以評論,目的是為了促進(jìn)教學(xué)效果,是系統(tǒng)教學(xué)輔助話工作的一個(gè)方面。這些評論都將生成報(bào)告發(fā)信給被評論資源的擁有者,提醒他們注意。

3.2題集

有關(guān)題集教學(xué)活動(dòng)的場景如圖5所示。

針對3.1中所提出的豐富、準(zhǔn)確、協(xié)調(diào)的三要求,題集也做了相應(yīng)的設(shè)計(jì)處理以滿足要求。在更新管理題集的過程中,系統(tǒng)積極為教師提供教學(xué)幫助。此間的一個(gè)問題就是教師在更新題集的時(shí)候無法知道系統(tǒng)中有多少題目,哪些題目能夠比較切合滿足此次題集的要求,反映此次題集的教學(xué)目的,可以作為題集的備選題目來加以考慮。普通的方法是教師考慮一些關(guān)鍵詞進(jìn)行搜索,或者教師新建一些自己所掌握知曉題目,但卻并不知道系統(tǒng)中是否應(yīng)有了合適的題目甚至是相同類似的題目而造成資源的重復(fù)和浪費(fèi)。

從上述要求里,我們了解到,當(dāng)教師明確了題集的目標(biāo)和責(zé)任之后,他會(huì)找到一些可以恰當(dāng)形容此次題集的詞語,這些詞語可以形容此次題集的目標(biāo),考察范圍,知識點(diǎn),所要求采用的算法等等。這些正可以在教師創(chuàng)建更新題集的時(shí)候?qū)懭腩}集的Tags屬性中,表明此次題集所對應(yīng)的標(biāo)簽。而系統(tǒng)則可以利用這些標(biāo)簽去檢索對應(yīng)的題目,供教師選擇是否可以作為此題集的備選。所以,標(biāo)簽對于題集而言,不僅可以做到準(zhǔn)確協(xié)調(diào)的功用,更可以促進(jìn)教學(xué)活動(dòng)的開展。

解題集是在解題的基礎(chǔ)之上發(fā)展而來的。解題集相對于解題的好處是題集更具有針對性和組織性,用戶在解題集的過程中,可以訓(xùn)練自己掌握某些方面知識的水平,進(jìn)一步鞏固或拓展自己的所學(xué)。針對用戶在做題集過程中對題集的每一次提交解答,系統(tǒng)除了記錄針對題目的解答信息之外,還會(huì)記錄針對題集的解答信息,包括題集中各題解答最終狀況,最后針對此題集的提交時(shí)間、提交者等等。教師可以查看所有學(xué)生關(guān)于此題集的解答統(tǒng)計(jì)信息,并根據(jù)學(xué)生所解答出的題集題目個(gè)數(shù)和最后提交時(shí)間來排序,以掌握學(xué)生的總體學(xué)習(xí)情況。學(xué)生也可以據(jù)此對于自己解答的結(jié)果和他人做一個(gè)比較。

3.3課程

有關(guān)課程教學(xué)活動(dòng)的場景如圖6所示。

課程是系統(tǒng)中最復(fù)雜的教學(xué)場景,也是最重要的教學(xué)場景,面向用戶展示最多的教學(xué)場景。同時(shí),課程的教學(xué)場景中往往也包含了題目、題集、文摘的教學(xué)場景,使得針對于課程的在線實(shí)踐和教學(xué)輔助工作顯得非常的龐雜。下面,我們從系統(tǒng)中一門虛擬課程開設(shè)上課的過程來對這個(gè)教學(xué)場景的相關(guān)工作作一論述。

(1) 開課及管理課程。作為PG中最重要的教學(xué)活動(dòng)場所,課程是由教師來開設(shè)管理的。PG中的課程是類比于現(xiàn)實(shí)中的課程而設(shè)置了很多相關(guān)的變量,像課程的起止時(shí)間、課程助教、課程注冊起止時(shí)間等等,教師通過這些屬性的確定可以將一門課程完整的形象展現(xiàn)給系統(tǒng)這個(gè)虛擬學(xué)習(xí)環(huán)境中的用戶。除了課程本身的屬性之外,教師應(yīng)當(dāng)還需要為課程設(shè)定通知、章節(jié)、課件等相關(guān)對象,這樣可以使得虛擬學(xué)習(xí)環(huán)境中的課程內(nèi)容更加豐富完備,便于學(xué)生在學(xué)習(xí)過程中進(jìn)行查找翻閱。

(2) 布置練習(xí)、作業(yè)、考試等并作輔導(dǎo)及統(tǒng)計(jì)。在課程教學(xué)活動(dòng)中,這是最重要的一環(huán)。教師在講授一門課程的過程中,根據(jù)教授內(nèi)容和進(jìn)度,在不同的時(shí)間點(diǎn)進(jìn)行要求、目的、內(nèi)容不同的“布置”,以期訓(xùn)練提高學(xué)生的水平并對教學(xué)成果做出評估。這些“布置”都是有時(shí)間限制的,而特別地,對于考試來說,還有IP限制和登錄限制,這樣就可以很好地防止作弊。在“布置”的過程中,教師會(huì)對題集中的每道題目給予適當(dāng)?shù)姆謹(jǐn)?shù)百分比——總分需要達(dá)到100——以便系統(tǒng)自動(dòng)給分。在這個(gè)過程中,教師可以查看學(xué)生的解題源碼和結(jié)果,對學(xué)生的解題做出評論及輔導(dǎo),并可修改系統(tǒng)的給分結(jié)果。教師可以查看某次“布置”的統(tǒng)計(jì)信息,包括班級排名和提交情況等等;同時(shí)也可以根據(jù)多次“布置”的統(tǒng)計(jì)信息來對學(xué)生做出綜合評定。這個(gè)過程,簡單來說,就是教師選定幾次“布置”,然后為每個(gè)“布置”設(shè)定分?jǐn)?shù)百分比——總分依然需要為100,最后由系統(tǒng)計(jì)算得到結(jié)果,此結(jié)果也可由教師下載成電子表格格式存檔。

(3) 選課。課程教學(xué)作為PG中最重要的教學(xué)活動(dòng),用戶如果想?yún)⑴c進(jìn)去,就應(yīng)當(dāng)選修他想學(xué)習(xí)的那門課程。與現(xiàn)實(shí)世界中類似,教師會(huì)為課程設(shè)定注冊碼,用戶必須輸入正確的注冊碼才能選修上課程。這個(gè)課程注冊碼可以看作是教師和學(xué)生關(guān)于某門課程的一個(gè)口令,方便教師通過學(xué)生們的選課。

(4) 參與課程教學(xué)活動(dòng)。學(xué)生可以參與的課程教學(xué)活動(dòng)很多。包括:閱讀各種通知,了解課程的大綱、參考文獻(xiàn)、要求等等;了解課程各章節(jié)內(nèi)容;下載課程課件學(xué)習(xí);從課程所提供的鏈接訪問課程主頁學(xué)習(xí)可能更多的內(nèi)容。當(dāng)然,在PG中,學(xué)生最重要的課程教學(xué)活動(dòng)就是完成教師關(guān)于某門課程布置的練習(xí)作業(yè)考試。這些練習(xí)作業(yè)考試都是有時(shí)間限制的,學(xué)生必須在規(guī)定的時(shí)間段內(nèi)完成。在完成這些“布置”之后,學(xué)生可以查看關(guān)于此次“布置”的統(tǒng)計(jì)信息,包括自己在班級的排名,班級關(guān)于此次“布置”題目解題結(jié)果的一些統(tǒng)計(jì)信息,還可以就某一問題向老師提問,等待老師的回答。

(5) 教師在班級的某一次練習(xí)、作業(yè)、考試中,選取比較優(yōu)秀的學(xué)生解答,作為“推薦解答”或“推薦代碼”介紹給全班同學(xué)。為了增強(qiáng)學(xué)生的主動(dòng)性,學(xué)生可以就某門課程,或者某次題集,或者某道題目的解答發(fā)信詢問老師,以期獲得更具針對性的輔導(dǎo)。在課程、題集或者解答的頁面上,會(huì)有相應(yīng)的“答疑”鏈接,學(xué)生通過它向老師詢問的同時(shí),系統(tǒng)會(huì)自動(dòng)將原始網(wǎng)頁的URL記錄下來附于信件一起發(fā)送給老師,使得教師可以根據(jù)“現(xiàn)場信息”給予更好的輔導(dǎo)。

3.4 文摘

文摘相關(guān)的教學(xué)場景比較簡單清晰,邏輯也并不復(fù)雜。文摘是系統(tǒng)中的一個(gè)輔助信息,目的是為了幫助學(xué)生解題和在解題之余更好地理解題目中所蘊(yùn)含的概念方法,從更高的理論角度來掌握這些信息。

3.5 標(biāo)簽

標(biāo)簽是由用戶定制的,我們希望通過它能夠全面詳細(xì)精確地描述一種資源,同時(shí)通過標(biāo)簽之間的關(guān)系,我們可以在擁有這些標(biāo)簽的資源之間建立各種各樣的關(guān)系,從而達(dá)到用戶能夠更精確的描述資源,而系統(tǒng)能夠通過標(biāo)簽更準(zhǔn)確的理解資源以及用戶的請求,從而更“聰明”的為用戶服務(wù)的目的。

有了標(biāo)簽?zāi)K之后,系統(tǒng)對于資源的掌握和反應(yīng)更加“智能”,我們可以得到很多新的功能和應(yīng)用??梢岳脴?biāo)簽在用戶新建一個(gè)題目、題集、文摘時(shí)指出相應(yīng)類別乃至類似的同類型資源,供用戶作為參考。譬如,在學(xué)生解一道題目的同時(shí),旁邊可以列出相關(guān)的文摘供學(xué)生參考,亦可列出相關(guān)的題集供學(xué)生進(jìn)一步鞏固拓展自己之用。

Tag更為重要的地方的是在教師更新某一題集時(shí),可以根據(jù)教師為此次題集所設(shè)置的標(biāo)簽,系統(tǒng)獲得這些標(biāo)簽之后,對于每一個(gè)標(biāo)簽都去檢索其相關(guān)的題目,將得到的結(jié)果集合起來,并在頁面上給予教師提示,教師可以利用這項(xiàng)功能去尋找可能與此題集相關(guān)的題目。這樣就解決了一個(gè)十分重要的問題:為教師更新題集提供備選題目,減少教師的工作量,教學(xué)活動(dòng)的盲目性以及教學(xué)資源的重復(fù)浪費(fèi)。如果沒有這個(gè)功能,教師在更新題集時(shí),并不知道系統(tǒng)中有多少題目可能與他的這次題集有關(guān)聯(lián),可能需要教師對系統(tǒng)中的所有題目瀏覽一遍才會(huì)有所領(lǐng)悟。而有了這個(gè)功能,則教師只需要關(guān)注此次題集的目的,所要考察的知識點(diǎn)等信息,將這些列為題集的Tag,由系統(tǒng)根據(jù)這些Tag去尋找相關(guān)的題目,提高了信息的效率,起到事半功倍的效果。

標(biāo)簽之間的關(guān)系并不是并行的,它們之間可以根據(jù)相關(guān)性分析,而產(chǎn)生相關(guān)聯(lián)的關(guān)系。從教學(xué)輔助的角度出發(fā),我們需要在這些標(biāo)簽之間建立與教學(xué)活動(dòng)有關(guān)的,能夠?yàn)榻虒W(xué)輔助提供支持的關(guān)系。這些關(guān)系包括:

(1) 同一性。即2個(gè)短語實(shí)際上描述的是同一回事。例如:遞歸和recursion。

(2) 關(guān)聯(lián)性。即2個(gè)短語之間互有關(guān)聯(lián)。例如語言基礎(chǔ)中if和switch同屬于條件語句關(guān)鍵詞。

(3) 前驅(qū)后繼關(guān)系。即a和b兩個(gè)短語之間a為b前驅(qū),反過來,當(dāng)然b為a后繼。所謂前驅(qū)和后繼的語義,主要體現(xiàn)在知識點(diǎn)的前后繼承掌握上。譬如在C語言中,數(shù)組是指針的基礎(chǔ),學(xué)生只有在學(xué)習(xí)了數(shù)組之后才能對指針有更好的認(rèn)識和應(yīng)用,所以可以在這里可以認(rèn)為數(shù)組是指針的前驅(qū),而指針是數(shù)組的后繼。

根據(jù)上面所述的3種關(guān)系,我們?yōu)闃?biāo)簽之間建立相應(yīng)的關(guān)系形成所謂“知識圖”結(jié)構(gòu)。利用這個(gè)知識圖結(jié)構(gòu),可以完成很多具有挑戰(zhàn)性的功能。比如最直觀的,教師可以通過這個(gè)知識圖來輔助他教學(xué),并作為課程出題的依據(jù)之一。同時(shí),在學(xué)生解題的過程中,系統(tǒng)可以根據(jù)學(xué)生所作題集和題目的標(biāo)簽,給出幫助和建議,來輔助指導(dǎo)學(xué)生進(jìn)行進(jìn)一步的學(xué)習(xí)。現(xiàn)在所能設(shè)想的場景為:

一名學(xué)生在解題時(shí)(題集或單獨(dú)的題目均可),系統(tǒng)利用該題集或者該題的標(biāo)簽,去系統(tǒng)資源中尋找和該題相關(guān)聯(lián)的題目,并給出提示和推薦,由學(xué)生自己根據(jù)這些推薦來決定下一步的學(xué)習(xí)。這些推薦可以來自3個(gè)方面:

(1) 系統(tǒng)根據(jù)該題集或該題的標(biāo)簽尋找和它具有同一性和關(guān)聯(lián)性的標(biāo)簽,然后找出這些標(biāo)簽的題目,并作為和該題“類似的題目”推薦給學(xué)生,幫助學(xué)生鞏固該類別的相應(yīng)的題目;

(2) 系統(tǒng)根據(jù)該題集或該題的標(biāo)簽尋找以它作為后繼的標(biāo)簽,然后找出這些標(biāo)簽的題目,并作為做該題之前“需要鞏固的知識”推薦給學(xué)生,幫助學(xué)生鞏固基礎(chǔ);

(3) 系統(tǒng)根據(jù)該題集或該題的標(biāo)簽尋找以它作為前驅(qū)的標(biāo)簽,然后找出這些標(biāo)簽的題目,并作為做該題之后“可以深入學(xué)習(xí)的知識”推薦給學(xué)生,幫助學(xué)生深化所學(xué)知識。

3.6教學(xué)互動(dòng)

教學(xué)互動(dòng)的主要功能位于課程教學(xué)活動(dòng)中,因?yàn)樵谶@個(gè)環(huán)節(jié)中,教學(xué)互動(dòng)有著明確的供體和受體。這個(gè)功能是通過系統(tǒng)中師生之間的問答來提供的,并且此功能和系統(tǒng)的站內(nèi)信件子部件結(jié)合在一起,為師生提供了一對一的輔導(dǎo)功能。

具體說來,師生可以針對課程的某一個(gè)題集、題目甚至一個(gè)解答進(jìn)行問答,這些問答過程會(huì)記錄在雙方的站內(nèi)信件過程中。如果一門課程有助教,則學(xué)生的提問將會(huì)發(fā)送到相應(yīng)的助教,但是教師可以查看、問責(zé)這一環(huán)節(jié)。

4結(jié)束語

PG的開發(fā)起源于北大ACM代表隊(duì)的POJ(http://acm. pku.edu.cn/JudgeOnline)系統(tǒng),力圖成為一個(gè)對用戶更友好,數(shù)據(jù)資源表現(xiàn)方式更豐富更適合教學(xué)的網(wǎng)站;在開發(fā)過程中受到了Moodle課程管理系統(tǒng)的影響,轉(zhuǎn)而成為一個(gè)更加專業(yè)的,更深入教學(xué)過程并為教學(xué)提供服務(wù)的系統(tǒng)。在演化過程中逐步形成了系統(tǒng)的三大特點(diǎn):分布式的結(jié)構(gòu)、對教學(xué)資源的有效管理以及教學(xué)輔助的功能支持。

PG系統(tǒng)目前已經(jīng)有了一個(gè)可以使用的版本(http:// programming.grids.cn),我們在北京大學(xué)“計(jì)算概論”、“算法程序設(shè)計(jì)與分析”等課程的教學(xué)上已經(jīng)使用了該系統(tǒng)。為了提高服務(wù)器系統(tǒng)的使用效率以及整個(gè)系統(tǒng)的可管理性,同時(shí)也保證系統(tǒng)的可用性,我們將PG系統(tǒng)部署在虛擬機(jī)環(huán)境下,在實(shí)際應(yīng)用中取得了良好的效果。實(shí)踐證明,PG系統(tǒng)的是有成效的,受到了師生們的一致好評。同時(shí),師生們針對各自在教學(xué)和學(xué)習(xí)過程中遇到的問題,提出了許多寶貴的意見,將有利于PG進(jìn)一步的完善和發(fā)展。

PG是我們在程序設(shè)計(jì)類課程教學(xué)方面的一次比較成功的探索,我們相信系統(tǒng)可以為教師和學(xué)生的教學(xué)過程提供更好的幫助,并有望為其他從事相關(guān)工作的人士提供一個(gè)平臺;同時(shí),我們也會(huì)遵循我們的思想和理念,繼續(xù)不斷的改進(jìn)系統(tǒng),為計(jì)算機(jī)程序設(shè)計(jì)類課程的教學(xué)作出貢獻(xiàn)。

參考文獻(xiàn)

[1] http://ocw.mit.edu

[2] http://www.moodle.org

[3] PKU ACM JudgeOnline. http://acm.pku.edu.cn/JudgeOnline

[4] 李文新,郭煒. 北京大學(xué)程序在線評測系統(tǒng)及其應(yīng)用[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2005,23(增刊):170-177.

[5] 郭煒,李文新. “程序設(shè)計(jì)實(shí)習(xí)類課程如何準(zhǔn)確考查學(xué)生學(xué)習(xí)情況”[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版,2005,23(增刊):99-103.

猜你喜歡
虛擬機(jī)
基于VMware的計(jì)算機(jī)網(wǎng)絡(luò)課程虛擬實(shí)驗(yàn)平臺搭建
東方教育(2016年8期)2017-01-17 20:13:28
虛擬機(jī)技術(shù)在計(jì)算機(jī)安全技術(shù)實(shí)驗(yàn)教學(xué)中的應(yīng)用
東方教育(2016年8期)2017-01-17 13:00:15
還原卡與虛擬機(jī)技術(shù)在計(jì)算機(jī)實(shí)驗(yàn)室中的使用對比陳治
虛擬機(jī)技術(shù)在計(jì)算機(jī)組裝課堂中的應(yīng)用
虛擬機(jī)服務(wù)器在教學(xué)實(shí)踐中的探索研究
淺談?dòng)?jì)算機(jī)系統(tǒng)虛擬化網(wǎng)絡(luò)設(shè)置方案
基于虛擬機(jī)的軟件保護(hù)系統(tǒng)研究與設(shè)計(jì)
任務(wù)驅(qū)動(dòng)教學(xué)法在《網(wǎng)絡(luò)應(yīng)用服務(wù)管理》教學(xué)中的應(yīng)用
虛擬機(jī)局域網(wǎng)組建技術(shù)應(yīng)用初探
虛擬機(jī)在中職企業(yè)網(wǎng)搭建中的應(yīng)用
延安市| 茌平县| 云浮市| 乌什县| 资中县| 崇仁县| 东光县| 班玛县| 德州市| 保山市| 通榆县| 陆丰市| 康乐县| 长岭县| 昌邑市| 株洲县| 双桥区| 喜德县| 安多县| 尼勒克县| 策勒县| 蓝田县| 元谋县| 尉氏县| 辉南县| 浦城县| 阳泉市| 两当县| 鹤山市| 香港| 邓州市| 准格尔旗| 马尔康县| 铁岭市| 揭东县| 乌拉特中旗| 大理市| 搜索| 杭锦旗| 松溪县| 拜泉县|