李建+葛竹春+傅偉
摘 要:進入移動網(wǎng)絡時代,智能設(shè)備已經(jīng)逐漸普及到校園,對教育領(lǐng)域來說既是機遇,也是挑戰(zhàn)。傳統(tǒng)的基于WEB的課程教學輔助系統(tǒng)已不適應當前教與學的要求。有鑒于此,構(gòu)建了一個基于移動互聯(lián)網(wǎng)的課程輔助教學系統(tǒng),并就該系統(tǒng)的設(shè)計思想、主體功能、總體構(gòu)建、核心模塊進行了詳盡的闡述。開發(fā)實現(xiàn)的移動課程教學輔助系統(tǒng)實現(xiàn)了各類課程教學資源的優(yōu)化運用,為課程課堂外的學習提供了一個全新、便捷的手段,具有較好的實用價值和推廣意義。
關(guān)鍵詞:移動網(wǎng)絡;教學輔助系統(tǒng);構(gòu)建及應用
中圖分類號:TP399 文獻標識碼:A
1 引言(Introduction)
隨著互聯(lián)網(wǎng)技術(shù)、移動通信技術(shù)的飛速發(fā)展,4G、Wi-Fi技術(shù)和智能手機的普及,推動了移動互聯(lián)網(wǎng)的發(fā)展,極大地方便了人們的生活[1,2]??萍歼M步也相應的促進了高校教育方式和學習方式的改變。教育類APP作為信息技術(shù)在教育領(lǐng)域的應用,迅速成為一類頗受歡迎的數(shù)字化教學、學習方式,為移動學習的開展提供了有力的設(shè)備支持,正成為教師和學生日常工作、學習的必備工具和主要學習平臺[3,4]。本系統(tǒng)主要根據(jù)高校課程特點,構(gòu)建出一個通用型課程輔助教學系統(tǒng),作為對課堂教學的補充和拓展。通過多類學習資源和助學方式的應用,實現(xiàn)教師、學生之間導與學的有效互動,有效調(diào)動教師教學、學生學習的積極性、主動性,并使課堂教學之外的輔助環(huán)節(jié)更為有效,切實提高了教學效率和教學效果[5]。
2 移動課程教學系統(tǒng)總體架構(gòu)設(shè)計(The overall framework design of the mobile curriculum teaching assistant system)
基于移動網(wǎng)絡的通用型課程教學輔助系統(tǒng),旨在為學生提供多樣性的學習服務,增加學習中的樂趣,提高學習者的學習主動性,讓課程學習無處不在[6]。
2.1 系統(tǒng)總體架構(gòu)設(shè)計
本文設(shè)計的移動課程教學輔助系統(tǒng)框架是基于移動通信網(wǎng)絡或接入網(wǎng)絡的高可靠性和高數(shù)據(jù)傳輸速率進行設(shè)計的,移動課程教學輔助系統(tǒng)終端的絕大多數(shù)功能都需要通過一個無線網(wǎng)絡連接到互聯(lián)網(wǎng)。移動課堂系統(tǒng)的整體架構(gòu)如圖1所示。
2.2 系統(tǒng)功能模塊設(shè)計
移動課程教學輔助系統(tǒng)由Android移動客戶端程序和Web服務器端管理系統(tǒng)兩部分組成。根據(jù)系統(tǒng)前期對高職院校課程教學調(diào)研分析可得,移動客戶端的功能包括用戶注冊、用戶登錄、用戶信息修改、課程資源下載、實時提問、在線測試等主要功能。服務器端功能包括用戶管理、課程管理、資源管理、資源分類管理、測試管理、提問回復、管理等功能。如圖2所示。
3 系統(tǒng)核心功能模塊的實現(xiàn)(The realization of the system core function module)
基于移動網(wǎng)絡的課程教學富足系統(tǒng)主要基于目前流行的Android開發(fā)技術(shù)和JSP WEB開發(fā)技術(shù)進行開發(fā),開發(fā)平臺選用Eclipse集成開發(fā)環(huán)境,Eclipse是一款非常優(yōu)秀的開源IDE,在大量插件配合下,完全可以滿足從企業(yè)級Java應用到手機終端Java軟件的開發(fā)[7,8]。數(shù)據(jù)庫選擇MySQL數(shù)據(jù)庫軟件輕巧、方便、功能強大。
3.1 客戶端核心功能實現(xiàn)
(1)客戶端界面美化
作為一款實用型APP,并要求能吸引學生的注意力,愿意使用這個系統(tǒng)學習,必然要對系統(tǒng)的美工、界面進行一些優(yōu)化,使之美觀、大方。移動課程教學輔助系統(tǒng)客戶端界面的設(shè)計為達到這個目的,做了很多的工作,除制作了一些測試用的視頻、課件外,還確立了一個統(tǒng)一的風格,對應風格設(shè)計制作了自定義背景圖片,采用ImageButton和ImageView控件代替普通的控件,并導入一些圖片資源并設(shè)置為控件的底紋。整體布局設(shè)計上,使用布局框?qū)φw界面進行宏觀調(diào)控,混合使用線性布局、相對布局和絕對布局來調(diào)節(jié)頁面及各個控件。
(2)客戶端界面跳轉(zhuǎn)
客戶端程序定義了一個枚舉類型的全局變量WhichView來記錄當前顯示的頁面狀態(tài),當點擊返回按鈕或者左右標簽切換按鈕時,判斷當前顯示頁面,根據(jù)當前狀態(tài)做出相應的跳轉(zhuǎn),退出或者切換等。核心代碼如下:
public boolean onKeyDown(int keyCode,KeyEvent e)
//返回按鍵事件
{
if(keyCode!=4)//4為返回鍵的鍵碼
{
return false;//如果按下返回鍵,不做任何響應
}
………//用戶登錄,注冊,信息修改等頁面跳轉(zhuǎn)
else if(curr==WhichView.ALLRESOURCE_VIEW)
{
gotoMainView();//當前頁面為資源庫界面返回到首頁
return true;
}
………//其他功能界面返回設(shè)置
else if(curr==WhichView.EXAMINATION_VIEW|| curr==WhichView.CHECKEXAM_VIEW)
{
gotoMainView();//當前頁面為測試或查看測試結(jié)果界面返回到首頁
return true;
}
return false;
}
(3)客戶端課程資源列表顯示
移動課程教學輔助系統(tǒng)的核心模塊-資源顯示界面,列舉出服務器上所有的可供下載的課程資源,用戶可以直接在客戶端上查看資源的詳細信息,方便用戶查詢并根據(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() { //重寫getCount方法
return count;// 總共4個選項
}
public View getView(int arg0,View arg1,ViewGroup arg2) {
//重寫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
……//界面多個控件初始化,并添加到布局容器
return ll;} };
if(list==Constant.ALLRESOURCELISTVIEW01){
ListView lv=(ListView) findViewById(R.id.allresourceListView01);
lv.setAdapter(ba);//設(shè)置適配器
lv.setOnItemClickListener(new OnItemClickListener() {//設(shè)置監(jiān)聽器
public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) {
rgid=resourceNameArray[arg2*4];//獲取資源名稱 gotoResourceDetail(rgid);//返回到資源庫界面}});}}
3.2 服務器端核心功能實現(xiàn)
系統(tǒng)WEB服務器端采用JSP WEB開發(fā)技術(shù),采用MySQL數(shù)據(jù)管理軟件。服務器端程序主要用來給系統(tǒng)管理員,主要是教師實現(xiàn)用戶管理、課程管理、資源管理、測試管理、提問管理等。
(1)數(shù)據(jù)庫連接
應用系統(tǒng)的核心數(shù)據(jù)一般采用數(shù)據(jù)庫進行保存,維護,連接數(shù)據(jù)庫無疑是一個系統(tǒng)穩(wěn)定運行的前提。本系統(tǒng)調(diào)用MySQL的JDBC包來連接數(shù)據(jù)庫的,通過加載驅(qū)動,調(diào)用相應的方法來實現(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ù)庫更新機制
各類應用系統(tǒng)的操作,無外乎就是數(shù)據(jù)庫中數(shù)據(jù)的查詢、更新操作。數(shù)據(jù)庫的更新操作,有多種實現(xiàn)機制,對于實用型系統(tǒng),數(shù)據(jù)更新需要滿足數(shù)據(jù)的批量更新操作,這樣最常用的辦法就是采用事務處理機制實現(xiàn)數(shù)據(jù)批量更新,系統(tǒng)中數(shù)據(jù)更新部分核心代碼如下。
con=DB.getCon();//得到數(shù)據(jù)庫連接
con.setAutoCommit(false);//禁止自動提交,開始一個事務
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();//將事務提交
con.setAutoCommit(true);//恢復自動提交模式
3.3 網(wǎng)絡通信模塊實現(xiàn)
Android對于http網(wǎng)絡通信,提供了標準的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)應用(Application of system)
基于移動網(wǎng)絡的課程輔助教學系統(tǒng)基于主流的移動終端設(shè)備,并選用了主流的WEB服務端開發(fā)技術(shù),實現(xiàn)了客戶端的方便使用和服務端資源的快速、便捷管理,此類系統(tǒng)的應用為學生實現(xiàn)隨時隨地通過4G網(wǎng)絡課程學習提供了支撐平臺,目前該系統(tǒng)已完成了服務器端的部署和真實移動設(shè)備的測試使用,向?qū)嵱眯瓦~出了一大步,同時也發(fā)現(xiàn)了一些問題,并將在今后進行進一步的優(yōu)化、改進,并有望在投入正式實用。系統(tǒng)測試截圖如圖3和圖4所示。
5 結(jié)論(Conclusion)
隨著網(wǎng)絡的迅猛發(fā)展,如何讓零散而大量的課程資源有效利用起來,設(shè)計構(gòu)建實用性強的網(wǎng)絡化課程教學支撐平臺已成為重中之重。進入移動智能時代,信息的獲取手段已經(jīng)變得更加便捷,基于移動網(wǎng)絡和智能終端設(shè)備的課程教學輔助平臺已成為迫切需要[10]。目前,關(guān)于移動學習的基礎(chǔ)理論研究較多,但具體的移動學習類軟件相對較少,因此,開發(fā)符合所在高校實際需求,實用性好的移動APP教學軟件,輔助教學,方便學生學習,將具有很好的現(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手機的課堂互動應用的設(shè)計和實現(xiàn)[J].現(xiàn)代電信科技,2015(1):35-39.
[5] 吳君勝,曾海.基于Android的網(wǎng)絡課程移動學習輔助教學系統(tǒng)設(shè)計與應用[J].微型電腦應用,2014,30(3):18-20.
[6] 顏芳.基于Android的移動課堂學習系統(tǒng)的設(shè)計與實現(xiàn)[D].華中師范大學,2015.
[7] 夏幫貴.基于Android平臺的移動學習系統(tǒng)[J].西華大學學報(自然科學版),2011(9):81-84.
[8] 施連敏,蓋之華.基于Android的校園信息服務應用平臺的設(shè)計與實現(xiàn)[J].軟件導刊,2015,10(2):57-58.
[9] 張薇.基于WIFI移動開放課堂的構(gòu)建[J].山西廣播電視大學學報,2012,7(2):14-16.
[10] 柏忠賢.移動學習支持系統(tǒng)開發(fā)與應用研究[D].浙江師范大學,2012.
作者簡介:
李 建(1979-),男,碩士,講師.研究領(lǐng)域:計算機網(wǎng)絡與信息安全,語義WEB,信息化教學.
葛竹春(1968-),男,碩士,教授.研究領(lǐng)域:軟件工程,信息安全.
傅 偉(1982-),男,碩士,講師.研究領(lǐng)域:計算機網(wǎng)絡,物聯(lián)網(wǎng).