任宇+舒暉
摘 要
隨著以手機為代表的智能移動終端以及高速移動網絡不斷發展,利用碎片化時間,進行移動教學已經越來越成為一種發展趨勢。本文以《病原生物與免疫學》課程為例,探討了使用Java EE以及Android技術架構開發手機課程的過程。
【關鍵詞】移動學習 手機課程 Android開發
1 移動學習
國內高校通常依托校園網上建設了各類B/S數字化教學平臺,擁有大量的網絡課程和精品課程。但隨著移動互聯網的興起,新的媒體介質和交互技術不斷涌現,基于桌面互聯網(校園網)的網絡教學手段暴露出學習的時空界限仍然明顯,沒有很好地實現以學習者為中心以及師生/生生之間的交互能力不足等問題。
移動學習(e-Learning)是數字化學習在新的歷史條件下的全新發展,是指學習者利用移動通信網絡技術設備獲取教育信息、教育資源和教育服務,并在適當的情境下通過移動技術實現教與學的豐富交互,隨時隨地進行的數字化學習形式。完成移動學習的介質多種多樣,包括智能手機、平板電腦以及移動電腦等等。其中,由于手機的便攜性以及普及性,基于智能手機的移動學習是一種比較典型的實現方式。本文將以裝載Android平臺的智能手機為例,介紹《病原生物與免疫學》手機課程的開發方法。
2 課程系統設計
2.1 整體設計
《病原生物與免疫學》手機課程系統分為前端以及后端兩個組成部份:基于Android技術開發的前端客戶端App展示系統,以及基于Java EE技術開發的后端管理及服務系統。前后端之間的通訊采用HTTP協議。前端調用后端API接口,獲取后端返回的JSON或二進制流數據,按前端規定的展示格式向學習者展現;前端生成文字、語音評論通過后端API接口,上傳至后端文件目錄或數據庫保存。
2.2 功能設計
《病原生物與免疫學》是基礎醫學的一門專業基礎課,該課程由以下6個功能模塊組成。
2.2.1 用戶登陸模塊
本課程用戶限于校內,用戶信息通過校內統一身份認證系統同步至本系統。用戶可以使用校內統一的用戶名和密碼完成登陸過程,登陸完成后,用戶即可以上傳文本或語音評論;其它展示性內容無需登陸即可使用。
2.2.2 課程介紹
該模塊屬于引導性程序,主要介紹課程基本情況,教學團隊組成情況,授課方式以及課程的參考資料,使學生初步了解課程的主要學習內容以及學習目標。
2.2.3 知識倉庫
知識倉庫是由離散化、碎片化的基礎知識點組織起來的結構樹。結構樹深度達到6級,包括了2662個基礎知識點,學習者可以通過結構樹在本課程所涵蓋的知識網絡中進行快速漫游。基礎知識點均為文本類型,絕大多數知識點字符數不超過300個,遵循了文獻[2]對文本資源的體積大小要求。
2.2.4 電子課件
本課程包含15組教學PPT,為了減少資源體積,降低網絡傳輸時間,遵循了文獻[2]的資源處理要求,PPT按頁被轉換成934幅JPEG圖片,方便學習者查看與下載。
2.2.5 PBL案例
PBL (Problem-Based-Learning)即“以問題為導向的學習”,是以問題為基礎,學生為中心,教師為引導的小組討論式教學。本課程收錄了包括“包蟲病-草原上游蕩的幽靈”等7個PBL案例。
2.2.6 評論/回復
該模塊主要為師生與生生互動提供支持與保證。該模塊設計了文本與語音兩類交互方式,師生/生生之間不但可以通過文字形式進行交互,還可以像“微信”一樣,直接錄入一段語音來尋求幫助。該模塊不是一個獨立的功能體,在知識倉庫模塊中,交互功能位于每一個基礎知識點內部,用戶可以對每一個知識點展開咨詢;在每一個PBL案例教學中,用戶可以隨時對案例展示交互。
3 課程后端開發
課程后端是系統的支撐系統,通過HTTP協議為前端提供各功能模塊的數據支持,同時也接收前端回傳的文字/語音評論,保存并向前端完成重放。課程后端保存了課程的所有資源,包括課程介紹、知識倉庫、電子課件、PBL案例等功能模塊的數據內容。其中,課程介紹、知識倉庫、PBL案例以及文本格式的評論/回復采用JSON格式向客戶端返回,電子課件、評論/回復的語音內容采用二進制流格式向客戶端返回。
3.1 開發/運行環境
Java EE(Java Platform,Enterprise Edition)是sun公司推出的企業級應用程序版本,提供了Web 服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0應用程序,本系統后端采用此技術架構。開發工具采用Eclipse Java EE IDE for Web Developers 4.6.1 作為開發/編譯環境,JDK版本采用JAVA EE SDK 1.8,另外采用Tomcat 8.5.8作為web容器。
3.2 數據庫設計
數據庫系統采用MySql 5.1.30。數據庫由7張數據表組成:用戶信息表記錄了老師和學生的基本信息以及登陸憑證,用戶信息表由校內的統一身份認證系統定時同步,限定了訪客的來源;知識倉庫目錄表定義了知識倉庫的樹型結構,使用此表可以在前端迭代出樹狀網絡;知識點內容表定義了知識倉庫樹節點的具體內容,為圖文混合排版HTML結構;電子課件表記錄了由PPT幻燈片生成的JPEG圖片的地址;門戶表定義了課程介紹的HTML圖文混排內容,也可以為其它提示性內容提供數據;PBL表定義了PBL案例教學的問題、案例;評論表定義了交互的內容,對于文本評論和回復,直接記錄在數據庫中,對于語音評論及回復,記錄的是語音文件地址。endprint
3.3 開發框架選用
JAVA EE開發框架(Framework)指的是實現了某個應用領域通用完備功能(除去特殊應用的部分)的底層服務,使用框架的編程人員可以在一個通用功能已經實現的基礎上開始具體的系統開發,可以加快應用系統的開發速度。本次系統開發主要使用到了:C3P0 JDBC連接池,用于數據連接的自動管理;BeanUtils,用于將數據封閉到Java Bean中;DbUtils,用于簡化SQL查詢與結果集處理;FastJSON,用于后端向前端生成JSON格式的響應數據;FileUpload,用于處理前端向后端提交的語音評論文件。
3.4 核心服務實現
前端與后端程序之間通過服務接口實現交互。服務接口采用標準HTTP協議方式調用,前端通過POST或GET方式向后端傳遞查詢參數,后端生成JSON格式數據或二進制流后,向前端返回。下文描述了本次開發的主要服務接口。
User類:用戶登陸管理類。主要用來完成用戶登陸,使用JSON格式返回登陸用戶的基礎信息。
Common類:通用信息管理類。本類用來向客戶端輸出通用信息,現階段主要用來輸出課程介紹信息,可在后期擴展至其它通用信息調用處理。
ZTree類:知識倉庫樹管理類。本類處理樹型結構節點的增加、插入、編輯與刪除;輸出JSON格式數組的全部或者部份樹結構,前端可以根據數組的自迭代結構,生成樹型知識倉庫。本類還用來錄入與輸出各基礎知識點的HTML內容,輸出采用UTF-8純文本編碼格式,多媒體內容采用地址引用,多媒體文件存放于應用服務器空間。
PPT類:電子課件管理類。本類接受對電子課件的目錄結構的請求,返回JSON格式數組。本類還對電子課件的內容進行管理,電子課件被轉換成JPEG圖片組,每張JPEG圖片不超過200kb,前端通過此類獲取特定JPEG圖片組的文件系統位置以及圖片索引范圍。
PBL類:PBL教學案例管理類。本類接受對PBL教學案例的目錄結構的請求,返回JSON格式數組。本類還用來響應對特定PBL案例的內容請求,返回HTML格式內容。
Commnet類:評論/回復管理類。此類接收前端上傳的文本/語音評論;接受前端請求,返回特定基礎知識點下的文本內容或語音評論地址。
4 課程前端開發
前端開發有Android原生開發,混合開發兩種常見形式。原生開發可以訪問手機的全部功能,運行速度快,性能高,能夠提供最佳的用戶體驗,但原生開發也具有開發成本高,版本控制能力差等顯著不足。混合開發是同時采用Android原生技術與HTML5技術的一種開發方式。混合開發的本質是運行在手機瀏覽器上的HTML頁面,具有機型適配良好,系統升級快等優點。本系統前端采用混合開發的方式。
4.1 開發環境
本次前端開發環境采用Android studio 1.2。 Android Studio 是一個Android集成開發工具,基于IntelliJ IDEA. 類似 EclipseADT,Android Studio 提供了集成的 Android 開發工具用于開發和調試。為了對較舊的手機提供訪問支持,使用的Minimum SDK為Android 4.0(API 14)。
4.2 核心功能實現
用戶登陸與注銷:在項目assest目錄下建立login.html,要求用戶輸入用戶名及密碼,并通JavaScript異步服務接口,在服務器上校驗。服務器返回JSON格式登陸結果后,如果登陸成功,則在HTML5頁面上調用Android定義的方法,將用戶重新引導至首頁,如果校驗失敗,則提示用戶,要求重新登陸。注銷方法類似。
課程介紹/PBL展示:在MainActivity類中通過WebView控件調用本地main.html頁面,該頁面引用后端定義的課程介紹以及PBL服務接口,使用JavaScript異步獲取相關HTML信息,并返回給用戶。
知識結構樹:用戶點擊菜單中的知識倉庫后,WebView控件通過服務接口,異步獲取第0級樹節點,用戶可以按需完成展開,樹的深度最大為6級。知識結構樹分為導航節點,帶內容的導航節點以及葉子節點。導航節點沒有內容,只下子結點,帶內容的導航節點不僅有子節點,還帶有知識內容,葉子節點只有知識點內容。
電子課件:每個電子課件被轉換為JPEG圖片組。用戶點擊菜單中的電子課件后,WebView控件通過服務接口,首先獲取電子課件目錄結構,并向用戶展示。用戶點擊具體電子課件后,服務接口向前端返回相關圖片索引范圍以及圖片物理地址,WebView控件迭代圖片組,向用戶展示。
評論與回復:在知識結構樹的每一個基礎知識點以及每一個PBL教學案例的內容以下,通過服務接口,異步獲取該知識點或PBL案例的評論/回復JSON數組,并展示給用戶。在評論/回復以下,建立multipart/form-data類型的Form表單,提供文字/語音評論功能。用戶點擊評論/回復后,向服務接口發出異步上傳請求,后端服務執行請求,并將評論/回復重放給用戶。
5 結束語
本文分析了數字化學習與移動學習的聯系與區別,以《病原生物與免疫學》醫學課程為例,確立了整個系統的功能設計與數據庫設計,并通過Java EE以及Android技術架構,分別建立了系統后端支撐平臺以及前端展示平臺,演示了移動手機課程的完整建設流程。
參考文獻
[1]郭紹青,黃建軍,袁慶飛.國外移動學習應用發展綜述[J].電化教育研究,2011(05):105-109.
[2]蘇仰娜,李靜,黃丹.移動學習資源開發現狀及其設計原則探究[J].中國信息技術教育,2015(12):81-84.
[3]汪雪蘭,朱小南,伍宇平等.中國式課堂PBL的實踐與探索[J].中山大學學報論叢,27(03):13-16.
[4]百度百科.JAVA EE[EB/OL].https://baike.baidu.com/item/Java%20EE/2180381?fr=aladdin,2016-02-06.
[5]黃琰.基于智能手機的移動學習資源設計與開發[J].軟件導刊,2016(08):99-101.
[6]李青.多終端自適應移動課程管理系統的設計與開發[J].現代教育技術,2011(10):14-19.
[7]王海峰,項冬冬,吳鵬.基于Android技術《Java程序設計》課程教學資源建設的研究與實踐[J].福建電腦,2017(04):69-70+91.
作者單位
成都醫學院現代教育技術中 四川省成都市 610500endprint