陳志+盧海燕+高翔
摘 要:為提高程序設(shè)計(jì)能力訓(xùn)練水平,設(shè)計(jì)了一種程序設(shè)計(jì)在線自主學(xué)習(xí)模式,通過(guò)課內(nèi)外自主學(xué)習(xí)和多樣化的用戶端支持,構(gòu)建移動(dòng)互聯(lián)網(wǎng)環(huán)境下普適化程序設(shè)計(jì)學(xué)習(xí)體系,并以此實(shí)現(xiàn)一個(gè)程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)。該系統(tǒng)由系統(tǒng)服務(wù)平臺(tái)、Web客戶端系統(tǒng)、移動(dòng)終端系統(tǒng)、普適化程序設(shè)計(jì)學(xué)習(xí)應(yīng)用等構(gòu)成。系統(tǒng)功能測(cè)試和用戶報(bào)告表明,該系統(tǒng)能夠有效支撐程序設(shè)計(jì)在線自主學(xué)習(xí)模式的實(shí)施,從而提高用戶學(xué)習(xí)程序設(shè)計(jì)的興趣、效率和自主性。
關(guān)鍵詞:程序設(shè)計(jì);學(xué)習(xí)模式;在線學(xué)習(xí);自主學(xué)習(xí);移動(dòng)終端
DOIDOI:10.11907/rjdk.162141
中圖分類號(hào):G433
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2016)012-0193-04
0 引言
當(dāng)前軟件人才培養(yǎng)的重要目標(biāo)是有效提升學(xué)生的程序設(shè)計(jì)能力,使其擁有程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、算法、計(jì)算機(jī)理論、軟件工程等專業(yè)知識(shí)以及分析與解決實(shí)際問題的能力。常規(guī)的程序設(shè)計(jì)能力訓(xùn)練以傳統(tǒng)課堂教學(xué)模式為主,側(cè)重于理論教學(xué),強(qiáng)調(diào)應(yīng)試教育,而忽視對(duì)學(xué)生學(xué)習(xí)興趣的培養(yǎng),通常使學(xué)生處于被動(dòng)學(xué)習(xí)狀態(tài)。近年來(lái),隨著ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(ACM-ICPC)的發(fā)展,程序設(shè)計(jì)能力訓(xùn)練能夠利用成熟的ACM-ICPC在線評(píng)判系統(tǒng),形成基于ACM-ICPC的程序設(shè)計(jì)學(xué)習(xí)模式。
該模式可激發(fā)學(xué)習(xí)者對(duì)程序設(shè)計(jì)的學(xué)習(xí)興趣,并幫助其提高程序設(shè)計(jì)水平[1]。
當(dāng)前移動(dòng)互聯(lián)網(wǎng)和移動(dòng)終端設(shè)備已成為人們?nèi)粘W(xué)習(xí)、工作和生活中獲取信息的重要手段,以此形成的普適化學(xué)習(xí)模式讓人們的注意力中心回歸到要完成的學(xué)習(xí)本身,構(gòu)建出一個(gè)泛在的、隨時(shí)隨地可獲得的智能化教育體系[2]。本文為程序設(shè)計(jì)能力訓(xùn)練設(shè)計(jì)了一種在線自主學(xué)習(xí)模式,研究將基于Web的ACM-ICPC在線評(píng)判系統(tǒng)[3]擴(kuò)展至移動(dòng)互聯(lián)網(wǎng)環(huán)境下的移動(dòng)終端平臺(tái),從而為學(xué)習(xí)者搭建起交流平臺(tái),形成一種高效的普適化程序設(shè)計(jì)學(xué)習(xí)體系。
1 程序設(shè)計(jì)在線自主學(xué)習(xí)模式設(shè)計(jì)
網(wǎng)絡(luò)與信息技術(shù)的發(fā)展使程序設(shè)計(jì)學(xué)習(xí)可以突破時(shí)空限制,將現(xiàn)有的程序設(shè)計(jì)學(xué)習(xí)資源和平臺(tái)有機(jī)整合,有助于實(shí)現(xiàn)在線自主的學(xué)習(xí)方式。本文將程序設(shè)計(jì)在線自主學(xué)習(xí)模式劃分為課內(nèi)學(xué)習(xí)、課外學(xué)習(xí)兩個(gè)階段,如圖1所示。課內(nèi)學(xué)習(xí)階段主要適用于在校的程序設(shè)計(jì)學(xué)習(xí)者,要求提高實(shí)踐課時(shí)比例,增加自主學(xué)習(xí)內(nèi)容,因此采用適合在線學(xué)習(xí)的程序設(shè)計(jì)練習(xí)題目;課外學(xué)習(xí)階段適用于所有程序設(shè)計(jì)學(xué)習(xí)者,要求構(gòu)建課外學(xué)習(xí)在線資源,因此采用Web客戶端、移動(dòng)終端等多樣化用戶端,并逐步構(gòu)建形成程序設(shè)計(jì)在線自主學(xué)習(xí)社區(qū)。
程序設(shè)計(jì)在線自主學(xué)習(xí)模式融合常規(guī)學(xué)習(xí)模式的優(yōu)點(diǎn),利用現(xiàn)有移動(dòng)互聯(lián)網(wǎng)和移動(dòng)終端設(shè)備發(fā)展成果,使程序設(shè)計(jì)學(xué)習(xí)趨向于全天候在線及自主可控。課內(nèi)學(xué)習(xí)階段由課堂知識(shí)傳授模式發(fā)展到包括實(shí)踐學(xué)習(xí)、自主學(xué)習(xí)、在線學(xué)習(xí)等多樣化的綜合學(xué)習(xí)模式。課內(nèi)學(xué)習(xí)階段強(qiáng)調(diào)多樣化的用戶端,從個(gè)人自主學(xué)習(xí)模式逐步導(dǎo)向協(xié)作互助的社區(qū)學(xué)習(xí)模式。由此可見,程序設(shè)計(jì)在線自主學(xué)習(xí)模式為程序設(shè)計(jì)能力訓(xùn)練提供了一個(gè)便捷、開放、互動(dòng)的普適化程序設(shè)計(jì)學(xué)習(xí)平臺(tái)。
2 程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)設(shè)計(jì)
程序設(shè)計(jì)在線自主學(xué)習(xí)模式的具體實(shí)施依賴于系統(tǒng)服務(wù)平臺(tái)、Web客戶端系統(tǒng)、移動(dòng)終端系統(tǒng)以及普適化程序設(shè)計(jì)學(xué)習(xí)應(yīng)用等,這些系統(tǒng)構(gòu)成了程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng),如圖2所示。
圖3給出了程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)的功能。程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)服務(wù)平臺(tái)可以使用現(xiàn)有的ACM-ICPC在線評(píng)判系統(tǒng)[1,4]。移動(dòng)終端系統(tǒng)主要實(shí)現(xiàn)數(shù)據(jù)的獲取,與程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)服務(wù)平臺(tái)進(jìn)行交互,一方面利用網(wǎng)絡(luò)通過(guò)服務(wù)平臺(tái)獲取數(shù)據(jù),另一方面訪問本地?cái)?shù)據(jù)庫(kù)讀取數(shù)據(jù)。與服務(wù)平臺(tái)進(jìn)行交互時(shí),采用HTTP協(xié)議進(jìn)行通信以及JSON解析[5]。下面給出幾個(gè)重點(diǎn)功能模塊設(shè)計(jì)。
2.1 顯示題目列表
在程序設(shè)計(jì)在線自主學(xué)習(xí)移動(dòng)終端系統(tǒng)中,顯示題目列表功能模塊包括題目列表界面設(shè)計(jì)、與服務(wù)平臺(tái)的交互設(shè)計(jì)。圖4給出了移動(dòng)終端系統(tǒng)的顯示題目列表功能模塊類圖。
在程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)服務(wù)平臺(tái)中,顯示題目列表獲取移動(dòng)終端系統(tǒng)發(fā)送來(lái)的請(qǐng)求后,從數(shù)據(jù)庫(kù)獲取題目列表數(shù)據(jù),然后將這些數(shù)據(jù)以JSON對(duì)象的形式返回移動(dòng)終端系統(tǒng)。圖5為服務(wù)平臺(tái)的顯示題目列表功能模塊類圖。
2.2 顯示代碼提交狀況功能模塊設(shè)計(jì)
移動(dòng)終端系統(tǒng)的顯示代碼提交狀況功能模塊包括編輯代碼界面設(shè)計(jì)、提交代碼交互設(shè)計(jì)、代碼提交狀況顯示界面設(shè)計(jì)等。圖6給出了移動(dòng)終端系統(tǒng)的顯示代碼提交狀況功能模塊類圖。
服務(wù)平臺(tái)的顯示代碼提交狀況功能模塊設(shè)計(jì)主要為獲取移動(dòng)終端系統(tǒng)發(fā)送來(lái)的提交代碼,對(duì)這些代碼進(jìn)行評(píng)判,再將評(píng)判結(jié)果保存到后臺(tái)數(shù)據(jù)庫(kù)中。圖7為服務(wù)平臺(tái)的顯示代碼提交狀況功能模塊類圖。
2.3 提示詞功能模塊設(shè)計(jì)
移動(dòng)終端系統(tǒng)的提示詞功能模塊設(shè)計(jì)主要包括添加默認(rèn)提示詞、添加自定義提示詞以及顯示提示詞。圖8為該功能模塊的類圖。
3 程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)實(shí)現(xiàn)與測(cè)試
為實(shí)施程序設(shè)計(jì)在線自主學(xué)習(xí)模式,上一節(jié)詳細(xì)設(shè)計(jì)了程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng),下面給出該系統(tǒng)的具體實(shí)現(xiàn)過(guò)程,并進(jìn)行系統(tǒng)測(cè)試。
3.1 系統(tǒng)實(shí)現(xiàn)
在程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)實(shí)現(xiàn)中,系統(tǒng)服務(wù)平臺(tái)采用南京郵電大學(xué)的ACM程序設(shè)計(jì)在線評(píng)判系統(tǒng)(NOJ)[4],移動(dòng)終端平臺(tái)采用Android[6],程序設(shè)計(jì)普適化應(yīng)用包括在線開放練習(xí)、在線實(shí)時(shí)比賽、訓(xùn)練交流等。以下為用戶提交代碼在系統(tǒng)服務(wù)平臺(tái)上的執(zhí)行情況示例:
1241551 [http-bio-8080-exec-12] INFO com.nuaa.Hibernate.SessionFactory - commit tx
1001
整數(shù)求和
1268658 [http-bio-8080-exec-9] INFO com.nuaa.Hibernate.SessionFactory - commit tx
1
gao
1001
GCC_prompt
1683525 [http-bio-8080-exec-9] INFO com.nuaa.Hibernate.SessionFactory - commit tx
1683637 [Thread-3] INFO com.nuaa.util.judge.JudgeWaiter-JudgeWaiter提前題目ff8080814db2ec16014 d30 5addc0001
1683795 [Thread-3] WARN com.nuaa.Hibernate.SolutionDAO-getting Solution instance with id: ff808081 4db 2ec16014d305addc0001
1683989 [Thread-3] WARN com.nuaa.Hibernate.SolutionDAO – getting Solution instance with user_name: gao
getting Solution instance with user_name: gao
1684093 [Thread-3] INFO com.nuaa.Hibernate.SessionFactory - commit tx
1684093 [Thread-3] INFO com.nuaa.util.judge.Checker-開始評(píng)判--D:\\www\\AcmJudge\\ ff8080814db2ec16014 d305addc0001 1001 1 100 33600
1685739 [Thread-3] INFO com.nuaa.util.judge.Checker-評(píng)判結(jié)束
3.2 系統(tǒng)測(cè)試
下面對(duì)程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)進(jìn)行功能測(cè)試和在線自主學(xué)習(xí)模式的用戶使用測(cè)試。在系統(tǒng)功能測(cè)試中,表1是顯示代碼提交狀況的模塊用例表,該表用于測(cè)試系統(tǒng)是否能夠正確提供給用戶顯示代碼的運(yùn)行結(jié)果。其它測(cè)試用例與之類似,所有功能測(cè)試結(jié)果均為“通過(guò)”。此外,根據(jù)在線自主學(xué)習(xí)模式的用戶使用測(cè)試報(bào)告,用戶對(duì)程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)及其支持的在線自主學(xué)習(xí)模式普遍持有肯定意見。其中,74%以上的用戶使用Web客戶端、移動(dòng)終端等多樣化用戶端登錄系統(tǒng);86%以上的用戶認(rèn)為現(xiàn)在或未來(lái)需要在程序設(shè)計(jì)能力訓(xùn)練中使用移動(dòng)終端系統(tǒng);近94%的用戶認(rèn)為程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng)實(shí)現(xiàn)了隨時(shí)隨地的普適化學(xué)習(xí);85%以上的用戶認(rèn)為
在線自主學(xué)習(xí)模式提高了程序設(shè)計(jì)學(xué)習(xí)的興趣和效率;近95%的用戶認(rèn)為在線自主學(xué)習(xí)模式能夠提高或有時(shí)能夠提高程序設(shè)計(jì)學(xué)習(xí)的自主性。
4 結(jié)語(yǔ)
本文提出了一種在移動(dòng)互聯(lián)網(wǎng)環(huán)境下的程序設(shè)計(jì)在線自主學(xué)習(xí)模式,該模式將程序設(shè)計(jì)能力訓(xùn)練劃分為課內(nèi)學(xué)習(xí)和課外學(xué)習(xí)兩個(gè)階段,每一個(gè)階段都強(qiáng)調(diào)程序設(shè)計(jì)的在線學(xué)習(xí)、自主學(xué)習(xí)和社區(qū)協(xié)作學(xué)習(xí),這種普適化學(xué)習(xí)體系由系統(tǒng)服務(wù)平臺(tái)、Web客戶端系統(tǒng)、移動(dòng)終端系統(tǒng)以及具體學(xué)習(xí)應(yīng)用等構(gòu)成。為此,本文設(shè)計(jì)與集成開發(fā)了一個(gè)程序設(shè)計(jì)在線自主學(xué)習(xí)系統(tǒng),該系統(tǒng)使用現(xiàn)有的ACM-ICPC在線評(píng)判系統(tǒng)作為系統(tǒng)服務(wù)平臺(tái),支持包括Web客戶端、移動(dòng)終端在內(nèi)的多樣化用戶端,實(shí)現(xiàn)了程序設(shè)計(jì)在線自主學(xué)習(xí)模式,有效提高了學(xué)習(xí)者的自主化程序設(shè)計(jì)能力訓(xùn)練效率。
參考文獻(xiàn):
[1] 陳志, 李夢(mèng)澤, 馬嫣, 等. 基于 ACM 程序設(shè)計(jì)競(jìng)賽的常規(guī)教學(xué)改革[J]. 電氣電子教學(xué)學(xué)報(bào), 2011, 33(6): 18-20.
[2] PENA-AYALA A, CARDENAS L. A revision of the literature concerned with mobile, ubiquitous, and pervasive learning: a survey[C]. Switzerland: Springer International Publishing, 2016: 55-100.
[3] 蔡崇超. 基于 Web 的在線判題系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件導(dǎo)刊, 2016, 15(3): 107-109.
[4] 南京郵電大學(xué). NOJ: NJUPT ACM online judge[EB/OL]. http://acm.njupt.edu.cn.
[5] SMITH B. Beginning JSON[M]. New York: Apress, 2015.
[6] DARCEY L, DELESSIO C, CONDER S, et al. Android 應(yīng)用開發(fā)入門經(jīng)典[M]. 北京:人民郵電出版社, 2014.
(責(zé)任編輯:黃 ?。?