《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Android的翻轉(zhuǎn)式課堂教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Android的翻轉(zhuǎn)式課堂教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
2015年微型機(jī)與應(yīng)用第21期
魏羽焜,肖 樂(lè)
(常熟理工學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 常熟 215500)
摘要: 設(shè)計(jì)了一款基于Android的翻轉(zhuǎn)式課堂教學(xué)系統(tǒng),系統(tǒng)包括四個(gè)主要模塊:微課學(xué)習(xí)、課堂互動(dòng)、錯(cuò)題本、學(xué)情分析??蛻?hù)端用到了多線程交互、afinal加載圖片以及gson解析數(shù)據(jù)等主要技術(shù);服務(wù)端運(yùn)用了MVC模式,通過(guò)Dao類(lèi)來(lái)控制數(shù)據(jù)的訪問(wèn)。軟件適用于Android平板,可以廣泛應(yīng)用于各大中小學(xué)的課堂教學(xué)中。使學(xué)生有更多的自主學(xué)習(xí)時(shí)間,提高學(xué)生學(xué)習(xí)樂(lè)趣;老師可以系統(tǒng)、直觀地記錄每位學(xué)生的學(xué)習(xí)情況和自己教學(xué)情況。
Abstract:
Key words :

  摘  要: 設(shè)計(jì)了一款基于Android的翻轉(zhuǎn)式課堂教學(xué)系統(tǒng),系統(tǒng)包括四個(gè)主要模塊:微課學(xué)習(xí)、課堂互動(dòng)、錯(cuò)題本、學(xué)情分析??蛻?hù)端用到了多線程交互、afinal加載圖片以及gson解析數(shù)據(jù)等主要技術(shù);服務(wù)端運(yùn)用了MVC模式,通過(guò)Dao類(lèi)來(lái)控制數(shù)據(jù)的訪問(wèn)。軟件適用于Android平板,可以廣泛應(yīng)用于各大中小學(xué)的課堂教學(xué)中。使學(xué)生有更多的自主學(xué)習(xí)時(shí)間,提高學(xué)生學(xué)習(xí)樂(lè)趣;老師可以系統(tǒng)、直觀地記錄每位學(xué)生的學(xué)習(xí)情況和自己教學(xué)情況。

  關(guān)鍵詞: Android;翻轉(zhuǎn)課堂在線教育;移動(dòng)開(kāi)發(fā)

0 引言

  當(dāng)今社會(huì)極高的網(wǎng)絡(luò)覆蓋率和智能設(shè)備的使用率必定會(huì)影響到現(xiàn)在的教育模式,因此翻轉(zhuǎn)課堂這種新興的教育類(lèi)型就應(yīng)運(yùn)而生。在翻轉(zhuǎn)課堂中,學(xué)生可以通過(guò)互聯(lián)網(wǎng)使用優(yōu)質(zhì)的教育資源,不再是單單地從課堂上獲取知識(shí)。老師的角色也發(fā)生了變化,其責(zé)任則是從主導(dǎo)學(xué)生的學(xué)習(xí)轉(zhuǎn)變?yōu)橐龑?dǎo)學(xué)生的學(xué)習(xí)[1-2]。

  國(guó)外很早就嘗試了這種翻轉(zhuǎn)式的課堂教學(xué),起源可以追溯到20世紀(jì)90年代初美國(guó)哈佛大學(xué)物理學(xué)教授埃里克·馬祖爾創(chuàng)立的“同伴教學(xué)法”[3],其本質(zhì)就是要求學(xué)生課下自學(xué)課程內(nèi)容,課上則是以“提問(wèn)-思考-回答”的互動(dòng)方式為主進(jìn)行教學(xué)。翻轉(zhuǎn)課堂在今后會(huì)成為一種教育趨勢(shì)。

001.jpg

  本文介紹了如何開(kāi)發(fā)基于Android的翻轉(zhuǎn)式課堂教學(xué)APP軟件。該軟件服務(wù)器端使用Java開(kāi)發(fā),靈活運(yùn)用了MVC模式[4-5](模型Model、視圖View、控制器Controller),如圖1所示。使用HTTP通信協(xié)議,可以為前端提供API。接口開(kāi)發(fā)采用DAO模式,一個(gè)DAO類(lèi)關(guān)聯(lián)著相關(guān)的實(shí)體類(lèi),并且對(duì)應(yīng)一個(gè)DAO實(shí)現(xiàn)類(lèi)。通過(guò)這種方式可以方便快捷地通過(guò)接口查詢(xún)到數(shù)據(jù)庫(kù)中的數(shù)據(jù)。如果需要對(duì)某模塊進(jìn)行增、刪、改、查操作,則可以直接調(diào)用該DAO類(lèi)來(lái)實(shí)現(xiàn)[6]。

1 系統(tǒng)功能設(shè)計(jì)

002.jpg


  本系統(tǒng)主要包含四個(gè)模塊:微課學(xué)習(xí)、課堂互動(dòng)、錯(cuò)題集、學(xué)情分析。數(shù)據(jù)庫(kù)設(shè)計(jì)采用關(guān)系型數(shù)據(jù)庫(kù),所有表均滿(mǎn)足第二范式。共設(shè)計(jì)有51張數(shù)據(jù)表,如圖2所示,每張表的每一項(xiàng)數(shù)據(jù)都有唯一的ID,這樣可以方便以后的操作,不會(huì)因?yàn)槟骋涣杏兄貜?fù)數(shù)據(jù)導(dǎo)致缺失主鍵。

  1.1 微課學(xué)習(xí)模塊

003.jpg

  微課學(xué)習(xí)模塊如圖3所示,主要包含了該學(xué)校提供的微課程,用戶(hù)可以根據(jù)年級(jí)、科目以及教課老師等分類(lèi)進(jìn)行篩選查詢(xún)。學(xué)生可以為每門(mén)課程進(jìn)行評(píng)分,評(píng)分高的課程將會(huì)出現(xiàn)在“推薦課程”欄目中。學(xué)生也可以對(duì)每門(mén)課程進(jìn)行評(píng)論,用來(lái)發(fā)表觀后感。在觀看微課后,學(xué)生可以在視頻下面的筆記模塊記錄學(xué)習(xí)心得。該條記錄會(huì)在該學(xué)生每次打開(kāi)這個(gè)視頻的時(shí)候顯示在下方。學(xué)生也可以在視頻下方的答疑模塊提出觀看視頻后存在的疑問(wèn),該疑問(wèn)會(huì)出現(xiàn)在老師的個(gè)人中心,老師可以對(duì)其進(jìn)行記錄并回復(fù)。每個(gè)微課視頻后都有老師布置的該科作業(yè),學(xué)生的做題記錄會(huì)反饋到老師端,這樣老師就可以及時(shí)了解到學(xué)生的知識(shí)薄弱點(diǎn),并且對(duì)上課的講述重點(diǎn)進(jìn)行相應(yīng)的調(diào)整。

  1.2 課堂互動(dòng)模塊

004.jpg

  課堂互動(dòng)模塊如圖4所示,主要用于活躍課堂氣氛,增加老師與學(xué)生的交流。老師進(jìn)入該模塊后首先選擇其正在上課的班級(jí),再選擇其正在上課的科目(老師可能教多門(mén)課),最后選擇其之前上傳的題組。老師可以對(duì)題組中的題目進(jìn)行選擇,選擇完畢后發(fā)送給學(xué)生進(jìn)行搶答(選擇和判斷題)。進(jìn)入搶答界面后,若老師點(diǎn)擊了開(kāi)始搶答,則計(jì)時(shí)器會(huì)啟動(dòng),在這段時(shí)間內(nèi),該班級(jí)在線的學(xué)生將會(huì)收到老師開(kāi)啟搶答的題目,并且可以進(jìn)行作答。學(xué)生作答的實(shí)時(shí)結(jié)果會(huì)通過(guò)柱狀圖反應(yīng)給教師,老師點(diǎn)擊選項(xiàng)對(duì)應(yīng)的柱狀圖后會(huì)顯示選擇該選項(xiàng)的所有學(xué)生。當(dāng)老師點(diǎn)擊了停止搶答或者搶答時(shí)間到了之后,學(xué)生端也會(huì)顯示出全班的作答情況,并且顯示出正確答案。做錯(cuò)的題目會(huì)通過(guò)后臺(tái)自動(dòng)加入到該生的錯(cuò)題集。老師也可以根據(jù)該題目的對(duì)錯(cuò)人數(shù)進(jìn)行詳細(xì)的講解。

  1.3 錯(cuò)題集模塊

  錯(cuò)題集多數(shù)情況由后臺(tái)操作,學(xué)生在課堂上或者課后做錯(cuò)的題目都會(huì)自動(dòng)加入該科目所在的錯(cuò)題集,學(xué)生點(diǎn)擊后可以查看到該題目的正確答案和詳細(xì)解答過(guò)程,如圖5所示。

005.jpg

  1.4 學(xué)情分析模塊

006.jpg

  學(xué)情分析模塊主要是幫助老師和學(xué)生更加直觀地了解到班級(jí)以及自己的學(xué)習(xí)情況,如圖6所示。通過(guò)對(duì)比班級(jí)的歷次成績(jī)以及自身的成績(jī),就可以讓學(xué)生了解到自己在這段時(shí)間的學(xué)習(xí)情況。老師也可以查看到年級(jí)中所有班級(jí)的平均分來(lái)分析自己在這段時(shí)間的教學(xué)成果。

2 系統(tǒng)實(shí)現(xiàn)關(guān)鍵技術(shù)

  2.1 視頻播放手勢(shì)控制

  觀看微課時(shí),用戶(hù)可以通過(guò)左右滑動(dòng)來(lái)控制快進(jìn)和后退、上下滑動(dòng)來(lái)調(diào)整音量以及雙擊進(jìn)入全屏和退出全屏。因?yàn)橐曨l播放本身是在一個(gè)scrollview中,需要先在視頻控件中避免父控件攔截觸摸事件,使用requestDisallowInterceptTouchEvent(true)來(lái)實(shí)現(xiàn)。

  滑動(dòng)的監(jiān)聽(tīng)事件主要是通過(guò)GestureDetector類(lèi)來(lái)識(shí)別手勢(shì)?;瑒?dòng)快進(jìn)時(shí)需要同時(shí)調(diào)整進(jìn)度條和當(dāng)前播放時(shí)間以及判斷是否播放完畢。雙擊全屏則是通過(guò)判斷兩次點(diǎn)擊的間隔時(shí)間來(lái)做操作。因視頻播放本身是一個(gè)fragment,所以全屏?xí)r需要修改側(cè)邊欄的屬性為GONE。

  如下代碼可以實(shí)現(xiàn)視頻的手勢(shì)快進(jìn):

  if(Math.abs(distanceX)>Math.abs(distanceY)){

  //橫向移動(dòng)大于縱向移動(dòng)

  if(distanceX>=DpPxConvert.dip2px(((Activity)context),STEP_PROGRESS)){ //快退,用步長(zhǎng)控制改變速度,可微調(diào)

  gesture_iv_progress.setImageResource

  (R.drawable.class_souhu_player_backward);

  if(playerCurrentPosition>3*1000){//避免為負(fù)

  playerCurrentPosition-=3*1000;

  //scroll方法執(zhí)行一次快退3 s

  mediaPlayer.seekTo((int)playerCurrentPosition);

  }else{

  playerCurrentPosition=3*1000;

  mediaPlayer.seekTo((int)playerCurrentPosition);

  }

  }else if(distanceX<=

  -DpPxConvert.dip2px(((Activity)context),

  STEP_PROGRESS)){//快進(jìn)

  gesture_iv_progress.setImageResource

 ?。≧.drawable.class_souhu_player_forward);

  if(playerCurrentPosition<playerDuration-16*1000){

  //避免超過(guò)總時(shí)長(zhǎng)

  playerCurrentPosition+=3*1000;

  //scroll執(zhí)行一次快進(jìn)3 s

  mediaPlayer.seekTo((int)playerCurrentPosition);

  }else{

  playerCurrentPosition=playerDuration-10*1000;

  mediaPlayer.seekTo((int)playerCurrentPosition);

  }

  }

  }

  2.2 多線程交互

  課堂互動(dòng)的搶答功能是使用定時(shí)輪詢(xún)來(lái)請(qǐng)求數(shù)據(jù)。主線程無(wú)法訪問(wèn)網(wǎng)絡(luò),所以需要開(kāi)辟新線程來(lái)請(qǐng)求網(wǎng)絡(luò)資源。線程中需要請(qǐng)求:老師總共開(kāi)啟的題目數(shù)、當(dāng)前為第幾道題目、每個(gè)選項(xiàng)選擇的人數(shù)、題目?jī)?nèi)容和答案解析、班級(jí)的人數(shù)、當(dāng)前提交的人數(shù)等。因?yàn)椴煌瑫r(shí)期需要請(qǐng)求不同的數(shù)據(jù)也就是開(kāi)啟不同的線程,這就需要使用flag來(lái)控制線程的開(kāi)和閉。

  2.3 自定義Imageview

  很多圖片因?yàn)橐苿?dòng)設(shè)備尺寸限制導(dǎo)致圖片尺寸不夠大,這時(shí)就需要放大。放大就要通過(guò)自定義的imageview來(lái)實(shí)現(xiàn)原先沒(méi)有的功能,如手勢(shì)放大和拖拽移動(dòng)。實(shí)現(xiàn)這些功能需要獲取屏幕大小、圖片大小、放大縮小的極限值、縮放手勢(shì)時(shí)兩指的距離、觸摸的位置等。根據(jù)觸摸點(diǎn)為一點(diǎn)或兩點(diǎn)(getPointerCount)來(lái)判斷是拖拽還是縮放;再根據(jù)兩指的移動(dòng)距離來(lái)判斷縮放的比例。

  如下代碼可以實(shí)現(xiàn)圖片拖拽縮放:

  if(scale>1&& this.getWidth()<=MAX_W){

  current_Left=this.getLeft()-disX;

  current_Top=this.getTop()-disY;

  current_Right=this.getRight()+disX;

  current_Bottom=this.getBottom()+disY;

  this.setFrame(current_Left,current_Top,current_Right,current_Bottom);

  /****此時(shí)考慮到對(duì)稱(chēng),只做一遍判斷就可以*/

  if(current_Top<=0 && current_Bottom>=screen_H){

  isControl_V=true;//開(kāi)啟垂直監(jiān)控

  }else{

  isControl_V=false;

  }

  if(current_Left<=0&& current_Right>=screen_W){

  isControl_H=true;//開(kāi)啟水平監(jiān)控

  }else{

  isControl_H=false;

  }

  }

  2.4 Afinal加載圖片

  Afinal是一個(gè)orm、ioc框架,遵循約定大于配置原則,無(wú)需任何配置即可完成所有工作,但也可以通過(guò)配置去滿(mǎn)足個(gè)人的個(gè)性化需求。Afinal提倡代碼快速簡(jiǎn)潔。在Android開(kāi)發(fā)中,圖片的顯示必不可少,由于Android運(yùn)行平臺(tái)的特點(diǎn),在加載圖片,特別是加載網(wǎng)絡(luò)圖片時(shí),一般都會(huì)完成圖片的緩存,從而減少Android系統(tǒng)的運(yùn)行負(fù)荷。而完成圖片的緩存,又分為兩種,一種是完成圖片的本地緩存,即把網(wǎng)絡(luò)加載過(guò)的圖片放在本地,這樣當(dāng)下次再次加載相同圖片時(shí),就可以直接從本地的硬盤(pán)中獲取圖片,從而提高圖片的加載速度,更重要的是減少流量和手機(jī)電量的損耗。另一種就是緩存在內(nèi)存的機(jī)制。使用afinal,當(dāng)listview滑動(dòng)加載圖片時(shí)就會(huì)從內(nèi)存中獲取圖片資源。

  如下代碼可以實(shí)現(xiàn)從網(wǎng)絡(luò)獲取圖片:

  private FinalBitmap fb;

  fb=FinalBitmap.create(context);

  fb.display(View imageView,String uri,int imageWidth,int imageHeight);//分別傳入顯示圖片的imageview控件,

  圖片的url,圖片的寬度,圖片的高度

  2.5 后臺(tái)數(shù)據(jù)庫(kù)查詢(xún)封裝JDBC

  本項(xiàng)目數(shù)據(jù)庫(kù)共有51張表,因?yàn)闋可娴酱罅康臄?shù)據(jù)處理與查詢(xún),所以需要健壯的方法來(lái)完成數(shù)據(jù)的處理,包括異常的捕捉、sql語(yǔ)句的執(zhí)行以及查詢(xún)結(jié)果的轉(zhuǎn)換等。

3 系統(tǒng)的實(shí)現(xiàn)

  微課學(xué)習(xí)包括了學(xué)校提供的視頻課程、學(xué)生可以觀看老師安排的課程和自己感興趣的課程,并且對(duì)視頻進(jìn)行評(píng)價(jià)以及提出疑問(wèn)。如圖7所示。

007.jpg

  錯(cuò)題集模塊用于記錄學(xué)生在本系統(tǒng)中課堂和課后做錯(cuò)的題目;學(xué)生也可以上傳自己在線下的錯(cuò)題。每道錯(cuò)題都包含了正確答案和詳細(xì)的解析,便于學(xué)生進(jìn)行復(fù)習(xí)鞏固,如圖8所示。

  學(xué)情分析是教學(xué)效果的體現(xiàn),用于分析學(xué)生某階段的學(xué)習(xí)情況。師生可以查詢(xún)到每次考試的班級(jí)平均分以及個(gè)人在班級(jí)中所處的情況,這些數(shù)據(jù)都是通過(guò)折線圖的形式表現(xiàn)出來(lái),如圖9所示。

008.jpg

  通過(guò)長(zhǎng)時(shí)、多次的數(shù)據(jù)分析可以得出每位學(xué)生的雷達(dá)圖,雷達(dá)圖中顯示學(xué)生的強(qiáng)項(xiàng)和弱項(xiàng),讓學(xué)生可以更加了解自身的情況,如圖10所示。

009.jpg

4 結(jié)論

  當(dāng)今的教育要求學(xué)生有較強(qiáng)的自學(xué)能力,有自己的思想,會(huì)合理安排自己的時(shí)間,翻轉(zhuǎn)課堂使學(xué)生可以通過(guò)互聯(lián)網(wǎng)去使用優(yōu)質(zhì)的教育資源,不再是單單地從課堂上獲取知識(shí)?;贏ndroid的翻轉(zhuǎn)式課堂教學(xué)APP軟件,包含了微課學(xué)習(xí)、課堂互動(dòng)、錯(cuò)題集和學(xué)情分析等功能,適應(yīng)了現(xiàn)代教學(xué)的需求,老師根據(jù)學(xué)生課后作業(yè)的情況提前對(duì)講課重點(diǎn)進(jìn)行調(diào)整,通過(guò)該軟件能很好地將翻轉(zhuǎn)課堂運(yùn)用到教學(xué)實(shí)踐中,為課堂教學(xué)改革提供新的可能。

參考文獻(xiàn)

  [1] 秦?zé)槦?翻轉(zhuǎn)學(xué)習(xí):課堂教學(xué)改革的新范式[J].電化教育研究,2013(8):84-90.

  [2] 臺(tái)大校訓(xùn).哈佛大學(xué)教授Eric Mazur蒞校演講開(kāi)啟互動(dòng)教學(xué)與創(chuàng)意實(shí)驗(yàn)藍(lán)圖[N].2010-06-16(4).

  [3] MAZUR E. Can we teach computers to teach[J]. Computers in Physics,1991,5(1):31-37.

  [4] 李佐彬.Android開(kāi)發(fā)入門(mén)與實(shí)戰(zhàn)體驗(yàn)[M].北京:機(jī)械工業(yè)出版社,2011.

  [5] 邁耶(Reto Meier).Android4高級(jí)編程(第3版)[M].余建偉,趙凱,譯.北京:清華大學(xué)出版社,2013.

  [6] 孫衛(wèi)琴,李洪成.Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解(第2版)[M].北京:電子工業(yè)出版社,2009.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。