李建+葛竹春+傅偉
摘 要:進(jìn)入移動(dòng)網(wǎng)絡(luò)時(shí)代,智能設(shè)備已經(jīng)逐漸普及到校園,對(duì)教育領(lǐng)域來(lái)說(shuō)既是機(jī)遇,也是挑戰(zhàn)。傳統(tǒng)的基于WEB的課程教學(xué)輔助系統(tǒng)已不適應(yīng)當(dāng)前教與學(xué)的要求。有鑒于此,構(gòu)建了一個(gè)基于移動(dòng)互聯(lián)網(wǎng)的課程輔助教學(xué)系統(tǒng),并就該系統(tǒng)的設(shè)計(jì)思想、主體功能、總體構(gòu)建、核心模塊進(jìn)行了詳盡的闡述。開(kāi)發(fā)實(shí)現(xiàn)的移動(dòng)課程教學(xué)輔助系統(tǒng)實(shí)現(xiàn)了各類課程教學(xué)資源的優(yōu)化運(yùn)用,為課程課堂外的學(xué)習(xí)提供了一個(gè)全新、便捷的手段,具有較好的實(shí)用價(jià)值和推廣意義。
關(guān)鍵詞:移動(dòng)網(wǎng)絡(luò);教學(xué)輔助系統(tǒng);構(gòu)建及應(yīng)用
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
隨著互聯(lián)網(wǎng)技術(shù)、移動(dòng)通信技術(shù)的飛速發(fā)展,4G、Wi-Fi技術(shù)和智能手機(jī)的普及,推動(dòng)了移動(dòng)互聯(lián)網(wǎng)的發(fā)展,極大地方便了人們的生活[1,2]。科技進(jìn)步也相應(yīng)的促進(jìn)了高校教育方式和學(xué)習(xí)方式的改變。教育類APP作為信息技術(shù)在教育領(lǐng)域的應(yīng)用,迅速成為一類頗受歡迎的數(shù)字化教學(xué)、學(xué)習(xí)方式,為移動(dòng)學(xué)習(xí)的開(kāi)展提供了有力的設(shè)備支持,正成為教師和學(xué)生日常工作、學(xué)習(xí)的必備工具和主要學(xué)習(xí)平臺(tái)[3,4]。本系統(tǒng)主要根據(jù)高校課程特點(diǎn),構(gòu)建出一個(gè)通用型課程輔助教學(xué)系統(tǒng),作為對(duì)課堂教學(xué)的補(bǔ)充和拓展。通過(guò)多類學(xué)習(xí)資源和助學(xué)方式的應(yīng)用,實(shí)現(xiàn)教師、學(xué)生之間導(dǎo)與學(xué)的有效互動(dòng),有效調(diào)動(dòng)教師教學(xué)、學(xué)生學(xué)習(xí)的積極性、主動(dòng)性,并使課堂教學(xué)之外的輔助環(huán)節(jié)更為有效,切實(shí)提高了教學(xué)效率和教學(xué)效果[5]。
2 移動(dòng)課程教學(xué)系統(tǒng)總體架構(gòu)設(shè)計(jì)(The overall framework design of the mobile curriculum teaching assistant system)
基于移動(dòng)網(wǎng)絡(luò)的通用型課程教學(xué)輔助系統(tǒng),旨在為學(xué)生提供多樣性的學(xué)習(xí)服務(wù),增加學(xué)習(xí)中的樂(lè)趣,提高學(xué)習(xí)者的學(xué)習(xí)主動(dòng)性,讓課程學(xué)習(xí)無(wú)處不在[6]。
2.1 系統(tǒng)總體架構(gòu)設(shè)計(jì)
本文設(shè)計(jì)的移動(dòng)課程教學(xué)輔助系統(tǒng)框架是基于移動(dòng)通信網(wǎng)絡(luò)或接入網(wǎng)絡(luò)的高可靠性和高數(shù)據(jù)傳輸速率進(jìn)行設(shè)計(jì)的,移動(dòng)課程教學(xué)輔助系統(tǒng)終端的絕大多數(shù)功能都需要通過(guò)一個(gè)無(wú)線網(wǎng)絡(luò)連接到互聯(lián)網(wǎng)。移動(dòng)課堂系統(tǒng)的整體架構(gòu)如圖1所示。
2.2 系統(tǒng)功能模塊設(shè)計(jì)
移動(dòng)課程教學(xué)輔助系統(tǒng)由Android移動(dòng)客戶端程序和Web服務(wù)器端管理系統(tǒng)兩部分組成。根據(jù)系統(tǒng)前期對(duì)高職院校課程教學(xué)調(diào)研分析可得,移動(dòng)客戶端的功能包括用戶注冊(cè)、用戶登錄、用戶信息修改、課程資源下載、實(shí)時(shí)提問(wèn)、在線測(cè)試等主要功能。服務(wù)器端功能包括用戶管理、課程管理、資源管理、資源分類管理、測(cè)試管理、提問(wèn)回復(fù)、管理等功能。如圖2所示。
3 系統(tǒng)核心功能模塊的實(shí)現(xiàn)(The realization of the system core function module)
基于移動(dòng)網(wǎng)絡(luò)的課程教學(xué)富足系統(tǒng)主要基于目前流行的Android開(kāi)發(fā)技術(shù)和JSP WEB開(kāi)發(fā)技術(shù)進(jìn)行開(kāi)發(fā),開(kāi)發(fā)平臺(tái)選用Eclipse集成開(kāi)發(fā)環(huán)境,Eclipse是一款非常優(yōu)秀的開(kāi)源IDE,在大量插件配合下,完全可以滿足從企業(yè)級(jí)Java應(yīng)用到手機(jī)終端Java軟件的開(kāi)發(fā)[7,8]。數(shù)據(jù)庫(kù)選擇MySQL數(shù)據(jù)庫(kù)軟件輕巧、方便、功能強(qiáng)大。
3.1 客戶端核心功能實(shí)現(xiàn)
(1)客戶端界面美化
作為一款實(shí)用型APP,并要求能吸引學(xué)生的注意力,愿意使用這個(gè)系統(tǒng)學(xué)習(xí),必然要對(duì)系統(tǒng)的美工、界面進(jìn)行一些優(yōu)化,使之美觀、大方。移動(dòng)課程教學(xué)輔助系統(tǒng)客戶端界面的設(shè)計(jì)為達(dá)到這個(gè)目的,做了很多的工作,除制作了一些測(cè)試用的視頻、課件外,還確立了一個(gè)統(tǒng)一的風(fēng)格,對(duì)應(yīng)風(fēng)格設(shè)計(jì)制作了自定義背景圖片,采用ImageButton和ImageView控件代替普通的控件,并導(dǎo)入一些圖片資源并設(shè)置為控件的底紋。整體布局設(shè)計(jì)上,使用布局框?qū)φw界面進(jìn)行宏觀調(diào)控,混合使用線性布局、相對(duì)布局和絕對(duì)布局來(lái)調(diào)節(jié)頁(yè)面及各個(gè)控件。
(2)客戶端界面跳轉(zhuǎn)
客戶端程序定義了一個(gè)枚舉類型的全局變量WhichView來(lái)記錄當(dāng)前顯示的頁(yè)面狀態(tài),當(dāng)點(diǎn)擊返回按鈕或者左右標(biāo)簽切換按鈕時(shí),判斷當(dāng)前顯示頁(yè)面,根據(jù)當(dāng)前狀態(tài)做出相應(yīng)的跳轉(zhuǎn),退出或者切換等。核心代碼如下:
public boolean onKeyDown(int keyCode,KeyEvent e)
//返回按鍵事件
{
if(keyCode!=4)//4為返回鍵的鍵碼
{
return false;//如果按下返回鍵,不做任何響應(yīng)
}
………//用戶登錄,注冊(cè),信息修改等頁(yè)面跳轉(zhuǎn)
else if(curr==WhichView.ALLRESOURCE_VIEW)
{
gotoMainView();//當(dāng)前頁(yè)面為資源庫(kù)界面返回到首頁(yè)
return true;
}
………//其他功能界面返回設(shè)置
else if(curr==WhichView.EXAMINATION_VIEW|| curr==WhichView.CHECKEXAM_VIEW)
{
gotoMainView();//當(dāng)前頁(yè)面為測(cè)試或查看測(cè)試結(jié)果界面返回到首頁(yè)
return true;
}
return false;
}
(3)客戶端課程資源列表顯示
移動(dòng)課程教學(xué)輔助系統(tǒng)的核心模塊-資源顯示界面,列舉出服務(wù)器上所有的可供下載的課程資源,用戶可以直接在客戶端上查看資源的詳細(xì)信息,方便用戶查詢并根據(jù)自己的要求下載所需的資源。核心代碼如下:
public void initListViewf(String msgStr,int list) {
resourceNameArray=msgStr.split("\\|");//切割內(nèi)容字符串
final int count=resourceNameArray.length/4;
//獲取資源的行數(shù)
BaseAdapter ba=new BaseAdapter() {
public int getCount() { //重寫(xiě)getCount方法
return count;// 總共4個(gè)選項(xiàng)
}
public View getView(int arg0,View arg1,ViewGroup arg2) {
//重寫(xiě)getView方法
LinearLayout ll=new LinearLayout(MainActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);//設(shè)置朝向
ll.setPadding(5,5,5,5);//設(shè)置留白
TextView tv=new TextView(MainActivity.this);//初始化
tv.setWidth(60);
tv.setText(resourceNameArray[arg0*4]);//設(shè)置內(nèi)容
tv.setTextColor(getResources().getColor(R.color.black));
ll.addView(tv);//將TextView添加到LinearLayout
……//界面多個(gè)控件初始化,并添加到布局容器
return ll;} };
if(list==Constant.ALLRESOURCELISTVIEW01){
ListView lv=(ListView) findViewById(R.id.allresourceListView01);
lv.setAdapter(ba);//設(shè)置適配器
lv.setOnItemClickListener(new OnItemClickListener() {//設(shè)置監(jiān)聽(tīng)器
public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) {
rgid=resourceNameArray[arg2*4];//獲取資源名稱 gotoResourceDetail(rgid);//返回到資源庫(kù)界面}});}}
3.2 服務(wù)器端核心功能實(shí)現(xiàn)
系統(tǒng)WEB服務(wù)器端采用JSP WEB開(kāi)發(fā)技術(shù),采用MySQL數(shù)據(jù)管理軟件。服務(wù)器端程序主要用來(lái)給系統(tǒng)管理員,主要是教師實(shí)現(xiàn)用戶管理、課程管理、資源管理、測(cè)試管理、提問(wèn)管理等。
(1)數(shù)據(jù)庫(kù)連接
應(yīng)用系統(tǒng)的核心數(shù)據(jù)一般采用數(shù)據(jù)庫(kù)進(jìn)行保存,維護(hù),連接數(shù)據(jù)庫(kù)無(wú)疑是一個(gè)系統(tǒng)穩(wěn)定運(yùn)行的前提。本系統(tǒng)調(diào)用MySQL的JDBC包來(lái)連接數(shù)據(jù)庫(kù)的,通過(guò)加載驅(qū)動(dòng),調(diào)用相應(yīng)的方法來(lái)實(shí)現(xiàn)數(shù)據(jù)連接。核心代碼如下所示。
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/teachsys";
con=DriverManager.getConnection(url,"root","123456");
(2)數(shù)據(jù)庫(kù)更新機(jī)制
各類應(yīng)用系統(tǒng)的操作,無(wú)外乎就是數(shù)據(jù)庫(kù)中數(shù)據(jù)的查詢、更新操作。數(shù)據(jù)庫(kù)的更新操作,有多種實(shí)現(xiàn)機(jī)制,對(duì)于實(shí)用型系統(tǒng),數(shù)據(jù)更新需要滿足數(shù)據(jù)的批量更新操作,這樣最常用的辦法就是采用事務(wù)處理機(jī)制實(shí)現(xiàn)數(shù)據(jù)批量更新,系統(tǒng)中數(shù)據(jù)更新部分核心代碼如下。
con=DB.getCon();//得到數(shù)據(jù)庫(kù)連接
con.setAutoCommit(false);//禁止自動(dòng)提交,開(kāi)始一個(gè)事務(wù)
stat=con.createStatement();
String sql=new String(sqla.getBytes(),
"iso8859-1");//轉(zhuǎn)碼
stat.executeUpdate(sql);//執(zhí)行更新
sql=new String(sqlb.getBytes(),"iso8859-1");//轉(zhuǎn)碼
stat.executeUpdate(sql);//執(zhí)行更新
con.commit();//將事務(wù)提交
con.setAutoCommit(true);//恢復(fù)自動(dòng)提交模式
3.3 網(wǎng)絡(luò)通信模塊實(shí)現(xiàn)
Android對(duì)于http網(wǎng)絡(luò)通信,提供了標(biāo)準(zhǔn)的java接口:httpURLConnection接口和httpclient接口[9]。本系統(tǒng)通信模塊采用的是httpclient接口,它的功能更豐富有效。http通信分為post和get方式,其中傳輸數(shù)據(jù)量比較大的是post方式,而且它的安全性更高,本系統(tǒng)采用post方式。以下是本模塊的核心代碼。
public static String postWithoutFile(String actionUrl,Map
{
HttpClient httpclient=new DefaultHttpClient();
HttpPost httppost=new HttpPost(actionUrl);
List
for (Map.Entry
{//構(gòu)建表單字段內(nèi)容
nameValuePairs.add(new BasicNameValuePair(entry.getKey(),MyConverter.escape(entry.getValue())));
}
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response;
response=httpclient.execute(httppost);
InputStream in=response.getEntity().getContent();
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int ch=0;
while((ch=in.read())!=-1)
{baos.write(ch);}
byte[] data=baos.toByteArray();
baos.close();
return MyConverter.unescape(new String(data).trim());
}
4 系統(tǒng)應(yīng)用(Application of system)
基于移動(dòng)網(wǎng)絡(luò)的課程輔助教學(xué)系統(tǒng)基于主流的移動(dòng)終端設(shè)備,并選用了主流的WEB服務(wù)端開(kāi)發(fā)技術(shù),實(shí)現(xiàn)了客戶端的方便使用和服務(wù)端資源的快速、便捷管理,此類系統(tǒng)的應(yīng)用為學(xué)生實(shí)現(xiàn)隨時(shí)隨地通過(guò)4G網(wǎng)絡(luò)課程學(xué)習(xí)提供了支撐平臺(tái),目前該系統(tǒng)已完成了服務(wù)器端的部署和真實(shí)移動(dòng)設(shè)備的測(cè)試使用,向?qū)嵱眯瓦~出了一大步,同時(shí)也發(fā)現(xiàn)了一些問(wèn)題,并將在今后進(jìn)行進(jìn)一步的優(yōu)化、改進(jìn),并有望在投入正式實(shí)用。系統(tǒng)測(cè)試截圖如圖3和圖4所示。
5 結(jié)論(Conclusion)
隨著網(wǎng)絡(luò)的迅猛發(fā)展,如何讓零散而大量的課程資源有效利用起來(lái),設(shè)計(jì)構(gòu)建實(shí)用性強(qiáng)的網(wǎng)絡(luò)化課程教學(xué)支撐平臺(tái)已成為重中之重。進(jìn)入移動(dòng)智能時(shí)代,信息的獲取手段已經(jīng)變得更加便捷,基于移動(dòng)網(wǎng)絡(luò)和智能終端設(shè)備的課程教學(xué)輔助平臺(tái)已成為迫切需要[10]。目前,關(guān)于移動(dòng)學(xué)習(xí)的基礎(chǔ)理論研究較多,但具體的移動(dòng)學(xué)習(xí)類軟件相對(duì)較少,因此,開(kāi)發(fā)符合所在高校實(shí)際需求,實(shí)用性好的移動(dòng)APP教學(xué)軟件,輔助教學(xué),方便學(xué)生學(xué)習(xí),將具有很好的現(xiàn)實(shí)意義。
參考文獻(xiàn)(References)
[1] Kang H,et al.Real-Time Motion Control on Android Platform[J].Journal of Supercomputing,2016,72(1):196-213.
[2] Cho H,et al.Anti-Debugging Scheme for Protecting Mobile Apps on Android Platform[J].Journal of Supercomputing,2016,72(1):232-246.
[3] Yueyu Xu.Developing a Comprehensive Teaching Evaluation System for Foundation Courses with Enhanced Validity and Reliability[J].Educational Technology Research and Development,2012,605:55-58.
[4] 張毅,張成霞.基于Android手機(jī)的課堂互動(dòng)應(yīng)用的設(shè)計(jì)和實(shí)現(xiàn)[J].現(xiàn)代電信科技,2015(1):35-39.
[5] 吳君勝,曾海.基于Android的網(wǎng)絡(luò)課程移動(dòng)學(xué)習(xí)輔助教學(xué)系統(tǒng)設(shè)計(jì)與應(yīng)用[J].微型電腦應(yīng)用,2014,30(3):18-20.
[6] 顏芳.基于Android的移動(dòng)課堂學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].華中師范大學(xué),2015.
[7] 夏幫貴.基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng)[J].西華大學(xué)學(xué)報(bào)(自然科學(xué)版),2011(9):81-84.
[8] 施連敏,蓋之華.基于Android的校園信息服務(wù)應(yīng)用平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2015,10(2):57-58.
[9] 張薇.基于WIFI移動(dòng)開(kāi)放課堂的構(gòu)建[J].山西廣播電視大學(xué)學(xué)報(bào),2012,7(2):14-16.
[10] 柏忠賢.移動(dòng)學(xué)習(xí)支持系統(tǒng)開(kāi)發(fā)與應(yīng)用研究[D].浙江師范大學(xué),2012.
作者簡(jiǎn)介:
李 建(1979-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)與信息安全,語(yǔ)義WEB,信息化教學(xué).
葛竹春(1968-),男,碩士,教授.研究領(lǐng)域:軟件工程,信息安全.
傅 偉(1982-),男,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò),物聯(lián)網(wǎng).