时间:2024-05-04
亓祥元+严冬梅
摘 要: 设计和实现了基于Android平台的课程学习系统;采用软件工程的方法,在需求分析的基础上设计了系统总体架构及功能,并使用Eclipse+ADT开发客户端应用程序、MySQL进行数据库管理、Spring+Hibernate+Apache等提供后台服务和管理。该系统的设计与实现对移动学习的研究与应用具有参考价值。
关键词: 移动学习; SPOC; Android; 移动应用程序
中图分类号:TP319 文献标志码:A 文章编号:1006-8228(2016)06-48-04
Abstract: A curriculum learning system for Android is designed and implemented. Using the method of software engineering, on the basis of the requirement analysis, the overall structure and functions of the system are designed. Eclipse+ADT are used to develop the client application, MySQL to manage the database, and Spring+Hibernate+Apache to provide background service and management. The design and implementation of the system has a reference value for the research and application of mobile learning.
Key words: mobile learning; SPOC; Android; mobile application
0 引言
移动学习(Mobile Learning,简称M-Leaning)是指利用无线移动通信网络技术,以无线移动通信设备(如PAD、智能手机等)获取教育信息、教育资源、教育服务的一种新型数字化学习形式[1]。
移动学习具有便携性、碎片式、交互性、及时性、个性化学习的特点,可以做到anyone、anytime、anywhere地进行自由式学习,可以有效缓解传统教育的课堂教学压力。在高校的大学生中,几乎每人都拥有一台智能手机,使利用手机进行移动学习成为可能。
慕课(Massive Open Online Course,大型开放在线课程,简称MOOC)在我国的迅速推广和成长,带来了学习理念、学习方式的变革,但是,也存在着学分认证难、课程流失率高、学生管理欠缺等问题[2]。目前虽出现了各种在线学习平台,如爱课程、网易等慕课平台,但其发挥的作用有限,只是少数学生课余学习的平台,不能为高校课程教学提供更有效的帮助。与幕课相比,SPOC(Small Private Online Courses,小型私密在线课程)更具吸引力,它既具有大规模在线开放课程的优点,又能弥补传统课堂教学的不足,充分利用先进的计算机技术,帮助教师完成课程教学管理。
适用于高校课程教学的SPOC系统,应包括教师使用的管理平台和学生使用的学习平台,其中的学习平台又可以分为适用于PC网络学习系统和适用于移动设备的移动学习系统。在众多的移动平台中,基于Linux的自由、开放源代码的Android操作系统得到众多运营商和设备商的全面支持。本文研究的高校课程移动学习系统正是基于Android平台的SPOC移动客户端应用系统,其具有较高的应用价值。
1 需求分析
1.1 系统目标
基于Android平台的高校移动学习系统的目标就是使学生可以利用Android手机随时随地地进行课程学习,并在学习过程中实现交流互动与知识分享。使用该移动学习系统,学生可以浏览教师发布的公告、观看课程视频、下载课件等,可以在线完成教师布置的作业、在线进行测试,还可以针对自己的学习情况进行大量的在线练习,最终达到课程学习标准。
高校课程移动学习系统是高校课程教学的有效补充,有助于“教与学”并重。一方面,教师对课程的要求体现在课程作业、习题与教学进度的把握上,教师可以及时了解学生的学习状况,并在课堂上进行针对性地讲解辅导;另一方面,学生根据需要观看视频、课件,并通过习题测试及时掌握自身学习状况,有的放矢地学习。
1.2 系统功能
该课程学习系统的主要功能包括:登录管理、用户管理、课程管理、课程学习、课程练习、成绩查询和课程论坛等功能。
⑴ 登录管理主要包括学生登录和忘记密码处理,学生登录之后才能使用该系统。
⑵ 用户管理,主要指学生个人基本信息的维护,特别是学生要绑定手机或邮箱,以便将来可以找回密码和接收系统的重要通知。
⑶ 课程管理,主要指查询课程、申请课程、浏览已注册课程(包括即将开始的、正在进行的和已经完成的)、注销尚未开课的课程。
⑷ 课程学习,是学习系统的核心,学生进行学习的方式包括观看视频、下载学习资料、完成作业、单元测试。整个课程的学习是在授课教师规定的章节和进度下进行的,充分体现出教师的教学思路和教学要求,同时,学习是在学生喜欢的时间、地点、方式下进行,又体现出自主学习的特点。
⑸ 课程练习,学生可以根据自身掌握知识的情况,有选择性地进行大量的在线练习。因为可以实时得到反馈,所以可以帮助学生更好地找到薄弱环节,更有针对性地学习。
⑹ 查询成绩,学生可以及时了解自己的学习进度和成绩情况,对大局了如指掌。
⑺ 课程论坛,学生可以针对各章节的学习内容、作业等提出问题,与教师和其他学生进行互动,回答他人的问题,分享自己的经验。
2 系统设计
2.1 基本架构
基于Android平台的移动学习系统包括服务器应用程序和客户端应用程序两部分。系统采用Client/Cloud总体架构,其拓扑结构如图1所示,该系统将支持基于Android的移动设备通过Wi-Fi或3G/4G无线网络连接云服务器进行在线学习。
移动学习系统的客户端主要包括Android智能手机以及Android平板电脑等基于Android操作系统的便携式设备,用户通过便携的移动终端设备进行课程访问和学习等。
移动学习系统的服务器主要由资源服务器和数据库服务器两部分组成。资源服务器用于存储和管理课程学习资源以及处理在线的交互信息包括学生提问、老师答疑等。数据库服务器的主要功能是存储学生、课程、习题等信息。
系统采用HTTP协议进行通信,利用JSON格式传输数据,客户端利用HttpURLConnection或者HttpClient建立与服务器的连接,服务端通过Struts栏截客户端URL请求,通过Http Post获取参数、查询数据库,进而生成XML或JSON格式的数据,通过Http Response返回给客户端[3]。
2.2 系统逻辑结构
本系统采用MVC框架(Model-View-Controller,即“模型-视图-控制器”)[4]。
模型层主要负责业务流程的处理,包括基于HTTP的客户端-服务器端的数据通信、JSON或XML的解析及与模型对象的转换、资源缓存、本地数据的持久化等业务。
视图层是平台和用户的交互界面,负责接收用户输入的请求,并显示请求的响应结果。
控制层调度和控制模型层和表示层,实现业务流程的控制,主要业务功能模块有:课程学习、视频资源学习、资讯内容、用户信息和学习工具与支持等。
2.3 数据库设计
该系统使用关系型数据库MySQL,系统的主要ER图2所示。数据库的实际应用情况较复杂,例如习题按照类型分为单选题、多选题、判断题、填空题等,篇幅所限,我们不全部呈现所有实体联系,这里只呈现和移动客户端关系比较密切的一部分。
2.4 界面流程设计
移动学习系统的界面流程设计如图3所示。
3 系统实现
移动学习系统采用C/S架构,由客户端和服务器端两部分组成。
3.1 客户端Android应用程序
Android程序中Activity作为其最基本的组成部分,几乎每一个界面窗口都是一个Activity,在每个Activity中做好相应界面的布局,例如TextView、Button、ListView等基本控件在布局文件中的使用,同时用到布局的嵌套。例如在相对布局中可以嵌套线性布局,结合Weight等属性,便可以控制各个控件的相对位置以及摆放位置,以保证用户良好的视觉感受和体验。
由于Activity的启动需要一定的响应时间,所以在一个Android程序中使用过多的Activity势必会影响其运行速度。为改善这一问题,可以结合Fragment来实现界面的分栏效果,即一个Activity对应几个Fragment,每一个Fragment对应一个界面的布局以及不同数据的显示。例如:在主页和一些页面中,界面底部对应“主页、我的课程、用户管理”这三个状态,如图4(a)所示,当分别点击时会出现该状态下对应的数据查询结果,同时用户点击过程中会出现颜色的改变和所在状态的位置凸显,表明用户当前的状态。
当进入一个课程的学习,利用SlideMenu来实现窗口的隐藏和显现。该效果的实现是将SlideMenu作为一个自定义控件放入一个界面布局文件中,同时通过左上角图片的点击事件或左右手势滑动控制该布局的显示与隐藏。同理,在视频播放列表和资料下载界面用两个Fragment共用一个Activity。系统中的一些主要界面如图4所示。
3.2 后台服务器端的实现
客户端应用程序通过Wifi或3G、4G等方式连接到Web服务端,通过接口获得服务器端JSON数据格式的数据,然后解析JSON数据并进行逻辑处理。为了实现手机通过Http协议请求数据的方法,应先在服务器发布其相关的服务,具体服务发布如下。①创建一个查询结果的类,对应于查询目标表,也可以利用Hibernate将数据库中表进行反转,自动封装为一个类。在该类中将各个字段信息封装为属性,并实现对每一个属性的get和set方法。②创建一个关于数据库查询的类,在其中定义函数,完成查询数据库的功能,并以List的形式返回查询结果集。③创建一个父类是HttpServlet的servlet类,并实现其doGet或doPost方法。在方法中完成对服务器从数据库中查询到的数据按照JSON格式进行组织和传输。④部署到容器中,发布并进行网页访问测试,根据Http协议,测试时在浏览器中输入地址与参数即可调用servlet服务。⑤将对应数据表中数据的查询结果类导出为包。
Android应用程序中采用的是通过URL连接进行请求和输入输出的方式。
首先创建一个连接类,在其中实现一个httpPost方法。根据服务器ip地址、端口和服务器端设置的虚拟路径设置URL,通过HttpURLConnection方式发送Http Post请求,通过HttpURLConnection类的一个实例设置连接参数和请求参数,并且建立输出流并写入发送数据,最后获得响应流,并以string的形式作为函数的返回值返回。
然后创建一个与web服务端相同的查询结果的类,并在接收到并解析JSON数据后,根据类的属性按键取值循环地创建该类的实例并保存在一个List中。
最后创建一个父类为BaseAdapter的类,实现其中的getView方法,针对JSON中数据所封装的List,循环地完成对自定义item中TextView控件的数据设置。
4 结束语
本文基于Android平台设计与实现的学习系统可以广泛应用于智能手机、平板电脑、PDA等便携式设备。使用该系统,学生可以在任何时间、地点,进行个性化的学习,对提高教学质量有很大帮助。该系统是高校SPOC学习系统的移动端应用系统,其处处体现出教师对于课程学习的要求和管理,后台管理系统的设计与实现非常复杂,也是至关重要的。后续的研究还需要加强数据分析和数据挖掘,使教师掌握学生的学习习惯和学习规律,更好地组织学习资源,合理安排学习进度,实现更好的学习效果。
参考文献(References):
[1] Aleksander Dye et al: Mobile Education-A glance at the
future[EB/OL].http://www.nettskolen.com/forskning/mobiie_education.pdf
[2] 苏小红等.基于MOOC+SPOC的混合式教学的探索与实践[J].
中国大学教学,2015.7:60-65
[3] 李刚.轻量级Java EE企业应用实战:Struts2+Spring4+
Hibernate整合开发(第4版)[M].电子工业出版社,2014.
[4] [美]戴克(Paul Deck)著,林仪明,崔毅译.Spring MVC学习指
南[M].人民邮电出版社,2015.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!