賀甘芹+盧國慶
摘 要:為了幫助教師統(tǒng)計學(xué)生的出勤情況,節(jié)約課堂點名時間,文章運用GPS定位技術(shù),設(shè)計并實現(xiàn)了基于App Inventor的GPS課堂點名應(yīng)用,通過收集教師與學(xué)生的位置坐標(biāo)信息,計算每個學(xué)生與教師間的距離,實現(xiàn)了移動端自動化點名。
關(guān)鍵詞:App Inventor;Android GPS定位技術(shù);課堂點名應(yīng)用;計算距離
中圖分類號:G434 文獻(xiàn)標(biāo)志碼:B 文章編號:1673-8454(2016)08-0087-03
隨著我國高等教育規(guī)模的擴大,在校大學(xué)生的整體素質(zhì)呈現(xiàn)下滑趨勢,逃課現(xiàn)象普遍存在,嚴(yán)重影響著高等學(xué)府的學(xué)習(xí)氛圍以及學(xué)生自身素質(zhì)與專業(yè)水平。課堂點名作為高校課堂教學(xué)管理的有效手段,雖然是緩解這一問題的有效途徑,但對人數(shù)較多的課堂,逐一點名卻占據(jù)了一部分有效的教學(xué)時間。那么,如何實現(xiàn)精準(zhǔn)、迅速、同步的課堂點名,成為高校教師面臨的棘手問題[1]。部分學(xué)者研究通過短信貓[2]接收學(xué)生短信,或者通過指紋鑒別技術(shù)[3]采集到課學(xué)生的指紋等,達(dá)到課堂點名的目的,這些課堂點名方式均占據(jù)部分教學(xué)時間,不是真正意義上的自動化點名。隨著信息技術(shù)的發(fā)展,尤其是GPS定位技術(shù)的出現(xiàn),如果每個學(xué)生走進(jìn)教室之后就將自己的GPS坐標(biāo)共享給教師,教師就可以輕松確定學(xué)生的出勤情況了?;贏pp Inventor的GPS課堂點名應(yīng)用,節(jié)約了有效的教學(xué)時間,減少了對正常教學(xué)秩序的干擾,具有很強的實用性。
一、相關(guān)概念
1.App Inventor平臺簡介
App Inventor是一款由谷歌公司開發(fā)的可視化的編程工具,用于開發(fā)Android平臺的移動應(yīng)用。利用基于Web的圖形化用戶界面生成器,可以設(shè)計應(yīng)用的用戶界面,然后像“玩拼圖”一樣,將“塊語言”拼在一起,來定義應(yīng)用的行為。App Inventor具有操作簡單、開發(fā)環(huán)境搭建容易、應(yīng)用開發(fā)過程方便、開發(fā)周期短等特點[4]。
2.Android GPS定位技術(shù)
全球定位系統(tǒng)(Global Positioning System)是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng),該系統(tǒng)可以保證任意時刻、在地球上任意地點都可以同時觀測到四顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經(jīng)緯度與高度,實現(xiàn)導(dǎo)航、定位等功能。目前,移動設(shè)備都內(nèi)置了GPS模塊,在網(wǎng)絡(luò)連接建立后,移動設(shè)備利用Android GPS定位技術(shù),主要通過GPS模塊接收衛(wèi)星發(fā)送的位置信息,同時對定位數(shù)據(jù)(包括經(jīng)緯度、時間等)進(jìn)行解析,最終實現(xiàn)用戶手機的導(dǎo)航、定位等相關(guān)應(yīng)用。App Inventor作為基于面向?qū)ο蟮木幊唐脚_,提供了定位服務(wù)的API,可以獲取用戶當(dāng)前的位置信息,實現(xiàn)移動設(shè)備的實時定位。
二、應(yīng)用分析
傳統(tǒng)課堂點名是教師打印出學(xué)生名單,按照名單上的信息逐一確認(rèn),這種點名方式不僅耗費太多課堂時間,而且無法分辨出是否有人幫忙答到[5]。隨著信息技術(shù)不斷發(fā)展,各類移動設(shè)備(智能手機、iPad等)迅速普及,對于在校大學(xué)生而言,智能手機已經(jīng)成了他們時刻隨身攜帶的學(xué)習(xí)生活必備品,利用智能手機確定學(xué)生的出勤情況,比傳統(tǒng)點名方式簡單有效?;贏pp Inventor的GPS課堂點名應(yīng)用是利用手機GPS定位技術(shù),在App Inventor圖形化編程環(huán)境下設(shè)計并實現(xiàn)的系統(tǒng)。因為本應(yīng)用需要采集教師與學(xué)生的位置信息并計算二者間距離,根據(jù)距離值判定學(xué)生出勤情況,所以本應(yīng)用需要同時具備學(xué)生端和教師端兩部分。學(xué)生端完成教師與學(xué)生之間的距離計算并共享距離信息,教師端完成教師位置信息共享和到勤學(xué)生位置信息的獲取,通過教師和學(xué)生位置距離的計算和比較,實現(xiàn)課堂點名的自動化。
三、應(yīng)用設(shè)計與實現(xiàn)
基于上述分析,基于App Inventor的GPS課堂點名應(yīng)用由學(xué)生端和教師端兩部分構(gòu)成,以下分別從組件設(shè)計和邏輯設(shè)計介紹學(xué)生端和教師端應(yīng)用的設(shè)計與實現(xiàn)。
1.學(xué)生端的設(shè)計與實現(xiàn)
(1)學(xué)生端的組件設(shè)計
App Inventor是一個可視化、可拖拽的在線編程工具,應(yīng)用所有組件和塊結(jié)構(gòu)都是從組件工具欄和“塊”所在“抽屜”直接用鼠標(biāo)拖拽到界面中的。
組件設(shè)計是應(yīng)用程序界面的接口,對組件的設(shè)計也是對用戶界面的設(shè)計。應(yīng)用的組件由可視組件和非可視組件組成:課堂點名應(yīng)用的可視組件包括一個文本框,用來獲取學(xué)生的姓名;一個標(biāo)簽,用來顯示學(xué)生的地理位置和時間信息;三個按鈕,分別用來記錄學(xué)生位置信息、獲取教師位置坐標(biāo)并與學(xué)生的位置坐標(biāo)計算二者間距離、以及共享學(xué)生與教師之間的距離信息;一個垂直布局,用來安置可視組件;一個水平布局,用來安置三個按鈕。非可視組件包括一個位置傳感器,用來獲取當(dāng)前位置信息;一個計時器,用來獲取當(dāng)前時間信息;一個網(wǎng)絡(luò)微數(shù)據(jù)庫,用來存儲教師的位置信息和學(xué)生與教師之間的距離信息等。
對學(xué)生端的組件進(jìn)行如下設(shè)置:文本輸入框的提示為“請輸入你的名字”;標(biāo)簽的文本為“我的位置”,字號為30;按鈕的文本為“定位”、“計算距離”和“共享”,字號為24;垂直布局的水平對齊和垂直對齊為居中,高度和寬度為充滿;設(shè)置水平布局的水平對齊和垂直對齊為居中,高度為自動,寬度為充滿;網(wǎng)絡(luò)微數(shù)據(jù)庫的服務(wù)器地址為http://tinyWebdb.17coding.net。
(2)學(xué)生端的邏輯設(shè)計
在學(xué)生端組件設(shè)計完成后,需要為每個組件添加相應(yīng)的行為。
首先,顯示學(xué)生當(dāng)前的位置。當(dāng)定位按鈕被點擊時,首先要用到兩個全局變量x1,y1,變量x1表示學(xué)生位置坐標(biāo)的緯度,y1表示學(xué)生位置坐標(biāo)中的經(jīng)度,將調(diào)用位置傳感器獲取到的當(dāng)前位置的經(jīng)緯度分別賦值給x1,y1。一般從位置傳感器獲取讀數(shù)時需要幾秒鐘的時間,但如果GPS衛(wèi)星信號受到屏蔽或者設(shè)備并未開啟GPS設(shè)置,會一直沒有讀數(shù)。然后調(diào)用計時器獲取當(dāng)前時間,并設(shè)置日期時間格式為“yyyy/MM/dd\nahh:mm:ss”,再獲取變量x1,y1的值,將位置信息和時間信息合并文本后顯示在標(biāo)簽中。
其次,計算學(xué)生與教師之間的距離。地球是一個近乎標(biāo)準(zhǔn)的橢球體,它的赤道半徑為6378.140千米,極半徑為 6356.755千米,平均半徑6371.004千米。假設(shè)地球是一個完美的球體,它的半徑就是地球的平均半徑,記為R。如果以0度經(jīng)線為基準(zhǔn),那么根據(jù)地球表面任意兩點的經(jīng)緯度就可以計算出這兩點間的地表距離(這里忽略地球表面地形對計算帶來的誤差,僅僅是理論上的估算值)。假設(shè)兩點都在北半球,第一點A的經(jīng)緯度為(x1,y1),第二點B的經(jīng)緯度為(x2,y2)。根據(jù)三角推導(dǎo),可以得到計算兩點距離d的如下公式:
這個公式中,R和d單位是相同的,如果是采用6371.004千米作為半徑,那么d就是千米為單位,如果要使用其他單位,比如米,還需要做單位換算1千米=1000米。
當(dāng)計算按鈕被點擊時,分別調(diào)用網(wǎng)絡(luò)微數(shù)據(jù)庫獲取教師位置信息的經(jīng)度和緯度,根據(jù)獲取到的數(shù)值的標(biāo)簽判斷,標(biāo)簽為teacherx就將其數(shù)值賦值給變量x2,表示教師的緯度,標(biāo)簽為teachery就將其數(shù)值賦值給變量y2,表示教師的經(jīng)度。根據(jù)上述公式計算教師與學(xué)生之間的距離,并將距離值加上單位設(shè)置為標(biāo)簽文本。
在計算距離過程中,除了涉及全局變量x1,y1之外,還需要x2,y2,p,d,A,B這幾個局部變量。定義變量x2表示教師位置坐標(biāo)中的緯度,y2表示教師位置坐標(biāo)中的經(jīng)度,變量d表示學(xué)生和教師之間的距離值,p、A、B分別是為方便公式計算使用的三個變量,其中p=■(π取3.1415926),A=(y2-y1)*P,B=(x2-x1)*p。從網(wǎng)絡(luò)微數(shù)據(jù)庫獲取數(shù)據(jù)與本地數(shù)據(jù)計算兩點間的距離的邏輯設(shè)計代碼如見圖1。
最后,共享學(xué)生與教師的距離信息。點擊共享按鈕后,先判斷文本輸入框內(nèi)的文本是否為空。如果為空,則在標(biāo)簽文本中提示“請輸入你的姓名”,否則調(diào)用網(wǎng)絡(luò)微數(shù)據(jù)庫,以文本輸入框內(nèi)輸入的學(xué)生姓名為標(biāo)簽,變量d和計時器調(diào)用的當(dāng)前時間的合并文本為存儲值保存起來。變量d表示的距離單位為米,當(dāng)前日期時間格式為“yyyy/MM/dd ahh:mm:ss”。調(diào)用網(wǎng)絡(luò)微數(shù)據(jù)庫保存數(shù)值時,保存成功后提示“共享成功”。
2.教師端的設(shè)計與實現(xiàn)
(1)教師端的組件設(shè)計
教師端包含下列可視化組件:一個標(biāo)簽,用以顯示教師的位置信息;三個按鈕,分別用來定位教師的坐標(biāo)、掃描學(xué)生的坐標(biāo)顯示在列表中、以及清空列表;一個列表顯示框,用以顯示每個學(xué)生的到課信息;一個水平布局,用來安置三個按鈕。非可視組件包括如下:一個位置傳感器,用來獲取當(dāng)前位置信息;一個網(wǎng)絡(luò)微數(shù)據(jù)庫,用來存儲教師的位置坐標(biāo)和學(xué)生與教師之間的距離。
對教師端組件的屬性進(jìn)行如下設(shè)置,screen1的水平對齊為居左,垂直對齊為居上,允許滾動為真;標(biāo)簽的文本為“我的位置”,字號為24;按鈕的文本為“定位”、“掃描”和“清空”,字號為18;水平布局的水平對齊和垂直對齊為居中,高度為自動,寬度為充滿;最后設(shè)置網(wǎng)絡(luò)微數(shù)據(jù)庫的服務(wù)器地址。
(2)教師端的邏輯設(shè)計
教師端組件設(shè)計完成后,需為組件添加如下行為:
第一,顯示教師位置信息。當(dāng)定位按鈕被點擊時,調(diào)用位置傳感器獲取當(dāng)前位置的經(jīng)緯度,將其分別賦值給變量x2,y2,并以teacherx、teachery為教師的經(jīng)緯度標(biāo)簽,x2,y2為教師的經(jīng)緯度存儲值保存到網(wǎng)絡(luò)微數(shù)據(jù)庫,并將變量x2,y2所表示經(jīng)緯度的合并文本設(shè)置為標(biāo)簽文本。
在教師端中,也使用網(wǎng)絡(luò)微數(shù)據(jù)庫,當(dāng)網(wǎng)絡(luò)微數(shù)據(jù)庫保存數(shù)值成功時,提示“共享成功”;當(dāng)網(wǎng)絡(luò)微數(shù)據(jù)庫發(fā)生Web服務(wù)故障時,提示錯誤信息。教師端的定位、共享和顯示教師位置信息的邏輯設(shè)計代碼如圖2所示。
第二,掃描學(xué)生與教師之間的距離。當(dāng)掃描按鈕被點擊后,以學(xué)生姓名為標(biāo)簽,調(diào)用網(wǎng)絡(luò)微數(shù)據(jù)庫獲取每個學(xué)生與教師之間的距離值,成功獲取到距離值后,設(shè)全局變量list為空列表,將每個標(biāo)簽和距離值的合并文本添加到列表中第一個列表項的位置,設(shè)置列表顯示框的元素為變量list,列表顯示框的字號為22等。
四、問題分析與優(yōu)化
1.應(yīng)用存在的問題
筆者在課堂點名應(yīng)用測試階段發(fā)現(xiàn)存在如下問題:
(1)手機定位提示,影響用戶體驗
當(dāng)?shù)谝淮未蜷_應(yīng)用時,會出現(xiàn)詢問“某應(yīng)用正在嘗試通過網(wǎng)絡(luò)或者衛(wèi)星對您的手機定位,接受還是拒絕”的消息,點擊允許后應(yīng)用才能調(diào)用系統(tǒng)的GPS功能;如果學(xué)生點擊拒絕,課堂點名應(yīng)用就不能統(tǒng)計該學(xué)生的位置信息。
(2)應(yīng)用程序數(shù)據(jù),面臨覆蓋可能
課堂點名應(yīng)用所用的網(wǎng)絡(luò)微數(shù)據(jù)庫的服務(wù)器是公用的,可能發(fā)生應(yīng)用數(shù)據(jù)被別的應(yīng)用數(shù)據(jù)覆蓋的情況。學(xué)生端和教師端相關(guān)的數(shù)據(jù)都應(yīng)該同時存儲在本地微數(shù)據(jù)庫中,在應(yīng)用關(guān)閉或卸載之后,數(shù)據(jù)不會隨之丟失。
2.應(yīng)用優(yōu)化
(1)學(xué)生端的優(yōu)化
在學(xué)生端應(yīng)用上,為了防止替代他人作弊共享位置信息的行為,應(yīng)用程序應(yīng)該只允許學(xué)生輸入一次姓名。同時,程序還應(yīng)該將獲取到的位置信息存儲在本地微數(shù)據(jù)庫中,從本地微數(shù)據(jù)庫將數(shù)據(jù)共享至網(wǎng)絡(luò)微數(shù)據(jù)庫,防止學(xué)生關(guān)閉應(yīng)用后丟失數(shù)據(jù)還需要重新獲取數(shù)據(jù)。
(2)教師端的優(yōu)化
在教師端應(yīng)用上,應(yīng)該將從網(wǎng)絡(luò)微數(shù)據(jù)庫中獲得的學(xué)生距離信息存儲在列表中,并將列表存儲在微數(shù)據(jù)庫中,在應(yīng)用打開后,直接從微數(shù)據(jù)庫中獲得數(shù)據(jù),顯示在列表顯示框中,防止教師關(guān)閉應(yīng)用后丟失數(shù)據(jù)還需要重新獲取數(shù)據(jù)。在顯示學(xué)生的位置信息時,應(yīng)再做一次判斷,若某個學(xué)生的距離值在某個范圍內(nèi)且時間在當(dāng)前某時間段范圍內(nèi),就判斷他出勤,否則判斷為曠課。教師端應(yīng)用還需繼續(xù)完善,例如添加一項將學(xué)生的歷史數(shù)據(jù)導(dǎo)出為文件的功能,供教師查閱和統(tǒng)計學(xué)生出勤的情況。
目前,本應(yīng)用的開發(fā)階段已經(jīng)基本完成,正處于應(yīng)用測試階段。在測試階段,我們重點搜集用戶的反饋信息并進(jìn)行調(diào)整和完善代碼。同時,如何解決用戶體驗和數(shù)據(jù)庫存儲的限制等問題,將是下一階段的研究重點。
參考文獻(xiàn):
[1]楊洪章,高培成,何飛等.基于S3C2410嵌入式“課堂點名系統(tǒng)”的研究與開發(fā)[J].廊坊師范學(xué)院學(xué)報(自然科學(xué)版),2011,11(3):29-31.
[2]唐明偉,莊玉良,蔣勛等.基于短信貓的課堂自動點名系統(tǒng)[J].現(xiàn)代教育技術(shù),2013(10):115-120.
[3]Saraswat C, Kumar A. An Efficient Automatic Attendance System using Fingerprint Verification Technique[J]. International Journal on Computer Science & Engineering,2010,2(2):264-269.
[4]郭守超,周慶國,鄧常梅等.基于App Inventor 的移動學(xué)習(xí)探究[J].現(xiàn)代教育技術(shù),20014(9),121-125.
[5]李穎.基于WPF的課堂教學(xué)管理系統(tǒng)研究與設(shè)計[J].技術(shù)在線,2011(24)85-87.
(編輯:魯利瑞)