賀甘芹+盧國慶



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