許航 王東來(lái)
摘 要:該文根據(jù)Java語(yǔ)言教學(xué)的特點(diǎn),設(shè)計(jì)了一種基于SSH框架的Java在線(xiàn)學(xué)習(xí)平臺(tái)。旨在為學(xué)生構(gòu)建一種全新的學(xué)習(xí)方式,提供一種不受時(shí)空約束的學(xué)習(xí)環(huán)境,系統(tǒng)采用B/S模式,為學(xué)生提供在線(xiàn)編程練習(xí)環(huán)境,在線(xiàn)編輯環(huán)境,編譯檢錯(cuò)功能。學(xué)生借助在線(xiàn)學(xué)習(xí)平臺(tái)可以進(jìn)行Java知識(shí)的在線(xiàn)練習(xí)、在線(xiàn)復(fù)習(xí)、技術(shù)溝通和知識(shí)共享,從而成為傳統(tǒng)課堂教學(xué)有力補(bǔ)充。
關(guān)鍵詞:在線(xiàn)學(xué)習(xí)平臺(tái) 在線(xiàn)編譯 在線(xiàn)練習(xí)
中圖分類(lèi)號(hào):G71 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)02(b)-0015-02
信息技術(shù)的變革正逐漸改變學(xué)生的學(xué)習(xí)方式, 高校學(xué)生是接收新知識(shí)新技術(shù)最活躍的群體,傳統(tǒng)的課程教學(xué)網(wǎng)站只是把教學(xué)的各種資源放在網(wǎng)絡(luò)上,學(xué)生自主學(xué)習(xí),對(duì)于學(xué)習(xí)的效果是否有促進(jìn)作用,并沒(méi)有明顯的表現(xiàn)出來(lái)。為了更好地輔助課堂教學(xué),提高學(xué)生學(xué)習(xí)的積極性,將學(xué)習(xí)與生活融合為一體,使學(xué)生更好地獲得知識(shí),開(kāi)發(fā)一套移動(dòng)學(xué)習(xí)系統(tǒng)勢(shì)在必行。
Java語(yǔ)言的學(xué)習(xí)不僅要掌握一定的基本理論知識(shí),還要強(qiáng)化實(shí)際的編程訓(xùn)練,只有通過(guò)大量的編程訓(xùn)練才能掌握這門(mén)編程語(yǔ)言并運(yùn)用到實(shí)際應(yīng)用開(kāi)發(fā)中去。開(kāi)發(fā)基于Web技術(shù)的Java在線(xiàn)學(xué)習(xí)平臺(tái)的主要目的是改變學(xué)生的學(xué)習(xí)習(xí)慣和學(xué)習(xí)興趣,開(kāi)拓學(xué)生學(xué)習(xí)環(huán)境,改變以往學(xué)生學(xué)習(xí)編程語(yǔ)言必須使用臺(tái)式電腦或筆記本的學(xué)習(xí)方式,學(xué)生只要有能上網(wǎng)的訪(fǎng)問(wèn)終端(臺(tái)式機(jī),筆記本、平板電腦、手機(jī))就可以在有網(wǎng)情況下進(jìn)行在線(xiàn)學(xué)習(xí),改善課程教學(xué)網(wǎng)站教學(xué)資源的利用率。
該文針對(duì)Java語(yǔ)言的教學(xué)實(shí)際設(shè)計(jì)了Java在線(xiàn)學(xué)習(xí)的教學(xué)輔助系統(tǒng)。實(shí)現(xiàn)了課堂教學(xué)與編程實(shí)踐相結(jié)合、傳統(tǒng)教學(xué)與在線(xiàn)學(xué)習(xí)相結(jié)合,通過(guò)在線(xiàn)學(xué)習(xí)平臺(tái)能夠有效地補(bǔ)充學(xué)生課堂學(xué)習(xí)的不足,提高學(xué)生學(xué)習(xí)技術(shù)、應(yīng)用技術(shù)的能力。
1 學(xué)習(xí)平臺(tái)總體設(shè)計(jì)
常規(guī)的應(yīng)用系統(tǒng)主要有兩個(gè)方面的功能,一個(gè)是面對(duì)用戶(hù)訪(fǎng)問(wèn)的功能,一個(gè)是面對(duì)管理員進(jìn)行管理的功能。該在線(xiàn)學(xué)習(xí)平臺(tái)系統(tǒng)也由兩部分功能構(gòu)成:面向?qū)W生用戶(hù)的Java在線(xiàn)學(xué)習(xí)平臺(tái)和面向教師或管理員用戶(hù)的系統(tǒng)后臺(tái)管理中心。
Java在線(xiàn)學(xué)習(xí)平臺(tái)主要為學(xué)生提供媒體學(xué)習(xí)、試題練習(xí)、程序訓(xùn)練、作業(yè)系統(tǒng)、學(xué)情反饋以及信息管理六個(gè)功能模塊,如圖1所示。
系統(tǒng)后臺(tái)管理中心由學(xué)生管理、課程管理、作業(yè)管理、題庫(kù)管理、學(xué)情反饋以及信息管理模塊組成,如圖2所示。
2 學(xué)習(xí)平臺(tái)框架設(shè)計(jì)
該文所述的Java在線(xiàn)學(xué)習(xí)平臺(tái)在設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中采用了目前業(yè)界流行的JavaEE輕量級(jí)解決方案:SSH(struts+spring+
hibernate)框架,其中使用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持,Spring做管理,管理struts和hibernate。用面向?qū)ο蟮姆治龇椒ǜ鶕?jù)需求提出一些模型,將這些模型實(shí)現(xiàn)為基本的Java對(duì)象,然后編寫(xiě)基本的DAO(Data Access Objects)接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類(lèi)來(lái)實(shí)現(xiàn)Java類(lèi)與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪(fǎng)問(wèn),最后由Spring做管理,管理struts和Hibernate。通過(guò)使用SSH框架不僅可以大幅度降低開(kāi)發(fā)難度和工作量,還可使應(yīng)用系統(tǒng)在靈活性、適應(yīng)性和穩(wěn)定性方面有良好的表現(xiàn)。
根據(jù)目前的技術(shù)發(fā)展,在系統(tǒng)開(kāi)發(fā)過(guò)程中主要采用XHTML、CSS、JQuery、和Jsp五種頁(yè)面設(shè)計(jì)技術(shù)來(lái)完成網(wǎng)頁(yè)的設(shè)計(jì)和布局;同時(shí)采用最新版Eclipse IDE for Java EE Developers作為集成開(kāi)發(fā)環(huán)境;采用Tomcat應(yīng)用服務(wù)器作為系統(tǒng)的運(yùn)行平臺(tái),保證了學(xué)習(xí)平臺(tái)在不同的終端下都能在線(xiàn)訪(fǎng)問(wèn)。
3 系統(tǒng)功能設(shè)計(jì)
3.1 用戶(hù)管理模塊設(shè)計(jì)
用戶(hù)管理模塊主要用于設(shè)定用戶(hù)的權(quán)限,該系統(tǒng)根據(jù)實(shí)際需求將用戶(hù)分為學(xué)生、教師(系統(tǒng)管理員)兩種。教師(系統(tǒng)管理員)從系統(tǒng)后臺(tái)管理中心登錄,學(xué)生則從Java在線(xiàn)學(xué)習(xí)平臺(tái)登錄。因此,用戶(hù)管理模塊主要包括用戶(hù)登錄和用戶(hù)信息管理功能。
3.2 媒體學(xué)習(xí)環(huán)境模塊設(shè)計(jì)
媒體學(xué)習(xí)環(huán)境模塊由基礎(chǔ)學(xué)習(xí)資料模塊、訓(xùn)練及測(cè)試模塊和深入學(xué)習(xí)模塊構(gòu)成?;A(chǔ)學(xué)習(xí)資料模塊包括在教學(xué)大綱和教學(xué)課件基礎(chǔ)上,結(jié)合各類(lèi)經(jīng)典的Java書(shū)籍、教程和網(wǎng)絡(luò)資料,經(jīng)過(guò)重新編輯形成的電子書(shū)以及經(jīng)典代碼分析功能構(gòu)成;訓(xùn)練和測(cè)試模塊由學(xué)情測(cè)試、試題訓(xùn)練和編程題鏈接功能構(gòu)成;深入學(xué)習(xí)模塊提供的是網(wǎng)絡(luò)資源鏈接,由各類(lèi)社區(qū)資料鏈接和優(yōu)秀的博客鏈接構(gòu)成。
3.3 試題練習(xí)環(huán)境模塊設(shè)計(jì)
試題練習(xí)環(huán)境涉及試題資源管理和試題練習(xí)兩大模塊。試題資源管理模塊位于系統(tǒng)后臺(tái)管理中心,教師可進(jìn)行試題錄入、歸類(lèi)、編輯等操作;試題練習(xí)模塊位于Java學(xué)習(xí)平臺(tái)系統(tǒng)中,由試題練習(xí)和作業(yè)系統(tǒng)構(gòu)成。
試題練習(xí)由成卷練習(xí)、組卷練習(xí)和專(zhuān)項(xiàng)訓(xùn)練構(gòu)成,試題以單選、多選、判斷等客觀(guān)題為主,作業(yè)系統(tǒng)由單選、多選、判斷、編程訓(xùn)練、解答題構(gòu)成。其中編程訓(xùn)練、解答題的解答通過(guò)網(wǎng)頁(yè)鏈接的形式呈現(xiàn)。
3.4 程序訓(xùn)練環(huán)境模塊設(shè)計(jì)
程序訓(xùn)練環(huán)境實(shí)現(xiàn)的主要目的是能夠在線(xiàn)編輯并運(yùn)行Java代碼,本功能是通過(guò)后臺(tái)代碼在應(yīng)用服務(wù)器實(shí)現(xiàn)的。主要由Java源程序編譯檢錯(cuò)、邏輯檢錯(cuò)、前臺(tái)編輯環(huán)境和類(lèi)結(jié)構(gòu)分析四部分構(gòu)成。
(1)Java源程序動(dòng)態(tài)編譯功能的實(shí)現(xiàn)。
該文采用從內(nèi)存中動(dòng)態(tài)編譯程序?qū)崿F(xiàn)Java的動(dòng)態(tài)編譯。JavaCompiler接口可以編譯內(nèi)存中的Java代碼然后使用reflection運(yùn)行編譯后的Java代碼,整個(gè)過(guò)程都在內(nèi)存中進(jìn)行。
(2)在線(xiàn)編譯Java代碼功能的實(shí)現(xiàn)。
為了能夠在線(xiàn)編譯、加載并運(yùn)行Java源程序,該系統(tǒng)采取的實(shí)現(xiàn)方法是應(yīng)用程序接受數(shù)據(jù),編輯源代碼生成.java文件并保存到硬盤(pán)上,然后調(diào)用API執(zhí)行編譯操作生成.class文件,最后通過(guò)JVM 各級(jí)classloader調(diào)用完成加載操作并運(yùn)行。
詳細(xì)的實(shí)現(xiàn)流程如下。
①服務(wù)器端應(yīng)用程序接受客戶(hù)端傳來(lái)的數(shù)據(jù)并與生成Test.java文件。
②創(chuàng)建JavaCompiler對(duì)象javaCompiler來(lái)得到當(dāng)前系統(tǒng)的編譯器。
③獲取一個(gè)文件管理器,使文件管理器與文件連接起來(lái)。
④創(chuàng)建編譯任務(wù)對(duì)象Task,并執(zhí)行編譯操作任務(wù)。
⑤最后運(yùn)行編譯后的程序。
(3)Java程序編譯檢測(cè)功能的實(shí)現(xiàn)。
對(duì)Java源代碼進(jìn)行編譯檢測(cè)一般通過(guò)四個(gè)步驟實(shí)現(xiàn):服務(wù)器端應(yīng)用程序接受程序數(shù)據(jù)→將接受的數(shù)據(jù)生成.java文件→創(chuàng)建進(jìn)程并動(dòng)態(tài)編輯已生成的文件→結(jié)果反饋。
(4)Java程序邏輯檢測(cè)功能的實(shí)現(xiàn)。
Java源程序邏輯檢測(cè)是一個(gè)復(fù)雜的過(guò)程。服務(wù)器應(yīng)用程序首先接收J(rèn)ava源程序并執(zhí)行邏輯檢錯(cuò)操作。如果源程序順利通過(guò)編譯檢測(cè),服務(wù)器應(yīng)用程序?yàn)榱四軐?duì)其進(jìn)行用例測(cè)試,需要對(duì)源代碼中的輸入輸出接口進(jìn)行接管。輸入輸出接口接管工作是為了滿(mǎn)足測(cè)試用例模塊的運(yùn)行需要,將源程序中可能存在的鍵盤(pán)輸出類(lèi)System.Out和輸入類(lèi)System.In類(lèi)分別轉(zhuǎn)換成類(lèi)Java.io.FileOutputStream和類(lèi)Java.io.FileInputStream。在完成輸入輸出接管工作后,還需要對(duì)其進(jìn)行安全性檢測(cè),主要是判斷程序中是否存在死循環(huán)等影響系統(tǒng)安全的因素。隨后系統(tǒng)才能對(duì)源代碼功能進(jìn)行用例測(cè)試。用例測(cè)試是邏輯檢測(cè)模塊中最重要的組成部分,系統(tǒng)應(yīng)用程序通過(guò)用例檢測(cè)模塊和數(shù)據(jù)庫(kù)進(jìn)行交互,進(jìn)而判斷程序的邏輯正確性。最后向客戶(hù)端反饋測(cè)試結(jié)果。
3.5 學(xué)情反饋的設(shè)計(jì)與實(shí)現(xiàn)
在學(xué)生使用Java在線(xiàn)學(xué)習(xí)平臺(tái)時(shí),系統(tǒng)會(huì)收集學(xué)生使用系統(tǒng)產(chǎn)生的數(shù)據(jù),并對(duì)釆集的數(shù)據(jù)進(jìn)行抽樣、統(tǒng)計(jì)等處理,最后將結(jié)果以不同的形式反饋給用戶(hù),進(jìn)而實(shí)現(xiàn)對(duì)學(xué)生學(xué)習(xí)情況較為準(zhǔn)確的評(píng)估。
教師可以在系統(tǒng)后臺(tái)管理中心查看反饋結(jié)果,可以得到學(xué)生的學(xué)習(xí)進(jìn)度、學(xué)習(xí)問(wèn)題反饋、作業(yè)完成情況以及課后試題測(cè)試的結(jié)果。
學(xué)生可以登錄Java在線(xiàn)學(xué)習(xí)平臺(tái)查看反饋結(jié)果,可以查看自己的媒體學(xué)習(xí)進(jìn)度、自己未完成的課程內(nèi)容、成績(jī)排名、知識(shí)結(jié)構(gòu)完整度評(píng)估等信息。
4 結(jié)語(yǔ)
該文在結(jié)合當(dāng)前Java語(yǔ)言課程教學(xué)現(xiàn)狀和對(duì)業(yè)界相關(guān)工作崗位對(duì)Java技術(shù)的需求分析基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)了Java在線(xiàn)學(xué)習(xí)平臺(tái)。一門(mén)編程技術(shù)的學(xué)習(xí),非實(shí)踐不能得也!通過(guò)本平臺(tái)可以強(qiáng)化教師Java語(yǔ)言課程的教學(xué)效果,有效提高學(xué)生學(xué)習(xí)Java技術(shù)的效率。
參考文獻(xiàn)
[1] 吳元君.基于A(yíng)ndroid的移動(dòng)學(xué)習(xí)平臺(tái)開(kāi)發(fā)與實(shí)現(xiàn)[J].滁州學(xué)院學(xué)報(bào),2015(2):59-62.
[2] 盧冶.基于A(yíng)ndroid的Java程序設(shè)計(jì)移動(dòng)學(xué)習(xí)平臺(tái)[J].計(jì)算機(jī)教育,2014(11):60-64.
[3] 牛雪蓮.基于A(yíng)ndroid的英語(yǔ)聽(tīng)力移動(dòng)學(xué)習(xí)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2016(2):41-42.
[4] 武玉坤.基于A(yíng)ndroid移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2013(1):20-21.
[5] 李海峰.基于HTML5+jQueryMobile的移動(dòng)學(xué)習(xí)平臺(tái)WebApp研究與實(shí)現(xiàn)[J].信息通信,2014(5):84-85.
[6] 鄭巍.基于HTML5的課程資源管理移動(dòng)網(wǎng)站的設(shè)計(jì)[D].大連理工大學(xué),2014.
[7] 尤丹妹.基于移動(dòng)平臺(tái)的學(xué)習(xí)資源設(shè)計(jì)與開(kāi)發(fā)[J].微型機(jī)與應(yīng)用,2015(7):83-85.
[8] 張林衡.虛擬學(xué)習(xí)社區(qū)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2014.
[9] 楊博.網(wǎng)絡(luò)教學(xué)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2014.