陳少鎮(zhèn) 王培彬 藍汝琪 曾梓鑫 楊森



摘要:鑒于市場上相關(guān)課程表APP暫不能實現(xiàn)教師與學(xué)生之間的教學(xué)互動,從而達到教與學(xué)更加完善化,方便教師與學(xué)生的學(xué)習(xí)和生活,一款基于移動端的APP——《Xone課程表》以及對應(yīng)可關(guān)聯(lián)的基于Java web的服務(wù)器管理應(yīng)運而生。這是一個基于課程表,集結(jié)作業(yè)、記事本、教學(xué)互動、行走計劃、相應(yīng)功能提醒技術(shù)、學(xué)習(xí)計劃設(shè)置于一體的新型移動應(yīng)用軟件,其功能更加符合當代教師與學(xué)生,特別是大學(xué)生對于課程表的實際使用需求以及教與學(xué)之間的緊密聯(lián)系。因此從教師結(jié)合學(xué)生雙重角度出發(fā),采用Shiro企業(yè)級安全權(quán)限架構(gòu)實現(xiàn)更加全面、合理、簡便、快捷的思維化定位。
關(guān)鍵詞:教學(xué)互動;課程表;移動應(yīng)用;新型;Shiro
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1009-3044(2018)04-0076-04
Mobile Internet + Teacher-student Interaction Curriculum Designs and Application
CHEN Shao-zhen, WANG Pei-bin, LAN Ru-qi, ZENG Zi-xin, YANG Sen
(Xinhua College of Sun Yat Sen University, Dongguan 523133, China)
Abstract: In view of the fact that App on the market is not yet able to achieve the teaching interaction between teachers and students so as to improve the teaching and learning and facilitate the learning and living of teachers and students , a mobile-based App - " Xone Curriculum Form " As well as the corresponding associated Java web-based server management came into being. This is a new type of mobile application software Based on the curriculum , assembly , notepad , teaching interaction , walking to plan , corresponding function reminding technology and learning plan sett , which is more in line with the functions of contemporary teachers and students , especially college students for the curriculum The actual use of the demand and the close connection between teaching and learning. Therefore , from the dual perspective of teachers and students , using Shiro enterprise-level security authority framework to achieve a more comprehensive , reasonable , simple and quick thinking orientation.
Key words: teaching interaction; curriculum; mobile applications; new type; shiro
1 背景
隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,國內(nèi)APP市場呈現(xiàn)爆炸式增長,各行各業(yè)的相關(guān)服務(wù)都能通過隨身性,便捷性的移動手機來實現(xiàn),而中國移動互聯(lián)網(wǎng)用戶不斷上升,手機網(wǎng)民占80%。大學(xué)生作為網(wǎng)絡(luò)的主要對象,也是使用APP的主力軍。APP在大學(xué)生的生活中越來越重要,APP很大程度上影響著大學(xué)生的娛樂、生活、學(xué)生、甚至工作方式。鑒于市場上的相關(guān)課程表APP暫不能實現(xiàn)教學(xué)互動,達到教與學(xué)更加完善化,并從學(xué)生角度出發(fā),更加全面、合理、簡便、快捷的思維化定位,新型的教學(xué)互動課程表意義及作用巨大。
2 Xone課程表應(yīng)用設(shè)計
2.1 Xone課程表總體設(shè)計
Xone課程表緊密的將移動端APP與Java web技術(shù)關(guān)聯(lián)運用服務(wù)器管理來最大程度實現(xiàn)課程表功能的可操作性、可執(zhí)行性。當學(xué)生與教師使用該應(yīng)用時,可以感受到其中的利用價值,并能從中獲取更多能便捷化學(xué)習(xí)與生活的功能,比如人性化的鬧鐘提醒功能和行走記錄排名功能都是從學(xué)生自主性的角度出發(fā),讓學(xué)生提高自我學(xué)習(xí)效率和學(xué)習(xí)興趣;教師與學(xué)生課程資料互動的技術(shù)也能在效率方面提高教育的效率與質(zhì)量。軟件集成多項技術(shù),采用先進的軟件體系結(jié)構(gòu)設(shè)計,技術(shù)先進、擴充性好;系統(tǒng)在軟件上通過驗證用戶登陸權(quán)限、操作權(quán)限等,保證系統(tǒng)具有良好的安全性。
根據(jù)功能需求,我們搭建一個Android開發(fā)平臺、Java web平臺和Ubuntu服務(wù)器,Ubuntu服務(wù)器運行著MySQL數(shù)據(jù)庫,將Android用戶的數(shù)據(jù)和Java web的數(shù)據(jù)結(jié)合在一起,達到數(shù)據(jù)共享。Android模擬器配合真機,使用Android Studio開發(fā)Android客戶端,使用IntelliJ idea和Myeclipse開發(fā)Java web。
2.2 Xone課程表功能介紹
該應(yīng)用中導(dǎo)航欄包含課程表、課程、筆記、行走計劃四部分,個人信息區(qū)域有個人中心、作業(yè)及翻譯功能等。
1) 課程表模塊。學(xué)生可以自主編輯課程以及設(shè)置提醒,導(dǎo)入其他同學(xué)分享的課程,學(xué)生還可以通過課程號查詢到相應(yīng)老師的課程,教師用戶可以在其Web端創(chuàng)建與提供課程號,其中還可以自行設(shè)置每個課程的上課提醒時間來提醒對應(yīng)學(xué)生,及時獲取上課信息,避免其他事情的影響而忘記上課時間;
2) 課程模塊。學(xué)生可以查詢自己的課程信息,關(guān)聯(lián)教師與個人課程的相關(guān)信息,學(xué)生可以進行對課程評價和留言等;教師用戶在這個功能對應(yīng)的是開設(shè)課程功能,通過唯一識別的課程編號與教務(wù)系統(tǒng)達成一致,來實現(xiàn)課程開設(shè),同樣存在課程評價和留言操作。
3) 作業(yè)模塊。其功能可以由教師上傳和發(fā)表課程作業(yè)信息,學(xué)生可以進行關(guān)聯(lián)教師課程以及相應(yīng)課程發(fā)表出來的作業(yè)、課件、文檔等,教師可以給相應(yīng)的文件設(shè)置截止時間功能,學(xué)生可以自行設(shè)置個人作業(yè)提醒,還可以添加、自動導(dǎo)入教師課程作業(yè)等;
4) 行走計劃模塊。學(xué)生可以通過設(shè)置行走計劃,實現(xiàn)運動軌跡,便可在該功能上獲得對應(yīng)的行走步數(shù),同時支持排行榜功能。其目的是讓用戶擁有更好、更有趣的體驗,也是促進大學(xué)生進行有計劃的學(xué)習(xí)生活,在一定程度上促使用戶時常開啟應(yīng)用及時獲取提醒。
5) 記事本模塊。為方便學(xué)生記錄與課后的回顧,提高課程效率與課后復(fù)習(xí),記事本功能實現(xiàn)了迅速起到喚起課上的相關(guān)記憶,節(jié)省大量時間,同時提供用戶個人時間表的安排。
6) 翻譯模塊。學(xué)生在課堂上、學(xué)習(xí)上面對需要翻譯的字句時,隨時可以進行快速翻譯的輔助工具,省去學(xué)生再次打開其他英語軟件進行翻譯的繁雜操作過程。
7) 輔助功能。學(xué)習(xí)計劃功能可以讓學(xué)生在有自我學(xué)習(xí)安排的情況下,制定自我的學(xué)習(xí)計劃,同時擁有鬧鐘或震動提醒功能,輔助學(xué)生進行四六級學(xué)習(xí)計劃、考研計劃等日常學(xué)習(xí)安排,讓學(xué)生可以在眾多學(xué)習(xí)準備中有條不紊的形成各自的時間表,從而提高學(xué)生的自主性,讓教與學(xué)實現(xiàn)真正的互動。
3 Xone課程表應(yīng)用實現(xiàn)
應(yīng)用的前端由安卓APP和后臺管理系統(tǒng)組成,前端技術(shù)使用到了Html、Javascript、CSS、jQuery、Android、Glide圖片加載框架和Litepal數(shù)據(jù)庫操作框架;后端技術(shù)運用到了Spring、SpringMVP、Mybatis、Mysql、Shiro框架、RBAC模型以及Swagger框架等。
3.1 前端技術(shù)應(yīng)用實現(xiàn)
在APP的整個開發(fā)中,一直以最新的技術(shù)為標準,打造以用戶體驗為核心的移動APP,在Android端的應(yīng)用中,我們也會應(yīng)用到較新的技術(shù),比如使用ActivityGroup來實現(xiàn)導(dǎo)航欄設(shè)計可以方便添加Activity,直接添加一個tabHost即可,但由于其擴展性非常的差,在需求新增的情況下,不能隨意地定制Tab項顯示的內(nèi)容,也難以實現(xiàn)顯示頁面的未讀信息等,更重要的是Activity是重量級的組件,當全部加載到同一個ActivityGroup中時,大大影響到APP的性能,非常不利于用戶的體驗。
相比之下,該項目使用的Fragment可以優(yōu)化這種情況,比如加載一個頁面時只需要new一個Fragment就可以了,代碼如下:
FragmentTransaction transaction = fragmentManager.beginTransaction();
TimetableFragment timetableFragment = new TimetableFragment();
transaction.add(R.id.main_fragment_lagout,timetableFragment);
從整體效果來衡量,增加了用戶的體驗效果,而且Tab制作非常方便,使用單選按鈕就能做切換頁面了。
采用前沿技術(shù)與框架可以使開發(fā)更加規(guī)范化,大大減少代碼量,使代碼更加清晰明了,增強代碼可閱讀性,也減少了出錯的頻率。在本項目中使用了LitePal數(shù)據(jù)庫操作框架,這是一個開源的Android庫,是關(guān)系映射(ORM)模式。在本項目中的配置文件如下:
形成配置文件就實現(xiàn)了數(shù)據(jù)庫功能封裝,mapping中的class對于的就是Java的一個實體類,這個實體類就是一張表的結(jié)構(gòu),屬性的名稱就是表的字段名,屬性的類型就是字段的類型,在操作數(shù)據(jù)庫時,對實體類的get和set方法進行操作便可完成封裝。
項目使用了TimetableBean這個類繼承DataSupport類,為我們提供數(shù)據(jù)庫的最后一步操作,比如我們要插入一些數(shù)據(jù)時,在使用子類的set方法后,使用父類的save方法就可以把數(shù)據(jù)插入到表中,完成整個數(shù)據(jù)的插入操作,代碼如下:
TimetableBean timetable = new TimetableBean();
timetable.setMyId(id);
timetable.setClasName(className);
timetable.setWeek(week);
timetable.setStartClass(startClass);
timetable.setClassSum(classSum);
timetable.setClassroom(classroom);
timetable.setCosid(itime);
timetable.setLineClassNum(lineClassNum);
timetable.save();
設(shè)置adapter就可以使用ListView,但是ListView存在運行效率的問題,因為每顯示一個item都要執(zhí)行g(shù)etView()方法,然后重新加載布局,當ListView有很多數(shù)據(jù)時,快速滾動ListView就會出現(xiàn)性能問題,相比之下RecyclerView可以單獨點擊列表中的一個控件,賦予每個控件單獨的點擊事件,解決了課程表列表下載課件和作業(yè)等需求,代碼實現(xiàn)如下:
final ClassFileAdapter.ViewHolder holder =
new ClassFileAdapter.ViewHolder(view);
holder.download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
ClassFileBean classFileBean = classFileBeanList.get(position);
holder.downloadProgress.setVisibility(View.VISIBLE);
download(URLConstant.SERVER_URL + classFileBean.getFileUrl(),holder.downloadProgress);}
});return holder;
3.2 后端技術(shù)應(yīng)用實現(xiàn)
本項目的后臺服務(wù)器邏輯結(jié)構(gòu)采用SpringMVC和Spring,使用mybatis操作數(shù)據(jù)庫。SpringMVC是擁有Spring的全部MVC功能模塊,MVC代表著三個部分,分別是:Model(模型)、View(視本項目操作數(shù)據(jù)庫是采用了MyBatis數(shù)據(jù)庫操作框架,相對Hibernate框架來說,MyBatis可以直接運行編寫SQL語句,數(shù)據(jù)庫操作方便化。MyBatis也是一種ORM數(shù)據(jù)庫框架,ORM框架的全稱是Object/Relation Mapping,中文是對象/關(guān)系數(shù)據(jù)庫映射。ORM的工作流程是就是把持久化對象增刪查改的操作轉(zhuǎn)成數(shù)據(jù)庫的實際操作,工作如圖4。
運用這些框架不僅方便了開發(fā)者進行開發(fā),還提高開發(fā)效率。在處理課程表接口的問題上,Swagger框架實現(xiàn)了前后端對接開發(fā),自動生成文檔和提供數(shù)據(jù)測試,比如在Controller的方法中加上注釋即可。
表單數(shù)據(jù)通過Java實體類注釋便可完成。在項目中因為使用到兩個角色:老師和學(xué)生,為了保證權(quán)限之間的安全,我們引用Shiro權(quán)限控制框架,Shiro是企業(yè)級的角色權(quán)限管理框架,采用RBAC設(shè)計模式實現(xiàn)角色管理控制。
4 結(jié)束語
軟件的設(shè)計更是從教師與學(xué)生之間的教學(xué)互動出發(fā),讓學(xué)生能夠及時獲取課程相關(guān)信息,可以下載、查看教師上傳的課件和通知,教師也可以非常方便的通過一個軟件直接關(guān)聯(lián)學(xué)生,一站式完成教學(xué)工作的輔助內(nèi)容,能夠在最大限度地降低教師冗雜的教學(xué)工作壓力,有利于保證提高學(xué)生自主性學(xué)習(xí)的同時,提供更好的教學(xué)服務(wù),真正形成“教學(xué)互動”,為中國教育的發(fā)展提供科技推動。
參考文獻:
[1] 郭霖. 第一行代碼Android [M]. 2版.北京: 人民郵電出版社.
[2] 齊治昌, 譚慶平, 寧洪. 軟件工程[M]. 3版.北京: 高等教育出版社,2012.
[3] 蘇博妮, 鄧哲武, 化希耀. 基于Android系統(tǒng)的移動校園APP的研究與設(shè)計[J]. 電腦編程技巧與維護, 2016(11).
[4] 趙朋飛. 智能手機操作系統(tǒng)Google Android分析[J]. 科技視界, 2001(8).
[5] CSDN博客. 中國軟件開發(fā)者網(wǎng)絡(luò)[EB/OL].(2013-11-21)http://blog.csdn.net/guolin_blog/article/details/13171191.
[6] GitHub.開源中國社區(qū) [EB/OL].(2017)https://github.com/LitePalFramework/LitePal.
[7] 瘋狂軟件. Spring+MyBatis企業(yè)應(yīng)用實戰(zhàn)[M]. 北京: 電子工業(yè)出版社,2017.
[8] 瘋狂軟件. 應(yīng)用文獻:Spring+MyBatis企業(yè)應(yīng)用實戰(zhàn)[M]. 北京: 電子工業(yè)出版社,2012.