课程学习系统的设计与实现

2020-04-08 09:30徐新爱邱宏伟
电脑知识与技术 2020年3期
关键词:云平台数据结构

徐新爱 邱宏伟

摘要:Android课程学习系统有助于学生利用碎片化的时间进行自主学习,在一定程度上减小课堂教学负担。文章以数据结构课程为例,开发了基于Android的课程学习系统。该系统采用C/S模型,以Java编程语言和Android studio工具来设计并开发,服务器端以腾讯云提供的云服务器为基础,利用My SQL数据库存储,Spring+Hibemate+Apache框架开发服务端程序,从需求分析、概要分析、详细设计与实现做了详细介绍,对移动学习系统的设计与应用具有一定的参考价值。

关键词:数据结构;Android;云平台;学习系统

中图分类号:TP311

文献标识码:A

文章编号:1009-3044(2020)03-0101-03

1 背景

随着计算机技术、网络技术和通信技术的迅速发展,信息技术环境下的学习方式发生了重大变革,移动学习成为当前的研究热点[1]。移动学习(Mobile Leaming,简称M-Leaning)是指利用无线移动通信网络技术,以无线移动通信设备(如PAD、智能手机等)获取教育信息、教育资源、教育服务的一种新型数字化学习形式[2]。其能够有效改善传统教学内容和教学时间死板等问题,促进学生自主和个性化学习[3-5]。移动学习平台的存储依“云”平台而建。云服务器(Elastic Compute Service,简称ECS)是一种处理能力可弹性伸缩的计算服务f6]。目前,利用各大科技厂商提供的相关云服务来开发应用已经非常常见。其中包括基于云平台的课程资源提供平台,如腾讯微云、网易公开课、中国大学MOOC平台、国家精品课程资源共享平台等都提供良好的课程资源进行共享,且能提供良好的云存储服务[7]。

数据结构课程是计算机类专业的核心基础课程,其在整个人才培养方案中承担着重要角色,但所涉及的内容抽象、算法多、课时少等,尤其是课外实践方面,由于学生主动学习能力不强,遇到问题无法及时解决而放弃,老师也无从针对性进行指导,看不到学生课外对此门课程的学习情况等,教学效果往往难以如愿,造成后续一系列相关课程学习出现问题。上课过程中经常出现老师费劲地教,学生吃力地学的现象[8]。而移动学习具有便携性、碎片式、交互性、及时性、个性化学习的特点,可以做到anyone、anytime、anvwhere地进行自由式学习,可以有效缓解传统教育的课堂教学压力。[9]

综合移动平台的优势以及当前数据结构课程教学过程中的问题,研究的主要内容集中在将移动互联网技术融人教学中,完成教师和学生、学生和学生之间的问题答疑、讨论,学生还可以通过视频自主学习、完成作业等。[10]在众多的移动平台中,基于Linux的自由、开放源代码的Android操作系统得到众多运营商和设备商的全面支持。[11]本系统主要用到的Java技术包括Apache框架技术、Spring技术和Hibernate技术[12-3],采用MVC框架(Model-View-Controller,即“模型一视图一控制器”)[14]。

2 系统需求分析

系统需求分析是对用户需求所做的调查与分析,是系统设计、开发和维护的依据。[15]系统采用C/S架构。C/S架构是指软件体系的客户机/服务器结构。具体而言,将部分任务转移到客户端进行处理,从而减小服务器的负荷,平衡资源并保证数据的一致性和完整性。[16] C/S架構分为客户端(用户使用)、TCP/IP网络以及服务器端(后台),具有服务器端压力小、储数据及管理过程透明等优点。[17]

2.1 客户端功能需求

客户端作为用户进行相关操作的直接途径,考虑到用户的计算机水平参差不齐,对于所有提供的功能,需要为用户提供对应易于操作的可视化界面。客户端功能架构如图1所示。

客户端提供的功能主要有:

1)提供《数据结构》课程的相关知识点(图文、算法实现代码、算法实现动画等)展示功能;

2)提供用户通过邮箱注册和用户的信息修改功能;

3)通过接入第三方账户的SDK来提供第三方账户(QQ、微信)登录和第三方账户绑定邮箱账号的功能;

4)提供用户发布文章和修改本人已发布的文章信息等的可视化界面接口;

5)提供用户查看、评论、收藏、点赞、回复等查看和指正文章信息操作的可视化界面;

6)提供用户其他操作的可视化界面。

2.2 服务端功能需求

服务端作为客户端数据的提供者,同时也作为用户数据的储存者,一方面需要和客户端进行对接,监听客户端的相关请求并进行处理,处理完成之后将对应结果返回给客户端.另一方面需要将客户端传人数据经过处理后储存到储存介质中。服务端功能架构如图2所示。

服务端提供的功能主要有:

1)创建用户系统,储存不同类型(邮箱、QQ、微信)用户的相关信息并支持用户相关信息的修改;

2)创建社区文章管理系统,管理所有用户发布的文章和相关(点赞,评论等)信息;

3)监听客户端请求,根据客户端传递过来的信息来进行对应的处理;

4)提供相关的数据获取(用户信息、文章信息)接口来为客户端提供用于展示的数据源;

5)提供相关的数据修改(用户信息等)接口来为客户端提供修改数据的功能;

6)提供其他的获取和操作数据的功能。

3 概要设计与分析

客户端程序和服务端程序之间通过计算机网络进行数据交换,采用计算机网络中应用层HTTP协议作为网络协议,还需要一个完善的数据内容格式约定,这样才能保证客户端和云服务器都能够“听懂对方说的话”。目前,主流的客户端与云服务器的文本数据交换格式有JSON和XML两种,当传送相同的数据时,使用JSON格式进行数据包装所占用的体积比使用XML格式所占用的体积要小,同时在进行数据解析时,JSON格式的解析速度也会更快捷,对机器比较友好。而相对于JSON来说,XML格式的数据的可读性会比较强,对人比较友好。由于客户端与云服务器之间的数据传输和解析对效率要求较高,因此,采用JSON作为客户端和云服务器之间的数据内容格式。

3.1 数据库设计

根据功能需求,服务端数据库需要建立两类数据表来保存相关信息,分别为用户信息表和文章信息表。其中用户信息表用来保存用户账户的信息,包含三个表,分别储存邮箱账户信息、QQ账户登录信息和微信账户登录信息。

文章信息包括文章信息和该文章的评论信息两部分,因此这部分需要两个表:文章信息表和评论信息。文章信息表结构包括:文章ID、文章标题、文章内容URL、文章类别(文章/问题)、文章作者的邮箱账户ID、文章发布时间、文章最后修改的时间、文章的浏览量、文章所属的领域、文章的被收藏数、文章得到的点赞数、文章的评论ID数组、文章状态(是否可显示)等,评论信息表结构包括:评论ID、评论内容、评论所属的文章ID、评论用户ID、评论发布时间、评论的父评论f当前评论回复的评论)ID、评论能否显示等。

3.2 实体类设计

根据系统功能需求及数据库表的设计,定义基础的用户信息类(BasicUserlnfo)、邮箱账户信息类(EmaiILoginUserlnfo)、QQ账户信息类(QQLoginUserlnfo)、文章信息类(Articlelnfo)和评论信息类(Commentlnfo等实体类作为数据模型,同时,定义以下功能模块函数:

1)用户登录:public Result login(String input,String pass-word);

2)用户注册:public Result register(String password,Stringemail);

3)发布文章:public Result insertArticle(Articlelnfo,String,String);

4)获取社区文章:public Result allArticle(ArticleResult arti-clelnfo);

5)查看文章内容:getArticleContent(String)。

4 详细设计与实现

4.1 课程资源模块设计与实现

追求实用是移动学习资源的最显著特点[18]。因此,将数据结构课程资源以可视化界面的形式展示出来是客户端的核心功能之一,为了实现这个功能,需要自主编写自定义结构的数据结构课程资源,主要内容包括:资源版本信息、资源文件URL和资源更新时间信息。

课程资源信息为xml格式文本,程序在进入主界面之后,会从云服务器中获取该课程资源信息并解析。解析成功后通过Android系统UI框架在主界面展示。当用户单击某门课程时,首先会检测本机是否存在课程资源文件,如果存在,则进入该课程所包含的章节目录界面,否则下载课程资源文件,完成之后再进入章节目录。

对于章节,其资源文件存在一个名为contents.xml的文件,标识了该章节中所有的小节资源。客户端在读取并解析某个小节信息时会寻找对应的小节内容文件并解析。单击章节时会解析章节信息中的第一个小节内容,完成后以图形界面的形式展示,可以通过单击标题右边按钮来选取小节显示。

4.2 登录功能设计与实现

当客户端程序未检测到登录信息或者登录信息过期時,会跳转至登录界面。用户可以输入账户和密码进行登录,单击登录按钮之后会将数据打包发送给云服务器验证账号密码信息是否合法(账户是否存在、账户密码是否匹配),如图3所示。

4.3 注册功能设计与实现

在登录界面可以单击“去注册”按钮进入注册界面,在注册界面需要输入账户、密码和确认密码信息来完成注册。如图4所示。

4.4 发布文章功能设计

如果当前用户是使用邮箱账户登录,则用户在主页界面可以单击底层中间的按钮来发布文章。用户在编辑完成后单击右上角的“发布”按钮时客户端先会将文章中的图片上传到云服务器上,发布文章流程如图5所示。

5 结束语

针对数据结构课程线下教学过程中出现的问题,开发了基于Android系统的课程学习系统。本系统采用C/S架构,专用于课程的教学,具有注册登录、通知公告、课程信息发布、教学资源展示等功能。在接下来的工作中,我们将不仅仅采用基于自组织和自调节的社区结构[19]的推荐算法,构建个性化学习模型,更会关注用户使用移动终端设备产生大量数据,促使进一步研究大数据挖掘技术,让系统更具有智能陛、交互性和完整性。

参考文献:

[1]刘建设,李青,刘金梅,移动学习研究现状综述[J].电化教育研究,2007,28(7):21-25,36.

[2] Aleksander Dye et al:Mobile Education-A glance at thefuture[EB/OL]. http://www. nettskolen. com/forskning/mobiie_educa-tion.pdf.

[3] Troussas C,Virvou M, Alepis E.Collaborative learning: groupinteraction in an intelligent mobile-assisted multiple languagelearning system[J]. Informatics in Education. 2014, 13(2):279-292.

[4] Guo M, Qian K,Yang M, et al.Android- based mobile senso-ry system labware for embedded sys-tem education[C]// IEEE,International Conference on Advanced Leaming Technologies.IEEE, 2013: 118-119.

[5]杨威.基于android移动智能终端的教学信息平台开发与研究[D].哈尔滨:哈尔滨工程大学,2015.

[6]胡珊.基于云计算技术构建教学云平台[J]河北:当代教育实践与教学研究,2017(3):1-4.

[7]骆金维.基于云平台的高职院校课程资源共享系统设计与实现[D].广州:华南理工大学,2018.

[8]吴桂芹,数据结构教学思考与改革實践[J].新西部,2018(33):143-144.

[9][11]亓祥元,严冬梅,基于Android的高校课程学习系统设计与实现[J].计算机时代,2016(6):48-51.55.

[10]刘帅,李建伟,勾学荣,互动式移动学习系统的设计与开发[J].北京邮电大学学报:社会科学版,2014,16(6):111-116.

[12]郭霖,第一行代码-Android[M].2版,北京:人民邮电出版社,2016.

[13]刘望舒.Android进阶解密[M].北京:电子工业出版社,2018.

[14] Paul Deck. Spring MVC学习指南[M].林仪明,崔毅,译.北京:人民邮电出版社,2015.

[15]季益龙,张闪闪,赵俞凌.基于微课程的自主学习系统设计与实现——以计算机编程类课程为例[J].中国教育信息化,2015(21):88-91.

[16]张雪亚,基于C-B/S混合架构的试题库系统设计[J].电子科技,2013,26(5):43-46.

[17]朱佳雯.基于Android的移动教学系统的设计与实现[J].电子设计工程,2018,26(23):65-70.

[18]顾小清,顾凤佳,微型学习策略:设计移动学习[J].中国电化教育,2008(3):17-21.

[19] Tumer P J,Jennings N R.Improving the scalability of multi-agent systems[M]//Infrastructure for Agents, Multi-Agent Sys-tems. and Scalable Multi-Agent Systems. Berlin, Heidelberg:Springer Berlin Heidelberg, 2001: 246-262.

猜你喜欢
云平台数据结构
企业云平台建设研究
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨